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 117285033 : tree_bit_xor_cst (tree t, tree *res_ops)
11 : {
12 117285033 : const tree type = TREE_TYPE (t);
13 117285033 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 117285033 : if (TREE_SIDE_EFFECTS (t)) return false;
15 117285033 : switch (TREE_CODE (t))
16 : {
17 97800 : case BIT_XOR_EXPR:
18 97800 : {
19 97800 : tree _p0 = TREE_OPERAND (t, 0);
20 97800 : tree _p1 = TREE_OPERAND (t, 1);
21 97800 : if (uniform_integer_cst_p (_p1))
22 : {
23 1598 : {
24 1598 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
25 1598 : {
26 1598 : res_ops[0] = captures[0];
27 1598 : res_ops[1] = captures[1];
28 1598 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 4, __FILE__, __LINE__, false);
29 1598 : return true;
30 : }
31 : }
32 : }
33 : break;
34 : }
35 : default:;
36 : }
37 : return false;
38 : }
39 :
40 : bool
41 80564448 : tree_with_possible_nonzero_bits_1 (tree t)
42 : {
43 80564448 : const tree type = TREE_TYPE (t);
44 80564448 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
45 80564448 : if (TREE_SIDE_EFFECTS (t)) return false;
46 80564448 : switch (TREE_CODE (t))
47 : {
48 17003934 : case INTEGER_CST:
49 17003934 : {
50 17003934 : {
51 17003934 : tree captures[1] ATTRIBUTE_UNUSED = { t };
52 17003934 : {
53 17003934 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 32, __FILE__, __LINE__, false);
54 17003934 : return true;
55 : }
56 : }
57 0 : break;
58 : }
59 0 : case POLY_INT_CST:
60 0 : {
61 0 : {
62 0 : tree captures[1] ATTRIBUTE_UNUSED = { t };
63 0 : {
64 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 33, __FILE__, __LINE__, false);
65 0 : return true;
66 : }
67 : }
68 26941530 : break;
69 : }
70 26941530 : case SSA_NAME:
71 26941530 : {
72 26941530 : {
73 26941530 : tree captures[1] ATTRIBUTE_UNUSED = { t };
74 26941530 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0]))
75 : )
76 : {
77 26418863 : {
78 26418863 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 34, __FILE__, __LINE__, false);
79 26418863 : return true;
80 : }
81 : }
82 : }
83 : break;
84 : }
85 : default:;
86 : }
87 : return false;
88 : }
89 :
90 : bool
91 2429 : tree_max_value (tree t)
92 : {
93 2429 : const tree type = TREE_TYPE (t);
94 2429 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
95 2429 : if (TREE_SIDE_EFFECTS (t)) return false;
96 2421 : if (uniform_integer_cst_p (t))
97 : {
98 2156 : {
99 2156 : {
100 2156 : tree int_cst = uniform_integer_cst_p (t);
101 2156 : tree itype = TREE_TYPE (int_cst);
102 4312 : if ((INTEGRAL_TYPE_P (itype)
103 17 : || POINTER_TYPE_P (itype))
104 4329 : && wi::eq_p (wi::to_wide (int_cst), wi::max_value (itype))
105 : )
106 : {
107 24 : {
108 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 42, __FILE__, __LINE__, false);
109 24 : return true;
110 : }
111 : }
112 : }
113 : }
114 : }
115 : return false;
116 : }
117 :
118 : tree
119 72424 : generic_simplify_5 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
120 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
121 : const enum tree_code ARG_UNUSED (op))
122 : {
123 72424 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
124 72424 : {
125 72424 : bool wascmp0, wascmp1;
126 72424 : if (bitwise_inverted_equal_p (captures[1], captures[3], wascmp0)
127 1201 : && bitwise_inverted_equal_p (captures[0], captures[2], wascmp1)
128 72428 : && ((!wascmp0 && !wascmp1)
129 0 : || element_precision (type) == 1)
130 : )
131 : {
132 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail76;
133 4 : {
134 4 : tree res_op0;
135 4 : res_op0 = captures[0];
136 4 : tree res_op1;
137 4 : res_op1 = captures[3];
138 4 : tree _r;
139 4 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
140 4 : if (TREE_SIDE_EFFECTS (captures[1]))
141 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
142 4 : if (TREE_SIDE_EFFECTS (captures[2]))
143 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
144 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 53, __FILE__, __LINE__, true);
145 4 : return _r;
146 : }
147 0 : next_after_fail76:;
148 : }
149 : }
150 72420 : return NULL_TREE;
151 : }
152 :
153 : tree
154 1 : generic_simplify_16 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
155 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
156 : {
157 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
158 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail91;
159 1 : {
160 1 : tree res_op0;
161 1 : res_op0 = captures[0];
162 1 : tree _r;
163 1 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
164 1 : if (TREE_SIDE_EFFECTS (captures[1]))
165 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
166 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 64, __FILE__, __LINE__, true);
167 : return _r;
168 : }
169 0 : next_after_fail91:;
170 0 : return NULL_TREE;
171 : }
172 :
173 : tree
174 8 : generic_simplify_22 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
175 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
176 : {
177 8 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
178 8 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
179 : )
180 : {
181 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail97;
182 8 : {
183 8 : tree res_op0;
184 8 : {
185 8 : tree _o1[2], _r1;
186 8 : _o1[0] = captures[1];
187 8 : {
188 8 : tree _o2[1], _r2;
189 8 : _o2[0] = captures[0];
190 8 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
191 8 : _o1[1] = _r2;
192 : }
193 8 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
194 8 : res_op0 = _r1;
195 : }
196 8 : tree _r;
197 8 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
198 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 70, __FILE__, __LINE__, true);
199 8 : return _r;
200 : }
201 0 : next_after_fail97:;
202 : }
203 : return NULL_TREE;
204 : }
205 :
206 : tree
207 2078453 : generic_simplify_32 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
208 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
209 : const enum tree_code ARG_UNUSED (bitop))
210 : {
211 2078453 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
212 2078453 : if (((TREE_CODE (captures[3]) == INTEGER_CST
213 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
214 0 : && (int_fits_type_p (captures[3], TREE_TYPE (captures[1]))
215 0 : || tree_nop_conversion_p (TREE_TYPE (captures[1]), type)))
216 2078453 : || types_match (captures[1], captures[3]))
217 1938398 : && !POINTER_TYPE_P (TREE_TYPE (captures[1]))
218 1938134 : && !VECTOR_TYPE_P (TREE_TYPE (captures[1]))
219 1937956 : && TREE_CODE (TREE_TYPE (captures[1])) != OFFSET_TYPE
220 1937956 : && (bitop != BIT_AND_EXPR ||
221 :
222 : )
223 2078453 : && (
224 1127176 : TYPE_PRECISION (TREE_TYPE (captures[1])) < TYPE_PRECISION (type)
225 : || (
226 :
227 : && TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (type))
228 1032649 : || GET_MODE_CLASS (TYPE_MODE (type)) != MODE_INT
229 1032649 : || !type_has_mode_precision_p (type)
230 1032649 : || (
231 :
232 : && TREE_CODE (captures[3]) != INTEGER_CST
233 : && tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
234 : && single_use (captures[0])
235 : && single_use (captures[2])))
236 : )
237 : {
238 94527 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail107;
239 94527 : {
240 94527 : tree res_op0;
241 94527 : {
242 94527 : tree _o1[2], _r1;
243 94527 : _o1[0] = captures[1];
244 94527 : {
245 94527 : tree _o2[1], _r2;
246 94527 : _o2[0] = captures[3];
247 94527 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
248 : {
249 54214 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
250 : }
251 : else
252 : _r2 = _o2[0];
253 94527 : _o1[1] = _r2;
254 : }
255 94527 : _r1 = fold_build2_loc (loc, bitop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
256 94527 : res_op0 = _r1;
257 : }
258 94527 : tree _r;
259 94527 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
260 94527 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 80, __FILE__, __LINE__, true);
261 94527 : return _r;
262 : }
263 0 : next_after_fail107:;
264 : }
265 : return NULL_TREE;
266 : }
267 :
268 : tree
269 18 : generic_simplify_46 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
270 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
271 : const enum tree_code ARG_UNUSED (op))
272 : {
273 18 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
274 36 : if (INTEGRAL_TYPE_P (type)
275 54 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[2])) == 0
276 : )
277 : {
278 0 : {
279 0 : tree t = type;
280 0 : if (!TYPE_OVERFLOW_WRAPS (t))
281 0 : t = unsigned_type_for (t);
282 0 : wide_int c = wi::add (wi::to_wide (captures[3]), 1);
283 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail124;
284 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail124;
285 0 : {
286 0 : tree res_op0;
287 0 : {
288 0 : tree _o1[2], _r1;
289 0 : {
290 0 : tree _o2[1], _r2;
291 0 : _o2[0] = captures[2];
292 0 : if (TREE_TYPE (_o2[0]) != t)
293 : {
294 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
295 : }
296 : else
297 : _r2 = _o2[0];
298 0 : _o1[0] = _r2;
299 : }
300 0 : _o1[1] = wide_int_to_tree (t, c);
301 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
302 0 : res_op0 = _r1;
303 : }
304 0 : tree _r;
305 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
306 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 90, __FILE__, __LINE__, true);
307 0 : return _r;
308 : }
309 0 : next_after_fail124:;
310 0 : }
311 : }
312 : return NULL_TREE;
313 : }
314 :
315 : tree
316 66 : generic_simplify_56 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
317 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
318 : {
319 66 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
320 66 : if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type)
321 : )
322 : {
323 66 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail137;
324 66 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail137;
325 66 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail137;
326 66 : {
327 66 : tree res_op0;
328 66 : res_op0 = captures[0];
329 66 : tree _r;
330 66 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
331 66 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 105, __FILE__, __LINE__, true);
332 66 : return _r;
333 : }
334 : next_after_fail137:;
335 : }
336 : return NULL_TREE;
337 : }
338 :
339 : tree
340 2 : generic_simplify_60 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
341 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
342 : {
343 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
344 2 : if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
345 2 : && !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
346 2 : && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[0]))
347 4 : && !TYPE_SATURATING (TREE_TYPE (captures[0]))
348 : )
349 : {
350 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail141;
351 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail141;
352 2 : {
353 2 : tree res_op0;
354 2 : {
355 2 : tree _o1[1], _r1;
356 2 : {
357 2 : tree _o2[2], _r2;
358 2 : _o2[0] = captures[1];
359 2 : _o2[1] = captures[2];
360 2 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
361 2 : _o1[0] = _r2;
362 : }
363 2 : if (TREE_TYPE (_o1[0]) != type)
364 : {
365 1 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
366 : }
367 : else
368 : _r1 = _o1[0];
369 2 : res_op0 = _r1;
370 : }
371 2 : tree _r;
372 2 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
373 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 109, __FILE__, __LINE__, true);
374 2 : return _r;
375 : }
376 : next_after_fail141:;
377 : }
378 : return NULL_TREE;
379 : }
380 :
381 : tree
382 2340212 : generic_simplify_71 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
383 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
384 : const enum tree_code ARG_UNUSED (plusminus))
385 : {
386 2340212 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
387 2340212 : if (!TYPE_SATURATING (type)
388 2340212 : && (!FLOAT_TYPE_P (type) || flag_associative_math)
389 : )
390 : {
391 110 : if (!ANY_INTEGRAL_TYPE_P (type)
392 2339988 : || TYPE_OVERFLOW_WRAPS (type)
393 4069315 : || (INTEGRAL_TYPE_P (type)
394 1729217 : && tree_expr_nonzero_p (captures[1])
395 3273946 : && expr_not_equal_to (captures[1], wi::minus_one (TYPE_PRECISION (type)),
396 : gimple_match_ctx (captures[0])))
397 : )
398 : {
399 1544425 : if (single_use (captures[0]) || single_use (captures[3])
400 : )
401 : {
402 1544425 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail160;
403 1544425 : {
404 1544425 : tree res_op0;
405 1544425 : {
406 1544425 : tree _o1[2], _r1;
407 1544425 : _o1[0] = captures[2];
408 1544425 : _o1[1] = captures[4];
409 1544425 : _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
410 1544425 : res_op0 = _r1;
411 : }
412 1544425 : tree res_op1;
413 1544425 : res_op1 = captures[1];
414 1544425 : tree _r;
415 1544425 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
416 1544425 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 128, __FILE__, __LINE__, true);
417 1544425 : return _r;
418 : }
419 0 : next_after_fail160:;
420 : }
421 : else
422 : {
423 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail161;
424 : {
425 : tree res_op0;
426 : {
427 : tree _o1[2], _r1;
428 : _o1[0] = captures[2];
429 : _o1[1] = captures[4];
430 : _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
431 : res_op0 = _r1;
432 : }
433 : tree res_op1;
434 : res_op1 = captures[1];
435 : tree _r;
436 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
437 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 129, __FILE__, __LINE__, true);
438 : return _r;
439 : }
440 : next_after_fail161:;
441 : }
442 : }
443 : }
444 : return NULL_TREE;
445 : }
446 :
447 : tree
448 4 : generic_simplify_82 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
449 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
450 : const combined_fn ARG_UNUSED (POPCOUNT))
451 : {
452 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
453 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail173;
454 4 : {
455 4 : tree res_op0;
456 4 : {
457 4 : tree _o1[1], _r1;
458 4 : _o1[0] = captures[2];
459 4 : _r1 = maybe_build_call_expr_loc (loc, POPCOUNT, type, 1, _o1[0]);
460 4 : if (!_r1)
461 0 : goto next_after_fail173;
462 4 : res_op0 = _r1;
463 : }
464 4 : tree res_op1;
465 4 : {
466 4 : tree _o1[1], _r1;
467 4 : _o1[0] = captures[3];
468 4 : _r1 = maybe_build_call_expr_loc (loc, POPCOUNT, type, 1, _o1[0]);
469 4 : if (!_r1)
470 0 : goto next_after_fail173;
471 4 : res_op1 = _r1;
472 : }
473 4 : tree _r;
474 4 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
475 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 141, __FILE__, __LINE__, true);
476 : return _r;
477 : }
478 : next_after_fail173:;
479 : return NULL_TREE;
480 : }
481 :
482 : tree
483 2 : generic_simplify_90 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
484 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
485 : {
486 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
487 2 : if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
488 2 : && !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2]))
489 2 : && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[2]))
490 4 : && !TYPE_SATURATING (TREE_TYPE (captures[2]))
491 : )
492 : {
493 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail181;
494 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail181;
495 2 : {
496 2 : tree res_op0;
497 2 : {
498 2 : tree _o1[1], _r1;
499 2 : {
500 2 : tree _o2[2], _r2;
501 2 : _o2[0] = captures[0];
502 2 : _o2[1] = captures[1];
503 2 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
504 2 : _o1[0] = _r2;
505 : }
506 2 : if (TREE_TYPE (_o1[0]) != type)
507 : {
508 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
509 : }
510 : else
511 : _r1 = _o1[0];
512 2 : res_op0 = _r1;
513 : }
514 2 : tree _r;
515 2 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
516 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 149, __FILE__, __LINE__, true);
517 2 : return _r;
518 : }
519 : next_after_fail181:;
520 : }
521 : return NULL_TREE;
522 : }
523 :
524 : tree
525 0 : generic_simplify_100 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
526 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
527 : {
528 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
529 0 : if (!TYPE_SATURATING (type)
530 : )
531 : {
532 0 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
533 0 : && !FIXED_POINT_TYPE_P (type)
534 : )
535 : {
536 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail193;
537 0 : {
538 0 : tree res_op0;
539 0 : res_op0 = captures[1];
540 0 : tree res_op1;
541 0 : res_op1 = captures[2];
542 0 : tree _r;
543 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
544 0 : if (TREE_SIDE_EFFECTS (captures[0]))
545 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
546 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 160, __FILE__, __LINE__, true);
547 0 : return _r;
548 : }
549 0 : next_after_fail193:;
550 : }
551 : }
552 : return NULL_TREE;
553 : }
554 :
555 : tree
556 0 : generic_simplify_107 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
557 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
558 : {
559 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
560 0 : if (VECTOR_TYPE_P (type)
561 0 : && known_eq (TYPE_VECTOR_SUBPARTS (type),
562 : TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[3])))
563 0 : && (TYPE_MODE (TREE_TYPE (type))
564 0 : == TYPE_MODE (TREE_TYPE (TREE_TYPE (captures[3]))))
565 : )
566 : {
567 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail204;
568 0 : {
569 0 : tree res_op0;
570 0 : res_op0 = captures[0];
571 0 : tree res_op1;
572 0 : {
573 0 : tree _o1[1], _r1;
574 0 : {
575 0 : tree _o2[3], _r2;
576 0 : _o2[0] = captures[2];
577 0 : {
578 0 : tree _o3[1], _r3;
579 0 : _o3[0] = captures[3];
580 0 : _r3 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o3[0]), _o3[0]);
581 0 : _o2[1] = _r3;
582 : }
583 0 : _o2[2] = captures[4];
584 0 : _r2 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o2[1]), _o2[0], _o2[1], _o2[2]);
585 0 : _o1[0] = _r2;
586 : }
587 0 : if (TREE_TYPE (_o1[0]) != type)
588 : {
589 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
590 : }
591 : else
592 : _r1 = _o1[0];
593 0 : res_op1 = _r1;
594 : }
595 0 : tree _r;
596 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
597 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 171, __FILE__, __LINE__, true);
598 0 : return _r;
599 : }
600 0 : next_after_fail204:;
601 : }
602 : return NULL_TREE;
603 : }
604 :
605 : tree
606 0 : generic_simplify_114 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
607 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
608 : {
609 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
610 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail211;
611 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail211;
612 0 : {
613 0 : tree _r;
614 0 : _r = captures[2];
615 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 178, __FILE__, __LINE__, true);
616 : return _r;
617 : }
618 : next_after_fail211:;
619 : return NULL_TREE;
620 : }
621 :
622 : tree
623 0 : generic_simplify_120 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
624 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
625 : const enum tree_code ARG_UNUSED (op))
626 : {
627 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
628 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail217;
629 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail217;
630 0 : {
631 0 : tree _r;
632 0 : _r = captures[0];
633 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 183, __FILE__, __LINE__, true);
634 : return _r;
635 : }
636 : next_after_fail217:;
637 : return NULL_TREE;
638 : }
639 :
640 : tree
641 0 : generic_simplify_127 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
642 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
643 : {
644 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
645 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
646 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
647 : )
648 : {
649 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail224;
650 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail224;
651 0 : {
652 0 : tree _r;
653 0 : _r = captures[2];
654 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 185, __FILE__, __LINE__, true);
655 0 : return _r;
656 : }
657 : next_after_fail224:;
658 : }
659 : return NULL_TREE;
660 : }
661 :
662 : tree
663 0 : generic_simplify_138 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
664 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
665 : const enum tree_code ARG_UNUSED (op))
666 : {
667 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
668 0 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
669 0 : && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
670 : )
671 : {
672 0 : if (single_use (captures[4]) && single_use (captures[5])
673 : )
674 : {
675 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail236;
676 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail236;
677 0 : {
678 0 : tree res_op0;
679 0 : res_op0 = captures[0];
680 0 : tree res_op1;
681 0 : {
682 0 : tree _o1[1], _r1;
683 0 : _o1[0] = captures[6];
684 0 : if (TREE_TYPE (_o1[0]) != type)
685 : {
686 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
687 : }
688 : else
689 : _r1 = _o1[0];
690 0 : res_op1 = _r1;
691 : }
692 0 : tree _r;
693 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
694 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 194, __FILE__, __LINE__, true);
695 0 : return _r;
696 : }
697 : next_after_fail236:;
698 : }
699 : else
700 : {
701 : if (single_use (captures[0]) && single_use (captures[1])
702 : )
703 : {
704 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail237;
705 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail237;
706 : {
707 : tree res_op0;
708 : {
709 : tree _o1[1], _r1;
710 : _o1[0] = captures[3];
711 : if (TREE_TYPE (_o1[0]) != type)
712 : {
713 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
714 : }
715 : else
716 : _r1 = _o1[0];
717 : res_op0 = _r1;
718 : }
719 : tree res_op1;
720 : res_op1 = captures[4];
721 : tree _r;
722 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
723 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 195, __FILE__, __LINE__, true);
724 : return _r;
725 : }
726 : next_after_fail237:;
727 : }
728 : }
729 : }
730 : return NULL_TREE;
731 : }
732 :
733 : tree
734 300 : generic_simplify_153 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
735 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
736 : {
737 300 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
738 300 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail258;
739 300 : {
740 300 : if (! tree_invariant_p (captures[1])) goto next_after_fail258;
741 0 : tree res_op0;
742 0 : {
743 0 : tree _o1[2], _r1;
744 0 : {
745 0 : tree _o2[2], _r2;
746 0 : _o2[0] = unshare_expr (captures[1]);
747 0 : _o2[1] = captures[4];
748 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
749 0 : _o1[0] = _r2;
750 : }
751 0 : _o1[1] = captures[2];
752 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
753 0 : res_op0 = _r1;
754 : }
755 0 : tree res_op1;
756 0 : res_op1 = captures[1];
757 0 : tree _r;
758 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
759 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 207, __FILE__, __LINE__, true);
760 : return _r;
761 : }
762 : next_after_fail258:;
763 : return NULL_TREE;
764 : }
765 :
766 : tree
767 0 : generic_simplify_162 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
768 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
769 : const enum tree_code ARG_UNUSED (cmp),
770 : const enum tree_code ARG_UNUSED (bitop),
771 : const enum tree_code ARG_UNUSED (neeq))
772 : {
773 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
774 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail286;
775 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail286;
776 0 : {
777 0 : tree res_op0;
778 0 : {
779 0 : tree _o1[2], _r1;
780 0 : _o1[0] = build_zero_cst (TREE_TYPE (captures[0]));
781 0 : _o1[1] = captures[2];
782 0 : _r1 = fold_build2_loc (loc, cmp, type, _o1[0], _o1[1]);
783 0 : res_op0 = _r1;
784 : }
785 0 : tree res_op1;
786 0 : res_op1 = captures[3];
787 0 : tree _r;
788 0 : _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
789 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 228, __FILE__, __LINE__, true);
790 : return _r;
791 : }
792 : next_after_fail286:;
793 : return NULL_TREE;
794 : }
795 :
796 : tree
797 446 : generic_simplify_168 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
798 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
799 : const enum tree_code ARG_UNUSED (code2),
800 : const enum tree_code ARG_UNUSED (code1))
801 : {
802 446 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
803 446 : if ((TREE_CODE (captures[2]) == INTEGER_CST
804 421 : && TREE_CODE (captures[5]) == INTEGER_CST)
805 446 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
806 1 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2])))
807 0 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
808 25 : && bitwise_equal_p (captures[2], captures[5]))
809 : )
810 : {
811 421 : {
812 421 : bool one_before = false;
813 421 : bool one_after = false;
814 421 : int cmp = 0;
815 421 : bool allbits = true;
816 421 : if (TREE_CODE (captures[2]) == INTEGER_CST
817 421 : && TREE_CODE (captures[5]) == INTEGER_CST)
818 : {
819 421 : allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
820 421 : auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
821 421 : auto t2 = wi::to_wide (captures[5]);
822 421 : cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
823 421 : if (cmp < 0
824 421 : && t1 == t2 - 1)
825 : one_before = true;
826 421 : if (cmp > 0
827 421 : && t1 == t2 + 1)
828 : one_after = true;
829 : }
830 421 : bool val;
831 421 : switch (code2)
832 : {
833 412 : case EQ_EXPR: val = (cmp == 0); break;
834 0 : case NE_EXPR: val = (cmp != 0); break;
835 0 : case LT_EXPR: val = (cmp < 0); break;
836 9 : case GT_EXPR: val = (cmp > 0); break;
837 0 : case LE_EXPR: val = (cmp <= 0); break;
838 0 : case GE_EXPR: val = (cmp >= 0); break;
839 0 : default: gcc_unreachable ();
840 : }
841 421 : if (code1 == EQ_EXPR && val
842 : )
843 : {
844 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail299;
845 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail299;
846 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail299;
847 0 : {
848 0 : tree _r;
849 0 : _r = captures[3];
850 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 211, __FILE__, __LINE__, true);
851 0 : return _r;
852 : }
853 : next_after_fail299:;
854 : }
855 : else
856 : {
857 421 : if (code1 == NE_EXPR && val && allbits
858 : )
859 : {
860 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail300;
861 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail300;
862 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail300;
863 0 : {
864 0 : tree _r;
865 0 : _r = constant_boolean_node (true, type);
866 0 : if (TREE_SIDE_EFFECTS (captures[4]))
867 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
868 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 212, __FILE__, __LINE__, true);
869 0 : return _r;
870 : }
871 : next_after_fail300:;
872 : }
873 : else
874 : {
875 421 : if (code1 == NE_EXPR && !val && allbits
876 : )
877 : {
878 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail301;
879 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail301;
880 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail301;
881 0 : {
882 0 : tree _r;
883 0 : _r = captures[0];
884 0 : if (TREE_SIDE_EFFECTS (captures[4]))
885 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
886 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 213, __FILE__, __LINE__, true);
887 0 : return _r;
888 : }
889 : next_after_fail301:;
890 : }
891 : else
892 : {
893 421 : if (code1 == EQ_EXPR
894 421 : && code2 == GT_EXPR
895 9 : && cmp == 0
896 9 : && allbits
897 421 : && ((VECTOR_BOOLEAN_TYPE_P (type)
898 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
899 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
900 : )
901 : {
902 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail302;
903 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail302;
904 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail302;
905 0 : {
906 0 : tree res_op0;
907 0 : res_op0 = captures[4];
908 0 : tree res_op1;
909 0 : res_op1 = captures[5];
910 0 : tree _r;
911 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
912 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 214, __FILE__, __LINE__, true);
913 0 : return _r;
914 : }
915 : next_after_fail302:;
916 : }
917 : else
918 : {
919 421 : if (code1 == EQ_EXPR
920 421 : && code2 == LT_EXPR
921 0 : && cmp == 0
922 0 : && allbits
923 421 : && ((VECTOR_BOOLEAN_TYPE_P (type)
924 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
925 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
926 : )
927 : {
928 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail303;
929 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail303;
930 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail303;
931 0 : {
932 0 : tree res_op0;
933 0 : res_op0 = captures[4];
934 0 : tree res_op1;
935 0 : res_op1 = captures[5];
936 0 : tree _r;
937 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
938 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 215, __FILE__, __LINE__, true);
939 0 : return _r;
940 : }
941 : next_after_fail303:;
942 : }
943 : else
944 : {
945 421 : if (code1 == EQ_EXPR
946 421 : && code2 == GE_EXPR
947 : && one_before
948 0 : && allbits
949 421 : && ((VECTOR_BOOLEAN_TYPE_P (type)
950 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
951 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
952 : )
953 : {
954 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail304;
955 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail304;
956 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail304;
957 0 : {
958 0 : tree res_op0;
959 0 : res_op0 = captures[4];
960 0 : tree res_op1;
961 0 : {
962 0 : tree _o1[1], _r1;
963 0 : _o1[0] = captures[2];
964 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
965 : {
966 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
967 : }
968 : else
969 : _r1 = _o1[0];
970 0 : res_op1 = _r1;
971 : }
972 0 : tree _r;
973 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
974 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 216, __FILE__, __LINE__, true);
975 0 : return _r;
976 : }
977 : next_after_fail304:;
978 : }
979 : else
980 : {
981 421 : if (code1 == EQ_EXPR
982 421 : && code2 == LE_EXPR
983 : && one_after
984 0 : && allbits
985 421 : && ((VECTOR_BOOLEAN_TYPE_P (type)
986 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
987 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
988 : )
989 : {
990 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail305;
991 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail305;
992 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail305;
993 0 : {
994 0 : tree res_op0;
995 0 : res_op0 = captures[4];
996 0 : tree res_op1;
997 0 : {
998 0 : tree _o1[1], _r1;
999 0 : _o1[0] = captures[2];
1000 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1001 : {
1002 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1003 : }
1004 : else
1005 : _r1 = _o1[0];
1006 0 : res_op1 = _r1;
1007 : }
1008 0 : tree _r;
1009 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1010 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 217, __FILE__, __LINE__, true);
1011 0 : return _r;
1012 : }
1013 : next_after_fail305:;
1014 : }
1015 : }
1016 : }
1017 : }
1018 : }
1019 : }
1020 : }
1021 : }
1022 : }
1023 : return NULL_TREE;
1024 : }
1025 :
1026 : tree
1027 4 : generic_simplify_214 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1028 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1029 : {
1030 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1031 8 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1032 8 : && TYPE_PRECISION (TREE_TYPE (captures[1])) == 1
1033 : )
1034 : {
1035 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail358;
1036 0 : {
1037 0 : tree res_op0;
1038 0 : {
1039 0 : tree _o1[2], _r1;
1040 0 : _o1[0] = captures[1];
1041 0 : _o1[1] = captures[2];
1042 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1043 0 : res_op0 = _r1;
1044 : }
1045 0 : tree _r;
1046 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1047 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 270, __FILE__, __LINE__, true);
1048 0 : return _r;
1049 : }
1050 0 : next_after_fail358:;
1051 : }
1052 : return NULL_TREE;
1053 : }
1054 :
1055 : tree
1056 1723 : generic_simplify_219 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1057 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1058 : const enum tree_code ARG_UNUSED (cmp))
1059 : {
1060 1723 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1061 3446 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1062 1723 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))
1063 3446 : && (TREE_INT_CST_LOW (captures[1]) & 1) != 0
1064 : )
1065 : {
1066 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail363;
1067 10 : {
1068 10 : tree res_op0;
1069 10 : res_op0 = captures[0];
1070 10 : tree res_op1;
1071 10 : res_op1 = captures[2];
1072 10 : tree _r;
1073 10 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1074 10 : if (TREE_SIDE_EFFECTS (captures[1]))
1075 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1076 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 275, __FILE__, __LINE__, true);
1077 10 : return _r;
1078 : }
1079 0 : next_after_fail363:;
1080 : }
1081 : return NULL_TREE;
1082 : }
1083 :
1084 : tree
1085 0 : generic_simplify_225 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1086 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1087 : const enum tree_code ARG_UNUSED (op))
1088 : {
1089 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1090 0 : if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
1091 : )
1092 : {
1093 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail382;
1094 0 : {
1095 0 : tree res_op0;
1096 0 : res_op0 = captures[3];
1097 0 : tree res_op1;
1098 0 : res_op1 = captures[2];
1099 0 : tree _r;
1100 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1101 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1102 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1103 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 294, __FILE__, __LINE__, true);
1104 0 : return _r;
1105 : }
1106 0 : next_after_fail382:;
1107 : }
1108 : return NULL_TREE;
1109 : }
1110 :
1111 : tree
1112 1063 : generic_simplify_233 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1113 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1114 : const enum tree_code ARG_UNUSED (minmax),
1115 : const enum tree_code ARG_UNUSED (cmp),
1116 : const enum tree_code ARG_UNUSED (out))
1117 : {
1118 1063 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1119 2126 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1120 1208 : && (!VECTOR_TYPE_P (TREE_TYPE (captures[0]))
1121 1 : || (VECTOR_TYPE_P (type)
1122 0 : && (!expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, cmp)
1123 0 : || expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, out))))
1124 : )
1125 : {
1126 144 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail390;
1127 144 : {
1128 144 : tree res_op0;
1129 144 : res_op0 = captures[0];
1130 144 : tree res_op1;
1131 144 : res_op1 = captures[1];
1132 144 : tree _r;
1133 144 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
1134 144 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 301, __FILE__, __LINE__, true);
1135 144 : return _r;
1136 : }
1137 0 : next_after_fail390:;
1138 : }
1139 : return NULL_TREE;
1140 : }
1141 :
1142 : tree
1143 805 : generic_simplify_241 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1144 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1145 : const enum tree_code ARG_UNUSED (cmp))
1146 : {
1147 805 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1148 805 : if (tree_fits_shwi_p (captures[3])
1149 805 : && tree_to_shwi (captures[3]) > 0
1150 1596 : && tree_to_shwi (captures[3]) < TYPE_PRECISION (TREE_TYPE (captures[2]))
1151 : )
1152 : {
1153 791 : {
1154 791 : tree t0 = TREE_TYPE (captures[2]);
1155 791 : unsigned int prec = TYPE_PRECISION (t0);
1156 791 : wide_int c1 = wi::to_wide (captures[3]);
1157 791 : wide_int c2 = wi::to_wide (captures[4]);
1158 791 : wide_int c3 = wi::to_wide (captures[5]);
1159 791 : wide_int sb = wi::set_bit_in_zero (prec - 1, prec);
1160 791 : if ((c2 & c3) != c3
1161 : )
1162 : {
1163 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail403;
1164 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail403;
1165 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail403;
1166 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail403;
1167 0 : {
1168 0 : tree _r;
1169 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1170 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1171 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1172 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 314, __FILE__, __LINE__, true);
1173 0 : return _r;
1174 : }
1175 0 : next_after_fail403:;
1176 : }
1177 : else
1178 : {
1179 791 : if (TYPE_UNSIGNED (t0)
1180 : )
1181 : {
1182 669 : if ((c3 & wi::arshift (sb, c1 - 1)) != 0
1183 : )
1184 : {
1185 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail404;
1186 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail404;
1187 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail404;
1188 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail404;
1189 0 : {
1190 0 : tree _r;
1191 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1192 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1193 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1194 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 315, __FILE__, __LINE__, true);
1195 0 : return _r;
1196 : }
1197 0 : next_after_fail404:;
1198 : }
1199 : else
1200 : {
1201 669 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail405;
1202 669 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail405;
1203 669 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail405;
1204 669 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail405;
1205 669 : {
1206 669 : tree res_op0;
1207 669 : {
1208 669 : tree _o1[2], _r1;
1209 669 : _o1[0] = captures[2];
1210 669 : _o1[1] = wide_int_to_tree (t0, c2 << c1);
1211 669 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1212 669 : res_op0 = _r1;
1213 : }
1214 669 : tree res_op1;
1215 669 : res_op1 = wide_int_to_tree (t0, c3 << c1);
1216 669 : tree _r;
1217 669 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1218 669 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 316, __FILE__, __LINE__, true);
1219 669 : return _r;
1220 : }
1221 0 : next_after_fail405:;
1222 : }
1223 : }
1224 : else
1225 : {
1226 122 : {
1227 122 : wide_int smask = wi::arshift (sb, c1);
1228 122 : if ((c2 & smask) == 0
1229 : )
1230 : {
1231 120 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail406;
1232 120 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail406;
1233 120 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail406;
1234 120 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail406;
1235 120 : {
1236 120 : tree res_op0;
1237 120 : {
1238 120 : tree _o1[2], _r1;
1239 120 : _o1[0] = captures[2];
1240 120 : _o1[1] = wide_int_to_tree (t0, c2 << c1);
1241 120 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1242 120 : res_op0 = _r1;
1243 : }
1244 120 : tree res_op1;
1245 120 : res_op1 = wide_int_to_tree (t0, c3 << c1);
1246 120 : tree _r;
1247 120 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1248 120 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 317, __FILE__, __LINE__, true);
1249 120 : return _r;
1250 : }
1251 0 : next_after_fail406:;
1252 : }
1253 : else
1254 : {
1255 2 : if ((c3 & smask) == 0
1256 : )
1257 : {
1258 2 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail407;
1259 2 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail407;
1260 2 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail407;
1261 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail407;
1262 2 : {
1263 2 : tree res_op0;
1264 2 : {
1265 2 : tree _o1[2], _r1;
1266 2 : _o1[0] = captures[2];
1267 2 : _o1[1] = wide_int_to_tree (t0, (c2 << c1) | sb);
1268 2 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1269 2 : res_op0 = _r1;
1270 : }
1271 2 : tree res_op1;
1272 2 : res_op1 = wide_int_to_tree (t0, c3 << c1);
1273 2 : tree _r;
1274 2 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1275 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 318, __FILE__, __LINE__, true);
1276 2 : return _r;
1277 : }
1278 0 : next_after_fail407:;
1279 : }
1280 : else
1281 : {
1282 0 : if ((c2 & smask) != (c3 & smask)
1283 : )
1284 : {
1285 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail408;
1286 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail408;
1287 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail408;
1288 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail408;
1289 0 : {
1290 0 : tree _r;
1291 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1292 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1293 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1294 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 319, __FILE__, __LINE__, true);
1295 0 : return _r;
1296 : }
1297 0 : next_after_fail408:;
1298 : }
1299 : else
1300 : {
1301 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail409;
1302 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail409;
1303 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail409;
1304 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail409;
1305 0 : {
1306 0 : tree res_op0;
1307 0 : {
1308 0 : tree _o1[2], _r1;
1309 0 : _o1[0] = captures[2];
1310 0 : _o1[1] = wide_int_to_tree (t0, (c2 << c1) | sb);
1311 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1312 0 : res_op0 = _r1;
1313 : }
1314 0 : tree res_op1;
1315 0 : res_op1 = wide_int_to_tree (t0, (c3 << c1) | sb);
1316 0 : tree _r;
1317 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1318 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 320, __FILE__, __LINE__, true);
1319 0 : return _r;
1320 : }
1321 0 : next_after_fail409:;
1322 : }
1323 : }
1324 : }
1325 122 : }
1326 : }
1327 : }
1328 791 : }
1329 : }
1330 : return NULL_TREE;
1331 : }
1332 :
1333 : tree
1334 1137750 : generic_simplify_273 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1335 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1336 : const enum tree_code ARG_UNUSED (cmp))
1337 : {
1338 1137750 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1339 1137750 : {
1340 1137750 : poly_int64 off; tree base;
1341 1137750 : tree addr = (TREE_CODE (captures[1]) == SSA_NAME
1342 1137750 : ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[1])) : captures[1]);
1343 1137750 : if (SSA_NAME_IS_DEFAULT_DEF (captures[0])
1344 47151 : && TREE_CODE (SSA_NAME_VAR (captures[0])) == PARM_DECL
1345 46969 : && (base = get_base_address (TREE_OPERAND (addr, 0)))
1346 46969 : && TREE_CODE (base) == VAR_DECL
1347 1140934 : && auto_var_in_fn_p (base, current_function_decl)
1348 : )
1349 : {
1350 0 : if (cmp == NE_EXPR
1351 : )
1352 : {
1353 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail503;
1354 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail503;
1355 0 : {
1356 0 : tree _r;
1357 0 : _r = constant_boolean_node (true, type);
1358 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1359 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1360 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 404, __FILE__, __LINE__, true);
1361 2 : return _r;
1362 : }
1363 1137748 : next_after_fail503:;
1364 : }
1365 : else
1366 : {
1367 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail504;
1368 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail504;
1369 0 : {
1370 0 : tree _r;
1371 0 : _r = constant_boolean_node (false, type);
1372 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1373 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1374 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 405, __FILE__, __LINE__, true);
1375 0 : return _r;
1376 : }
1377 1137748 : next_after_fail504:;
1378 : }
1379 : }
1380 : else
1381 : {
1382 1137750 : if ((base = get_addr_base_and_unit_offset (TREE_OPERAND (addr, 0), &off))
1383 1136387 : && TREE_CODE (base) == MEM_REF
1384 1307916 : && TREE_OPERAND (base, 0) == captures[0]
1385 : )
1386 : {
1387 2 : {
1388 2 : off += mem_ref_offset (base).force_shwi ();
1389 2 : if (known_ne (off, 0)
1390 : )
1391 : {
1392 2 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail505;
1393 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail505;
1394 2 : {
1395 2 : tree _r;
1396 2 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1397 2 : if (TREE_SIDE_EFFECTS (captures[0]))
1398 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1399 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 406, __FILE__, __LINE__, true);
1400 2 : return _r;
1401 : }
1402 1137748 : next_after_fail505:;
1403 : }
1404 : else
1405 : {
1406 0 : if (known_eq (off, 0)
1407 : )
1408 : {
1409 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail506;
1410 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail506;
1411 0 : {
1412 0 : tree _r;
1413 0 : _r = constant_boolean_node (cmp == EQ_EXPR, type);
1414 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1415 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1416 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 407, __FILE__, __LINE__, true);
1417 0 : return _r;
1418 : }
1419 1137748 : next_after_fail506:;
1420 : }
1421 : }
1422 : }
1423 : }
1424 : }
1425 : }
1426 1137748 : return NULL_TREE;
1427 : }
1428 :
1429 : tree
1430 4 : generic_simplify_286 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1431 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1432 : const enum tree_code ARG_UNUSED (cmp),
1433 : const enum tree_code ARG_UNUSED (ncmp))
1434 : {
1435 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1436 8 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1437 4 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1438 8 : && types_match (captures[0], captures[2])
1439 : )
1440 : {
1441 4 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail519;
1442 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail519;
1443 4 : {
1444 4 : tree res_op0;
1445 4 : {
1446 4 : tree _o1[2], _r1;
1447 4 : _o1[0] = captures[0];
1448 4 : _o1[1] = captures[2];
1449 4 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1450 4 : res_op0 = _r1;
1451 : }
1452 4 : tree res_op1;
1453 4 : res_op1 = captures[1];
1454 4 : tree _r;
1455 4 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
1456 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 419, __FILE__, __LINE__, true);
1457 4 : return _r;
1458 : }
1459 : next_after_fail519:;
1460 : }
1461 : return NULL_TREE;
1462 : }
1463 :
1464 : tree
1465 54407517 : generic_simplify_291 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1466 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1467 : const enum tree_code ARG_UNUSED (neeq))
1468 : {
1469 54407517 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1470 96985877 : if (POINTER_TYPE_P (TREE_TYPE (captures[0]))
1471 54418691 : && ptrs_compare_unequal (captures[0], captures[1])
1472 : )
1473 : {
1474 12168 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail538;
1475 12168 : {
1476 12168 : tree _r;
1477 12168 : _r = constant_boolean_node (neeq != EQ_EXPR, type);
1478 12168 : if (TREE_SIDE_EFFECTS (captures[0]))
1479 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1480 12168 : if (TREE_SIDE_EFFECTS (captures[1]))
1481 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1482 12168 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 429, __FILE__, __LINE__, true);
1483 12168 : return _r;
1484 : }
1485 0 : next_after_fail538:;
1486 : }
1487 : return NULL_TREE;
1488 : }
1489 :
1490 : tree
1491 1071896 : generic_simplify_295 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1492 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1493 : const enum tree_code ARG_UNUSED (op),
1494 : const enum tree_code ARG_UNUSED (rop),
1495 : const enum tree_code ARG_UNUSED (cmp))
1496 : {
1497 1071896 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1498 2143792 : if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3])
1499 1071896 : && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
1500 1071581 : && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[1]))
1501 2143329 : && !TYPE_SATURATING (TREE_TYPE (captures[1]))
1502 : )
1503 : {
1504 1071433 : {
1505 1071433 : tree res = int_const_binop (rop, captures[3], captures[2]);
1506 1071433 : if (TREE_OVERFLOW (res)
1507 1071433 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
1508 : )
1509 : {
1510 7565 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail546;
1511 7565 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail546;
1512 7565 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail546;
1513 7565 : {
1514 7565 : tree _r;
1515 7565 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1516 7565 : if (TREE_SIDE_EFFECTS (captures[1]))
1517 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1518 7565 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 437, __FILE__, __LINE__, true);
1519 7565 : return _r;
1520 : }
1521 : next_after_fail546:;
1522 : }
1523 : else
1524 : {
1525 1063868 : if (single_use (captures[0]) || wi::to_wide (res) == 0
1526 : )
1527 : {
1528 1063868 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail547;
1529 1063868 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail547;
1530 1063868 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail547;
1531 1063868 : {
1532 1063868 : tree res_op0;
1533 1063868 : res_op0 = captures[1];
1534 1063868 : tree res_op1;
1535 1063868 : res_op1 = TREE_OVERFLOW (res)
1536 1063868 : ? drop_tree_overflow (res) : res;
1537 1063868 : tree _r;
1538 1063868 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1539 1063868 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 438, __FILE__, __LINE__, true);
1540 1063868 : return _r;
1541 : }
1542 : next_after_fail547:;
1543 : }
1544 : }
1545 : }
1546 : }
1547 : return NULL_TREE;
1548 : }
1549 :
1550 : tree
1551 0 : generic_simplify_298 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1552 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1553 : const enum tree_code ARG_UNUSED (op),
1554 : const enum tree_code ARG_UNUSED (cmp))
1555 : {
1556 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1557 0 : if (integer_zerop (captures[3]) && single_use (captures[0])
1558 : )
1559 : {
1560 0 : {
1561 0 : tree type0 = TREE_TYPE (captures[1]);
1562 0 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
1563 0 : if (integer_zerop (captures[2]))
1564 : stype = NULL_TREE;
1565 0 : if (stype
1566 : )
1567 : {
1568 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail559;
1569 0 : {
1570 0 : tree res_op0;
1571 0 : {
1572 0 : tree _o1[1], _r1;
1573 0 : _o1[0] = captures[1];
1574 0 : if (TREE_TYPE (_o1[0]) != stype)
1575 : {
1576 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
1577 : }
1578 : else
1579 : _r1 = _o1[0];
1580 0 : res_op0 = _r1;
1581 : }
1582 0 : tree res_op1;
1583 0 : res_op1 = build_zero_cst (stype);
1584 0 : tree _r;
1585 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1586 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1587 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1588 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1589 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1590 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 450, __FILE__, __LINE__, true);
1591 0 : return _r;
1592 : }
1593 0 : next_after_fail559:;
1594 : }
1595 : }
1596 : }
1597 : else
1598 : {
1599 0 : {
1600 0 : bool ok = true;
1601 0 : tree type0 = TREE_TYPE (captures[1]);
1602 0 : if (wi::to_widest (captures[2]) == TYPE_PRECISION (type0) - 1)
1603 : ok = false;
1604 0 : if (ok && wi::to_wide (captures[3]) == (TYPE_PRECISION (type0) - 1)
1605 : )
1606 : {
1607 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail560;
1608 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail560;
1609 0 : {
1610 0 : tree res_op0;
1611 0 : res_op0 = captures[1];
1612 0 : tree res_op1;
1613 0 : res_op1 = build_one_cst (type0);
1614 0 : tree _r;
1615 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1616 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1617 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1618 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 451, __FILE__, __LINE__, true);
1619 0 : return _r;
1620 : }
1621 : next_after_fail560:;
1622 : }
1623 : }
1624 : }
1625 : return NULL_TREE;
1626 : }
1627 :
1628 : tree
1629 0 : generic_simplify_307 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1630 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1631 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
1632 : {
1633 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1634 0 : if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[0]))
1635 : )
1636 : {
1637 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail574;
1638 0 : {
1639 0 : tree res_op0;
1640 0 : {
1641 0 : tree _o1[1], _r1;
1642 0 : _o1[0] = captures[0];
1643 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1644 0 : res_op0 = _r1;
1645 : }
1646 0 : tree res_op1;
1647 0 : res_op1 = captures[1];
1648 0 : tree _r;
1649 0 : _r = maybe_build_call_expr_loc (loc, COPYSIGN_ALL, type, 2, res_op0, res_op1);
1650 0 : if (!_r)
1651 0 : goto next_after_fail574;
1652 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 465, __FILE__, __LINE__, true);
1653 0 : return _r;
1654 : }
1655 : next_after_fail574:;
1656 : }
1657 : return NULL_TREE;
1658 : }
1659 :
1660 : tree
1661 0 : generic_simplify_312 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1662 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1663 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
1664 : {
1665 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1666 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail579;
1667 0 : {
1668 0 : tree res_op0;
1669 0 : res_op0 = captures[0];
1670 0 : tree _r;
1671 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
1672 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1673 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1674 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 470, __FILE__, __LINE__, true);
1675 : return _r;
1676 : }
1677 0 : next_after_fail579:;
1678 0 : return NULL_TREE;
1679 : }
1680 :
1681 : tree
1682 1 : generic_simplify_320 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1683 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1684 : const enum tree_code ARG_UNUSED (div))
1685 : {
1686 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1687 0 : if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type))
1688 1 : && TYPE_OVERFLOW_UNDEFINED (type)
1689 1 : && !integer_zerop (captures[0])
1690 2 : && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
1691 : )
1692 : {
1693 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail589;
1694 1 : {
1695 1 : tree _r;
1696 1 : _r = build_minus_one_cst (type);
1697 1 : if (TREE_SIDE_EFFECTS (captures[0]))
1698 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1699 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 478, __FILE__, __LINE__, true);
1700 1 : return _r;
1701 : }
1702 0 : next_after_fail589:;
1703 : }
1704 : return NULL_TREE;
1705 : }
1706 :
1707 : tree
1708 3 : generic_simplify_325 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1709 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1710 : const enum tree_code ARG_UNUSED (div))
1711 : {
1712 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1713 3 : if (INTEGRAL_TYPE_P (type)
1714 3 : && wi::multiple_of_p (wi::to_widest (captures[2]), wi::to_widest (captures[3]), SIGNED)
1715 : )
1716 : {
1717 3 : if (TYPE_OVERFLOW_UNDEFINED (type) && !TYPE_OVERFLOW_SANITIZED (type)
1718 : )
1719 : {
1720 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail595;
1721 3 : {
1722 3 : tree res_op0;
1723 3 : res_op0 = captures[2];
1724 3 : tree res_op1;
1725 3 : res_op1 = captures[3];
1726 3 : tree _r;
1727 3 : _r = fold_build2_loc (loc, div, type, res_op0, res_op1);
1728 3 : if (TREE_SIDE_EFFECTS (captures[1]))
1729 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1730 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 484, __FILE__, __LINE__, true);
1731 3 : return _r;
1732 : }
1733 0 : next_after_fail595:;
1734 : }
1735 : }
1736 : return NULL_TREE;
1737 : }
1738 :
1739 : tree
1740 2 : generic_simplify_334 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1741 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1742 : {
1743 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1744 0 : if (FLOAT_TYPE_P (type)
1745 2 : && ! HONOR_NANS (type)
1746 2 : && ! HONOR_INFINITIES (type)
1747 : )
1748 : {
1749 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail604;
1750 0 : {
1751 0 : tree _r;
1752 0 : _r = build_minus_one_cst (type);
1753 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1754 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1755 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 493, __FILE__, __LINE__, true);
1756 0 : return _r;
1757 : }
1758 0 : next_after_fail604:;
1759 : }
1760 : return NULL_TREE;
1761 : }
1762 :
1763 : tree
1764 6 : generic_simplify_342 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1765 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1766 : const combined_fn ARG_UNUSED (TAN),
1767 : const combined_fn ARG_UNUSED (SIN),
1768 : const combined_fn ARG_UNUSED (COS))
1769 : {
1770 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1771 6 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1772 : )
1773 : {
1774 6 : if (! HONOR_NANS (captures[1])
1775 6 : && ! HONOR_INFINITIES (captures[1])
1776 : )
1777 : {
1778 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail614;
1779 6 : {
1780 6 : tree res_op0;
1781 6 : res_op0 = build_one_cst (type);
1782 6 : tree res_op1;
1783 6 : {
1784 6 : tree _o1[1], _r1;
1785 6 : _o1[0] = captures[1];
1786 6 : _r1 = maybe_build_call_expr_loc (loc, COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
1787 6 : if (!_r1)
1788 0 : goto next_after_fail614;
1789 6 : res_op1 = _r1;
1790 : }
1791 6 : tree _r;
1792 6 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
1793 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 503, __FILE__, __LINE__, true);
1794 6 : return _r;
1795 : }
1796 : next_after_fail614:;
1797 : }
1798 : }
1799 : return NULL_TREE;
1800 : }
1801 :
1802 : tree
1803 0 : generic_simplify_352 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1804 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1805 : const enum tree_code ARG_UNUSED (cmp))
1806 : {
1807 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1808 0 : if (INTEGRAL_TYPE_P (type)
1809 : )
1810 : {
1811 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail630;
1812 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail630;
1813 0 : {
1814 0 : tree _r;
1815 0 : _r = captures[2];
1816 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1817 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1818 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 519, __FILE__, __LINE__, true);
1819 0 : return _r;
1820 : }
1821 : next_after_fail630:;
1822 : }
1823 : return NULL_TREE;
1824 : }
1825 :
1826 : tree
1827 21 : generic_simplify_356 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1828 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1829 : {
1830 21 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1831 21 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail634;
1832 21 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail634;
1833 21 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail634;
1834 21 : {
1835 21 : tree _r;
1836 21 : _r = captures[2];
1837 21 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 523, __FILE__, __LINE__, true);
1838 : return _r;
1839 : }
1840 : next_after_fail634:;
1841 : return NULL_TREE;
1842 : }
1843 :
1844 : tree
1845 0 : generic_simplify_359 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1846 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1847 : const enum tree_code ARG_UNUSED (op))
1848 : {
1849 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1850 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail637;
1851 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail637;
1852 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail637;
1853 0 : {
1854 0 : tree _r;
1855 0 : _r = captures[2];
1856 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 526, __FILE__, __LINE__, true);
1857 : return _r;
1858 : }
1859 : next_after_fail637:;
1860 : return NULL_TREE;
1861 : }
1862 :
1863 : tree
1864 0 : generic_simplify_366 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1865 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1866 : {
1867 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1868 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail644;
1869 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail644;
1870 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail644;
1871 0 : {
1872 0 : tree _r;
1873 0 : _r = captures[2];
1874 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 533, __FILE__, __LINE__, true);
1875 : return _r;
1876 : }
1877 : next_after_fail644:;
1878 : return NULL_TREE;
1879 : }
1880 :
1881 : tree
1882 0 : generic_simplify_372 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1883 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1884 : const combined_fn ARG_UNUSED (func))
1885 : {
1886 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1887 0 : if (wi::to_widest (captures[4]) == TYPE_PRECISION (TREE_TYPE (captures[3])) - 1
1888 : )
1889 : {
1890 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail651;
1891 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail651;
1892 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail651;
1893 0 : {
1894 0 : tree _r;
1895 0 : _r = captures[2];
1896 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1897 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1898 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 540, __FILE__, __LINE__, true);
1899 0 : return _r;
1900 : }
1901 : next_after_fail651:;
1902 : }
1903 : return NULL_TREE;
1904 : }
1905 :
1906 : tree
1907 19882 : generic_simplify_380 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1908 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1909 : const enum tree_code ARG_UNUSED (cmp))
1910 : {
1911 19882 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1912 39764 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1913 39703 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
1914 : )
1915 : {
1916 16421 : if (tree_expr_nonnegative_p (captures[1]) && tree_expr_nonzero_p (captures[1])
1917 : )
1918 : {
1919 12854 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail662;
1920 12854 : {
1921 12854 : tree res_op0;
1922 12854 : res_op0 = captures[0];
1923 12854 : tree res_op1;
1924 12854 : res_op1 = captures[2];
1925 12854 : tree _r;
1926 12854 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1927 12854 : if (TREE_SIDE_EFFECTS (captures[1]))
1928 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1929 12854 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 549, __FILE__, __LINE__, true);
1930 12854 : return _r;
1931 : }
1932 0 : next_after_fail662:;
1933 : }
1934 : else
1935 : {
1936 3567 : if (TREE_CODE (captures[1]) == INTEGER_CST
1937 3567 : && wi::neg_p (wi::to_wide (captures[1]), TYPE_SIGN (TREE_TYPE (captures[1])))
1938 : )
1939 : {
1940 1107 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail663;
1941 1107 : {
1942 1107 : tree res_op0;
1943 1107 : res_op0 = captures[2];
1944 1107 : tree res_op1;
1945 1107 : res_op1 = captures[0];
1946 1107 : tree _r;
1947 1107 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1948 1107 : if (TREE_SIDE_EFFECTS (captures[1]))
1949 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1950 1107 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 550, __FILE__, __LINE__, true);
1951 1107 : return _r;
1952 : }
1953 0 : next_after_fail663:;
1954 : }
1955 : }
1956 : }
1957 : return NULL_TREE;
1958 : }
1959 :
1960 : tree
1961 37359 : generic_simplify_393 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1962 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1963 : const enum tree_code ARG_UNUSED (cmp),
1964 : const enum tree_code ARG_UNUSED (out))
1965 : {
1966 37359 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1967 37359 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
1968 37343 : && types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[0]))
1969 37343 : && tree_nop_conversion_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[3]))
1970 37359 : && wi::to_wide (captures[4]) != 0
1971 0 : && single_use (captures[1])
1972 : )
1973 : {
1974 37343 : {
1975 37343 : unsigned int prec = TYPE_PRECISION (TREE_TYPE (captures[3]));
1976 37343 : signop sign = TYPE_SIGN (TREE_TYPE (captures[3]));
1977 37343 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail677;
1978 37343 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail677;
1979 37343 : {
1980 37343 : tree res_op0;
1981 37343 : res_op0 = captures[3];
1982 37343 : tree res_op1;
1983 37343 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[3]),
1984 37343 : wi::max_value (prec, sign)
1985 112029 : - wi::to_wide (captures[4]));
1986 37343 : tree _r;
1987 37343 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
1988 37343 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 564, __FILE__, __LINE__, true);
1989 37343 : return _r;
1990 : }
1991 : next_after_fail677:;
1992 : }
1993 : }
1994 : return NULL_TREE;
1995 : }
1996 :
1997 : tree
1998 1091 : generic_simplify_403 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1999 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2000 : const enum tree_code ARG_UNUSED (cmp),
2001 : const enum tree_code ARG_UNUSED (out))
2002 : {
2003 1091 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2004 1091 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2]))
2005 : )
2006 : {
2007 1073 : {
2008 1073 : tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
2009 1073 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail719;
2010 1061 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail719;
2011 1061 : {
2012 1061 : tree res_op0;
2013 1061 : {
2014 1061 : tree _o1[1], _r1;
2015 1061 : {
2016 1061 : tree _o2[2], _r2;
2017 1061 : _o2[0] = captures[2];
2018 1061 : _o2[1] = captures[1];
2019 1061 : _r2 = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, _o2[0], _o2[1]);
2020 1061 : if (!_r2)
2021 0 : goto next_after_fail719;
2022 1061 : _o1[0] = _r2;
2023 : }
2024 1061 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2025 1061 : res_op0 = _r1;
2026 : }
2027 1061 : tree res_op1;
2028 1061 : res_op1 = build_zero_cst (t);
2029 1061 : tree _r;
2030 1061 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2031 1061 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 589, __FILE__, __LINE__, true);
2032 1061 : return _r;
2033 : }
2034 : next_after_fail719:;
2035 : }
2036 : }
2037 : return NULL_TREE;
2038 : }
2039 :
2040 : tree
2041 13232 : generic_simplify_410 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2042 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2043 : const enum tree_code ARG_UNUSED (cmp),
2044 : const enum tree_code ARG_UNUSED (eqcmp))
2045 : {
2046 13232 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2047 13232 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2048 : )
2049 : {
2050 13232 : {
2051 13232 : tree ty = TREE_TYPE (captures[0]);
2052 13232 : unsigned prec = TYPE_PRECISION (ty);
2053 13232 : wide_int mask = wi::to_wide (captures[2], prec);
2054 13232 : wide_int rhs = wi::to_wide (captures[3], prec);
2055 13232 : signop sgn = TYPE_SIGN (ty);
2056 37460 : if ((mask & (mask + 1)) == 0 && wi::gt_p (rhs, 0, sgn)
2057 48288 : && (rhs & (rhs + 1)) == 0 && wi::ge_p (mask, rhs, sgn)
2058 : )
2059 : {
2060 821 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail733;
2061 821 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail733;
2062 821 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail733;
2063 821 : {
2064 821 : tree res_op0;
2065 821 : {
2066 821 : tree _o1[2], _r1;
2067 821 : _o1[0] = captures[1];
2068 821 : _o1[1] = wide_int_to_tree (ty, mask - rhs);
2069 821 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2070 821 : res_op0 = _r1;
2071 : }
2072 821 : tree res_op1;
2073 821 : res_op1 = build_zero_cst (ty);
2074 821 : tree _r;
2075 821 : _r = fold_build2_loc (loc, eqcmp, type, res_op0, res_op1);
2076 821 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 603, __FILE__, __LINE__, true);
2077 821 : return _r;
2078 : }
2079 12411 : next_after_fail733:;
2080 : }
2081 13232 : }
2082 : }
2083 : return NULL_TREE;
2084 : }
2085 :
2086 : tree
2087 0 : generic_simplify_416 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2088 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2089 : const combined_fn ARG_UNUSED (logs),
2090 : const combined_fn ARG_UNUSED (exps),
2091 : const enum tree_code ARG_UNUSED (cmp))
2092 : {
2093 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2094 0 : if (flag_unsafe_math_optimizations
2095 : )
2096 : {
2097 0 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
2098 0 : && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
2099 0 : && ! flag_trapping_math
2100 0 : && ! flag_errno_math
2101 : )
2102 : {
2103 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail739;
2104 0 : {
2105 0 : tree res_op0;
2106 0 : res_op0 = captures[1];
2107 0 : tree res_op1;
2108 0 : {
2109 0 : tree _o1[1], _r1;
2110 0 : _o1[0] = captures[2];
2111 0 : _r1 = maybe_build_call_expr_loc (loc, exps, TREE_TYPE (_o1[0]), 1, _o1[0]);
2112 0 : if (!_r1)
2113 0 : goto next_after_fail739;
2114 0 : if (EXPR_P (_r1))
2115 0 : goto next_after_fail739;
2116 0 : res_op1 = _r1;
2117 : }
2118 0 : tree _r;
2119 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2120 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 605, __FILE__, __LINE__, true);
2121 0 : return _r;
2122 : }
2123 : next_after_fail739:;
2124 : }
2125 : }
2126 : return NULL_TREE;
2127 : }
2128 :
2129 : tree
2130 2816 : generic_simplify_423 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2131 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2132 : const enum tree_code ARG_UNUSED (shiftrotate))
2133 : {
2134 2816 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2135 2816 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail750;
2136 2816 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail750;
2137 2816 : {
2138 2816 : tree res_op0;
2139 2816 : res_op0 = captures[0];
2140 2816 : tree _r;
2141 2816 : _r = non_lvalue_loc (loc, res_op0);
2142 2816 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 616, __FILE__, __LINE__, true);
2143 : return _r;
2144 : }
2145 : next_after_fail750:;
2146 : return NULL_TREE;
2147 : }
2148 :
2149 : tree
2150 86 : generic_simplify_427 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2151 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2152 : const enum tree_code ARG_UNUSED (op))
2153 : {
2154 86 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2155 86 : {
2156 86 : unsigned int prec = element_precision (type);
2157 86 : if (wi::ge_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1])))
2158 86 : && wi::lt_p (wi::to_wide (captures[1]), prec, TYPE_SIGN (TREE_TYPE (captures[1])))
2159 86 : && wi::ge_p (wi::to_wide (captures[2]), 0, TYPE_SIGN (TREE_TYPE (captures[2])))
2160 172 : && wi::lt_p (wi::to_wide (captures[2]), prec, TYPE_SIGN (TREE_TYPE (captures[2])))
2161 : )
2162 : {
2163 86 : {
2164 86 : unsigned int low = (tree_to_uhwi (captures[1])
2165 86 : + tree_to_uhwi (captures[2]));
2166 86 : if (low >= prec
2167 : )
2168 : {
2169 25 : if (op == LROTATE_EXPR || op == RROTATE_EXPR
2170 : )
2171 : {
2172 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail754;
2173 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail754;
2174 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail754;
2175 0 : {
2176 0 : tree res_op0;
2177 0 : res_op0 = captures[0];
2178 0 : tree res_op1;
2179 0 : res_op1 = build_int_cst (TREE_TYPE (captures[1]), low % prec);
2180 0 : tree _r;
2181 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2182 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 619, __FILE__, __LINE__, true);
2183 86 : return _r;
2184 : }
2185 : next_after_fail754:;
2186 : }
2187 : else
2188 : {
2189 25 : if (TYPE_UNSIGNED (type) || op == LSHIFT_EXPR
2190 : )
2191 : {
2192 24 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail755;
2193 24 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail755;
2194 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail755;
2195 24 : {
2196 24 : tree _r;
2197 24 : _r = build_zero_cst (type);
2198 24 : if (TREE_SIDE_EFFECTS (captures[0]))
2199 14 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2200 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 620, __FILE__, __LINE__, true);
2201 24 : return _r;
2202 : }
2203 : next_after_fail755:;
2204 : }
2205 : else
2206 : {
2207 1 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail756;
2208 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail756;
2209 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail756;
2210 1 : {
2211 1 : tree res_op0;
2212 1 : res_op0 = captures[0];
2213 1 : tree res_op1;
2214 1 : res_op1 = build_int_cst (TREE_TYPE (captures[1]), prec - 1);
2215 1 : tree _r;
2216 1 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2217 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 621, __FILE__, __LINE__, true);
2218 1 : return _r;
2219 : }
2220 : next_after_fail756:;
2221 : }
2222 : }
2223 : }
2224 : else
2225 : {
2226 61 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail757;
2227 61 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail757;
2228 61 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail757;
2229 61 : {
2230 61 : tree res_op0;
2231 61 : res_op0 = captures[0];
2232 61 : tree res_op1;
2233 61 : res_op1 = build_int_cst (TREE_TYPE (captures[1]), low);
2234 61 : tree _r;
2235 61 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2236 61 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 622, __FILE__, __LINE__, true);
2237 61 : return _r;
2238 : }
2239 : next_after_fail757:;
2240 : }
2241 : }
2242 : }
2243 : }
2244 0 : return NULL_TREE;
2245 : }
2246 :
2247 : tree
2248 0 : generic_simplify_443 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2249 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2250 : const combined_fn ARG_UNUSED (coss),
2251 : const combined_fn ARG_UNUSED (atans),
2252 : const combined_fn ARG_UNUSED (sqrts),
2253 : const combined_fn ARG_UNUSED (copysigns))
2254 : {
2255 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2256 0 : {
2257 0 : REAL_VALUE_TYPE r_cst;
2258 0 : build_sinatan_real (&r_cst, type);
2259 0 : tree t_cst = build_real (type, r_cst);
2260 0 : tree t_one = build_one_cst (type);
2261 0 : tree t_zero = build_zero_cst (type);
2262 0 : if (SCALAR_FLOAT_TYPE_P (type)
2263 : )
2264 : {
2265 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail791;
2266 0 : {
2267 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail791;
2268 0 : tree res_op0;
2269 0 : {
2270 0 : tree _o1[2], _r1;
2271 0 : {
2272 0 : tree _o2[1], _r2;
2273 0 : _o2[0] = unshare_expr (captures[1]);
2274 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
2275 0 : _o1[0] = _r2;
2276 : }
2277 0 : _o1[1] = t_cst;
2278 0 : _r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
2279 0 : res_op0 = _r1;
2280 : }
2281 0 : tree res_op1;
2282 0 : {
2283 0 : tree _o1[2], _r1;
2284 0 : _o1[0] = t_one;
2285 0 : {
2286 0 : tree _o2[1], _r2;
2287 0 : {
2288 0 : tree _o3[2], _r3;
2289 0 : {
2290 0 : tree _o4[2], _r4;
2291 0 : _o4[0] = unshare_expr (captures[1]);
2292 0 : _o4[1] = unshare_expr (captures[1]);
2293 0 : _r4 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o4[0]), _o4[0], _o4[1]);
2294 0 : _o3[0] = _r4;
2295 : }
2296 0 : _o3[1] = t_one;
2297 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
2298 0 : _o2[0] = _r3;
2299 : }
2300 0 : _r2 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o2[0]), 1, _o2[0]);
2301 0 : if (!_r2)
2302 0 : goto next_after_fail791;
2303 0 : _o1[1] = _r2;
2304 : }
2305 0 : _r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2306 0 : res_op1 = _r1;
2307 : }
2308 0 : tree res_op2;
2309 0 : {
2310 0 : tree _o1[2], _r1;
2311 0 : _o1[0] = t_zero;
2312 0 : _o1[1] = captures[1];
2313 0 : _r1 = maybe_build_call_expr_loc (loc, copysigns, TREE_TYPE (_o1[0]), 2, _o1[0], _o1[1]);
2314 0 : if (!_r1)
2315 0 : goto next_after_fail791;
2316 0 : res_op2 = _r1;
2317 : }
2318 0 : tree _r;
2319 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
2320 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 643, __FILE__, __LINE__, true);
2321 0 : return _r;
2322 : }
2323 0 : next_after_fail791:;
2324 : }
2325 : }
2326 0 : return NULL_TREE;
2327 : }
2328 :
2329 : tree
2330 0 : generic_simplify_450 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2331 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2332 : const combined_fn ARG_UNUSED (copysigns),
2333 : const combined_fn ARG_UNUSED (hypots))
2334 : {
2335 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2336 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail798;
2337 0 : {
2338 0 : tree res_op0;
2339 0 : res_op0 = captures[0];
2340 0 : tree res_op1;
2341 0 : res_op1 = captures[2];
2342 0 : tree _r;
2343 0 : _r = maybe_build_call_expr_loc (loc, hypots, type, 2, res_op0, res_op1);
2344 0 : if (!_r)
2345 0 : goto next_after_fail798;
2346 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2347 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2348 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 650, __FILE__, __LINE__, true);
2349 : return _r;
2350 : }
2351 : next_after_fail798:;
2352 : return NULL_TREE;
2353 : }
2354 :
2355 : tree
2356 5150956 : generic_simplify_454 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2357 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2358 : {
2359 5150956 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2360 5150956 : {
2361 5150956 : bool wascmp;
2362 5150956 : if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2363 5150956 : && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
2364 : )
2365 : {
2366 115 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail802;
2367 115 : {
2368 115 : tree _r;
2369 115 : _r = wascmp ? constant_boolean_node (false, type) : build_zero_cst (type);
2370 115 : if (TREE_SIDE_EFFECTS (captures[0]))
2371 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2372 115 : if (TREE_SIDE_EFFECTS (captures[1]))
2373 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2374 115 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 654, __FILE__, __LINE__, true);
2375 115 : return _r;
2376 : }
2377 0 : next_after_fail802:;
2378 : }
2379 : }
2380 5150841 : return NULL_TREE;
2381 : }
2382 :
2383 : tree
2384 355 : generic_simplify_463 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2385 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2386 : const enum tree_code ARG_UNUSED (bitop),
2387 : const enum tree_code ARG_UNUSED (op))
2388 : {
2389 355 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2390 355 : {
2391 355 : tree pmop[2];
2392 355 : tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[5], op, captures[1], ERROR_MARK,
2393 : NULL_TREE, NULL_TREE, captures[2], bitop, captures[3],
2394 : captures[4], pmop);
2395 355 : if (utype
2396 : )
2397 : {
2398 354 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail811;
2399 354 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail811;
2400 354 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail811;
2401 354 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail811;
2402 354 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail811;
2403 354 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail811;
2404 354 : {
2405 354 : tree res_op0;
2406 354 : {
2407 354 : tree _o1[2], _r1;
2408 354 : {
2409 354 : tree _o2[2], _r2;
2410 354 : {
2411 354 : tree _o3[1], _r3;
2412 354 : _o3[0] = pmop[0];
2413 354 : if (TREE_TYPE (_o3[0]) != utype)
2414 : {
2415 14 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2416 : }
2417 : else
2418 : _r3 = _o3[0];
2419 354 : _o2[0] = _r3;
2420 : }
2421 354 : {
2422 354 : tree _o3[1], _r3;
2423 354 : _o3[0] = pmop[1];
2424 354 : if (TREE_TYPE (_o3[0]) != utype)
2425 : {
2426 74 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2427 : }
2428 : else
2429 : _r3 = _o3[0];
2430 354 : _o2[1] = _r3;
2431 : }
2432 354 : _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2433 354 : _o1[0] = _r2;
2434 : }
2435 354 : {
2436 354 : tree _o2[1], _r2;
2437 354 : _o2[0] = captures[5];
2438 354 : if (TREE_TYPE (_o2[0]) != utype)
2439 : {
2440 14 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2441 : }
2442 : else
2443 : _r2 = _o2[0];
2444 354 : _o1[1] = _r2;
2445 : }
2446 354 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2447 354 : res_op0 = _r1;
2448 : }
2449 354 : tree _r;
2450 354 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2451 354 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 662, __FILE__, __LINE__, true);
2452 354 : return _r;
2453 : }
2454 1 : next_after_fail811:;
2455 : }
2456 : }
2457 1 : return NULL_TREE;
2458 : }
2459 :
2460 : tree
2461 162 : generic_simplify_479 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2462 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2463 : const enum tree_code ARG_UNUSED (code2),
2464 : const enum tree_code ARG_UNUSED (code1))
2465 : {
2466 162 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2467 162 : if ((TREE_CODE (captures[2]) == INTEGER_CST
2468 50 : && TREE_CODE (captures[4]) == INTEGER_CST)
2469 162 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2470 14 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
2471 4 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
2472 10 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
2473 102 : && operand_equal_p (captures[2], captures[4]))
2474 : )
2475 : {
2476 54 : {
2477 54 : int cmp = 0;
2478 54 : if (TREE_CODE (captures[2]) == INTEGER_CST
2479 50 : && TREE_CODE (captures[4]) == INTEGER_CST)
2480 50 : cmp = tree_int_cst_compare (captures[2], captures[4]);
2481 54 : if ((code1 == LT_EXPR || code1 == LE_EXPR)
2482 4 : && (code2 == LT_EXPR || code2 == LE_EXPR)
2483 : )
2484 : {
2485 0 : if ((cmp < 0) || (cmp == 0 && code1 == LT_EXPR)
2486 : )
2487 : {
2488 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail841;
2489 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail841;
2490 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail841;
2491 0 : {
2492 0 : tree _r;
2493 0 : _r = captures[0];
2494 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 684, __FILE__, __LINE__, true);
2495 0 : return _r;
2496 : }
2497 : next_after_fail841:;
2498 : }
2499 : else
2500 : {
2501 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail842;
2502 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail842;
2503 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail842;
2504 0 : {
2505 0 : tree _r;
2506 0 : _r = captures[3];
2507 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 685, __FILE__, __LINE__, true);
2508 0 : return _r;
2509 : }
2510 : next_after_fail842:;
2511 : }
2512 : }
2513 : else
2514 : {
2515 54 : if ((code1 == GT_EXPR || code1 == GE_EXPR)
2516 50 : && (code2 == GT_EXPR || code2 == GE_EXPR)
2517 : )
2518 : {
2519 0 : if ((cmp > 0) || (cmp == 0 && code1 == GT_EXPR)
2520 : )
2521 : {
2522 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail843;
2523 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail843;
2524 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail843;
2525 0 : {
2526 0 : tree _r;
2527 0 : _r = captures[0];
2528 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 686, __FILE__, __LINE__, true);
2529 0 : return _r;
2530 : }
2531 : next_after_fail843:;
2532 : }
2533 : else
2534 : {
2535 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail844;
2536 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail844;
2537 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail844;
2538 0 : {
2539 0 : tree _r;
2540 0 : _r = captures[3];
2541 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 687, __FILE__, __LINE__, true);
2542 0 : return _r;
2543 : }
2544 : next_after_fail844:;
2545 : }
2546 : }
2547 : else
2548 : {
2549 54 : if (cmp == 0
2550 4 : && ((code1 == LE_EXPR && code2 == GE_EXPR)
2551 4 : || (code1 == GE_EXPR && code2 == LE_EXPR))
2552 : )
2553 : {
2554 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail845;
2555 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail845;
2556 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail845;
2557 0 : {
2558 0 : tree res_op0;
2559 0 : res_op0 = captures[1];
2560 0 : tree res_op1;
2561 0 : res_op1 = captures[2];
2562 0 : tree _r;
2563 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2564 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 688, __FILE__, __LINE__, true);
2565 0 : return _r;
2566 : }
2567 : next_after_fail845:;
2568 : }
2569 : else
2570 : {
2571 54 : if (cmp <= 0
2572 53 : && (code1 == LT_EXPR || code1 == LE_EXPR)
2573 4 : && (code2 == GT_EXPR || code2 == GE_EXPR)
2574 : )
2575 : {
2576 4 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail846;
2577 4 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail846;
2578 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail846;
2579 4 : {
2580 4 : tree _r;
2581 4 : _r = constant_boolean_node (false, type);
2582 4 : if (TREE_SIDE_EFFECTS (captures[1]))
2583 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2584 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 689, __FILE__, __LINE__, true);
2585 4 : return _r;
2586 : }
2587 : next_after_fail846:;
2588 : }
2589 : else
2590 : {
2591 49 : if (cmp >= 0
2592 1 : && (code1 == GT_EXPR || code1 == GE_EXPR)
2593 1 : && (code2 == LT_EXPR || code2 == LE_EXPR)
2594 : )
2595 : {
2596 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail847;
2597 1 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail847;
2598 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail847;
2599 1 : {
2600 1 : tree _r;
2601 1 : _r = constant_boolean_node (false, type);
2602 1 : if (TREE_SIDE_EFFECTS (captures[1]))
2603 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2604 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 690, __FILE__, __LINE__, true);
2605 1 : return _r;
2606 : }
2607 : next_after_fail847:;
2608 : }
2609 : }
2610 : }
2611 : }
2612 : }
2613 : }
2614 : }
2615 : return NULL_TREE;
2616 : }
2617 :
2618 : tree
2619 34 : generic_simplify_496 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2620 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2621 : const combined_fn ARG_UNUSED (bswap))
2622 : {
2623 34 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2624 34 : if (BITS_PER_UNIT == 8
2625 34 : && tree_fits_uhwi_p (captures[2])
2626 34 : && tree_to_uhwi (captures[2]) < 256
2627 : )
2628 : {
2629 32 : {
2630 32 : unsigned HOST_WIDE_INT prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
2631 32 : tree utype = unsigned_type_for (TREE_TYPE (captures[1]));
2632 32 : tree nst = build_int_cst (integer_type_node, prec - 8);
2633 32 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail887;
2634 32 : {
2635 32 : tree res_op0;
2636 32 : {
2637 32 : tree _o1[1], _r1;
2638 32 : {
2639 32 : tree _o2[2], _r2;
2640 32 : {
2641 32 : tree _o3[1], _r3;
2642 32 : _o3[0] = captures[1];
2643 32 : if (TREE_TYPE (_o3[0]) != utype)
2644 : {
2645 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2646 : }
2647 : else
2648 : _r3 = _o3[0];
2649 32 : _o2[0] = _r3;
2650 : }
2651 32 : _o2[1] = nst;
2652 32 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, utype, _o2[0], _o2[1]);
2653 32 : _o1[0] = _r2;
2654 : }
2655 32 : if (TREE_TYPE (_o1[0]) != type)
2656 : {
2657 18 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2658 : }
2659 : else
2660 : _r1 = _o1[0];
2661 32 : res_op0 = _r1;
2662 : }
2663 32 : tree res_op1;
2664 32 : res_op1 = captures[2];
2665 32 : tree _r;
2666 32 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2667 32 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 700, __FILE__, __LINE__, true);
2668 32 : return _r;
2669 : }
2670 0 : next_after_fail887:;
2671 : }
2672 : }
2673 : return NULL_TREE;
2674 : }
2675 :
2676 : tree
2677 0 : generic_simplify_499 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2678 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2679 : {
2680 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2681 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail890;
2682 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail890;
2683 0 : {
2684 0 : tree _r;
2685 0 : _r = captures[1];
2686 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 702, __FILE__, __LINE__, true);
2687 : return _r;
2688 : }
2689 : next_after_fail890:;
2690 : return NULL_TREE;
2691 : }
2692 :
2693 : tree
2694 28 : generic_simplify_504 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2695 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2696 : {
2697 28 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2698 28 : if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
2699 28 : || !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2700 : )
2701 : {
2702 28 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail896;
2703 28 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail896;
2704 28 : {
2705 28 : tree res_op0;
2706 28 : {
2707 28 : tree _o1[1], _r1;
2708 28 : _o1[0] = captures[0];
2709 28 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2710 28 : res_op0 = _r1;
2711 : }
2712 28 : tree _r;
2713 28 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2714 28 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 708, __FILE__, __LINE__, true);
2715 28 : return _r;
2716 : }
2717 : next_after_fail896:;
2718 : }
2719 : return NULL_TREE;
2720 : }
2721 :
2722 : tree
2723 0 : generic_simplify_512 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2724 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2725 : const enum tree_code ARG_UNUSED (rotate))
2726 : {
2727 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2728 0 : if ((element_precision (TREE_TYPE (captures[2]))
2729 0 : <= element_precision (TREE_TYPE (captures[3]))
2730 0 : || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2731 0 : && (element_precision (type) <= element_precision (TREE_TYPE (captures[2]))
2732 0 : || !TYPE_UNSIGNED (TREE_TYPE (captures[2])))
2733 : )
2734 : {
2735 0 : {
2736 0 : tree rotate_type = TREE_TYPE (captures[2]);
2737 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail904;
2738 0 : {
2739 0 : tree res_op0;
2740 0 : {
2741 0 : tree _o1[2], _r1;
2742 0 : {
2743 0 : tree _o2[1], _r2;
2744 0 : _o2[0] = captures[3];
2745 0 : if (TREE_TYPE (_o2[0]) != rotate_type)
2746 : {
2747 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, rotate_type, _o2[0]);
2748 : }
2749 : else
2750 : _r2 = _o2[0];
2751 0 : _o1[0] = _r2;
2752 : }
2753 0 : _o1[1] = captures[4];
2754 0 : _r1 = fold_build2_loc (loc, rotate, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2755 0 : res_op0 = _r1;
2756 : }
2757 0 : tree _r;
2758 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2759 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 715, __FILE__, __LINE__, true);
2760 0 : return _r;
2761 : }
2762 0 : next_after_fail904:;
2763 : }
2764 : }
2765 : return NULL_TREE;
2766 : }
2767 :
2768 : tree
2769 0 : generic_simplify_523 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2770 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2771 : const enum tree_code ARG_UNUSED (tcc_comparison))
2772 : {
2773 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2774 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail917;
2775 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail917;
2776 0 : {
2777 0 : tree res_op0;
2778 0 : res_op0 = captures[1];
2779 0 : tree res_op1;
2780 0 : res_op1 = build_one_cst (type);
2781 0 : tree res_op2;
2782 0 : res_op2 = build_zero_cst (type);
2783 0 : tree _r;
2784 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
2785 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 727, __FILE__, __LINE__, true);
2786 : return _r;
2787 : }
2788 : next_after_fail917:;
2789 : return NULL_TREE;
2790 : }
2791 :
2792 : tree
2793 47 : generic_simplify_533 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2794 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2795 : const enum tree_code ARG_UNUSED (minmax),
2796 : const enum tree_code ARG_UNUSED (cmp))
2797 : {
2798 47 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2799 47 : {
2800 47 : poly_int64 off0, off1;
2801 47 : tree base0, base1;
2802 47 : int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
2803 : off0, off1,
2804 : 1
2805 : );
2806 47 : if (equal == 1
2807 : )
2808 : {
2809 0 : if (minmax == MIN_EXPR
2810 : )
2811 : {
2812 0 : if (known_le (off0, off1)
2813 : )
2814 : {
2815 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail929;
2816 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail929;
2817 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail929;
2818 0 : {
2819 0 : tree _r;
2820 0 : _r = captures[0];
2821 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 738, __FILE__, __LINE__, true);
2822 0 : return _r;
2823 : }
2824 47 : next_after_fail929:;
2825 : }
2826 : else
2827 : {
2828 0 : if (known_gt (off0, off1)
2829 : )
2830 : {
2831 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail930;
2832 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail930;
2833 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail930;
2834 0 : {
2835 0 : tree _r;
2836 0 : _r = captures[2];
2837 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 739, __FILE__, __LINE__, true);
2838 0 : return _r;
2839 : }
2840 47 : next_after_fail930:;
2841 : }
2842 : }
2843 : }
2844 : else
2845 : {
2846 0 : if (known_ge (off0, off1)
2847 : )
2848 : {
2849 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail931;
2850 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail931;
2851 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail931;
2852 0 : {
2853 0 : tree _r;
2854 0 : _r = captures[0];
2855 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 740, __FILE__, __LINE__, true);
2856 0 : return _r;
2857 : }
2858 47 : next_after_fail931:;
2859 : }
2860 : else
2861 : {
2862 0 : if (known_lt (off0, off1)
2863 : )
2864 : {
2865 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail932;
2866 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail932;
2867 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail932;
2868 0 : {
2869 0 : tree _r;
2870 0 : _r = captures[2];
2871 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 741, __FILE__, __LINE__, true);
2872 0 : return _r;
2873 : }
2874 47 : next_after_fail932:;
2875 : }
2876 : }
2877 : }
2878 : }
2879 : }
2880 47 : return NULL_TREE;
2881 : }
2882 :
2883 : tree
2884 0 : generic_simplify_554 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2885 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2886 : const combined_fn ARG_UNUSED (cond_len_op))
2887 : {
2888 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2889 0 : {
2890 0 : tree op_type = TREE_TYPE (captures[3]);
2891 0 : if (element_precision (type) == element_precision (op_type)
2892 : )
2893 : {
2894 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail962;
2895 0 : {
2896 0 : tree res_op0;
2897 0 : {
2898 0 : tree _o1[6], _r1;
2899 0 : _o1[0] = captures[0];
2900 0 : _o1[1] = captures[1];
2901 0 : _o1[2] = captures[2];
2902 0 : {
2903 0 : tree _o2[1], _r2;
2904 0 : _o2[0] = captures[6];
2905 0 : if (TREE_TYPE (_o2[0]) != op_type)
2906 : {
2907 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
2908 : }
2909 : else
2910 : _r2 = _o2[0];
2911 0 : _o1[3] = _r2;
2912 : }
2913 0 : _o1[4] = captures[4];
2914 0 : _o1[5] = captures[5];
2915 0 : _r1 = maybe_build_call_expr_loc (loc, cond_len_op, TREE_TYPE (_o1[1]), 6, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4], _o1[5]);
2916 0 : if (!_r1)
2917 0 : goto next_after_fail962;
2918 0 : res_op0 = _r1;
2919 : }
2920 0 : tree _r;
2921 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
2922 0 : if (TREE_SIDE_EFFECTS (captures[3]))
2923 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
2924 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 754, __FILE__, __LINE__, true);
2925 0 : return _r;
2926 : }
2927 : next_after_fail962:;
2928 : }
2929 : }
2930 : return NULL_TREE;
2931 : }
2932 :
2933 : tree
2934 0 : generic_simplify_564 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2935 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2936 : const combined_fn ARG_UNUSED (bswap))
2937 : {
2938 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2939 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail975;
2940 0 : {
2941 0 : tree _r;
2942 0 : _r = captures[0];
2943 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 767, __FILE__, __LINE__, true);
2944 : return _r;
2945 : }
2946 0 : next_after_fail975:;
2947 0 : return NULL_TREE;
2948 : }
2949 :
2950 : tree
2951 0 : generic_simplify_571 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2952 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2953 : const combined_fn ARG_UNUSED (ovf))
2954 : {
2955 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2956 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2957 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2958 0 : && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
2959 0 : && (!TYPE_UNSIGNED (TREE_TYPE (captures[1])) || TYPE_UNSIGNED (TREE_TYPE (captures[2])))
2960 : )
2961 : {
2962 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail982;
2963 0 : {
2964 0 : tree res_op0;
2965 0 : res_op0 = captures[0];
2966 0 : tree res_op1;
2967 0 : res_op1 = captures[2];
2968 0 : tree _r;
2969 0 : _r = maybe_build_call_expr_loc (loc, ovf, type, 2, res_op0, res_op1);
2970 0 : if (!_r)
2971 0 : goto next_after_fail982;
2972 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 774, __FILE__, __LINE__, true);
2973 0 : return _r;
2974 : }
2975 : next_after_fail982:;
2976 : }
2977 : return NULL_TREE;
2978 : }
2979 :
2980 : tree
2981 0 : generic_simplify_579 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2982 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2983 : const combined_fn ARG_UNUSED (fns))
2984 : {
2985 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2986 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail990;
2987 0 : {
2988 0 : tree _r;
2989 0 : _r = captures[0];
2990 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 782, __FILE__, __LINE__, true);
2991 : return _r;
2992 : }
2993 0 : next_after_fail990:;
2994 0 : return NULL_TREE;
2995 : }
2996 :
2997 : tree
2998 0 : generic_simplify_584 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2999 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
3000 : {
3001 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3002 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail995;
3003 0 : {
3004 0 : tree _r;
3005 0 : _r = captures[0];
3006 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3007 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3008 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 787, __FILE__, __LINE__, true);
3009 : return _r;
3010 : }
3011 0 : next_after_fail995:;
3012 0 : return NULL_TREE;
3013 : }
3014 :
3015 : tree
3016 0 : generic_simplify_591 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3017 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3018 : const combined_fn ARG_UNUSED (rints))
3019 : {
3020 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3021 0 : if (canonicalize_math_p ()
3022 : )
3023 : {
3024 0 : if (!flag_errno_math
3025 : )
3026 : {
3027 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1002;
3028 0 : {
3029 0 : tree res_op0;
3030 0 : res_op0 = captures[0];
3031 0 : tree _r;
3032 0 : _r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
3033 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 794, __FILE__, __LINE__, true);
3034 0 : return _r;
3035 : }
3036 0 : next_after_fail1002:;
3037 : }
3038 : }
3039 : return NULL_TREE;
3040 : }
3041 :
3042 : tree
3043 0 : generic_simplify_598 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3044 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3045 : {
3046 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3047 0 : if (canonicalize_math_after_vectorization_p ()
3048 : )
3049 : {
3050 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1009;
3051 : {
3052 : tree res_op0;
3053 : res_op0 = captures[0];
3054 : tree res_op1;
3055 : res_op1 = captures[1];
3056 : tree res_op2;
3057 : res_op2 = captures[2];
3058 : tree _r;
3059 : _r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
3060 : if (!_r)
3061 : goto next_after_fail1009;
3062 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 801, __FILE__, __LINE__, true);
3063 : return _r;
3064 : }
3065 0 : next_after_fail1009:;
3066 : }
3067 0 : return NULL_TREE;
3068 : }
3069 :
3070 : tree
3071 0 : generic_simplify_607 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3072 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
3073 : {
3074 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3075 0 : if (canonicalize_math_after_vectorization_p ()
3076 : )
3077 : {
3078 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1018;
3079 : {
3080 : tree res_op0;
3081 : res_op0 = captures[0];
3082 : tree res_op1;
3083 : res_op1 = captures[1];
3084 : tree res_op2;
3085 : res_op2 = captures[2];
3086 : tree res_op3;
3087 : res_op3 = captures[3];
3088 : tree res_op4;
3089 : res_op4 = captures[4];
3090 : tree _r;
3091 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3092 : if (!_r)
3093 : goto next_after_fail1018;
3094 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 810, __FILE__, __LINE__, true);
3095 : return _r;
3096 : }
3097 0 : next_after_fail1018:;
3098 : }
3099 0 : return NULL_TREE;
3100 : }
3101 :
3102 : tree
3103 0 : generic_simplify_616 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3104 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3105 : const combined_fn ARG_UNUSED (bswap),
3106 : const combined_fn ARG_UNUSED (popcount))
3107 : {
3108 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3109 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3110 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3111 : )
3112 : {
3113 0 : {
3114 0 : tree type0 = TREE_TYPE (captures[0]);
3115 0 : tree type1 = TREE_TYPE (captures[1]);
3116 0 : unsigned int prec0 = TYPE_PRECISION (type0);
3117 0 : unsigned int prec1 = TYPE_PRECISION (type1);
3118 0 : if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
3119 : )
3120 : {
3121 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1027;
3122 0 : {
3123 0 : tree res_op0;
3124 0 : {
3125 0 : tree _o1[1], _r1;
3126 0 : {
3127 0 : tree _o2[1], _r2;
3128 0 : _o2[0] = captures[2];
3129 0 : if (TREE_TYPE (_o2[0]) != type1)
3130 : {
3131 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
3132 : }
3133 : else
3134 : _r2 = _o2[0];
3135 0 : _o1[0] = _r2;
3136 : }
3137 0 : if (TREE_TYPE (_o1[0]) != type0)
3138 : {
3139 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3140 : }
3141 : else
3142 : _r1 = _o1[0];
3143 0 : res_op0 = _r1;
3144 : }
3145 0 : tree _r;
3146 0 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
3147 0 : if (!_r)
3148 0 : goto next_after_fail1027;
3149 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 816, __FILE__, __LINE__, true);
3150 0 : return _r;
3151 : }
3152 : next_after_fail1027:;
3153 : }
3154 : }
3155 : }
3156 : return NULL_TREE;
3157 : }
3158 :
3159 : tree
3160 0 : generic_simplify_629 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3161 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
3162 : const enum tree_code ARG_UNUSED (plusminus),
3163 : const enum tree_code ARG_UNUSED (minusplus))
3164 : {
3165 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3166 0 : if (!VECTOR_INTEGER_TYPE_P (type)
3167 : && !FLOAT_WORDS_BIG_ENDIAN
3168 0 : && (operand_equal_p (captures[0], captures[2], 0)
3169 0 : ? operand_equal_p (captures[1], captures[3], 0)
3170 0 : : operand_equal_p (captures[0], captures[3], 0) && operand_equal_p (captures[1], captures[2], 0))
3171 : )
3172 : {
3173 0 : {
3174 0 : vec_perm_builder builder;
3175 0 : if (tree_to_vec_perm_builder (&builder, captures[4])
3176 : )
3177 : {
3178 0 : {
3179 0 : poly_uint64 nelts = TYPE_VECTOR_SUBPARTS (type);
3180 0 : vec_perm_indices sel (builder, 2, nelts);
3181 0 : machine_mode vec_mode = TYPE_MODE (type);
3182 0 : machine_mode wide_mode;
3183 0 : scalar_mode wide_elt_mode;
3184 0 : poly_uint64 wide_nunits;
3185 0 : scalar_mode inner_mode = GET_MODE_INNER (vec_mode);
3186 0 : if (VECTOR_MODE_P (vec_mode)
3187 0 : && sel.series_p (0, 2, 0, 2)
3188 0 : && sel.series_p (1, 2, nelts + 1, 2)
3189 0 : && GET_MODE_2XWIDER_MODE (inner_mode).exists (&wide_elt_mode)
3190 0 : && multiple_p (GET_MODE_NUNITS (vec_mode), 2, &wide_nunits)
3191 0 : && related_vector_mode (vec_mode, wide_elt_mode,
3192 0 : wide_nunits).exists (&wide_mode)
3193 : )
3194 : {
3195 0 : {
3196 0 : tree stype
3197 0 : = lang_hooks.types.type_for_mode (GET_MODE_INNER (wide_mode),
3198 0 : TYPE_UNSIGNED (type));
3199 0 : tree ntype = build_vector_type_for_mode (stype, wide_mode);
3200 0 : const struct real_format *fmt_old = FLOAT_MODE_FORMAT (vec_mode);
3201 0 : const struct real_format *fmt_new = FLOAT_MODE_FORMAT (wide_mode);
3202 0 : if (TYPE_MODE (stype) != BLKmode
3203 0 : && VECTOR_TYPE_P (ntype)
3204 0 : && fmt_old != NULL
3205 0 : && fmt_new != NULL
3206 : )
3207 : {
3208 0 : {
3209 0 : if (known_eq (GET_MODE_NUNITS (wide_mode), 1)
3210 0 : && !target_supports_op_p (ntype, NEGATE_EXPR, optab_vector))
3211 : ntype = stype;
3212 0 : if (fmt_new->signbit_rw
3213 0 : == fmt_old->signbit_rw + GET_MODE_UNIT_BITSIZE (vec_mode)
3214 0 : && fmt_new->signbit_rw == fmt_new->signbit_ro
3215 0 : && targetm.can_change_mode_class (TYPE_MODE (ntype),
3216 0 : TYPE_MODE (type), ALL_REGS)
3217 0 : && ((optimize_vectors_before_lowering_p ()
3218 0 : && VECTOR_TYPE_P (ntype))
3219 0 : || target_supports_op_p (ntype, NEGATE_EXPR, optab_vector))
3220 : )
3221 : {
3222 0 : if (plusminus == PLUS_EXPR
3223 : )
3224 : {
3225 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1041;
3226 0 : {
3227 0 : tree res_op0;
3228 0 : {
3229 0 : tree _o1[1], _r1;
3230 0 : {
3231 0 : tree _o2[1], _r2;
3232 0 : {
3233 0 : tree _o3[1], _r3;
3234 0 : _o3[0] = captures[3];
3235 0 : if (TREE_TYPE (_o3[0]) != ntype)
3236 : {
3237 0 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o3[0]);
3238 : }
3239 : else
3240 : _r3 = _o3[0];
3241 0 : _o2[0] = _r3;
3242 : }
3243 0 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
3244 0 : _o1[0] = _r2;
3245 : }
3246 0 : if (TREE_TYPE (_o1[0]) != type)
3247 : {
3248 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
3249 : }
3250 : else
3251 : _r1 = _o1[0];
3252 0 : res_op0 = _r1;
3253 : }
3254 0 : tree res_op1;
3255 0 : res_op1 = captures[2];
3256 0 : tree _r;
3257 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3258 0 : if (TREE_SIDE_EFFECTS (captures[0]))
3259 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3260 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3261 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3262 0 : if (TREE_SIDE_EFFECTS (captures[4]))
3263 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
3264 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 826, __FILE__, __LINE__, true);
3265 0 : return _r;
3266 : }
3267 0 : next_after_fail1041:;
3268 : }
3269 : else
3270 : {
3271 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1042;
3272 0 : {
3273 0 : tree res_op0;
3274 0 : res_op0 = captures[0];
3275 0 : tree res_op1;
3276 0 : {
3277 0 : tree _o1[1], _r1;
3278 0 : {
3279 0 : tree _o2[1], _r2;
3280 0 : {
3281 0 : tree _o3[1], _r3;
3282 0 : _o3[0] = captures[1];
3283 0 : if (TREE_TYPE (_o3[0]) != ntype)
3284 : {
3285 0 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o3[0]);
3286 : }
3287 : else
3288 : _r3 = _o3[0];
3289 0 : _o2[0] = _r3;
3290 : }
3291 0 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
3292 0 : _o1[0] = _r2;
3293 : }
3294 0 : if (TREE_TYPE (_o1[0]) != type)
3295 : {
3296 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
3297 : }
3298 : else
3299 : _r1 = _o1[0];
3300 0 : res_op1 = _r1;
3301 : }
3302 0 : tree _r;
3303 0 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
3304 0 : if (TREE_SIDE_EFFECTS (captures[2]))
3305 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3306 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3307 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3308 0 : if (TREE_SIDE_EFFECTS (captures[4]))
3309 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
3310 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 827, __FILE__, __LINE__, true);
3311 0 : return _r;
3312 : }
3313 0 : next_after_fail1042:;
3314 : }
3315 : }
3316 : }
3317 : }
3318 : }
3319 : }
3320 0 : }
3321 : }
3322 0 : }
3323 : }
3324 : return NULL_TREE;
3325 : }
3326 :
3327 : tree
3328 1330 : generic_simplify_CONJ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3329 : {
3330 1330 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3331 1330 : switch (TREE_CODE (_p0))
3332 : {
3333 0 : CASE_CONVERT:
3334 0 : {
3335 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3336 0 : switch (TREE_CODE (_q20))
3337 : {
3338 0 : case CONJ_EXPR:
3339 0 : {
3340 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3341 0 : {
3342 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3343 0 : tree res = generic_simplify_563 (loc, type, _p0, captures);
3344 0 : if (res) return res;
3345 : }
3346 0 : break;
3347 : }
3348 0 : case COMPLEX_EXPR:
3349 0 : {
3350 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3351 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3352 0 : {
3353 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
3354 0 : {
3355 0 : tree itype = TREE_TYPE (type);
3356 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1165;
3357 0 : {
3358 0 : tree res_op0;
3359 0 : {
3360 0 : tree _o1[1], _r1;
3361 0 : _o1[0] = captures[2];
3362 0 : if (TREE_TYPE (_o1[0]) != itype)
3363 : {
3364 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
3365 : }
3366 : else
3367 : _r1 = _o1[0];
3368 0 : res_op0 = _r1;
3369 : }
3370 0 : tree res_op1;
3371 0 : {
3372 0 : tree _o1[1], _r1;
3373 0 : {
3374 0 : tree _o2[1], _r2;
3375 0 : _o2[0] = captures[3];
3376 0 : if (TREE_TYPE (_o2[0]) != itype)
3377 : {
3378 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
3379 : }
3380 : else
3381 : _r2 = _o2[0];
3382 0 : _o1[0] = _r2;
3383 : }
3384 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3385 0 : res_op1 = _r1;
3386 : }
3387 0 : tree _r;
3388 0 : _r = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
3389 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
3390 0 : return _r;
3391 : }
3392 0 : next_after_fail1165:;
3393 : }
3394 : }
3395 0 : break;
3396 : }
3397 : default:;
3398 : }
3399 : break;
3400 : }
3401 1 : case CONJ_EXPR:
3402 1 : {
3403 1 : tree _q20 = TREE_OPERAND (_p0, 0);
3404 1 : {
3405 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3406 1 : tree res = generic_simplify_563 (loc, type, _p0, captures);
3407 1 : if (res) return res;
3408 : }
3409 0 : break;
3410 : }
3411 12 : case COMPLEX_EXPR:
3412 12 : {
3413 12 : tree _q20 = TREE_OPERAND (_p0, 0);
3414 12 : tree _q21 = TREE_OPERAND (_p0, 1);
3415 12 : {
3416 12 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
3417 12 : {
3418 12 : tree itype = TREE_TYPE (type);
3419 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1166;
3420 12 : {
3421 12 : tree res_op0;
3422 12 : {
3423 12 : tree _o1[1], _r1;
3424 12 : _o1[0] = captures[2];
3425 12 : if (TREE_TYPE (_o1[0]) != itype)
3426 : {
3427 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
3428 : }
3429 : else
3430 : _r1 = _o1[0];
3431 12 : res_op0 = _r1;
3432 : }
3433 12 : tree res_op1;
3434 12 : {
3435 12 : tree _o1[1], _r1;
3436 12 : {
3437 12 : tree _o2[1], _r2;
3438 12 : _o2[0] = captures[3];
3439 12 : if (TREE_TYPE (_o2[0]) != itype)
3440 : {
3441 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
3442 : }
3443 : else
3444 : _r2 = _o2[0];
3445 12 : _o1[0] = _r2;
3446 : }
3447 12 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3448 12 : res_op1 = _r1;
3449 : }
3450 12 : tree _r;
3451 12 : _r = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
3452 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
3453 12 : return _r;
3454 : }
3455 0 : next_after_fail1166:;
3456 : }
3457 : }
3458 0 : break;
3459 : }
3460 : default:;
3461 : }
3462 : return NULL_TREE;
3463 : }
3464 :
3465 : tree
3466 98875193 : generic_simplify_PLUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
3467 : {
3468 98875193 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3469 98875193 : if (integer_zerop (_p1))
3470 : {
3471 27905086 : {
3472 27905086 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3473 27905086 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1246;
3474 27905086 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1246;
3475 27905086 : {
3476 27905086 : tree res_op0;
3477 27905086 : res_op0 = captures[0];
3478 27905086 : tree _r;
3479 27905086 : _r = non_lvalue_loc (loc, res_op0);
3480 27905086 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
3481 27905086 : return _r;
3482 : }
3483 : next_after_fail1246:;
3484 : }
3485 : }
3486 70970107 : if (real_zerop (_p1))
3487 : {
3488 5339 : {
3489 5339 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
3490 5339 : tree res = generic_simplify_54 (loc, type, _p0, _p1, captures);
3491 5339 : if (res) return res;
3492 : }
3493 : }
3494 70970012 : switch (TREE_CODE (_p0))
3495 : {
3496 6516221 : case PLUS_EXPR:
3497 6516221 : {
3498 6516221 : tree _q20 = TREE_OPERAND (_p0, 0);
3499 6516221 : tree _q21 = TREE_OPERAND (_p0, 1);
3500 6516221 : switch (TREE_CODE (_q21))
3501 : {
3502 119607 : case REAL_CST:
3503 119607 : {
3504 119607 : switch (TREE_CODE (_p1))
3505 : {
3506 70 : case REAL_CST:
3507 70 : {
3508 70 : {
3509 70 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
3510 70 : tree res = generic_simplify_55 (loc, type, _p0, _p1, captures, PLUS_EXPR, PLUS_EXPR);
3511 70 : if (res) return res;
3512 : }
3513 67 : break;
3514 : }
3515 : default:;
3516 : }
3517 : break;
3518 : }
3519 : default:;
3520 : }
3521 : break;
3522 : }
3523 2067950 : case MINUS_EXPR:
3524 2067950 : {
3525 2067950 : tree _q20 = TREE_OPERAND (_p0, 0);
3526 2067950 : tree _q21 = TREE_OPERAND (_p0, 1);
3527 2067950 : switch (TREE_CODE (_q21))
3528 : {
3529 22540 : case REAL_CST:
3530 22540 : {
3531 22540 : switch (TREE_CODE (_p1))
3532 : {
3533 190 : case REAL_CST:
3534 190 : {
3535 190 : {
3536 190 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
3537 190 : tree res = generic_simplify_55 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR);
3538 190 : if (res) return res;
3539 : }
3540 188 : break;
3541 : }
3542 : default:;
3543 : }
3544 : break;
3545 : }
3546 : default:;
3547 : }
3548 : break;
3549 : }
3550 12210 : case MAX_EXPR:
3551 12210 : {
3552 12210 : tree _q20 = TREE_OPERAND (_p0, 0);
3553 12210 : tree _q21 = TREE_OPERAND (_p0, 1);
3554 12210 : if (integer_zerop (_q21))
3555 : {
3556 4609 : switch (TREE_CODE (_p1))
3557 : {
3558 114 : case MAX_EXPR:
3559 114 : {
3560 114 : tree _q50 = TREE_OPERAND (_p1, 0);
3561 114 : tree _q51 = TREE_OPERAND (_p1, 1);
3562 114 : switch (TREE_CODE (_q50))
3563 : {
3564 48 : case NEGATE_EXPR:
3565 48 : {
3566 48 : tree _q60 = TREE_OPERAND (_q50, 0);
3567 48 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
3568 : {
3569 48 : if (integer_zerop (_q51))
3570 : {
3571 48 : {
3572 48 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3573 48 : tree res = generic_simplify_56 (loc, type, _p0, _p1, captures);
3574 48 : if (res) return res;
3575 : }
3576 : }
3577 : }
3578 : break;
3579 : }
3580 : default:;
3581 : }
3582 : break;
3583 : }
3584 : default:;
3585 : }
3586 : }
3587 12162 : switch (TREE_CODE (_q20))
3588 : {
3589 18 : case NEGATE_EXPR:
3590 18 : {
3591 18 : tree _q30 = TREE_OPERAND (_q20, 0);
3592 18 : if (integer_zerop (_q21))
3593 : {
3594 18 : switch (TREE_CODE (_p1))
3595 : {
3596 18 : case MAX_EXPR:
3597 18 : {
3598 18 : tree _q60 = TREE_OPERAND (_p1, 0);
3599 18 : tree _q61 = TREE_OPERAND (_p1, 1);
3600 18 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
3601 : {
3602 18 : if (integer_zerop (_q61))
3603 : {
3604 18 : {
3605 18 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3606 18 : tree res = generic_simplify_56 (loc, type, _p0, _p1, captures);
3607 18 : if (res) return res;
3608 : }
3609 : }
3610 : }
3611 : break;
3612 : }
3613 : default:;
3614 : }
3615 : }
3616 : break;
3617 : }
3618 : default:;
3619 : }
3620 : break;
3621 : }
3622 13447046 : case MULT_EXPR:
3623 13447046 : {
3624 13447046 : tree _q20 = TREE_OPERAND (_p0, 0);
3625 13447046 : tree _q21 = TREE_OPERAND (_p0, 1);
3626 13447046 : switch (TREE_CODE (_q20))
3627 : {
3628 1936412 : case PLUS_EXPR:
3629 1936412 : {
3630 1936412 : tree _q30 = TREE_OPERAND (_q20, 0);
3631 1936412 : tree _q31 = TREE_OPERAND (_q20, 1);
3632 1936412 : switch (TREE_CODE (_q31))
3633 : {
3634 525649 : case INTEGER_CST:
3635 525649 : {
3636 525649 : switch (TREE_CODE (_q21))
3637 : {
3638 192664 : case INTEGER_CST:
3639 192664 : {
3640 192664 : switch (TREE_CODE (_p1))
3641 : {
3642 126998 : case INTEGER_CST:
3643 126998 : {
3644 126998 : {
3645 126998 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
3646 126998 : {
3647 126998 : bool overflowed = true;
3648 126998 : wi::overflow_type ovf1;
3649 126998 : wi::overflow_type ovf2;
3650 126998 : wide_int mul = wi::mul (wi::to_wide (captures[3]), wi::to_wide (captures[4]),
3651 253996 : TYPE_SIGN (type), &ovf1);
3652 380994 : wide_int add = wi::add (mul, wi::to_wide (captures[5]),
3653 126998 : TYPE_SIGN (type), &ovf2);
3654 126998 : if (TYPE_OVERFLOW_UNDEFINED (type))
3655 : {
3656 : }
3657 : else
3658 66212 : overflowed = false;
3659 66212 : if (!overflowed
3660 : )
3661 : {
3662 66212 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1247;
3663 66212 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1247;
3664 66212 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1247;
3665 66212 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1247;
3666 66212 : {
3667 66212 : tree res_op0;
3668 66212 : {
3669 66212 : tree _o1[2], _r1;
3670 66212 : _o1[0] = captures[2];
3671 66212 : _o1[1] = captures[4];
3672 66212 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3673 66212 : res_op0 = _r1;
3674 : }
3675 66212 : tree res_op1;
3676 66212 : res_op1 = wide_int_to_tree (type, add);
3677 66212 : tree _r;
3678 66212 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3679 66212 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
3680 66212 : return _r;
3681 : }
3682 60786 : next_after_fail1247:;
3683 : }
3684 126998 : }
3685 : }
3686 60786 : break;
3687 : }
3688 : default:;
3689 : }
3690 : break;
3691 : }
3692 : default:;
3693 : }
3694 : break;
3695 : }
3696 : default:;
3697 : }
3698 : break;
3699 : }
3700 : default:;
3701 : }
3702 : break;
3703 : }
3704 26205 : case LSHIFT_EXPR:
3705 26205 : {
3706 26205 : tree _q20 = TREE_OPERAND (_p0, 0);
3707 26205 : tree _q21 = TREE_OPERAND (_p0, 1);
3708 26205 : switch (TREE_CODE (_p1))
3709 : {
3710 688 : case LSHIFT_EXPR:
3711 688 : {
3712 688 : tree _q50 = TREE_OPERAND (_p1, 0);
3713 688 : tree _q51 = TREE_OPERAND (_p1, 1);
3714 688 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3715 : {
3716 7 : {
3717 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
3718 7 : tree res = generic_simplify_57 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3719 7 : if (res) return res;
3720 : }
3721 : }
3722 : break;
3723 : }
3724 : default:;
3725 : }
3726 : break;
3727 : }
3728 217136 : case BIT_AND_EXPR:
3729 217136 : {
3730 217136 : tree _q20 = TREE_OPERAND (_p0, 0);
3731 217136 : tree _q21 = TREE_OPERAND (_p0, 1);
3732 217136 : switch (TREE_CODE (_p1))
3733 : {
3734 300 : case BIT_AND_EXPR:
3735 300 : {
3736 300 : tree _q50 = TREE_OPERAND (_p1, 0);
3737 300 : tree _q51 = TREE_OPERAND (_p1, 1);
3738 300 : {
3739 300 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
3740 300 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3741 300 : if (res) return res;
3742 : }
3743 300 : {
3744 300 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q50 };
3745 300 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3746 300 : if (res) return res;
3747 : }
3748 300 : {
3749 300 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q51 };
3750 300 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3751 300 : if (res) return res;
3752 : }
3753 300 : {
3754 300 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q50 };
3755 300 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3756 300 : if (res) return res;
3757 : }
3758 300 : break;
3759 : }
3760 217136 : default:;
3761 : }
3762 217136 : if (integer_onep (_q21))
3763 : {
3764 130026 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
3765 : {
3766 29 : {
3767 29 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
3768 29 : tree res = generic_simplify_58 (loc, type, _p0, _p1, captures);
3769 29 : if (res) return res;
3770 : }
3771 : }
3772 : }
3773 : break;
3774 : }
3775 70903693 : default:;
3776 : }
3777 70903693 : if (real_zerop (_p0))
3778 : {
3779 0 : {
3780 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
3781 0 : tree res = generic_simplify_54 (loc, type, _p0, _p1, captures);
3782 0 : if (res) return res;
3783 : }
3784 : }
3785 70903693 : switch (TREE_CODE (_p1))
3786 : {
3787 5579 : case BIT_AND_EXPR:
3788 5579 : {
3789 5579 : tree _q30 = TREE_OPERAND (_p1, 0);
3790 5579 : tree _q31 = TREE_OPERAND (_p1, 1);
3791 5579 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
3792 : {
3793 16 : if (integer_onep (_q31))
3794 : {
3795 16 : {
3796 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
3797 16 : tree res = generic_simplify_58 (loc, type, _p0, _p1, captures);
3798 16 : if (res) return res;
3799 : }
3800 : }
3801 : }
3802 : break;
3803 : }
3804 70903677 : default:;
3805 : }
3806 70903677 : switch (TREE_CODE (_p0))
3807 : {
3808 217107 : case BIT_AND_EXPR:
3809 217107 : {
3810 217107 : tree _q20 = TREE_OPERAND (_p0, 0);
3811 217107 : tree _q21 = TREE_OPERAND (_p0, 1);
3812 217107 : switch (TREE_CODE (_p1))
3813 : {
3814 9 : case BIT_XOR_EXPR:
3815 9 : {
3816 9 : tree _q50 = TREE_OPERAND (_p1, 0);
3817 9 : tree _q51 = TREE_OPERAND (_p1, 1);
3818 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3819 : {
3820 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3821 : {
3822 0 : {
3823 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3824 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3825 0 : if (res) return res;
3826 : }
3827 : }
3828 : }
3829 : break;
3830 : }
3831 1 : case BIT_IOR_EXPR:
3832 1 : {
3833 1 : tree _q50 = TREE_OPERAND (_p1, 0);
3834 1 : tree _q51 = TREE_OPERAND (_p1, 1);
3835 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3836 : {
3837 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3838 : {
3839 0 : {
3840 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3841 0 : tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
3842 0 : if (res) return res;
3843 : }
3844 : }
3845 : }
3846 : break;
3847 : }
3848 217107 : default:;
3849 : }
3850 217107 : switch (TREE_CODE (_q21))
3851 : {
3852 216803 : case INTEGER_CST:
3853 216803 : {
3854 216803 : switch (TREE_CODE (_p1))
3855 : {
3856 14704 : CASE_CONVERT:
3857 14704 : {
3858 14704 : tree _q50 = TREE_OPERAND (_p1, 0);
3859 14704 : switch (TREE_CODE (_q50))
3860 : {
3861 0 : case BIT_AND_EXPR:
3862 0 : {
3863 0 : tree _q60 = TREE_OPERAND (_q50, 0);
3864 0 : tree _q61 = TREE_OPERAND (_q50, 1);
3865 0 : switch (TREE_CODE (_q61))
3866 : {
3867 0 : case INTEGER_CST:
3868 0 : {
3869 0 : {
3870 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q60, _q61 };
3871 0 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3872 0 : if (res) return res;
3873 : }
3874 0 : break;
3875 : }
3876 : default:;
3877 : }
3878 : break;
3879 : }
3880 : default:;
3881 : }
3882 : break;
3883 : }
3884 300 : case BIT_AND_EXPR:
3885 300 : {
3886 300 : tree _q50 = TREE_OPERAND (_p1, 0);
3887 300 : tree _q51 = TREE_OPERAND (_p1, 1);
3888 300 : switch (TREE_CODE (_q51))
3889 : {
3890 300 : case INTEGER_CST:
3891 300 : {
3892 300 : {
3893 300 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
3894 300 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3895 300 : if (res) return res;
3896 : }
3897 200 : break;
3898 : }
3899 : default:;
3900 : }
3901 : break;
3902 : }
3903 : default:;
3904 : }
3905 : break;
3906 : }
3907 : default:;
3908 : }
3909 : break;
3910 : }
3911 1511 : case BIT_XOR_EXPR:
3912 1511 : {
3913 1511 : tree _q20 = TREE_OPERAND (_p0, 0);
3914 1511 : tree _q21 = TREE_OPERAND (_p0, 1);
3915 1511 : switch (TREE_CODE (_p1))
3916 : {
3917 0 : case BIT_AND_EXPR:
3918 0 : {
3919 0 : tree _q50 = TREE_OPERAND (_p1, 0);
3920 0 : tree _q51 = TREE_OPERAND (_p1, 1);
3921 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3922 : {
3923 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3924 : {
3925 0 : {
3926 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3927 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, PLUS_EXPR);
3928 0 : if (res) return res;
3929 : }
3930 : }
3931 : }
3932 : break;
3933 : }
3934 : default:;
3935 : }
3936 : break;
3937 : }
3938 554 : case BIT_IOR_EXPR:
3939 554 : {
3940 554 : tree _q20 = TREE_OPERAND (_p0, 0);
3941 554 : tree _q21 = TREE_OPERAND (_p0, 1);
3942 554 : switch (TREE_CODE (_p1))
3943 : {
3944 0 : case BIT_AND_EXPR:
3945 0 : {
3946 0 : tree _q50 = TREE_OPERAND (_p1, 0);
3947 0 : tree _q51 = TREE_OPERAND (_p1, 1);
3948 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3949 : {
3950 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3951 : {
3952 0 : {
3953 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3954 0 : tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
3955 0 : if (res) return res;
3956 : }
3957 : }
3958 : }
3959 : break;
3960 : }
3961 : default:;
3962 : }
3963 : break;
3964 : }
3965 2067948 : case MINUS_EXPR:
3966 2067948 : {
3967 2067948 : tree _q20 = TREE_OPERAND (_p0, 0);
3968 2067948 : tree _q21 = TREE_OPERAND (_p0, 1);
3969 2067948 : switch (TREE_CODE (_q20))
3970 : {
3971 2 : case BIT_AND_EXPR:
3972 2 : {
3973 2 : tree _q30 = TREE_OPERAND (_q20, 0);
3974 2 : tree _q31 = TREE_OPERAND (_q20, 1);
3975 2 : switch (TREE_CODE (_q21))
3976 : {
3977 1 : case BIT_IOR_EXPR:
3978 1 : {
3979 1 : tree _q60 = TREE_OPERAND (_q21, 0);
3980 1 : tree _q61 = TREE_OPERAND (_q21, 1);
3981 1 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
3982 : {
3983 1 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
3984 : {
3985 1 : if (integer_all_onesp (_p1))
3986 : {
3987 1 : {
3988 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
3989 1 : tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
3990 1 : if (res) return res;
3991 : }
3992 : }
3993 : }
3994 : }
3995 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
3996 : {
3997 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
3998 : {
3999 0 : if (integer_all_onesp (_p1))
4000 : {
4001 0 : {
4002 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
4003 0 : tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
4004 0 : if (res) return res;
4005 : }
4006 : }
4007 : }
4008 : }
4009 : break;
4010 : }
4011 : default:;
4012 : }
4013 : break;
4014 : }
4015 2067947 : default:;
4016 : }
4017 2067947 : {
4018 2067947 : tree _q20_pops[1];
4019 2067947 : if (tree_nop_convert (_q20, _q20_pops))
4020 : {
4021 921891 : tree _q30 = _q20_pops[0];
4022 921891 : switch (TREE_CODE (_q30))
4023 : {
4024 0 : case BIT_AND_EXPR:
4025 0 : {
4026 0 : tree _q40 = TREE_OPERAND (_q30, 0);
4027 0 : tree _q41 = TREE_OPERAND (_q30, 1);
4028 0 : {
4029 0 : tree _q21_pops[1];
4030 0 : if (tree_nop_convert (_q21, _q21_pops))
4031 : {
4032 0 : tree _q70 = _q21_pops[0];
4033 0 : switch (TREE_CODE (_q70))
4034 : {
4035 0 : case BIT_IOR_EXPR:
4036 0 : {
4037 0 : tree _q80 = TREE_OPERAND (_q70, 0);
4038 0 : tree _q81 = TREE_OPERAND (_q70, 1);
4039 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
4040 : {
4041 0 : if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
4042 : {
4043 0 : if (integer_all_onesp (_p1))
4044 : {
4045 0 : {
4046 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
4047 0 : tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
4048 0 : if (res) return res;
4049 : }
4050 : }
4051 : }
4052 : }
4053 0 : if ((_q80 == _q41 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q41, 0) && types_match (_q80, _q41)))
4054 : {
4055 0 : if ((_q81 == _q40 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q40, 0) && types_match (_q81, _q40)))
4056 : {
4057 0 : if (integer_all_onesp (_p1))
4058 : {
4059 0 : {
4060 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q40 };
4061 0 : tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
4062 0 : if (res) return res;
4063 : }
4064 : }
4065 : }
4066 : }
4067 : break;
4068 : }
4069 : default:;
4070 : }
4071 : }
4072 : }
4073 0 : break;
4074 : }
4075 : default:;
4076 : }
4077 : }
4078 : }
4079 2067947 : {
4080 2067947 : tree _q21_pops[1];
4081 2067947 : if (tree_nop_convert (_q21, _q21_pops))
4082 : {
4083 1156360 : tree _q40 = _q21_pops[0];
4084 1156360 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
4085 : {
4086 34 : {
4087 34 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
4088 34 : tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
4089 34 : if (res) return res;
4090 : }
4091 : }
4092 : }
4093 : }
4094 2067917 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4095 : {
4096 45333 : {
4097 45333 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4098 45333 : tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
4099 45333 : if (res) return res;
4100 : }
4101 : }
4102 : break;
4103 : }
4104 19154167 : CASE_CONVERT:
4105 19154167 : {
4106 19154167 : tree _q20 = TREE_OPERAND (_p0, 0);
4107 19154167 : switch (TREE_CODE (_q20))
4108 : {
4109 72 : case BIT_AND_EXPR:
4110 72 : {
4111 72 : tree _q30 = TREE_OPERAND (_q20, 0);
4112 72 : tree _q31 = TREE_OPERAND (_q20, 1);
4113 72 : switch (TREE_CODE (_q31))
4114 : {
4115 8 : case INTEGER_CST:
4116 8 : {
4117 8 : switch (TREE_CODE (_p1))
4118 : {
4119 0 : CASE_CONVERT:
4120 0 : {
4121 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4122 0 : switch (TREE_CODE (_q60))
4123 : {
4124 0 : case BIT_AND_EXPR:
4125 0 : {
4126 0 : tree _q70 = TREE_OPERAND (_q60, 0);
4127 0 : tree _q71 = TREE_OPERAND (_q60, 1);
4128 0 : switch (TREE_CODE (_q71))
4129 : {
4130 0 : case INTEGER_CST:
4131 0 : {
4132 0 : {
4133 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q60, _q70, _q71 };
4134 0 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4135 0 : if (res) return res;
4136 : }
4137 0 : break;
4138 : }
4139 : default:;
4140 : }
4141 : break;
4142 : }
4143 : default:;
4144 : }
4145 : break;
4146 : }
4147 0 : case BIT_AND_EXPR:
4148 0 : {
4149 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4150 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4151 0 : switch (TREE_CODE (_q61))
4152 : {
4153 0 : case INTEGER_CST:
4154 0 : {
4155 0 : {
4156 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1, _q60, _q61 };
4157 0 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, PLUS_EXPR);
4158 0 : if (res) return res;
4159 : }
4160 0 : break;
4161 : }
4162 : default:;
4163 : }
4164 : break;
4165 : }
4166 : default:;
4167 : }
4168 : break;
4169 : }
4170 : default:;
4171 : }
4172 : break;
4173 : }
4174 4907 : case NEGATE_EXPR:
4175 4907 : {
4176 4907 : tree _q30 = TREE_OPERAND (_q20, 0);
4177 4907 : {
4178 4907 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q30 };
4179 4907 : tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
4180 4907 : if (res) return res;
4181 : }
4182 1769 : break;
4183 : }
4184 : default:;
4185 : }
4186 : break;
4187 : }
4188 120899 : case COND_EXPR:
4189 120899 : {
4190 120899 : tree _q20 = TREE_OPERAND (_p0, 0);
4191 120899 : tree _q21 = TREE_OPERAND (_p0, 1);
4192 120899 : tree _q22 = TREE_OPERAND (_p0, 2);
4193 120899 : if (integer_zerop (_q22))
4194 : {
4195 110073 : switch (TREE_CODE (_p1))
4196 : {
4197 44 : case COND_EXPR:
4198 44 : {
4199 44 : tree _q60 = TREE_OPERAND (_p1, 0);
4200 44 : tree _q61 = TREE_OPERAND (_p1, 1);
4201 44 : tree _q62 = TREE_OPERAND (_p1, 2);
4202 44 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4203 : {
4204 6 : if (integer_zerop (_q61))
4205 : {
4206 0 : {
4207 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
4208 0 : const enum tree_code op = PLUS_EXPR;
4209 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1248;
4210 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1248;
4211 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1248;
4212 0 : {
4213 0 : tree res_op0;
4214 0 : res_op0 = captures[1];
4215 0 : tree res_op1;
4216 0 : res_op1 = captures[2];
4217 0 : tree res_op2;
4218 0 : res_op2 = captures[4];
4219 0 : tree _r;
4220 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
4221 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
4222 0 : return _r;
4223 : }
4224 0 : next_after_fail1248:;
4225 : }
4226 : }
4227 : }
4228 : break;
4229 : }
4230 : default:;
4231 : }
4232 : }
4233 120899 : if (integer_zerop (_q21))
4234 : {
4235 1023 : switch (TREE_CODE (_p1))
4236 : {
4237 0 : case COND_EXPR:
4238 0 : {
4239 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4240 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4241 0 : tree _q62 = TREE_OPERAND (_p1, 2);
4242 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4243 : {
4244 0 : if (integer_zerop (_q62))
4245 : {
4246 0 : {
4247 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
4248 0 : const enum tree_code op = PLUS_EXPR;
4249 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1249;
4250 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1249;
4251 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1249;
4252 0 : {
4253 0 : tree res_op0;
4254 0 : res_op0 = captures[1];
4255 0 : tree res_op1;
4256 0 : res_op1 = captures[2];
4257 0 : tree res_op2;
4258 0 : res_op2 = captures[4];
4259 0 : tree _r;
4260 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
4261 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
4262 0 : return _r;
4263 : }
4264 0 : next_after_fail1249:;
4265 : }
4266 : }
4267 : }
4268 : break;
4269 : }
4270 : default:;
4271 : }
4272 : }
4273 120899 : switch (TREE_CODE (_q20))
4274 : {
4275 29365 : case LT_EXPR:
4276 29365 : {
4277 29365 : tree _q30 = TREE_OPERAND (_q20, 0);
4278 29365 : tree _q31 = TREE_OPERAND (_q20, 1);
4279 29365 : if (zerop (_q22))
4280 : {
4281 29299 : switch (TREE_CODE (_p1))
4282 : {
4283 0 : case COND_EXPR:
4284 0 : {
4285 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4286 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4287 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4288 0 : switch (TREE_CODE (_q80))
4289 : {
4290 0 : case GE_EXPR:
4291 0 : {
4292 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4293 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4294 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4295 : {
4296 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4297 : {
4298 0 : if (zerop (_q82))
4299 : {
4300 0 : {
4301 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4302 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR, GE_EXPR);
4303 0 : if (res) return res;
4304 : }
4305 : }
4306 : }
4307 : }
4308 : break;
4309 : }
4310 : default:;
4311 : }
4312 : break;
4313 : }
4314 : default:;
4315 : }
4316 : }
4317 : break;
4318 : }
4319 26667 : case LE_EXPR:
4320 26667 : {
4321 26667 : tree _q30 = TREE_OPERAND (_q20, 0);
4322 26667 : tree _q31 = TREE_OPERAND (_q20, 1);
4323 26667 : if (zerop (_q22))
4324 : {
4325 26529 : switch (TREE_CODE (_p1))
4326 : {
4327 5 : case COND_EXPR:
4328 5 : {
4329 5 : tree _q80 = TREE_OPERAND (_p1, 0);
4330 5 : tree _q81 = TREE_OPERAND (_p1, 1);
4331 5 : tree _q82 = TREE_OPERAND (_p1, 2);
4332 5 : switch (TREE_CODE (_q80))
4333 : {
4334 0 : case GT_EXPR:
4335 0 : {
4336 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4337 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4338 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4339 : {
4340 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4341 : {
4342 0 : if (zerop (_q82))
4343 : {
4344 0 : {
4345 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4346 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR, GT_EXPR);
4347 0 : if (res) return res;
4348 : }
4349 : }
4350 : }
4351 : }
4352 : break;
4353 : }
4354 : default:;
4355 : }
4356 : break;
4357 : }
4358 : default:;
4359 : }
4360 : }
4361 : break;
4362 : }
4363 1051 : case EQ_EXPR:
4364 1051 : {
4365 1051 : tree _q30 = TREE_OPERAND (_q20, 0);
4366 1051 : tree _q31 = TREE_OPERAND (_q20, 1);
4367 1051 : if (zerop (_q22))
4368 : {
4369 570 : switch (TREE_CODE (_p1))
4370 : {
4371 32 : case COND_EXPR:
4372 32 : {
4373 32 : tree _q80 = TREE_OPERAND (_p1, 0);
4374 32 : tree _q81 = TREE_OPERAND (_p1, 1);
4375 32 : tree _q82 = TREE_OPERAND (_p1, 2);
4376 32 : switch (TREE_CODE (_q80))
4377 : {
4378 0 : case NE_EXPR:
4379 0 : {
4380 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4381 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4382 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4383 : {
4384 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4385 : {
4386 0 : if (zerop (_q82))
4387 : {
4388 0 : {
4389 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4390 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR, NE_EXPR);
4391 0 : if (res) return res;
4392 : }
4393 : }
4394 : }
4395 : }
4396 : break;
4397 : }
4398 : default:;
4399 : }
4400 : break;
4401 : }
4402 : default:;
4403 : }
4404 : }
4405 : break;
4406 : }
4407 8068 : case NE_EXPR:
4408 8068 : {
4409 8068 : tree _q30 = TREE_OPERAND (_q20, 0);
4410 8068 : tree _q31 = TREE_OPERAND (_q20, 1);
4411 8068 : if (zerop (_q22))
4412 : {
4413 5463 : switch (TREE_CODE (_p1))
4414 : {
4415 7 : case COND_EXPR:
4416 7 : {
4417 7 : tree _q80 = TREE_OPERAND (_p1, 0);
4418 7 : tree _q81 = TREE_OPERAND (_p1, 1);
4419 7 : tree _q82 = TREE_OPERAND (_p1, 2);
4420 7 : switch (TREE_CODE (_q80))
4421 : {
4422 0 : case EQ_EXPR:
4423 0 : {
4424 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4425 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4426 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4427 : {
4428 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4429 : {
4430 0 : if (zerop (_q82))
4431 : {
4432 0 : {
4433 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4434 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR, EQ_EXPR);
4435 0 : if (res) return res;
4436 : }
4437 : }
4438 : }
4439 : }
4440 : break;
4441 : }
4442 : default:;
4443 : }
4444 : break;
4445 : }
4446 : default:;
4447 : }
4448 : }
4449 : break;
4450 : }
4451 18183 : case GE_EXPR:
4452 18183 : {
4453 18183 : tree _q30 = TREE_OPERAND (_q20, 0);
4454 18183 : tree _q31 = TREE_OPERAND (_q20, 1);
4455 18183 : if (zerop (_q22))
4456 : {
4457 16863 : switch (TREE_CODE (_p1))
4458 : {
4459 0 : case COND_EXPR:
4460 0 : {
4461 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4462 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4463 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4464 0 : switch (TREE_CODE (_q80))
4465 : {
4466 0 : case LT_EXPR:
4467 0 : {
4468 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4469 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4470 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4471 : {
4472 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4473 : {
4474 0 : if (zerop (_q82))
4475 : {
4476 0 : {
4477 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4478 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR, LT_EXPR);
4479 0 : if (res) return res;
4480 : }
4481 : }
4482 : }
4483 : }
4484 : break;
4485 : }
4486 : default:;
4487 : }
4488 : break;
4489 : }
4490 : default:;
4491 : }
4492 : }
4493 : break;
4494 : }
4495 30724 : case GT_EXPR:
4496 30724 : {
4497 30724 : tree _q30 = TREE_OPERAND (_q20, 0);
4498 30724 : tree _q31 = TREE_OPERAND (_q20, 1);
4499 30724 : if (zerop (_q22))
4500 : {
4501 28567 : switch (TREE_CODE (_p1))
4502 : {
4503 0 : case COND_EXPR:
4504 0 : {
4505 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4506 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4507 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4508 0 : switch (TREE_CODE (_q80))
4509 : {
4510 0 : case LE_EXPR:
4511 0 : {
4512 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4513 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4514 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4515 : {
4516 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4517 : {
4518 0 : if (zerop (_q82))
4519 : {
4520 0 : {
4521 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4522 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR, LE_EXPR);
4523 0 : if (res) return res;
4524 : }
4525 : }
4526 : }
4527 : }
4528 : break;
4529 : }
4530 : default:;
4531 : }
4532 : break;
4533 : }
4534 : default:;
4535 : }
4536 : }
4537 : break;
4538 : }
4539 0 : case UNORDERED_EXPR:
4540 0 : {
4541 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4542 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4543 0 : if (zerop (_q22))
4544 : {
4545 0 : switch (TREE_CODE (_p1))
4546 : {
4547 0 : case COND_EXPR:
4548 0 : {
4549 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4550 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4551 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4552 0 : switch (TREE_CODE (_q80))
4553 : {
4554 0 : case ORDERED_EXPR:
4555 0 : {
4556 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4557 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4558 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4559 : {
4560 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4561 : {
4562 0 : if (zerop (_q82))
4563 : {
4564 0 : {
4565 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4566 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
4567 0 : if (res) return res;
4568 : }
4569 : }
4570 : }
4571 : }
4572 : break;
4573 : }
4574 : default:;
4575 : }
4576 : break;
4577 : }
4578 : default:;
4579 : }
4580 : }
4581 : break;
4582 : }
4583 0 : case ORDERED_EXPR:
4584 0 : {
4585 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4586 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4587 0 : if (zerop (_q22))
4588 : {
4589 0 : switch (TREE_CODE (_p1))
4590 : {
4591 0 : case COND_EXPR:
4592 0 : {
4593 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4594 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4595 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4596 0 : switch (TREE_CODE (_q80))
4597 : {
4598 0 : case UNORDERED_EXPR:
4599 0 : {
4600 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4601 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4602 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4603 : {
4604 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4605 : {
4606 0 : if (zerop (_q82))
4607 : {
4608 0 : {
4609 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4610 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
4611 0 : if (res) return res;
4612 : }
4613 : }
4614 : }
4615 : }
4616 : break;
4617 : }
4618 : default:;
4619 : }
4620 : break;
4621 : }
4622 : default:;
4623 : }
4624 : }
4625 : break;
4626 : }
4627 0 : case UNLT_EXPR:
4628 0 : {
4629 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4630 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4631 0 : if (zerop (_q22))
4632 : {
4633 0 : switch (TREE_CODE (_p1))
4634 : {
4635 0 : case COND_EXPR:
4636 0 : {
4637 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4638 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4639 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4640 0 : switch (TREE_CODE (_q80))
4641 : {
4642 0 : case GE_EXPR:
4643 0 : {
4644 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4645 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4646 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4647 : {
4648 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4649 : {
4650 0 : if (zerop (_q82))
4651 : {
4652 0 : {
4653 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4654 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLT_EXPR, GE_EXPR);
4655 0 : if (res) return res;
4656 : }
4657 : }
4658 : }
4659 : }
4660 : break;
4661 : }
4662 : default:;
4663 : }
4664 : break;
4665 : }
4666 : default:;
4667 : }
4668 : }
4669 : break;
4670 : }
4671 0 : case UNLE_EXPR:
4672 0 : {
4673 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4674 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4675 0 : if (zerop (_q22))
4676 : {
4677 0 : switch (TREE_CODE (_p1))
4678 : {
4679 0 : case COND_EXPR:
4680 0 : {
4681 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4682 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4683 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4684 0 : switch (TREE_CODE (_q80))
4685 : {
4686 0 : case GT_EXPR:
4687 0 : {
4688 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4689 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4690 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4691 : {
4692 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4693 : {
4694 0 : if (zerop (_q82))
4695 : {
4696 0 : {
4697 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4698 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLE_EXPR, GT_EXPR);
4699 0 : if (res) return res;
4700 : }
4701 : }
4702 : }
4703 : }
4704 : break;
4705 : }
4706 : default:;
4707 : }
4708 : break;
4709 : }
4710 : default:;
4711 : }
4712 : }
4713 : break;
4714 : }
4715 0 : case UNGT_EXPR:
4716 0 : {
4717 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4718 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4719 0 : if (zerop (_q22))
4720 : {
4721 0 : switch (TREE_CODE (_p1))
4722 : {
4723 0 : case COND_EXPR:
4724 0 : {
4725 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4726 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4727 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4728 0 : switch (TREE_CODE (_q80))
4729 : {
4730 0 : case LE_EXPR:
4731 0 : {
4732 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4733 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4734 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4735 : {
4736 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4737 : {
4738 0 : if (zerop (_q82))
4739 : {
4740 0 : {
4741 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4742 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGT_EXPR, LE_EXPR);
4743 0 : if (res) return res;
4744 : }
4745 : }
4746 : }
4747 : }
4748 : break;
4749 : }
4750 : default:;
4751 : }
4752 : break;
4753 : }
4754 : default:;
4755 : }
4756 : }
4757 : break;
4758 : }
4759 0 : case UNGE_EXPR:
4760 0 : {
4761 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4762 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4763 0 : if (zerop (_q22))
4764 : {
4765 0 : switch (TREE_CODE (_p1))
4766 : {
4767 0 : case COND_EXPR:
4768 0 : {
4769 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4770 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4771 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4772 0 : switch (TREE_CODE (_q80))
4773 : {
4774 0 : case LT_EXPR:
4775 0 : {
4776 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4777 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4778 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4779 : {
4780 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4781 : {
4782 0 : if (zerop (_q82))
4783 : {
4784 0 : {
4785 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4786 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGE_EXPR, LT_EXPR);
4787 0 : if (res) return res;
4788 : }
4789 : }
4790 : }
4791 : }
4792 : break;
4793 : }
4794 : default:;
4795 : }
4796 : break;
4797 : }
4798 : default:;
4799 : }
4800 : }
4801 : break;
4802 : }
4803 0 : case UNEQ_EXPR:
4804 0 : {
4805 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4806 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4807 0 : if (zerop (_q22))
4808 : {
4809 0 : switch (TREE_CODE (_p1))
4810 : {
4811 0 : case COND_EXPR:
4812 0 : {
4813 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4814 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4815 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4816 0 : switch (TREE_CODE (_q80))
4817 : {
4818 0 : case LTGT_EXPR:
4819 0 : {
4820 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4821 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4822 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4823 : {
4824 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4825 : {
4826 0 : if (zerop (_q82))
4827 : {
4828 0 : {
4829 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4830 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNEQ_EXPR, LTGT_EXPR);
4831 0 : if (res) return res;
4832 : }
4833 : }
4834 : }
4835 : }
4836 : break;
4837 : }
4838 : default:;
4839 : }
4840 : break;
4841 : }
4842 : default:;
4843 : }
4844 : }
4845 : break;
4846 : }
4847 0 : case LTGT_EXPR:
4848 0 : {
4849 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4850 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4851 0 : if (zerop (_q22))
4852 : {
4853 0 : switch (TREE_CODE (_p1))
4854 : {
4855 0 : case COND_EXPR:
4856 0 : {
4857 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4858 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4859 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4860 0 : switch (TREE_CODE (_q80))
4861 : {
4862 0 : case UNEQ_EXPR:
4863 0 : {
4864 0 : tree _q90 = TREE_OPERAND (_q80, 0);
4865 0 : tree _q91 = TREE_OPERAND (_q80, 1);
4866 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
4867 : {
4868 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
4869 : {
4870 0 : if (zerop (_q82))
4871 : {
4872 0 : {
4873 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
4874 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, LTGT_EXPR, UNEQ_EXPR);
4875 0 : if (res) return res;
4876 : }
4877 : }
4878 : }
4879 : }
4880 : break;
4881 : }
4882 : default:;
4883 : }
4884 : break;
4885 : }
4886 : default:;
4887 : }
4888 : }
4889 : break;
4890 : }
4891 : default:;
4892 : }
4893 : break;
4894 : }
4895 168 : case VEC_COND_EXPR:
4896 168 : {
4897 168 : tree _q20 = TREE_OPERAND (_p0, 0);
4898 168 : tree _q21 = TREE_OPERAND (_p0, 1);
4899 168 : tree _q22 = TREE_OPERAND (_p0, 2);
4900 168 : if (integer_zerop (_q22))
4901 : {
4902 106 : switch (TREE_CODE (_p1))
4903 : {
4904 24 : case VEC_COND_EXPR:
4905 24 : {
4906 24 : tree _q60 = TREE_OPERAND (_p1, 0);
4907 24 : tree _q61 = TREE_OPERAND (_p1, 1);
4908 24 : tree _q62 = TREE_OPERAND (_p1, 2);
4909 24 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4910 : {
4911 0 : if (integer_zerop (_q61))
4912 : {
4913 0 : {
4914 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
4915 0 : const enum tree_code op = PLUS_EXPR;
4916 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1250;
4917 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1250;
4918 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1250;
4919 0 : {
4920 0 : tree res_op0;
4921 0 : res_op0 = captures[1];
4922 0 : tree res_op1;
4923 0 : res_op1 = captures[2];
4924 0 : tree res_op2;
4925 0 : res_op2 = captures[4];
4926 0 : tree _r;
4927 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4928 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
4929 0 : return _r;
4930 : }
4931 0 : next_after_fail1250:;
4932 : }
4933 : }
4934 : }
4935 : break;
4936 : }
4937 : default:;
4938 : }
4939 : }
4940 168 : if (integer_zerop (_q21))
4941 : {
4942 0 : switch (TREE_CODE (_p1))
4943 : {
4944 0 : case VEC_COND_EXPR:
4945 0 : {
4946 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4947 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4948 0 : tree _q62 = TREE_OPERAND (_p1, 2);
4949 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4950 : {
4951 0 : if (integer_zerop (_q62))
4952 : {
4953 0 : {
4954 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
4955 0 : const enum tree_code op = PLUS_EXPR;
4956 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1251;
4957 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1251;
4958 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1251;
4959 0 : {
4960 0 : tree res_op0;
4961 0 : res_op0 = captures[1];
4962 0 : tree res_op1;
4963 0 : res_op1 = captures[2];
4964 0 : tree res_op2;
4965 0 : res_op2 = captures[4];
4966 0 : tree _r;
4967 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4968 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
4969 0 : return _r;
4970 : }
4971 0 : next_after_fail1251:;
4972 : }
4973 : }
4974 : }
4975 : break;
4976 : }
4977 : default:;
4978 : }
4979 : }
4980 168 : switch (TREE_CODE (_q20))
4981 : {
4982 8 : case LT_EXPR:
4983 8 : {
4984 8 : tree _q30 = TREE_OPERAND (_q20, 0);
4985 8 : tree _q31 = TREE_OPERAND (_q20, 1);
4986 8 : if (integer_zerop (_q22))
4987 : {
4988 8 : switch (TREE_CODE (_p1))
4989 : {
4990 0 : case VEC_COND_EXPR:
4991 0 : {
4992 0 : tree _q80 = TREE_OPERAND (_p1, 0);
4993 0 : tree _q81 = TREE_OPERAND (_p1, 1);
4994 0 : tree _q82 = TREE_OPERAND (_p1, 2);
4995 0 : switch (TREE_CODE (_q80))
4996 : {
4997 0 : case GE_EXPR:
4998 0 : {
4999 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5000 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5001 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5002 : {
5003 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5004 : {
5005 0 : if (integer_zerop (_q82))
5006 : {
5007 0 : {
5008 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5009 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR, GE_EXPR);
5010 0 : if (res) return res;
5011 : }
5012 : }
5013 : }
5014 : }
5015 : break;
5016 : }
5017 : default:;
5018 : }
5019 : break;
5020 : }
5021 : default:;
5022 : }
5023 : }
5024 : break;
5025 : }
5026 8 : case LE_EXPR:
5027 8 : {
5028 8 : tree _q30 = TREE_OPERAND (_q20, 0);
5029 8 : tree _q31 = TREE_OPERAND (_q20, 1);
5030 8 : if (integer_zerop (_q22))
5031 : {
5032 8 : switch (TREE_CODE (_p1))
5033 : {
5034 0 : case VEC_COND_EXPR:
5035 0 : {
5036 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5037 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5038 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5039 0 : switch (TREE_CODE (_q80))
5040 : {
5041 0 : case GT_EXPR:
5042 0 : {
5043 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5044 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5045 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5046 : {
5047 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5048 : {
5049 0 : if (integer_zerop (_q82))
5050 : {
5051 0 : {
5052 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5053 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR, GT_EXPR);
5054 0 : if (res) return res;
5055 : }
5056 : }
5057 : }
5058 : }
5059 : break;
5060 : }
5061 : default:;
5062 : }
5063 : break;
5064 : }
5065 : default:;
5066 : }
5067 : }
5068 : break;
5069 : }
5070 34 : case EQ_EXPR:
5071 34 : {
5072 34 : tree _q30 = TREE_OPERAND (_q20, 0);
5073 34 : tree _q31 = TREE_OPERAND (_q20, 1);
5074 34 : if (integer_zerop (_q22))
5075 : {
5076 34 : switch (TREE_CODE (_p1))
5077 : {
5078 24 : case VEC_COND_EXPR:
5079 24 : {
5080 24 : tree _q80 = TREE_OPERAND (_p1, 0);
5081 24 : tree _q81 = TREE_OPERAND (_p1, 1);
5082 24 : tree _q82 = TREE_OPERAND (_p1, 2);
5083 24 : switch (TREE_CODE (_q80))
5084 : {
5085 24 : case NE_EXPR:
5086 24 : {
5087 24 : tree _q90 = TREE_OPERAND (_q80, 0);
5088 24 : tree _q91 = TREE_OPERAND (_q80, 1);
5089 24 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5090 : {
5091 24 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5092 : {
5093 24 : if (integer_zerop (_q82))
5094 : {
5095 24 : {
5096 24 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5097 24 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR, NE_EXPR);
5098 24 : if (res) return res;
5099 : }
5100 : }
5101 : }
5102 : }
5103 : break;
5104 : }
5105 : default:;
5106 : }
5107 : break;
5108 : }
5109 : default:;
5110 : }
5111 : }
5112 : break;
5113 : }
5114 22 : case NE_EXPR:
5115 22 : {
5116 22 : tree _q30 = TREE_OPERAND (_q20, 0);
5117 22 : tree _q31 = TREE_OPERAND (_q20, 1);
5118 22 : if (integer_zerop (_q22))
5119 : {
5120 8 : switch (TREE_CODE (_p1))
5121 : {
5122 0 : case VEC_COND_EXPR:
5123 0 : {
5124 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5125 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5126 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5127 0 : switch (TREE_CODE (_q80))
5128 : {
5129 0 : case EQ_EXPR:
5130 0 : {
5131 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5132 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5133 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5134 : {
5135 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5136 : {
5137 0 : if (integer_zerop (_q82))
5138 : {
5139 0 : {
5140 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5141 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR, EQ_EXPR);
5142 0 : if (res) return res;
5143 : }
5144 : }
5145 : }
5146 : }
5147 : break;
5148 : }
5149 : default:;
5150 : }
5151 : break;
5152 : }
5153 : default:;
5154 : }
5155 : }
5156 : break;
5157 : }
5158 15 : case GE_EXPR:
5159 15 : {
5160 15 : tree _q30 = TREE_OPERAND (_q20, 0);
5161 15 : tree _q31 = TREE_OPERAND (_q20, 1);
5162 15 : if (integer_zerop (_q22))
5163 : {
5164 15 : switch (TREE_CODE (_p1))
5165 : {
5166 0 : case VEC_COND_EXPR:
5167 0 : {
5168 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5169 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5170 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5171 0 : switch (TREE_CODE (_q80))
5172 : {
5173 0 : case LT_EXPR:
5174 0 : {
5175 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5176 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5177 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5178 : {
5179 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5180 : {
5181 0 : if (integer_zerop (_q82))
5182 : {
5183 0 : {
5184 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5185 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR, LT_EXPR);
5186 0 : if (res) return res;
5187 : }
5188 : }
5189 : }
5190 : }
5191 : break;
5192 : }
5193 : default:;
5194 : }
5195 : break;
5196 : }
5197 : default:;
5198 : }
5199 : }
5200 : break;
5201 : }
5202 81 : case GT_EXPR:
5203 81 : {
5204 81 : tree _q30 = TREE_OPERAND (_q20, 0);
5205 81 : tree _q31 = TREE_OPERAND (_q20, 1);
5206 81 : if (integer_zerop (_q22))
5207 : {
5208 33 : switch (TREE_CODE (_p1))
5209 : {
5210 0 : case VEC_COND_EXPR:
5211 0 : {
5212 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5213 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5214 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5215 0 : switch (TREE_CODE (_q80))
5216 : {
5217 0 : case LE_EXPR:
5218 0 : {
5219 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5220 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5221 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5222 : {
5223 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5224 : {
5225 0 : if (integer_zerop (_q82))
5226 : {
5227 0 : {
5228 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5229 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR, LE_EXPR);
5230 0 : if (res) return res;
5231 : }
5232 : }
5233 : }
5234 : }
5235 : break;
5236 : }
5237 : default:;
5238 : }
5239 : break;
5240 : }
5241 : default:;
5242 : }
5243 : }
5244 : break;
5245 : }
5246 0 : case UNORDERED_EXPR:
5247 0 : {
5248 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5249 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5250 0 : if (integer_zerop (_q22))
5251 : {
5252 0 : switch (TREE_CODE (_p1))
5253 : {
5254 0 : case VEC_COND_EXPR:
5255 0 : {
5256 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5257 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5258 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5259 0 : switch (TREE_CODE (_q80))
5260 : {
5261 0 : case ORDERED_EXPR:
5262 0 : {
5263 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5264 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5265 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5266 : {
5267 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5268 : {
5269 0 : if (integer_zerop (_q82))
5270 : {
5271 0 : {
5272 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5273 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
5274 0 : if (res) return res;
5275 : }
5276 : }
5277 : }
5278 : }
5279 : break;
5280 : }
5281 : default:;
5282 : }
5283 : break;
5284 : }
5285 : default:;
5286 : }
5287 : }
5288 : break;
5289 : }
5290 0 : case ORDERED_EXPR:
5291 0 : {
5292 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5293 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5294 0 : if (integer_zerop (_q22))
5295 : {
5296 0 : switch (TREE_CODE (_p1))
5297 : {
5298 0 : case VEC_COND_EXPR:
5299 0 : {
5300 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5301 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5302 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5303 0 : switch (TREE_CODE (_q80))
5304 : {
5305 0 : case UNORDERED_EXPR:
5306 0 : {
5307 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5308 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5309 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5310 : {
5311 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5312 : {
5313 0 : if (integer_zerop (_q82))
5314 : {
5315 0 : {
5316 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5317 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
5318 0 : if (res) return res;
5319 : }
5320 : }
5321 : }
5322 : }
5323 : break;
5324 : }
5325 : default:;
5326 : }
5327 : break;
5328 : }
5329 : default:;
5330 : }
5331 : }
5332 : break;
5333 : }
5334 0 : case UNLT_EXPR:
5335 0 : {
5336 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5337 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5338 0 : if (integer_zerop (_q22))
5339 : {
5340 0 : switch (TREE_CODE (_p1))
5341 : {
5342 0 : case VEC_COND_EXPR:
5343 0 : {
5344 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5345 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5346 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5347 0 : switch (TREE_CODE (_q80))
5348 : {
5349 0 : case GE_EXPR:
5350 0 : {
5351 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5352 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5353 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5354 : {
5355 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5356 : {
5357 0 : if (integer_zerop (_q82))
5358 : {
5359 0 : {
5360 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5361 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLT_EXPR, GE_EXPR);
5362 0 : if (res) return res;
5363 : }
5364 : }
5365 : }
5366 : }
5367 : break;
5368 : }
5369 : default:;
5370 : }
5371 : break;
5372 : }
5373 : default:;
5374 : }
5375 : }
5376 : break;
5377 : }
5378 0 : case UNLE_EXPR:
5379 0 : {
5380 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5381 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5382 0 : if (integer_zerop (_q22))
5383 : {
5384 0 : switch (TREE_CODE (_p1))
5385 : {
5386 0 : case VEC_COND_EXPR:
5387 0 : {
5388 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5389 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5390 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5391 0 : switch (TREE_CODE (_q80))
5392 : {
5393 0 : case GT_EXPR:
5394 0 : {
5395 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5396 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5397 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5398 : {
5399 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5400 : {
5401 0 : if (integer_zerop (_q82))
5402 : {
5403 0 : {
5404 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5405 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLE_EXPR, GT_EXPR);
5406 0 : if (res) return res;
5407 : }
5408 : }
5409 : }
5410 : }
5411 : break;
5412 : }
5413 : default:;
5414 : }
5415 : break;
5416 : }
5417 : default:;
5418 : }
5419 : }
5420 : break;
5421 : }
5422 0 : case UNGT_EXPR:
5423 0 : {
5424 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5425 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5426 0 : if (integer_zerop (_q22))
5427 : {
5428 0 : switch (TREE_CODE (_p1))
5429 : {
5430 0 : case VEC_COND_EXPR:
5431 0 : {
5432 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5433 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5434 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5435 0 : switch (TREE_CODE (_q80))
5436 : {
5437 0 : case LE_EXPR:
5438 0 : {
5439 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5440 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5441 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5442 : {
5443 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5444 : {
5445 0 : if (integer_zerop (_q82))
5446 : {
5447 0 : {
5448 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5449 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGT_EXPR, LE_EXPR);
5450 0 : if (res) return res;
5451 : }
5452 : }
5453 : }
5454 : }
5455 : break;
5456 : }
5457 : default:;
5458 : }
5459 : break;
5460 : }
5461 : default:;
5462 : }
5463 : }
5464 : break;
5465 : }
5466 0 : case UNGE_EXPR:
5467 0 : {
5468 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5469 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5470 0 : if (integer_zerop (_q22))
5471 : {
5472 0 : switch (TREE_CODE (_p1))
5473 : {
5474 0 : case VEC_COND_EXPR:
5475 0 : {
5476 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5477 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5478 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5479 0 : switch (TREE_CODE (_q80))
5480 : {
5481 0 : case LT_EXPR:
5482 0 : {
5483 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5484 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5485 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5486 : {
5487 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5488 : {
5489 0 : if (integer_zerop (_q82))
5490 : {
5491 0 : {
5492 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5493 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGE_EXPR, LT_EXPR);
5494 0 : if (res) return res;
5495 : }
5496 : }
5497 : }
5498 : }
5499 : break;
5500 : }
5501 : default:;
5502 : }
5503 : break;
5504 : }
5505 : default:;
5506 : }
5507 : }
5508 : break;
5509 : }
5510 0 : case UNEQ_EXPR:
5511 0 : {
5512 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5513 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5514 0 : if (integer_zerop (_q22))
5515 : {
5516 0 : switch (TREE_CODE (_p1))
5517 : {
5518 0 : case VEC_COND_EXPR:
5519 0 : {
5520 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5521 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5522 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5523 0 : switch (TREE_CODE (_q80))
5524 : {
5525 0 : case LTGT_EXPR:
5526 0 : {
5527 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5528 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5529 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5530 : {
5531 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5532 : {
5533 0 : if (integer_zerop (_q82))
5534 : {
5535 0 : {
5536 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5537 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNEQ_EXPR, LTGT_EXPR);
5538 0 : if (res) return res;
5539 : }
5540 : }
5541 : }
5542 : }
5543 : break;
5544 : }
5545 : default:;
5546 : }
5547 : break;
5548 : }
5549 : default:;
5550 : }
5551 : }
5552 : break;
5553 : }
5554 0 : case LTGT_EXPR:
5555 0 : {
5556 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5557 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5558 0 : if (integer_zerop (_q22))
5559 : {
5560 0 : switch (TREE_CODE (_p1))
5561 : {
5562 0 : case VEC_COND_EXPR:
5563 0 : {
5564 0 : tree _q80 = TREE_OPERAND (_p1, 0);
5565 0 : tree _q81 = TREE_OPERAND (_p1, 1);
5566 0 : tree _q82 = TREE_OPERAND (_p1, 2);
5567 0 : switch (TREE_CODE (_q80))
5568 : {
5569 0 : case UNEQ_EXPR:
5570 0 : {
5571 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5572 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5573 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
5574 : {
5575 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
5576 : {
5577 0 : if (integer_zerop (_q82))
5578 : {
5579 0 : {
5580 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
5581 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, LTGT_EXPR, UNEQ_EXPR);
5582 0 : if (res) return res;
5583 : }
5584 : }
5585 : }
5586 : }
5587 : break;
5588 : }
5589 : default:;
5590 : }
5591 : break;
5592 : }
5593 : default:;
5594 : }
5595 : }
5596 : break;
5597 : }
5598 : default:;
5599 : }
5600 : break;
5601 : }
5602 70855116 : default:;
5603 : }
5604 70855116 : {
5605 70855116 : tree _p0_pops[1];
5606 70855116 : if (tree_nop_convert (_p0, _p0_pops))
5607 : {
5608 14116099 : tree _q20 = _p0_pops[0];
5609 14116099 : switch (TREE_CODE (_q20))
5610 : {
5611 98735 : case MINUS_EXPR:
5612 98735 : {
5613 98735 : tree _q30 = TREE_OPERAND (_q20, 0);
5614 98735 : tree _q31 = TREE_OPERAND (_q20, 1);
5615 98735 : switch (TREE_CODE (_q30))
5616 : {
5617 2 : case BIT_AND_EXPR:
5618 2 : {
5619 2 : tree _q40 = TREE_OPERAND (_q30, 0);
5620 2 : tree _q41 = TREE_OPERAND (_q30, 1);
5621 2 : switch (TREE_CODE (_q31))
5622 : {
5623 1 : case BIT_IOR_EXPR:
5624 1 : {
5625 1 : tree _q70 = TREE_OPERAND (_q31, 0);
5626 1 : tree _q71 = TREE_OPERAND (_q31, 1);
5627 1 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
5628 : {
5629 1 : if ((_q71 == _q41 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q41, 0) && types_match (_q71, _q41)))
5630 : {
5631 1 : if (integer_all_onesp (_p1))
5632 : {
5633 1 : {
5634 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
5635 1 : tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
5636 1 : if (res) return res;
5637 : }
5638 : }
5639 : }
5640 : }
5641 0 : if ((_q70 == _q41 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q41, 0) && types_match (_q70, _q41)))
5642 : {
5643 0 : if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
5644 : {
5645 0 : if (integer_all_onesp (_p1))
5646 : {
5647 0 : {
5648 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _q40 };
5649 0 : tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
5650 0 : if (res) return res;
5651 : }
5652 : }
5653 : }
5654 : }
5655 : break;
5656 : }
5657 : default:;
5658 : }
5659 : break;
5660 : }
5661 98734 : default:;
5662 : }
5663 98734 : {
5664 98734 : tree _q30_pops[1];
5665 98734 : if (tree_nop_convert (_q30, _q30_pops))
5666 : {
5667 51395 : tree _q40 = _q30_pops[0];
5668 51395 : switch (TREE_CODE (_q40))
5669 : {
5670 0 : case BIT_AND_EXPR:
5671 0 : {
5672 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5673 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5674 0 : {
5675 0 : tree _q31_pops[1];
5676 0 : if (tree_nop_convert (_q31, _q31_pops))
5677 : {
5678 0 : tree _q80 = _q31_pops[0];
5679 0 : switch (TREE_CODE (_q80))
5680 : {
5681 0 : case BIT_IOR_EXPR:
5682 0 : {
5683 0 : tree _q90 = TREE_OPERAND (_q80, 0);
5684 0 : tree _q91 = TREE_OPERAND (_q80, 1);
5685 0 : if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
5686 : {
5687 0 : if ((_q91 == _q51 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q51, 0) && types_match (_q91, _q51)))
5688 : {
5689 0 : if (integer_all_onesp (_p1))
5690 : {
5691 0 : {
5692 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
5693 0 : tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
5694 0 : if (res) return res;
5695 : }
5696 : }
5697 : }
5698 : }
5699 0 : if ((_q90 == _q51 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q51, 0) && types_match (_q90, _q51)))
5700 : {
5701 0 : if ((_q91 == _q50 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q50, 0) && types_match (_q91, _q50)))
5702 : {
5703 0 : if (integer_all_onesp (_p1))
5704 : {
5705 0 : {
5706 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
5707 0 : tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
5708 0 : if (res) return res;
5709 : }
5710 : }
5711 : }
5712 : }
5713 : break;
5714 : }
5715 : default:;
5716 : }
5717 : }
5718 : }
5719 0 : break;
5720 : }
5721 : default:;
5722 : }
5723 : }
5724 : }
5725 98734 : break;
5726 : }
5727 : default:;
5728 : }
5729 : }
5730 : }
5731 70855115 : switch (TREE_CODE (_p1))
5732 : {
5733 8373187 : CASE_CONVERT:
5734 8373187 : {
5735 8373187 : tree _q30 = TREE_OPERAND (_p1, 0);
5736 8373187 : switch (TREE_CODE (_q30))
5737 : {
5738 1842 : case NEGATE_EXPR:
5739 1842 : {
5740 1842 : tree _q40 = TREE_OPERAND (_q30, 0);
5741 1842 : {
5742 1842 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
5743 1842 : tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
5744 1842 : if (res) return res;
5745 : }
5746 295 : break;
5747 : }
5748 : default:;
5749 : }
5750 : break;
5751 : }
5752 8085 : case NEGATE_EXPR:
5753 8085 : {
5754 8085 : tree _q30 = TREE_OPERAND (_p1, 0);
5755 8085 : {
5756 8085 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5757 8085 : tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
5758 8085 : if (res) return res;
5759 : }
5760 0 : break;
5761 : }
5762 70845483 : default:;
5763 : }
5764 70845483 : switch (TREE_CODE (_p0))
5765 : {
5766 232477 : case NEGATE_EXPR:
5767 232477 : {
5768 232477 : tree _q20 = TREE_OPERAND (_p0, 0);
5769 232477 : {
5770 232477 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
5771 232477 : tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
5772 232477 : if (res) return res;
5773 : }
5774 134 : break;
5775 : }
5776 70613140 : default:;
5777 : }
5778 70613140 : {
5779 70613140 : tree _p0_pops[1];
5780 70613140 : if (tree_nop_convert (_p0, _p0_pops))
5781 : {
5782 14109984 : tree _q20 = _p0_pops[0];
5783 14109984 : switch (TREE_CODE (_q20))
5784 : {
5785 98225 : case MINUS_EXPR:
5786 98225 : {
5787 98225 : tree _q30 = TREE_OPERAND (_q20, 0);
5788 98225 : tree _q31 = TREE_OPERAND (_q20, 1);
5789 98225 : {
5790 98225 : tree _q31_pops[1];
5791 98225 : if (tree_nop_convert (_q31, _q31_pops))
5792 : {
5793 61913 : tree _q50 = _q31_pops[0];
5794 61913 : if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
5795 : {
5796 28 : {
5797 28 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
5798 28 : tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
5799 28 : if (res) return res;
5800 : }
5801 : }
5802 : }
5803 : }
5804 98197 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
5805 : {
5806 6 : {
5807 6 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
5808 6 : tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
5809 6 : if (res) return res;
5810 : }
5811 : }
5812 98191 : if (CONSTANT_CLASS_P (_q31))
5813 : {
5814 16918 : if (CONSTANT_CLASS_P (_p1))
5815 : {
5816 16804 : {
5817 16804 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
5818 16804 : tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR);
5819 16804 : if (res) return res;
5820 : }
5821 : }
5822 : }
5823 81387 : if (CONSTANT_CLASS_P (_q30))
5824 : {
5825 14854 : if (CONSTANT_CLASS_P (_p1))
5826 : {
5827 5613 : {
5828 5613 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
5829 5613 : tree res = generic_simplify_64 (loc, type, _p0, _p1, captures, PLUS_EXPR);
5830 5613 : if (res) return res;
5831 : }
5832 : }
5833 : }
5834 : break;
5835 : }
5836 1309223 : case PLUS_EXPR:
5837 1309223 : {
5838 1309223 : tree _q30 = TREE_OPERAND (_q20, 0);
5839 1309223 : tree _q31 = TREE_OPERAND (_q20, 1);
5840 1309223 : if (CONSTANT_CLASS_P (_q31))
5841 : {
5842 1106633 : if (CONSTANT_CLASS_P (_p1))
5843 : {
5844 1018171 : {
5845 1018171 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
5846 1018171 : tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR);
5847 1018171 : if (res) return res;
5848 : }
5849 : }
5850 : }
5851 : break;
5852 : }
5853 : default:;
5854 : }
5855 : }
5856 : }
5857 69573482 : switch (TREE_CODE (_p1))
5858 : {
5859 175144 : case MINUS_EXPR:
5860 175144 : {
5861 175144 : tree _q30 = TREE_OPERAND (_p1, 0);
5862 175144 : tree _q31 = TREE_OPERAND (_p1, 1);
5863 175144 : {
5864 175144 : tree _q31_pops[1];
5865 175144 : if (tree_nop_convert (_q31, _q31_pops))
5866 : {
5867 60486 : tree _q50 = _q31_pops[0];
5868 60486 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5869 : {
5870 0 : {
5871 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
5872 0 : tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
5873 0 : if (res) return res;
5874 : }
5875 : }
5876 : }
5877 : }
5878 175144 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5879 : {
5880 308 : {
5881 308 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
5882 308 : tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
5883 308 : if (res) return res;
5884 : }
5885 : }
5886 : break;
5887 : }
5888 69573174 : default:;
5889 : }
5890 69573174 : {
5891 69573174 : tree _p1_pops[1];
5892 69573174 : if (tree_nop_convert (_p1, _p1_pops))
5893 : {
5894 8065834 : tree _q30 = _p1_pops[0];
5895 8065834 : switch (TREE_CODE (_q30))
5896 : {
5897 3611 : case MINUS_EXPR:
5898 3611 : {
5899 3611 : tree _q40 = TREE_OPERAND (_q30, 0);
5900 3611 : tree _q41 = TREE_OPERAND (_q30, 1);
5901 3611 : {
5902 3611 : tree _q41_pops[1];
5903 3611 : if (tree_nop_convert (_q41, _q41_pops))
5904 : {
5905 573 : tree _q60 = _q41_pops[0];
5906 573 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
5907 : {
5908 0 : {
5909 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
5910 0 : tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
5911 0 : if (res) return res;
5912 : }
5913 : }
5914 : }
5915 : }
5916 3611 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
5917 : {
5918 0 : {
5919 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
5920 0 : tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
5921 0 : if (res) return res;
5922 : }
5923 : }
5924 : break;
5925 : }
5926 : default:;
5927 : }
5928 : }
5929 : }
5930 69573174 : switch (TREE_CODE (_p0))
5931 : {
5932 6515566 : case PLUS_EXPR:
5933 6515566 : {
5934 6515566 : tree _q20 = TREE_OPERAND (_p0, 0);
5935 6515566 : tree _q21 = TREE_OPERAND (_p0, 1);
5936 6515566 : switch (TREE_CODE (_p1))
5937 : {
5938 46567 : case MINUS_EXPR:
5939 46567 : {
5940 46567 : tree _q50 = TREE_OPERAND (_p1, 0);
5941 46567 : tree _q51 = TREE_OPERAND (_p1, 1);
5942 46567 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5943 : {
5944 140 : {
5945 140 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5946 140 : tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
5947 140 : if (res) return res;
5948 : }
5949 : }
5950 46427 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5951 : {
5952 329 : {
5953 329 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5954 329 : tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
5955 329 : if (res) return res;
5956 : }
5957 : }
5958 : break;
5959 : }
5960 6515097 : default:;
5961 : }
5962 6515097 : if (CONSTANT_CLASS_P (_q21))
5963 : {
5964 2572249 : if (CONSTANT_CLASS_P (_p1))
5965 : {
5966 1892640 : {
5967 1892640 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5968 1892640 : tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR);
5969 1892640 : if (res) return res;
5970 : }
5971 : }
5972 : }
5973 : break;
5974 : }
5975 2021686 : case MINUS_EXPR:
5976 2021686 : {
5977 2021686 : tree _q20 = TREE_OPERAND (_p0, 0);
5978 2021686 : tree _q21 = TREE_OPERAND (_p0, 1);
5979 2021686 : switch (TREE_CODE (_p1))
5980 : {
5981 1086 : case PLUS_EXPR:
5982 1086 : {
5983 1086 : tree _q50 = TREE_OPERAND (_p1, 0);
5984 1086 : tree _q51 = TREE_OPERAND (_p1, 1);
5985 1086 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5986 : {
5987 368 : {
5988 368 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
5989 368 : tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
5990 368 : if (res) return res;
5991 : }
5992 : }
5993 718 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5994 : {
5995 27 : {
5996 27 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q50, _q20 };
5997 27 : tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
5998 27 : if (res) return res;
5999 : }
6000 : }
6001 : break;
6002 : }
6003 513 : case MINUS_EXPR:
6004 513 : {
6005 513 : tree _q50 = TREE_OPERAND (_p1, 0);
6006 513 : tree _q51 = TREE_OPERAND (_p1, 1);
6007 513 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6008 : {
6009 1 : {
6010 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6011 1 : tree res = generic_simplify_66 (loc, type, _p0, _p1, captures);
6012 1 : if (res) return res;
6013 : }
6014 : }
6015 512 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6016 : {
6017 9 : {
6018 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
6019 9 : tree res = generic_simplify_66 (loc, type, _p0, _p1, captures);
6020 9 : if (res) return res;
6021 : }
6022 : }
6023 : break;
6024 : }
6025 2021281 : default:;
6026 : }
6027 2021281 : if (CONSTANT_CLASS_P (_q21))
6028 : {
6029 125706 : if (CONSTANT_CLASS_P (_p1))
6030 : {
6031 86262 : {
6032 86262 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6033 86262 : tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR);
6034 86262 : if (res) return res;
6035 : }
6036 : }
6037 : }
6038 1935211 : if (CONSTANT_CLASS_P (_q20))
6039 : {
6040 404549 : if (CONSTANT_CLASS_P (_p1))
6041 : {
6042 236006 : {
6043 236006 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6044 236006 : tree res = generic_simplify_64 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6045 236006 : if (res) return res;
6046 : }
6047 : }
6048 : }
6049 : break;
6050 : }
6051 478 : case POINTER_DIFF_EXPR:
6052 478 : {
6053 478 : tree _q20 = TREE_OPERAND (_p0, 0);
6054 478 : tree _q21 = TREE_OPERAND (_p0, 1);
6055 478 : switch (TREE_CODE (_p1))
6056 : {
6057 7 : case POINTER_DIFF_EXPR:
6058 7 : {
6059 7 : tree _q50 = TREE_OPERAND (_p1, 0);
6060 7 : tree _q51 = TREE_OPERAND (_p1, 1);
6061 7 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6062 : {
6063 7 : {
6064 7 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6065 7 : tree res = generic_simplify_67 (loc, type, _p0, _p1, captures);
6066 7 : if (res) return res;
6067 : }
6068 : }
6069 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6070 : {
6071 0 : {
6072 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
6073 0 : tree res = generic_simplify_67 (loc, type, _p0, _p1, captures);
6074 0 : if (res) return res;
6075 : }
6076 : }
6077 : break;
6078 : }
6079 : default:;
6080 : }
6081 : break;
6082 : }
6083 18104617 : CASE_CONVERT:
6084 18104617 : {
6085 18104617 : tree _q20 = TREE_OPERAND (_p0, 0);
6086 18104617 : switch (TREE_CODE (_p1))
6087 : {
6088 2937314 : CASE_CONVERT:
6089 2937314 : {
6090 2937314 : tree _q40 = TREE_OPERAND (_p1, 0);
6091 2937314 : {
6092 2937314 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6093 2937314 : tree res = generic_simplify_68 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6094 2937314 : if (res) return res;
6095 : }
6096 2937169 : break;
6097 : }
6098 18104472 : default:;
6099 : }
6100 18104472 : switch (TREE_CODE (_q20))
6101 : {
6102 123573 : case BIT_NOT_EXPR:
6103 123573 : {
6104 123573 : tree _q30 = TREE_OPERAND (_q20, 0);
6105 123573 : switch (TREE_CODE (_p1))
6106 : {
6107 193 : CASE_CONVERT:
6108 193 : {
6109 193 : tree _q50 = TREE_OPERAND (_p1, 0);
6110 193 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
6111 : {
6112 0 : {
6113 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
6114 0 : tree res = generic_simplify_69 (loc, type, _p0, _p1, captures);
6115 0 : if (res) return res;
6116 : }
6117 : }
6118 : break;
6119 : }
6120 : default:;
6121 : }
6122 : break;
6123 : }
6124 18104472 : default:;
6125 : }
6126 18104472 : switch (TREE_CODE (_p1))
6127 : {
6128 2937169 : CASE_CONVERT:
6129 2937169 : {
6130 2937169 : tree _q40 = TREE_OPERAND (_p1, 0);
6131 2937169 : switch (TREE_CODE (_q40))
6132 : {
6133 503 : case BIT_NOT_EXPR:
6134 503 : {
6135 503 : tree _q50 = TREE_OPERAND (_q40, 0);
6136 503 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6137 : {
6138 0 : {
6139 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
6140 0 : tree res = generic_simplify_69 (loc, type, _p0, _p1, captures);
6141 0 : if (res) return res;
6142 : }
6143 : }
6144 : break;
6145 : }
6146 : default:;
6147 : }
6148 : break;
6149 : }
6150 : default:;
6151 : }
6152 : break;
6153 : }
6154 322710 : case BIT_NOT_EXPR:
6155 322710 : {
6156 322710 : tree _q20 = TREE_OPERAND (_p0, 0);
6157 322710 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6158 : {
6159 540 : {
6160 540 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
6161 540 : tree res = generic_simplify_69 (loc, type, _p0, _p1, captures);
6162 540 : if (res) return res;
6163 : }
6164 : }
6165 322170 : if (integer_each_onep (_p1))
6166 : {
6167 2696 : {
6168 2696 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
6169 2696 : tree res = generic_simplify_70 (loc, type, _p0, _p1, captures);
6170 2696 : if (res) return res;
6171 : }
6172 : }
6173 : break;
6174 : }
6175 67354552 : default:;
6176 : }
6177 67354552 : switch (TREE_CODE (_p1))
6178 : {
6179 40297 : case BIT_NOT_EXPR:
6180 40297 : {
6181 40297 : tree _q30 = TREE_OPERAND (_p1, 0);
6182 40297 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6183 : {
6184 0 : {
6185 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6186 0 : tree res = generic_simplify_69 (loc, type, _p0, _p1, captures);
6187 0 : if (res) return res;
6188 : }
6189 : }
6190 : break;
6191 : }
6192 67354552 : default:;
6193 : }
6194 67354552 : switch (TREE_CODE (_p0))
6195 : {
6196 18104472 : CASE_CONVERT:
6197 18104472 : {
6198 18104472 : tree _q20 = TREE_OPERAND (_p0, 0);
6199 18104472 : switch (TREE_CODE (_q20))
6200 : {
6201 123573 : case BIT_NOT_EXPR:
6202 123573 : {
6203 123573 : tree _q30 = TREE_OPERAND (_q20, 0);
6204 123573 : if (integer_each_onep (_p1))
6205 : {
6206 120046 : {
6207 120046 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
6208 120046 : tree res = generic_simplify_70 (loc, type, _p0, _p1, captures);
6209 120046 : if (res) return res;
6210 : }
6211 : }
6212 : break;
6213 : }
6214 : default:;
6215 : }
6216 : break;
6217 : }
6218 13380368 : case MULT_EXPR:
6219 13380368 : {
6220 13380368 : tree _q20 = TREE_OPERAND (_p0, 0);
6221 13380368 : tree _q21 = TREE_OPERAND (_p0, 1);
6222 13380368 : switch (TREE_CODE (_p1))
6223 : {
6224 3343874 : case MULT_EXPR:
6225 3343874 : {
6226 3343874 : tree _q50 = TREE_OPERAND (_p1, 0);
6227 3343874 : tree _q51 = TREE_OPERAND (_p1, 1);
6228 3343874 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6229 : {
6230 791706 : {
6231 791706 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
6232 791706 : tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6233 791706 : if (res) return res;
6234 : }
6235 : }
6236 3339505 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6237 : {
6238 22 : {
6239 22 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
6240 22 : tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6241 22 : if (res) return res;
6242 : }
6243 : }
6244 3339499 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6245 : {
6246 242 : {
6247 242 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
6248 242 : tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6249 242 : if (res) return res;
6250 : }
6251 : }
6252 3339327 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6253 : {
6254 1271243 : {
6255 1271243 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
6256 1271243 : tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6257 1271243 : if (res) return res;
6258 : }
6259 : }
6260 : break;
6261 : }
6262 : default:;
6263 : }
6264 : break;
6265 : }
6266 65959813 : default:;
6267 : }
6268 65959813 : switch (TREE_CODE (_p1))
6269 : {
6270 3490911 : case MULT_EXPR:
6271 3490911 : {
6272 3490911 : tree _q30 = TREE_OPERAND (_p1, 0);
6273 3490911 : tree _q31 = TREE_OPERAND (_p1, 1);
6274 3490911 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6275 : {
6276 3846 : {
6277 3846 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
6278 3846 : tree res = generic_simplify_72 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6279 3846 : if (res) return res;
6280 : }
6281 : }
6282 3487112 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6283 : {
6284 0 : {
6285 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
6286 0 : tree res = generic_simplify_72 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6287 0 : if (res) return res;
6288 : }
6289 : }
6290 : break;
6291 : }
6292 65956014 : default:;
6293 : }
6294 65956014 : switch (TREE_CODE (_p0))
6295 : {
6296 12104820 : case MULT_EXPR:
6297 12104820 : {
6298 12104820 : tree _q20 = TREE_OPERAND (_p0, 0);
6299 12104820 : tree _q21 = TREE_OPERAND (_p0, 1);
6300 12104820 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6301 : {
6302 33277 : {
6303 33277 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
6304 33277 : tree res = generic_simplify_73 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6305 33277 : if (res) return res;
6306 : }
6307 : }
6308 12072194 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6309 : {
6310 325097 : {
6311 325097 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
6312 325097 : tree res = generic_simplify_73 (loc, type, _p0, _p1, captures, PLUS_EXPR);
6313 325097 : if (res) return res;
6314 : }
6315 : }
6316 11747715 : if (integer_nonzerop (_q20))
6317 : {
6318 102 : switch (TREE_CODE (_p1))
6319 : {
6320 50 : case INTEGER_CST:
6321 50 : {
6322 50 : {
6323 50 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
6324 50 : tree res = generic_simplify_74 (loc, type, _p0, _p1, captures);
6325 50 : if (res) return res;
6326 : }
6327 50 : break;
6328 : }
6329 : default:;
6330 : }
6331 : }
6332 11747715 : if (integer_nonzerop (_q21))
6333 : {
6334 7824584 : switch (TREE_CODE (_p1))
6335 : {
6336 3837697 : case INTEGER_CST:
6337 3837697 : {
6338 3837697 : {
6339 3837697 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
6340 3837697 : tree res = generic_simplify_74 (loc, type, _p0, _p1, captures);
6341 3837697 : if (res) return res;
6342 : }
6343 3378695 : break;
6344 : }
6345 : default:;
6346 : }
6347 : }
6348 11288713 : switch (TREE_CODE (_q20))
6349 : {
6350 210217 : case MINUS_EXPR:
6351 210217 : {
6352 210217 : tree _q30 = TREE_OPERAND (_q20, 0);
6353 210217 : tree _q31 = TREE_OPERAND (_q20, 1);
6354 210217 : if (tree_zero_one_valued_p (_q21))
6355 : {
6356 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
6357 : {
6358 0 : {
6359 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q21 };
6360 0 : tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
6361 0 : if (res) return res;
6362 : }
6363 : }
6364 : }
6365 : break;
6366 : }
6367 11288713 : default:;
6368 : }
6369 11288713 : if (tree_zero_one_valued_p (_q20))
6370 : {
6371 41028 : switch (TREE_CODE (_q21))
6372 : {
6373 9 : case MINUS_EXPR:
6374 9 : {
6375 9 : tree _q40 = TREE_OPERAND (_q21, 0);
6376 9 : tree _q41 = TREE_OPERAND (_q21, 1);
6377 9 : if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q41, 0) && types_match (_p1, _q41)))
6378 : {
6379 9 : {
6380 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
6381 9 : tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
6382 9 : if (res) return res;
6383 : }
6384 : }
6385 : break;
6386 : }
6387 : default:;
6388 : }
6389 : }
6390 : break;
6391 : }
6392 3104 : case MIN_EXPR:
6393 3104 : {
6394 3104 : tree _q20 = TREE_OPERAND (_p0, 0);
6395 3104 : tree _q21 = TREE_OPERAND (_p0, 1);
6396 3104 : switch (TREE_CODE (_p1))
6397 : {
6398 0 : case MAX_EXPR:
6399 0 : {
6400 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6401 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6402 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6403 : {
6404 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6405 : {
6406 0 : {
6407 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6408 0 : if (!HONOR_NANS (captures[0])
6409 : )
6410 : {
6411 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1252;
6412 0 : {
6413 0 : tree res_op0;
6414 0 : res_op0 = captures[0];
6415 0 : tree res_op1;
6416 0 : res_op1 = captures[1];
6417 0 : tree _r;
6418 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
6419 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
6420 0 : return _r;
6421 : }
6422 0 : next_after_fail1252:;
6423 : }
6424 : }
6425 : }
6426 : }
6427 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6428 : {
6429 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6430 : {
6431 0 : {
6432 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6433 0 : if (!HONOR_NANS (captures[0])
6434 : )
6435 : {
6436 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1253;
6437 0 : {
6438 0 : tree res_op0;
6439 0 : res_op0 = captures[0];
6440 0 : tree res_op1;
6441 0 : res_op1 = captures[1];
6442 0 : tree _r;
6443 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
6444 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
6445 0 : return _r;
6446 : }
6447 0 : next_after_fail1253:;
6448 : }
6449 : }
6450 : }
6451 : }
6452 : break;
6453 : }
6454 : default:;
6455 : }
6456 : break;
6457 : }
6458 12144 : case MAX_EXPR:
6459 12144 : {
6460 12144 : tree _q20 = TREE_OPERAND (_p0, 0);
6461 12144 : tree _q21 = TREE_OPERAND (_p0, 1);
6462 12144 : switch (TREE_CODE (_p1))
6463 : {
6464 0 : case MIN_EXPR:
6465 0 : {
6466 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6467 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6468 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6469 : {
6470 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6471 : {
6472 0 : {
6473 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6474 0 : if (!HONOR_NANS (captures[0])
6475 : )
6476 : {
6477 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1254;
6478 0 : {
6479 0 : tree res_op0;
6480 0 : res_op0 = captures[0];
6481 0 : tree res_op1;
6482 0 : res_op1 = captures[1];
6483 0 : tree _r;
6484 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
6485 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
6486 0 : return _r;
6487 : }
6488 0 : next_after_fail1254:;
6489 : }
6490 : }
6491 : }
6492 : }
6493 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6494 : {
6495 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6496 : {
6497 0 : {
6498 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6499 0 : if (!HONOR_NANS (captures[0])
6500 : )
6501 : {
6502 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1255;
6503 0 : {
6504 0 : tree res_op0;
6505 0 : res_op0 = captures[0];
6506 0 : tree res_op1;
6507 0 : res_op1 = captures[1];
6508 0 : tree _r;
6509 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
6510 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
6511 0 : return _r;
6512 : }
6513 0 : next_after_fail1255:;
6514 : }
6515 : }
6516 : }
6517 : }
6518 : break;
6519 : }
6520 : default:;
6521 : }
6522 : break;
6523 : }
6524 65139905 : default:;
6525 : }
6526 65139905 : switch (TREE_CODE (_p1))
6527 : {
6528 3487048 : case MULT_EXPR:
6529 3487048 : {
6530 3487048 : tree _q30 = TREE_OPERAND (_p1, 0);
6531 3487048 : tree _q31 = TREE_OPERAND (_p1, 1);
6532 3487048 : switch (TREE_CODE (_q30))
6533 : {
6534 151614 : case MINUS_EXPR:
6535 151614 : {
6536 151614 : tree _q40 = TREE_OPERAND (_q30, 0);
6537 151614 : tree _q41 = TREE_OPERAND (_q30, 1);
6538 151614 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
6539 : {
6540 16 : if (tree_zero_one_valued_p (_q31))
6541 : {
6542 0 : {
6543 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q31 };
6544 0 : tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
6545 0 : if (res) return res;
6546 : }
6547 : }
6548 : }
6549 : break;
6550 : }
6551 3487048 : default:;
6552 : }
6553 3487048 : if (tree_zero_one_valued_p (_q30))
6554 : {
6555 13778 : switch (TREE_CODE (_q31))
6556 : {
6557 0 : case MINUS_EXPR:
6558 0 : {
6559 0 : tree _q50 = TREE_OPERAND (_q31, 0);
6560 0 : tree _q51 = TREE_OPERAND (_q31, 1);
6561 0 : if ((_q51 == _p0 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _p0, 0) && types_match (_q51, _p0)))
6562 : {
6563 0 : {
6564 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q50, _q30 };
6565 0 : tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
6566 0 : if (res) return res;
6567 : }
6568 : }
6569 : break;
6570 : }
6571 : default:;
6572 : }
6573 : }
6574 : break;
6575 : }
6576 65139905 : default:;
6577 : }
6578 65139905 : switch (TREE_CODE (_p0))
6579 : {
6580 11288711 : case MULT_EXPR:
6581 11288711 : {
6582 11288711 : tree _q20 = TREE_OPERAND (_p0, 0);
6583 11288711 : tree _q21 = TREE_OPERAND (_p0, 1);
6584 11288711 : switch (TREE_CODE (_q20))
6585 : {
6586 16117 : case TRUNC_DIV_EXPR:
6587 16117 : {
6588 16117 : tree _q30 = TREE_OPERAND (_q20, 0);
6589 16117 : tree _q31 = TREE_OPERAND (_q20, 1);
6590 16117 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
6591 : {
6592 2338 : switch (TREE_CODE (_p1))
6593 : {
6594 2 : case TRUNC_MOD_EXPR:
6595 2 : {
6596 2 : tree _q70 = TREE_OPERAND (_p1, 0);
6597 2 : tree _q71 = TREE_OPERAND (_p1, 1);
6598 2 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
6599 : {
6600 2 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
6601 : {
6602 2 : {
6603 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
6604 2 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
6605 2 : if (res) return res;
6606 : }
6607 : }
6608 : }
6609 : break;
6610 : }
6611 : default:;
6612 : }
6613 : }
6614 : break;
6615 : }
6616 0 : case CEIL_DIV_EXPR:
6617 0 : {
6618 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6619 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6620 0 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
6621 : {
6622 0 : switch (TREE_CODE (_p1))
6623 : {
6624 0 : case CEIL_MOD_EXPR:
6625 0 : {
6626 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6627 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6628 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
6629 : {
6630 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
6631 : {
6632 0 : {
6633 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
6634 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
6635 0 : if (res) return res;
6636 : }
6637 : }
6638 : }
6639 : break;
6640 : }
6641 : default:;
6642 : }
6643 : }
6644 : break;
6645 : }
6646 0 : case FLOOR_DIV_EXPR:
6647 0 : {
6648 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6649 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6650 0 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
6651 : {
6652 0 : switch (TREE_CODE (_p1))
6653 : {
6654 0 : case FLOOR_MOD_EXPR:
6655 0 : {
6656 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6657 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6658 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
6659 : {
6660 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
6661 : {
6662 0 : {
6663 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
6664 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
6665 0 : if (res) return res;
6666 : }
6667 : }
6668 : }
6669 : break;
6670 : }
6671 : default:;
6672 : }
6673 : }
6674 : break;
6675 : }
6676 0 : case ROUND_DIV_EXPR:
6677 0 : {
6678 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6679 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6680 0 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
6681 : {
6682 0 : switch (TREE_CODE (_p1))
6683 : {
6684 0 : case ROUND_MOD_EXPR:
6685 0 : {
6686 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6687 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6688 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
6689 : {
6690 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
6691 : {
6692 0 : {
6693 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
6694 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
6695 0 : if (res) return res;
6696 : }
6697 : }
6698 : }
6699 : break;
6700 : }
6701 : default:;
6702 : }
6703 : }
6704 : break;
6705 : }
6706 11288709 : default:;
6707 : }
6708 11288709 : switch (TREE_CODE (_q21))
6709 : {
6710 6 : case TRUNC_DIV_EXPR:
6711 6 : {
6712 6 : tree _q40 = TREE_OPERAND (_q21, 0);
6713 6 : tree _q41 = TREE_OPERAND (_q21, 1);
6714 6 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
6715 : {
6716 0 : switch (TREE_CODE (_p1))
6717 : {
6718 0 : case TRUNC_MOD_EXPR:
6719 0 : {
6720 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6721 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6722 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
6723 : {
6724 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
6725 : {
6726 0 : {
6727 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6728 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
6729 0 : if (res) return res;
6730 : }
6731 : }
6732 : }
6733 : break;
6734 : }
6735 : default:;
6736 : }
6737 : }
6738 : break;
6739 : }
6740 4 : case CEIL_DIV_EXPR:
6741 4 : {
6742 4 : tree _q40 = TREE_OPERAND (_q21, 0);
6743 4 : tree _q41 = TREE_OPERAND (_q21, 1);
6744 4 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
6745 : {
6746 0 : switch (TREE_CODE (_p1))
6747 : {
6748 0 : case CEIL_MOD_EXPR:
6749 0 : {
6750 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6751 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6752 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
6753 : {
6754 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
6755 : {
6756 0 : {
6757 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6758 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
6759 0 : if (res) return res;
6760 : }
6761 : }
6762 : }
6763 : break;
6764 : }
6765 : default:;
6766 : }
6767 : }
6768 : break;
6769 : }
6770 0 : case FLOOR_DIV_EXPR:
6771 0 : {
6772 0 : tree _q40 = TREE_OPERAND (_q21, 0);
6773 0 : tree _q41 = TREE_OPERAND (_q21, 1);
6774 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
6775 : {
6776 0 : switch (TREE_CODE (_p1))
6777 : {
6778 0 : case FLOOR_MOD_EXPR:
6779 0 : {
6780 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6781 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6782 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
6783 : {
6784 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
6785 : {
6786 0 : {
6787 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6788 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
6789 0 : if (res) return res;
6790 : }
6791 : }
6792 : }
6793 : break;
6794 : }
6795 : default:;
6796 : }
6797 : }
6798 : break;
6799 : }
6800 0 : case ROUND_DIV_EXPR:
6801 0 : {
6802 0 : tree _q40 = TREE_OPERAND (_q21, 0);
6803 0 : tree _q41 = TREE_OPERAND (_q21, 1);
6804 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
6805 : {
6806 0 : switch (TREE_CODE (_p1))
6807 : {
6808 0 : case ROUND_MOD_EXPR:
6809 0 : {
6810 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6811 0 : tree _q71 = TREE_OPERAND (_p1, 1);
6812 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
6813 : {
6814 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
6815 : {
6816 0 : {
6817 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6818 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
6819 0 : if (res) return res;
6820 : }
6821 : }
6822 : }
6823 : break;
6824 : }
6825 : default:;
6826 : }
6827 : }
6828 : break;
6829 : }
6830 : default:;
6831 : }
6832 : break;
6833 : }
6834 31127 : case TRUNC_MOD_EXPR:
6835 31127 : {
6836 31127 : tree _q20 = TREE_OPERAND (_p0, 0);
6837 31127 : tree _q21 = TREE_OPERAND (_p0, 1);
6838 31127 : switch (TREE_CODE (_p1))
6839 : {
6840 119 : case MULT_EXPR:
6841 119 : {
6842 119 : tree _q50 = TREE_OPERAND (_p1, 0);
6843 119 : tree _q51 = TREE_OPERAND (_p1, 1);
6844 119 : switch (TREE_CODE (_q50))
6845 : {
6846 106 : case TRUNC_DIV_EXPR:
6847 106 : {
6848 106 : tree _q60 = TREE_OPERAND (_q50, 0);
6849 106 : tree _q61 = TREE_OPERAND (_q50, 1);
6850 106 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6851 : {
6852 106 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
6853 : {
6854 94 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6855 : {
6856 0 : {
6857 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6858 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
6859 0 : if (res) return res;
6860 : }
6861 : }
6862 : }
6863 : }
6864 : break;
6865 : }
6866 119 : default:;
6867 : }
6868 119 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6869 : {
6870 0 : switch (TREE_CODE (_q51))
6871 : {
6872 0 : case TRUNC_DIV_EXPR:
6873 0 : {
6874 0 : tree _q70 = TREE_OPERAND (_q51, 0);
6875 0 : tree _q71 = TREE_OPERAND (_q51, 1);
6876 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
6877 : {
6878 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
6879 : {
6880 0 : {
6881 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6882 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
6883 0 : if (res) return res;
6884 : }
6885 : }
6886 : }
6887 : break;
6888 : }
6889 : default:;
6890 : }
6891 : }
6892 : break;
6893 : }
6894 : default:;
6895 : }
6896 : break;
6897 : }
6898 0 : case CEIL_MOD_EXPR:
6899 0 : {
6900 0 : tree _q20 = TREE_OPERAND (_p0, 0);
6901 0 : tree _q21 = TREE_OPERAND (_p0, 1);
6902 0 : switch (TREE_CODE (_p1))
6903 : {
6904 0 : case MULT_EXPR:
6905 0 : {
6906 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6907 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6908 0 : switch (TREE_CODE (_q50))
6909 : {
6910 0 : case CEIL_DIV_EXPR:
6911 0 : {
6912 0 : tree _q60 = TREE_OPERAND (_q50, 0);
6913 0 : tree _q61 = TREE_OPERAND (_q50, 1);
6914 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6915 : {
6916 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
6917 : {
6918 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6919 : {
6920 0 : {
6921 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6922 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
6923 0 : if (res) return res;
6924 : }
6925 : }
6926 : }
6927 : }
6928 : break;
6929 : }
6930 0 : default:;
6931 : }
6932 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6933 : {
6934 0 : switch (TREE_CODE (_q51))
6935 : {
6936 0 : case CEIL_DIV_EXPR:
6937 0 : {
6938 0 : tree _q70 = TREE_OPERAND (_q51, 0);
6939 0 : tree _q71 = TREE_OPERAND (_q51, 1);
6940 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
6941 : {
6942 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
6943 : {
6944 0 : {
6945 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6946 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
6947 0 : if (res) return res;
6948 : }
6949 : }
6950 : }
6951 : break;
6952 : }
6953 : default:;
6954 : }
6955 : }
6956 : break;
6957 : }
6958 : default:;
6959 : }
6960 : break;
6961 : }
6962 126 : case FLOOR_MOD_EXPR:
6963 126 : {
6964 126 : tree _q20 = TREE_OPERAND (_p0, 0);
6965 126 : tree _q21 = TREE_OPERAND (_p0, 1);
6966 126 : switch (TREE_CODE (_p1))
6967 : {
6968 0 : case MULT_EXPR:
6969 0 : {
6970 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6971 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6972 0 : switch (TREE_CODE (_q50))
6973 : {
6974 0 : case FLOOR_DIV_EXPR:
6975 0 : {
6976 0 : tree _q60 = TREE_OPERAND (_q50, 0);
6977 0 : tree _q61 = TREE_OPERAND (_q50, 1);
6978 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6979 : {
6980 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
6981 : {
6982 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6983 : {
6984 0 : {
6985 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6986 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
6987 0 : if (res) return res;
6988 : }
6989 : }
6990 : }
6991 : }
6992 : break;
6993 : }
6994 0 : default:;
6995 : }
6996 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6997 : {
6998 0 : switch (TREE_CODE (_q51))
6999 : {
7000 0 : case FLOOR_DIV_EXPR:
7001 0 : {
7002 0 : tree _q70 = TREE_OPERAND (_q51, 0);
7003 0 : tree _q71 = TREE_OPERAND (_q51, 1);
7004 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
7005 : {
7006 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
7007 : {
7008 0 : {
7009 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7010 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
7011 0 : if (res) return res;
7012 : }
7013 : }
7014 : }
7015 : break;
7016 : }
7017 : default:;
7018 : }
7019 : }
7020 : break;
7021 : }
7022 : default:;
7023 : }
7024 : break;
7025 : }
7026 0 : case ROUND_MOD_EXPR:
7027 0 : {
7028 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7029 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7030 0 : switch (TREE_CODE (_p1))
7031 : {
7032 0 : case MULT_EXPR:
7033 0 : {
7034 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7035 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7036 0 : switch (TREE_CODE (_q50))
7037 : {
7038 0 : case ROUND_DIV_EXPR:
7039 0 : {
7040 0 : tree _q60 = TREE_OPERAND (_q50, 0);
7041 0 : tree _q61 = TREE_OPERAND (_q50, 1);
7042 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7043 : {
7044 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
7045 : {
7046 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7047 : {
7048 0 : {
7049 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7050 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
7051 0 : if (res) return res;
7052 : }
7053 : }
7054 : }
7055 : }
7056 : break;
7057 : }
7058 0 : default:;
7059 : }
7060 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7061 : {
7062 0 : switch (TREE_CODE (_q51))
7063 : {
7064 0 : case ROUND_DIV_EXPR:
7065 0 : {
7066 0 : tree _q70 = TREE_OPERAND (_q51, 0);
7067 0 : tree _q71 = TREE_OPERAND (_q51, 1);
7068 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
7069 : {
7070 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
7071 : {
7072 0 : {
7073 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7074 0 : tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
7075 0 : if (res) return res;
7076 : }
7077 : }
7078 : }
7079 : break;
7080 : }
7081 : default:;
7082 : }
7083 : }
7084 : break;
7085 : }
7086 : default:;
7087 : }
7088 : break;
7089 : }
7090 65139903 : default:;
7091 : }
7092 65139903 : switch (TREE_CODE (_p1))
7093 : {
7094 3181371 : case REAL_CST:
7095 3181371 : {
7096 3181371 : {
7097 3181371 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
7098 3181371 : if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
7099 : )
7100 : {
7101 117872 : {
7102 117872 : tree tem = const_unop (NEGATE_EXPR, type, captures[1]);
7103 117872 : if (!TREE_OVERFLOW (tem) || !flag_trapping_math
7104 : )
7105 : {
7106 117872 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1256;
7107 117872 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1256;
7108 117872 : {
7109 117872 : tree res_op0;
7110 117872 : res_op0 = captures[0];
7111 117872 : tree res_op1;
7112 117872 : res_op1 = tem;
7113 117872 : tree _r;
7114 117872 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
7115 117872 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
7116 117872 : return _r;
7117 : }
7118 3063499 : next_after_fail1256:;
7119 : }
7120 : }
7121 : }
7122 : }
7123 3063499 : break;
7124 : }
7125 65022031 : default:;
7126 : }
7127 65022031 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
7128 : {
7129 1585654 : {
7130 1585654 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
7131 1585654 : if (SCALAR_FLOAT_TYPE_P (type)
7132 : )
7133 : {
7134 729 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1257;
7135 729 : {
7136 729 : tree res_op0;
7137 729 : res_op0 = captures[0];
7138 729 : tree res_op1;
7139 729 : res_op1 = build_real (type, dconst2);
7140 729 : tree _r;
7141 729 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
7142 729 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 905, __FILE__, __LINE__, true);
7143 729 : return _r;
7144 : }
7145 0 : next_after_fail1257:;
7146 : }
7147 : else
7148 : {
7149 1584925 : if (INTEGRAL_TYPE_P (type)
7150 : )
7151 : {
7152 1584819 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1258;
7153 1584819 : {
7154 1584819 : tree res_op0;
7155 1584819 : res_op0 = captures[0];
7156 1584819 : tree res_op1;
7157 1584819 : res_op1 = build_int_cst (type, 2);
7158 1584819 : tree _r;
7159 1584819 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
7160 1584819 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 906, __FILE__, __LINE__, true);
7161 1584819 : return _r;
7162 : }
7163 0 : next_after_fail1258:;
7164 : }
7165 : }
7166 : }
7167 : }
7168 63436483 : switch (TREE_CODE (_p0))
7169 : {
7170 144 : case VEC_COND_EXPR:
7171 144 : {
7172 144 : tree _q20 = TREE_OPERAND (_p0, 0);
7173 144 : tree _q21 = TREE_OPERAND (_p0, 1);
7174 144 : tree _q22 = TREE_OPERAND (_p0, 2);
7175 144 : switch (TREE_CODE (_p1))
7176 : {
7177 48 : case VEC_COND_EXPR:
7178 48 : {
7179 48 : tree _q60 = TREE_OPERAND (_p1, 0);
7180 48 : tree _q61 = TREE_OPERAND (_p1, 1);
7181 48 : tree _q62 = TREE_OPERAND (_p1, 2);
7182 48 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7183 : {
7184 24 : {
7185 24 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
7186 24 : if (VECTOR_TYPE_P (type)
7187 24 : && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
7188 : || types_match (type, TREE_TYPE (captures[2]))
7189 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7190 : || (optimize_vectors_before_lowering_p ()
7191 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7192 : )
7193 : {
7194 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1259;
7195 24 : {
7196 24 : tree res_op0;
7197 24 : res_op0 = captures[1];
7198 24 : tree res_op1;
7199 24 : {
7200 24 : tree _o1[2], _r1;
7201 24 : _o1[0] = captures[2];
7202 24 : _o1[1] = captures[5];
7203 24 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
7204 24 : if (EXPR_P (_r1))
7205 0 : goto next_after_fail1259;
7206 24 : res_op1 = _r1;
7207 : }
7208 24 : tree res_op2;
7209 24 : {
7210 24 : tree _o1[2], _r1;
7211 24 : _o1[0] = captures[3];
7212 24 : _o1[1] = captures[6];
7213 24 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
7214 24 : if (EXPR_P (_r1))
7215 0 : goto next_after_fail1259;
7216 24 : res_op2 = _r1;
7217 : }
7218 24 : tree _r;
7219 24 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7220 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
7221 24 : return _r;
7222 : }
7223 0 : next_after_fail1259:;
7224 : }
7225 : }
7226 : }
7227 : break;
7228 : }
7229 120 : default:;
7230 : }
7231 120 : {
7232 120 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
7233 120 : if (VECTOR_TYPE_P (type)
7234 120 : && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
7235 : || types_match (type, TREE_TYPE (captures[2]))
7236 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7237 : || (optimize_vectors_before_lowering_p ()
7238 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7239 : )
7240 : {
7241 120 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1260;
7242 120 : {
7243 120 : if (! tree_invariant_p (captures[4])) goto next_after_fail1260;
7244 26 : tree res_op0;
7245 26 : res_op0 = captures[1];
7246 26 : tree res_op1;
7247 26 : {
7248 26 : tree _o1[2], _r1;
7249 26 : _o1[0] = captures[2];
7250 26 : _o1[1] = unshare_expr (captures[4]);
7251 26 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
7252 26 : if (EXPR_P (_r1))
7253 0 : goto next_after_fail1260;
7254 26 : res_op1 = _r1;
7255 : }
7256 26 : tree res_op2;
7257 26 : {
7258 26 : tree _o1[2], _r1;
7259 26 : _o1[0] = captures[3];
7260 26 : _o1[1] = captures[4];
7261 26 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
7262 26 : if (EXPR_P (_r1))
7263 0 : goto next_after_fail1260;
7264 26 : res_op2 = _r1;
7265 : }
7266 26 : tree _r;
7267 26 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7268 26 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
7269 26 : return _r;
7270 : }
7271 94 : next_after_fail1260:;
7272 : }
7273 : }
7274 94 : if (integer_each_onep (_q21))
7275 : {
7276 0 : if (integer_zerop (_q22))
7277 : {
7278 0 : {
7279 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p0, _q20, _q21, _q22 };
7280 0 : tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
7281 0 : if (res) return res;
7282 : }
7283 : }
7284 : }
7285 : break;
7286 : }
7287 63436433 : default:;
7288 : }
7289 63436433 : switch (TREE_CODE (_p1))
7290 : {
7291 40 : case VEC_COND_EXPR:
7292 40 : {
7293 40 : tree _q30 = TREE_OPERAND (_p1, 0);
7294 40 : tree _q31 = TREE_OPERAND (_p1, 1);
7295 40 : tree _q32 = TREE_OPERAND (_p1, 2);
7296 40 : {
7297 40 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
7298 40 : if (VECTOR_TYPE_P (type)
7299 40 : && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
7300 : || types_match (type, TREE_TYPE (captures[3]))
7301 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
7302 : || (optimize_vectors_before_lowering_p ()
7303 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
7304 : )
7305 : {
7306 40 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1261;
7307 40 : {
7308 40 : if (! tree_invariant_p (captures[0])) goto next_after_fail1261;
7309 0 : tree res_op0;
7310 0 : res_op0 = captures[2];
7311 0 : tree res_op1;
7312 0 : {
7313 0 : tree _o1[2], _r1;
7314 0 : _o1[0] = unshare_expr (captures[0]);
7315 0 : _o1[1] = captures[3];
7316 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
7317 0 : if (EXPR_P (_r1))
7318 0 : goto next_after_fail1261;
7319 0 : res_op1 = _r1;
7320 : }
7321 0 : tree res_op2;
7322 0 : {
7323 0 : tree _o1[2], _r1;
7324 0 : _o1[0] = captures[0];
7325 0 : _o1[1] = captures[4];
7326 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
7327 0 : if (EXPR_P (_r1))
7328 0 : goto next_after_fail1261;
7329 0 : res_op2 = _r1;
7330 : }
7331 0 : tree _r;
7332 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7333 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 901, __FILE__, __LINE__, true);
7334 0 : return _r;
7335 : }
7336 40 : next_after_fail1261:;
7337 : }
7338 : }
7339 40 : break;
7340 : }
7341 332501 : case VIEW_CONVERT_EXPR:
7342 332501 : {
7343 332501 : tree _q30 = TREE_OPERAND (_p1, 0);
7344 332501 : switch (TREE_CODE (_q30))
7345 : {
7346 0 : case VEC_COND_EXPR:
7347 0 : {
7348 0 : tree _q40 = TREE_OPERAND (_q30, 0);
7349 0 : tree _q41 = TREE_OPERAND (_q30, 1);
7350 0 : tree _q42 = TREE_OPERAND (_q30, 2);
7351 0 : if (integer_each_onep (_q41))
7352 : {
7353 0 : if (integer_zerop (_q42))
7354 : {
7355 0 : {
7356 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _q42 };
7357 0 : tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
7358 0 : if (res) return res;
7359 : }
7360 : }
7361 : }
7362 : break;
7363 : }
7364 : default:;
7365 : }
7366 : break;
7367 : }
7368 63436433 : default:;
7369 : }
7370 63436433 : switch (TREE_CODE (_p0))
7371 : {
7372 321083 : case VIEW_CONVERT_EXPR:
7373 321083 : {
7374 321083 : tree _q20 = TREE_OPERAND (_p0, 0);
7375 321083 : switch (TREE_CODE (_q20))
7376 : {
7377 0 : case VEC_COND_EXPR:
7378 0 : {
7379 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7380 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7381 0 : tree _q32 = TREE_OPERAND (_q20, 2);
7382 0 : if (integer_each_onep (_q31))
7383 : {
7384 0 : if (integer_zerop (_q32))
7385 : {
7386 0 : {
7387 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q30, _q31, _q32 };
7388 0 : tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
7389 0 : if (res) return res;
7390 : }
7391 : }
7392 : }
7393 : break;
7394 : }
7395 : default:;
7396 : }
7397 : break;
7398 : }
7399 63436433 : default:;
7400 : }
7401 63436433 : switch (TREE_CODE (_p1))
7402 : {
7403 40 : case VEC_COND_EXPR:
7404 40 : {
7405 40 : tree _q30 = TREE_OPERAND (_p1, 0);
7406 40 : tree _q31 = TREE_OPERAND (_p1, 1);
7407 40 : tree _q32 = TREE_OPERAND (_p1, 2);
7408 40 : if (integer_each_onep (_q31))
7409 : {
7410 0 : if (integer_zerop (_q32))
7411 : {
7412 0 : {
7413 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
7414 0 : tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
7415 0 : if (res) return res;
7416 : }
7417 : }
7418 : }
7419 : break;
7420 : }
7421 63436433 : default:;
7422 : }
7423 63436433 : switch (TREE_CODE (_p0))
7424 : {
7425 17978654 : CASE_CONVERT:
7426 17978654 : {
7427 17978654 : tree _q20 = TREE_OPERAND (_p0, 0);
7428 17978654 : switch (TREE_CODE (_q20))
7429 : {
7430 0 : case LT_EXPR:
7431 0 : {
7432 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7433 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7434 0 : if (integer_minus_onep (_p1))
7435 : {
7436 0 : {
7437 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7438 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
7439 0 : if (res) return res;
7440 : }
7441 : }
7442 : break;
7443 : }
7444 0 : case LE_EXPR:
7445 0 : {
7446 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7447 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7448 0 : if (integer_minus_onep (_p1))
7449 : {
7450 0 : {
7451 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7452 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
7453 0 : if (res) return res;
7454 : }
7455 : }
7456 : break;
7457 : }
7458 78 : case EQ_EXPR:
7459 78 : {
7460 78 : tree _q30 = TREE_OPERAND (_q20, 0);
7461 78 : tree _q31 = TREE_OPERAND (_q20, 1);
7462 78 : if (integer_minus_onep (_p1))
7463 : {
7464 0 : {
7465 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7466 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
7467 0 : if (res) return res;
7468 : }
7469 : }
7470 : break;
7471 : }
7472 224 : case NE_EXPR:
7473 224 : {
7474 224 : tree _q30 = TREE_OPERAND (_q20, 0);
7475 224 : tree _q31 = TREE_OPERAND (_q20, 1);
7476 224 : if (integer_minus_onep (_p1))
7477 : {
7478 0 : {
7479 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7480 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
7481 0 : if (res) return res;
7482 : }
7483 : }
7484 : break;
7485 : }
7486 12 : case GE_EXPR:
7487 12 : {
7488 12 : tree _q30 = TREE_OPERAND (_q20, 0);
7489 12 : tree _q31 = TREE_OPERAND (_q20, 1);
7490 12 : if (integer_minus_onep (_p1))
7491 : {
7492 0 : {
7493 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7494 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
7495 0 : if (res) return res;
7496 : }
7497 : }
7498 : break;
7499 : }
7500 1 : case GT_EXPR:
7501 1 : {
7502 1 : tree _q30 = TREE_OPERAND (_q20, 0);
7503 1 : tree _q31 = TREE_OPERAND (_q20, 1);
7504 1 : if (integer_minus_onep (_p1))
7505 : {
7506 0 : {
7507 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7508 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
7509 0 : if (res) return res;
7510 : }
7511 : }
7512 : break;
7513 : }
7514 0 : case UNORDERED_EXPR:
7515 0 : {
7516 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7517 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7518 0 : if (integer_minus_onep (_p1))
7519 : {
7520 0 : {
7521 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7522 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
7523 0 : if (res) return res;
7524 : }
7525 : }
7526 : break;
7527 : }
7528 0 : case ORDERED_EXPR:
7529 0 : {
7530 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7531 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7532 0 : if (integer_minus_onep (_p1))
7533 : {
7534 0 : {
7535 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7536 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
7537 0 : if (res) return res;
7538 : }
7539 : }
7540 : break;
7541 : }
7542 0 : case UNLT_EXPR:
7543 0 : {
7544 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7545 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7546 0 : if (integer_minus_onep (_p1))
7547 : {
7548 0 : {
7549 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7550 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
7551 0 : if (res) return res;
7552 : }
7553 : }
7554 : break;
7555 : }
7556 0 : case UNLE_EXPR:
7557 0 : {
7558 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7559 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7560 0 : if (integer_minus_onep (_p1))
7561 : {
7562 0 : {
7563 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7564 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
7565 0 : if (res) return res;
7566 : }
7567 : }
7568 : break;
7569 : }
7570 0 : case UNGT_EXPR:
7571 0 : {
7572 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7573 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7574 0 : if (integer_minus_onep (_p1))
7575 : {
7576 0 : {
7577 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7578 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
7579 0 : if (res) return res;
7580 : }
7581 : }
7582 : break;
7583 : }
7584 0 : case UNGE_EXPR:
7585 0 : {
7586 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7587 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7588 0 : if (integer_minus_onep (_p1))
7589 : {
7590 0 : {
7591 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7592 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
7593 0 : if (res) return res;
7594 : }
7595 : }
7596 : break;
7597 : }
7598 0 : case UNEQ_EXPR:
7599 0 : {
7600 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7601 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7602 0 : if (integer_minus_onep (_p1))
7603 : {
7604 0 : {
7605 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7606 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
7607 0 : if (res) return res;
7608 : }
7609 : }
7610 : break;
7611 : }
7612 0 : case LTGT_EXPR:
7613 0 : {
7614 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7615 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7616 0 : if (integer_minus_onep (_p1))
7617 : {
7618 0 : {
7619 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7620 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
7621 0 : if (res) return res;
7622 : }
7623 : }
7624 : break;
7625 : }
7626 : default:;
7627 : }
7628 : break;
7629 : }
7630 155 : case LT_EXPR:
7631 155 : {
7632 155 : tree _q20 = TREE_OPERAND (_p0, 0);
7633 155 : tree _q21 = TREE_OPERAND (_p0, 1);
7634 155 : if (integer_minus_onep (_p1))
7635 : {
7636 0 : {
7637 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7638 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
7639 0 : if (res) return res;
7640 : }
7641 : }
7642 : break;
7643 : }
7644 64 : case LE_EXPR:
7645 64 : {
7646 64 : tree _q20 = TREE_OPERAND (_p0, 0);
7647 64 : tree _q21 = TREE_OPERAND (_p0, 1);
7648 64 : if (integer_minus_onep (_p1))
7649 : {
7650 0 : {
7651 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7652 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
7653 0 : if (res) return res;
7654 : }
7655 : }
7656 : break;
7657 : }
7658 19285 : case EQ_EXPR:
7659 19285 : {
7660 19285 : tree _q20 = TREE_OPERAND (_p0, 0);
7661 19285 : tree _q21 = TREE_OPERAND (_p0, 1);
7662 19285 : if (integer_minus_onep (_p1))
7663 : {
7664 23 : {
7665 23 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7666 23 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
7667 23 : if (res) return res;
7668 : }
7669 : }
7670 : break;
7671 : }
7672 1677 : case NE_EXPR:
7673 1677 : {
7674 1677 : tree _q20 = TREE_OPERAND (_p0, 0);
7675 1677 : tree _q21 = TREE_OPERAND (_p0, 1);
7676 1677 : if (integer_minus_onep (_p1))
7677 : {
7678 33 : {
7679 33 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7680 33 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
7681 33 : if (res) return res;
7682 : }
7683 : }
7684 : break;
7685 : }
7686 35 : case GE_EXPR:
7687 35 : {
7688 35 : tree _q20 = TREE_OPERAND (_p0, 0);
7689 35 : tree _q21 = TREE_OPERAND (_p0, 1);
7690 35 : if (integer_minus_onep (_p1))
7691 : {
7692 0 : {
7693 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7694 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
7695 0 : if (res) return res;
7696 : }
7697 : }
7698 : break;
7699 : }
7700 103 : case GT_EXPR:
7701 103 : {
7702 103 : tree _q20 = TREE_OPERAND (_p0, 0);
7703 103 : tree _q21 = TREE_OPERAND (_p0, 1);
7704 103 : if (integer_minus_onep (_p1))
7705 : {
7706 0 : {
7707 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7708 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
7709 0 : if (res) return res;
7710 : }
7711 : }
7712 : break;
7713 : }
7714 0 : case UNORDERED_EXPR:
7715 0 : {
7716 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7717 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7718 0 : if (integer_minus_onep (_p1))
7719 : {
7720 0 : {
7721 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7722 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
7723 0 : if (res) return res;
7724 : }
7725 : }
7726 : break;
7727 : }
7728 0 : case ORDERED_EXPR:
7729 0 : {
7730 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7731 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7732 0 : if (integer_minus_onep (_p1))
7733 : {
7734 0 : {
7735 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7736 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
7737 0 : if (res) return res;
7738 : }
7739 : }
7740 : break;
7741 : }
7742 0 : case UNLT_EXPR:
7743 0 : {
7744 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7745 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7746 0 : if (integer_minus_onep (_p1))
7747 : {
7748 0 : {
7749 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7750 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
7751 0 : if (res) return res;
7752 : }
7753 : }
7754 : break;
7755 : }
7756 0 : case UNLE_EXPR:
7757 0 : {
7758 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7759 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7760 0 : if (integer_minus_onep (_p1))
7761 : {
7762 0 : {
7763 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7764 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
7765 0 : if (res) return res;
7766 : }
7767 : }
7768 : break;
7769 : }
7770 0 : case UNGT_EXPR:
7771 0 : {
7772 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7773 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7774 0 : if (integer_minus_onep (_p1))
7775 : {
7776 0 : {
7777 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7778 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
7779 0 : if (res) return res;
7780 : }
7781 : }
7782 : break;
7783 : }
7784 0 : case UNGE_EXPR:
7785 0 : {
7786 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7787 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7788 0 : if (integer_minus_onep (_p1))
7789 : {
7790 0 : {
7791 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7792 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
7793 0 : if (res) return res;
7794 : }
7795 : }
7796 : break;
7797 : }
7798 0 : case UNEQ_EXPR:
7799 0 : {
7800 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7801 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7802 0 : if (integer_minus_onep (_p1))
7803 : {
7804 0 : {
7805 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7806 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
7807 0 : if (res) return res;
7808 : }
7809 : }
7810 : break;
7811 : }
7812 0 : case LTGT_EXPR:
7813 0 : {
7814 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7815 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7816 0 : if (integer_minus_onep (_p1))
7817 : {
7818 0 : {
7819 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7820 0 : tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
7821 0 : if (res) return res;
7822 : }
7823 : }
7824 : break;
7825 : }
7826 540798 : case RDIV_EXPR:
7827 540798 : {
7828 540798 : tree _q20 = TREE_OPERAND (_p0, 0);
7829 540798 : tree _q21 = TREE_OPERAND (_p0, 1);
7830 540798 : switch (TREE_CODE (_p1))
7831 : {
7832 115147 : case RDIV_EXPR:
7833 115147 : {
7834 115147 : tree _q50 = TREE_OPERAND (_p1, 0);
7835 115147 : tree _q51 = TREE_OPERAND (_p1, 1);
7836 115147 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7837 : {
7838 2 : {
7839 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7840 2 : tree res = generic_simplify_79 (loc, type, _p0, _p1, captures, PLUS_EXPR);
7841 2 : if (res) return res;
7842 : }
7843 : }
7844 : break;
7845 : }
7846 : default:;
7847 : }
7848 : break;
7849 : }
7850 1699210 : case MINUS_EXPR:
7851 1699210 : {
7852 1699210 : tree _q20 = TREE_OPERAND (_p0, 0);
7853 1699210 : tree _q21 = TREE_OPERAND (_p0, 1);
7854 1699210 : switch (TREE_CODE (_q20))
7855 : {
7856 41 : case CALL_EXPR:
7857 41 : switch (get_call_combined_fn (_q20))
7858 : {
7859 4 : case CFN_BUILT_IN_POPCOUNT:
7860 4 : if (call_expr_nargs (_q20) == 1)
7861 : {
7862 4 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
7863 4 : switch (TREE_CODE (_q21))
7864 : {
7865 4 : case CALL_EXPR:
7866 4 : switch (get_call_combined_fn (_q21))
7867 : {
7868 4 : case CFN_BUILT_IN_POPCOUNT:
7869 4 : if (call_expr_nargs (_q21) == 1)
7870 : {
7871 4 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
7872 4 : switch (TREE_CODE (_q50))
7873 : {
7874 2 : case BIT_AND_EXPR:
7875 2 : {
7876 2 : tree _q60 = TREE_OPERAND (_q50, 0);
7877 2 : tree _q61 = TREE_OPERAND (_q50, 1);
7878 2 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
7879 : {
7880 1 : switch (TREE_CODE (_p1))
7881 : {
7882 1 : case CALL_EXPR:
7883 1 : switch (get_call_combined_fn (_p1))
7884 : {
7885 1 : case CFN_BUILT_IN_POPCOUNT:
7886 1 : if (call_expr_nargs (_p1) == 1)
7887 : {
7888 1 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
7889 1 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
7890 : {
7891 1 : {
7892 1 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
7893 1 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
7894 1 : if (res) return res;
7895 : }
7896 : }
7897 : }
7898 : break;
7899 : default:;
7900 : }
7901 : break;
7902 : default:;
7903 : }
7904 : }
7905 1 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
7906 : {
7907 1 : switch (TREE_CODE (_p1))
7908 : {
7909 1 : case CALL_EXPR:
7910 1 : switch (get_call_combined_fn (_p1))
7911 : {
7912 1 : case CFN_BUILT_IN_POPCOUNT:
7913 1 : if (call_expr_nargs (_p1) == 1)
7914 : {
7915 1 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
7916 1 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
7917 : {
7918 1 : {
7919 1 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
7920 1 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
7921 1 : if (res) return res;
7922 : }
7923 : }
7924 : }
7925 : break;
7926 : default:;
7927 : }
7928 : break;
7929 : default:;
7930 : }
7931 : }
7932 : break;
7933 : }
7934 2 : case BIT_IOR_EXPR:
7935 2 : {
7936 2 : tree _q60 = TREE_OPERAND (_q50, 0);
7937 2 : tree _q61 = TREE_OPERAND (_q50, 1);
7938 2 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
7939 : {
7940 1 : switch (TREE_CODE (_p1))
7941 : {
7942 1 : case CALL_EXPR:
7943 1 : switch (get_call_combined_fn (_p1))
7944 : {
7945 1 : case CFN_BUILT_IN_POPCOUNT:
7946 1 : if (call_expr_nargs (_p1) == 1)
7947 : {
7948 1 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
7949 1 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
7950 : {
7951 1 : {
7952 1 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
7953 1 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
7954 1 : if (res) return res;
7955 : }
7956 : }
7957 : }
7958 : break;
7959 : default:;
7960 : }
7961 : break;
7962 : default:;
7963 : }
7964 : }
7965 1 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
7966 : {
7967 1 : switch (TREE_CODE (_p1))
7968 : {
7969 1 : case CALL_EXPR:
7970 1 : switch (get_call_combined_fn (_p1))
7971 : {
7972 1 : case CFN_BUILT_IN_POPCOUNT:
7973 1 : if (call_expr_nargs (_p1) == 1)
7974 : {
7975 1 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
7976 1 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
7977 : {
7978 1 : {
7979 1 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
7980 1 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
7981 1 : if (res) return res;
7982 : }
7983 : }
7984 : }
7985 : break;
7986 : default:;
7987 : }
7988 : break;
7989 : default:;
7990 : }
7991 : }
7992 : break;
7993 : }
7994 : default:;
7995 : }
7996 : }
7997 : break;
7998 : default:;
7999 : }
8000 : break;
8001 : default:;
8002 : }
8003 : }
8004 : break;
8005 0 : case CFN_BUILT_IN_POPCOUNTLL:
8006 0 : if (call_expr_nargs (_q20) == 1)
8007 : {
8008 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
8009 0 : switch (TREE_CODE (_q21))
8010 : {
8011 0 : case CALL_EXPR:
8012 0 : switch (get_call_combined_fn (_q21))
8013 : {
8014 0 : case CFN_BUILT_IN_POPCOUNTLL:
8015 0 : if (call_expr_nargs (_q21) == 1)
8016 : {
8017 0 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
8018 0 : switch (TREE_CODE (_q50))
8019 : {
8020 0 : case BIT_AND_EXPR:
8021 0 : {
8022 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8023 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8024 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8025 : {
8026 0 : switch (TREE_CODE (_p1))
8027 : {
8028 0 : case CALL_EXPR:
8029 0 : switch (get_call_combined_fn (_p1))
8030 : {
8031 0 : case CFN_BUILT_IN_POPCOUNTLL:
8032 0 : if (call_expr_nargs (_p1) == 1)
8033 : {
8034 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8035 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8036 : {
8037 0 : {
8038 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8039 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
8040 0 : if (res) return res;
8041 : }
8042 : }
8043 : }
8044 : break;
8045 : default:;
8046 : }
8047 : break;
8048 : default:;
8049 : }
8050 : }
8051 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8052 : {
8053 0 : switch (TREE_CODE (_p1))
8054 : {
8055 0 : case CALL_EXPR:
8056 0 : switch (get_call_combined_fn (_p1))
8057 : {
8058 0 : case CFN_BUILT_IN_POPCOUNTLL:
8059 0 : if (call_expr_nargs (_p1) == 1)
8060 : {
8061 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8062 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8063 : {
8064 0 : {
8065 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8066 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
8067 0 : if (res) return res;
8068 : }
8069 : }
8070 : }
8071 : break;
8072 : default:;
8073 : }
8074 : break;
8075 : default:;
8076 : }
8077 : }
8078 : break;
8079 : }
8080 0 : case BIT_IOR_EXPR:
8081 0 : {
8082 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8083 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8084 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8085 : {
8086 0 : switch (TREE_CODE (_p1))
8087 : {
8088 0 : case CALL_EXPR:
8089 0 : switch (get_call_combined_fn (_p1))
8090 : {
8091 0 : case CFN_BUILT_IN_POPCOUNTLL:
8092 0 : if (call_expr_nargs (_p1) == 1)
8093 : {
8094 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8095 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8096 : {
8097 0 : {
8098 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8099 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
8100 0 : if (res) return res;
8101 : }
8102 : }
8103 : }
8104 : break;
8105 : default:;
8106 : }
8107 : break;
8108 : default:;
8109 : }
8110 : }
8111 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8112 : {
8113 0 : switch (TREE_CODE (_p1))
8114 : {
8115 0 : case CALL_EXPR:
8116 0 : switch (get_call_combined_fn (_p1))
8117 : {
8118 0 : case CFN_BUILT_IN_POPCOUNTLL:
8119 0 : if (call_expr_nargs (_p1) == 1)
8120 : {
8121 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8122 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8123 : {
8124 0 : {
8125 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8126 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
8127 0 : if (res) return res;
8128 : }
8129 : }
8130 : }
8131 : break;
8132 : default:;
8133 : }
8134 : break;
8135 : default:;
8136 : }
8137 : }
8138 : break;
8139 : }
8140 : default:;
8141 : }
8142 : }
8143 : break;
8144 : default:;
8145 : }
8146 : break;
8147 : default:;
8148 : }
8149 : }
8150 : break;
8151 0 : case CFN_POPCOUNT:
8152 0 : if (call_expr_nargs (_q20) == 1)
8153 : {
8154 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
8155 0 : switch (TREE_CODE (_q21))
8156 : {
8157 0 : case CALL_EXPR:
8158 0 : switch (get_call_combined_fn (_q21))
8159 : {
8160 0 : case CFN_POPCOUNT:
8161 0 : if (call_expr_nargs (_q21) == 1)
8162 : {
8163 0 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
8164 0 : switch (TREE_CODE (_q50))
8165 : {
8166 0 : case BIT_AND_EXPR:
8167 0 : {
8168 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8169 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8170 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8171 : {
8172 0 : switch (TREE_CODE (_p1))
8173 : {
8174 0 : case CALL_EXPR:
8175 0 : switch (get_call_combined_fn (_p1))
8176 : {
8177 0 : case CFN_POPCOUNT:
8178 0 : if (call_expr_nargs (_p1) == 1)
8179 : {
8180 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8181 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8182 : {
8183 0 : {
8184 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8185 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
8186 0 : if (res) return res;
8187 : }
8188 : }
8189 : }
8190 : break;
8191 : default:;
8192 : }
8193 : break;
8194 : default:;
8195 : }
8196 : }
8197 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8198 : {
8199 0 : switch (TREE_CODE (_p1))
8200 : {
8201 0 : case CALL_EXPR:
8202 0 : switch (get_call_combined_fn (_p1))
8203 : {
8204 0 : case CFN_POPCOUNT:
8205 0 : if (call_expr_nargs (_p1) == 1)
8206 : {
8207 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8208 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8209 : {
8210 0 : {
8211 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8212 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
8213 0 : if (res) return res;
8214 : }
8215 : }
8216 : }
8217 : break;
8218 : default:;
8219 : }
8220 : break;
8221 : default:;
8222 : }
8223 : }
8224 : break;
8225 : }
8226 0 : case BIT_IOR_EXPR:
8227 0 : {
8228 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8229 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8230 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8231 : {
8232 0 : switch (TREE_CODE (_p1))
8233 : {
8234 0 : case CALL_EXPR:
8235 0 : switch (get_call_combined_fn (_p1))
8236 : {
8237 0 : case CFN_POPCOUNT:
8238 0 : if (call_expr_nargs (_p1) == 1)
8239 : {
8240 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8241 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8242 : {
8243 0 : {
8244 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8245 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
8246 0 : if (res) return res;
8247 : }
8248 : }
8249 : }
8250 : break;
8251 : default:;
8252 : }
8253 : break;
8254 : default:;
8255 : }
8256 : }
8257 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8258 : {
8259 0 : switch (TREE_CODE (_p1))
8260 : {
8261 0 : case CALL_EXPR:
8262 0 : switch (get_call_combined_fn (_p1))
8263 : {
8264 0 : case CFN_POPCOUNT:
8265 0 : if (call_expr_nargs (_p1) == 1)
8266 : {
8267 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8268 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8269 : {
8270 0 : {
8271 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8272 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
8273 0 : if (res) return res;
8274 : }
8275 : }
8276 : }
8277 : break;
8278 : default:;
8279 : }
8280 : break;
8281 : default:;
8282 : }
8283 : }
8284 : break;
8285 : }
8286 : default:;
8287 : }
8288 : }
8289 : break;
8290 : default:;
8291 : }
8292 : break;
8293 : default:;
8294 : }
8295 : }
8296 : break;
8297 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
8298 0 : if (call_expr_nargs (_q20) == 1)
8299 : {
8300 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
8301 0 : switch (TREE_CODE (_q21))
8302 : {
8303 0 : case CALL_EXPR:
8304 0 : switch (get_call_combined_fn (_q21))
8305 : {
8306 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
8307 0 : if (call_expr_nargs (_q21) == 1)
8308 : {
8309 0 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
8310 0 : switch (TREE_CODE (_q50))
8311 : {
8312 0 : case BIT_AND_EXPR:
8313 0 : {
8314 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8315 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8316 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8317 : {
8318 0 : switch (TREE_CODE (_p1))
8319 : {
8320 0 : case CALL_EXPR:
8321 0 : switch (get_call_combined_fn (_p1))
8322 : {
8323 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
8324 0 : if (call_expr_nargs (_p1) == 1)
8325 : {
8326 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8327 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8328 : {
8329 0 : {
8330 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8331 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
8332 0 : if (res) return res;
8333 : }
8334 : }
8335 : }
8336 : break;
8337 : default:;
8338 : }
8339 : break;
8340 : default:;
8341 : }
8342 : }
8343 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8344 : {
8345 0 : switch (TREE_CODE (_p1))
8346 : {
8347 0 : case CALL_EXPR:
8348 0 : switch (get_call_combined_fn (_p1))
8349 : {
8350 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
8351 0 : if (call_expr_nargs (_p1) == 1)
8352 : {
8353 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8354 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8355 : {
8356 0 : {
8357 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8358 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
8359 0 : if (res) return res;
8360 : }
8361 : }
8362 : }
8363 : break;
8364 : default:;
8365 : }
8366 : break;
8367 : default:;
8368 : }
8369 : }
8370 : break;
8371 : }
8372 0 : case BIT_IOR_EXPR:
8373 0 : {
8374 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8375 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8376 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8377 : {
8378 0 : switch (TREE_CODE (_p1))
8379 : {
8380 0 : case CALL_EXPR:
8381 0 : switch (get_call_combined_fn (_p1))
8382 : {
8383 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
8384 0 : if (call_expr_nargs (_p1) == 1)
8385 : {
8386 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8387 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8388 : {
8389 0 : {
8390 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8391 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
8392 0 : if (res) return res;
8393 : }
8394 : }
8395 : }
8396 : break;
8397 : default:;
8398 : }
8399 : break;
8400 : default:;
8401 : }
8402 : }
8403 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8404 : {
8405 0 : switch (TREE_CODE (_p1))
8406 : {
8407 0 : case CALL_EXPR:
8408 0 : switch (get_call_combined_fn (_p1))
8409 : {
8410 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
8411 0 : if (call_expr_nargs (_p1) == 1)
8412 : {
8413 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8414 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8415 : {
8416 0 : {
8417 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8418 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
8419 0 : if (res) return res;
8420 : }
8421 : }
8422 : }
8423 : break;
8424 : default:;
8425 : }
8426 : break;
8427 : default:;
8428 : }
8429 : }
8430 : break;
8431 : }
8432 : default:;
8433 : }
8434 : }
8435 : break;
8436 : default:;
8437 : }
8438 : break;
8439 : default:;
8440 : }
8441 : }
8442 : break;
8443 0 : case CFN_BUILT_IN_POPCOUNTL:
8444 0 : if (call_expr_nargs (_q20) == 1)
8445 : {
8446 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
8447 0 : switch (TREE_CODE (_q21))
8448 : {
8449 0 : case CALL_EXPR:
8450 0 : switch (get_call_combined_fn (_q21))
8451 : {
8452 0 : case CFN_BUILT_IN_POPCOUNTL:
8453 0 : if (call_expr_nargs (_q21) == 1)
8454 : {
8455 0 : tree _q50 = CALL_EXPR_ARG (_q21, 0);
8456 0 : switch (TREE_CODE (_q50))
8457 : {
8458 0 : case BIT_AND_EXPR:
8459 0 : {
8460 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8461 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8462 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8463 : {
8464 0 : switch (TREE_CODE (_p1))
8465 : {
8466 0 : case CALL_EXPR:
8467 0 : switch (get_call_combined_fn (_p1))
8468 : {
8469 0 : case CFN_BUILT_IN_POPCOUNTL:
8470 0 : if (call_expr_nargs (_p1) == 1)
8471 : {
8472 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8473 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8474 : {
8475 0 : {
8476 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8477 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
8478 0 : if (res) return res;
8479 : }
8480 : }
8481 : }
8482 : break;
8483 : default:;
8484 : }
8485 : break;
8486 : default:;
8487 : }
8488 : }
8489 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8490 : {
8491 0 : switch (TREE_CODE (_p1))
8492 : {
8493 0 : case CALL_EXPR:
8494 0 : switch (get_call_combined_fn (_p1))
8495 : {
8496 0 : case CFN_BUILT_IN_POPCOUNTL:
8497 0 : if (call_expr_nargs (_p1) == 1)
8498 : {
8499 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8500 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8501 : {
8502 0 : {
8503 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8504 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
8505 0 : if (res) return res;
8506 : }
8507 : }
8508 : }
8509 : break;
8510 : default:;
8511 : }
8512 : break;
8513 : default:;
8514 : }
8515 : }
8516 : break;
8517 : }
8518 0 : case BIT_IOR_EXPR:
8519 0 : {
8520 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8521 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8522 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
8523 : {
8524 0 : switch (TREE_CODE (_p1))
8525 : {
8526 0 : case CALL_EXPR:
8527 0 : switch (get_call_combined_fn (_p1))
8528 : {
8529 0 : case CFN_BUILT_IN_POPCOUNTL:
8530 0 : if (call_expr_nargs (_p1) == 1)
8531 : {
8532 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8533 0 : if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
8534 : {
8535 0 : {
8536 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
8537 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
8538 0 : if (res) return res;
8539 : }
8540 : }
8541 : }
8542 : break;
8543 : default:;
8544 : }
8545 : break;
8546 : default:;
8547 : }
8548 : }
8549 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
8550 : {
8551 0 : switch (TREE_CODE (_p1))
8552 : {
8553 0 : case CALL_EXPR:
8554 0 : switch (get_call_combined_fn (_p1))
8555 : {
8556 0 : case CFN_BUILT_IN_POPCOUNTL:
8557 0 : if (call_expr_nargs (_p1) == 1)
8558 : {
8559 0 : tree _q90 = CALL_EXPR_ARG (_p1, 0);
8560 0 : if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
8561 : {
8562 0 : {
8563 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
8564 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
8565 0 : if (res) return res;
8566 : }
8567 : }
8568 : }
8569 : break;
8570 : default:;
8571 : }
8572 : break;
8573 : default:;
8574 : }
8575 : }
8576 : break;
8577 : }
8578 : default:;
8579 : }
8580 : }
8581 : break;
8582 : default:;
8583 : }
8584 : break;
8585 : default:;
8586 : }
8587 : }
8588 : break;
8589 : default:;
8590 : }
8591 : break;
8592 : default:;
8593 : }
8594 : break;
8595 : }
8596 1 : case VEC_PERM_EXPR:
8597 1 : {
8598 1 : tree _q20 = TREE_OPERAND (_p0, 0);
8599 1 : tree _q21 = TREE_OPERAND (_p0, 1);
8600 1 : tree _q22 = TREE_OPERAND (_p0, 2);
8601 1 : switch (TREE_CODE (_q20))
8602 : {
8603 0 : case MULT_EXPR:
8604 0 : {
8605 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8606 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8607 0 : if (tree_vec_same_elem_p (_q31))
8608 : {
8609 0 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
8610 : {
8611 0 : {
8612 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q22, _p1 };
8613 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
8614 0 : if (res) return res;
8615 : }
8616 : }
8617 : }
8618 0 : if (tree_vec_same_elem_p (_q30))
8619 : {
8620 0 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
8621 : {
8622 0 : {
8623 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _q22, _p1 };
8624 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
8625 0 : if (res) return res;
8626 : }
8627 : }
8628 : }
8629 : break;
8630 : }
8631 1 : default:;
8632 : }
8633 1 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
8634 : {
8635 0 : switch (TREE_CODE (_p1))
8636 : {
8637 0 : case VEC_PERM_EXPR:
8638 0 : {
8639 0 : tree _q60 = TREE_OPERAND (_p1, 0);
8640 0 : tree _q61 = TREE_OPERAND (_p1, 1);
8641 0 : tree _q62 = TREE_OPERAND (_p1, 2);
8642 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
8643 : {
8644 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
8645 : {
8646 0 : {
8647 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
8648 0 : if (VECTOR_INTEGER_TYPE_P (type)
8649 : )
8650 : {
8651 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1262;
8652 0 : {
8653 0 : tree res_op0;
8654 0 : {
8655 0 : tree _o1[2], _r1;
8656 0 : _o1[0] = captures[0];
8657 0 : _o1[1] = captures[2];
8658 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8659 0 : captures[3] = _r1;
8660 : }
8661 0 : res_op0 = unshare_expr (captures[3]);
8662 0 : tree res_op1;
8663 0 : res_op1 = captures[3];
8664 0 : tree res_op2;
8665 0 : res_op2 = captures[1];
8666 0 : tree _r;
8667 0 : _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
8668 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
8669 0 : return _r;
8670 : }
8671 0 : next_after_fail1262:;
8672 : }
8673 : }
8674 : }
8675 : }
8676 : break;
8677 : }
8678 0 : default:;
8679 : }
8680 0 : switch (TREE_CODE (_q22))
8681 : {
8682 0 : case VECTOR_CST:
8683 0 : {
8684 0 : switch (TREE_CODE (_p1))
8685 : {
8686 0 : case VEC_PERM_EXPR:
8687 0 : {
8688 0 : tree _q60 = TREE_OPERAND (_p1, 0);
8689 0 : tree _q61 = TREE_OPERAND (_p1, 1);
8690 0 : tree _q62 = TREE_OPERAND (_p1, 2);
8691 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
8692 : {
8693 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
8694 : {
8695 0 : switch (TREE_CODE (_q62))
8696 : {
8697 0 : case VECTOR_CST:
8698 0 : {
8699 0 : {
8700 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
8701 0 : tree res = generic_simplify_85 (loc, type, _p0, _p1, captures, PLUS_EXPR);
8702 0 : if (res) return res;
8703 : }
8704 0 : break;
8705 : }
8706 : default:;
8707 : }
8708 : }
8709 : }
8710 : break;
8711 : }
8712 : default:;
8713 : }
8714 : break;
8715 : }
8716 : default:;
8717 : }
8718 : }
8719 : break;
8720 : }
8721 1441232 : case CALL_EXPR:
8722 1441232 : switch (get_call_combined_fn (_p0))
8723 : {
8724 9 : case CFN_BUILT_IN_LOG:
8725 9 : if (call_expr_nargs (_p0) == 1)
8726 : {
8727 9 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8728 9 : switch (TREE_CODE (_p1))
8729 : {
8730 0 : case CALL_EXPR:
8731 0 : switch (get_call_combined_fn (_p1))
8732 : {
8733 0 : case CFN_BUILT_IN_LOG:
8734 0 : if (call_expr_nargs (_p1) == 1)
8735 : {
8736 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8737 0 : {
8738 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8739 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG);
8740 0 : if (res) return res;
8741 : }
8742 : }
8743 : break;
8744 : default:;
8745 : }
8746 : break;
8747 : default:;
8748 : }
8749 : }
8750 : break;
8751 2360 : case CFN_BUILT_IN_POPCOUNT:
8752 2360 : if (call_expr_nargs (_p0) == 1)
8753 : {
8754 2360 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8755 2360 : switch (TREE_CODE (_p1))
8756 : {
8757 22 : case CALL_EXPR:
8758 22 : switch (get_call_combined_fn (_p1))
8759 : {
8760 22 : case CFN_BUILT_IN_POPCOUNT:
8761 22 : if (call_expr_nargs (_p1) == 1)
8762 : {
8763 22 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8764 22 : {
8765 22 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8766 22 : tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
8767 22 : if (res) return res;
8768 : }
8769 : }
8770 : break;
8771 : default:;
8772 : }
8773 : break;
8774 2359 : default:;
8775 : }
8776 2359 : switch (TREE_CODE (_q20))
8777 : {
8778 9 : case BIT_AND_EXPR:
8779 9 : {
8780 9 : tree _q30 = TREE_OPERAND (_q20, 0);
8781 9 : tree _q31 = TREE_OPERAND (_q20, 1);
8782 9 : switch (TREE_CODE (_p1))
8783 : {
8784 9 : case CALL_EXPR:
8785 9 : switch (get_call_combined_fn (_p1))
8786 : {
8787 9 : case CFN_BUILT_IN_POPCOUNT:
8788 9 : if (call_expr_nargs (_p1) == 1)
8789 : {
8790 9 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
8791 9 : switch (TREE_CODE (_q60))
8792 : {
8793 9 : case BIT_IOR_EXPR:
8794 9 : {
8795 9 : tree _q70 = TREE_OPERAND (_q60, 0);
8796 9 : tree _q71 = TREE_OPERAND (_q60, 1);
8797 9 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
8798 : {
8799 1 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
8800 : {
8801 1 : {
8802 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
8803 1 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
8804 1 : if (res) return res;
8805 : }
8806 : }
8807 : }
8808 8 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
8809 : {
8810 1 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
8811 : {
8812 1 : {
8813 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
8814 1 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
8815 1 : if (res) return res;
8816 : }
8817 : }
8818 : }
8819 : break;
8820 : }
8821 : default:;
8822 : }
8823 : }
8824 : break;
8825 : default:;
8826 : }
8827 : break;
8828 : default:;
8829 : }
8830 : break;
8831 : }
8832 2 : case BIT_IOR_EXPR:
8833 2 : {
8834 2 : tree _q30 = TREE_OPERAND (_q20, 0);
8835 2 : tree _q31 = TREE_OPERAND (_q20, 1);
8836 2 : switch (TREE_CODE (_p1))
8837 : {
8838 2 : case CALL_EXPR:
8839 2 : switch (get_call_combined_fn (_p1))
8840 : {
8841 2 : case CFN_BUILT_IN_POPCOUNT:
8842 2 : if (call_expr_nargs (_p1) == 1)
8843 : {
8844 2 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
8845 2 : switch (TREE_CODE (_q60))
8846 : {
8847 2 : case BIT_AND_EXPR:
8848 2 : {
8849 2 : tree _q70 = TREE_OPERAND (_q60, 0);
8850 2 : tree _q71 = TREE_OPERAND (_q60, 1);
8851 2 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
8852 : {
8853 1 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
8854 : {
8855 1 : {
8856 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
8857 1 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
8858 1 : if (res) return res;
8859 : }
8860 : }
8861 : }
8862 1 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
8863 : {
8864 1 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
8865 : {
8866 1 : {
8867 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
8868 1 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
8869 1 : if (res) return res;
8870 : }
8871 : }
8872 : }
8873 : break;
8874 : }
8875 : default:;
8876 : }
8877 : }
8878 : break;
8879 : default:;
8880 : }
8881 : break;
8882 : default:;
8883 : }
8884 : break;
8885 : }
8886 2355 : default:;
8887 : }
8888 2355 : switch (TREE_CODE (_p1))
8889 : {
8890 0 : case MINUS_EXPR:
8891 0 : {
8892 0 : tree _q40 = TREE_OPERAND (_p1, 0);
8893 0 : tree _q41 = TREE_OPERAND (_p1, 1);
8894 0 : switch (TREE_CODE (_q40))
8895 : {
8896 0 : case CALL_EXPR:
8897 0 : switch (get_call_combined_fn (_q40))
8898 : {
8899 0 : case CFN_BUILT_IN_POPCOUNT:
8900 0 : if (call_expr_nargs (_q40) == 1)
8901 : {
8902 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
8903 0 : switch (TREE_CODE (_q41))
8904 : {
8905 0 : case CALL_EXPR:
8906 0 : switch (get_call_combined_fn (_q41))
8907 : {
8908 0 : case CFN_BUILT_IN_POPCOUNT:
8909 0 : if (call_expr_nargs (_q41) == 1)
8910 : {
8911 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
8912 0 : switch (TREE_CODE (_q70))
8913 : {
8914 0 : case BIT_AND_EXPR:
8915 0 : {
8916 0 : tree _q80 = TREE_OPERAND (_q70, 0);
8917 0 : tree _q81 = TREE_OPERAND (_q70, 1);
8918 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
8919 : {
8920 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
8921 : {
8922 0 : {
8923 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
8924 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
8925 0 : if (res) return res;
8926 : }
8927 : }
8928 : }
8929 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
8930 : {
8931 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
8932 : {
8933 0 : {
8934 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
8935 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
8936 0 : if (res) return res;
8937 : }
8938 : }
8939 : }
8940 : break;
8941 : }
8942 0 : case BIT_IOR_EXPR:
8943 0 : {
8944 0 : tree _q80 = TREE_OPERAND (_q70, 0);
8945 0 : tree _q81 = TREE_OPERAND (_q70, 1);
8946 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
8947 : {
8948 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
8949 : {
8950 0 : {
8951 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
8952 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
8953 0 : if (res) return res;
8954 : }
8955 : }
8956 : }
8957 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
8958 : {
8959 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
8960 : {
8961 0 : {
8962 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
8963 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
8964 0 : if (res) return res;
8965 : }
8966 : }
8967 : }
8968 : break;
8969 : }
8970 : default:;
8971 : }
8972 : }
8973 : break;
8974 : default:;
8975 : }
8976 : break;
8977 : default:;
8978 : }
8979 : }
8980 : break;
8981 : default:;
8982 : }
8983 : break;
8984 : default:;
8985 : }
8986 : break;
8987 : }
8988 : default:;
8989 : }
8990 : }
8991 : break;
8992 1 : case CFN_BUILT_IN_LOG2:
8993 1 : if (call_expr_nargs (_p0) == 1)
8994 : {
8995 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8996 1 : switch (TREE_CODE (_p1))
8997 : {
8998 1 : case CALL_EXPR:
8999 1 : switch (get_call_combined_fn (_p1))
9000 : {
9001 1 : case CFN_BUILT_IN_LOG2:
9002 1 : if (call_expr_nargs (_p1) == 1)
9003 : {
9004 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9005 1 : {
9006 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9007 1 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2);
9008 1 : if (res) return res;
9009 : }
9010 : }
9011 : break;
9012 : default:;
9013 : }
9014 : break;
9015 : default:;
9016 : }
9017 : }
9018 : break;
9019 0 : case CFN_BUILT_IN_LOGF:
9020 0 : if (call_expr_nargs (_p0) == 1)
9021 : {
9022 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9023 0 : switch (TREE_CODE (_p1))
9024 : {
9025 0 : case CALL_EXPR:
9026 0 : switch (get_call_combined_fn (_p1))
9027 : {
9028 0 : case CFN_BUILT_IN_LOGF:
9029 0 : if (call_expr_nargs (_p1) == 1)
9030 : {
9031 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9032 0 : {
9033 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9034 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF);
9035 0 : if (res) return res;
9036 : }
9037 : }
9038 : break;
9039 : default:;
9040 : }
9041 : break;
9042 : default:;
9043 : }
9044 : }
9045 : break;
9046 0 : case CFN_BUILT_IN_LOGL:
9047 0 : if (call_expr_nargs (_p0) == 1)
9048 : {
9049 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9050 0 : switch (TREE_CODE (_p1))
9051 : {
9052 0 : case CALL_EXPR:
9053 0 : switch (get_call_combined_fn (_p1))
9054 : {
9055 0 : case CFN_BUILT_IN_LOGL:
9056 0 : if (call_expr_nargs (_p1) == 1)
9057 : {
9058 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9059 0 : {
9060 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9061 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL);
9062 0 : if (res) return res;
9063 : }
9064 : }
9065 : break;
9066 : default:;
9067 : }
9068 : break;
9069 : default:;
9070 : }
9071 : }
9072 : break;
9073 27 : case CFN_BUILT_IN_POPCOUNTLL:
9074 27 : if (call_expr_nargs (_p0) == 1)
9075 : {
9076 27 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9077 27 : switch (TREE_CODE (_p1))
9078 : {
9079 25 : case CALL_EXPR:
9080 25 : switch (get_call_combined_fn (_p1))
9081 : {
9082 25 : case CFN_BUILT_IN_POPCOUNTLL:
9083 25 : if (call_expr_nargs (_p1) == 1)
9084 : {
9085 25 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9086 25 : {
9087 25 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9088 25 : tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
9089 25 : if (res) return res;
9090 : }
9091 : }
9092 : break;
9093 : default:;
9094 : }
9095 : break;
9096 27 : default:;
9097 : }
9098 27 : switch (TREE_CODE (_q20))
9099 : {
9100 0 : case BIT_AND_EXPR:
9101 0 : {
9102 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9103 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9104 0 : switch (TREE_CODE (_p1))
9105 : {
9106 0 : case CALL_EXPR:
9107 0 : switch (get_call_combined_fn (_p1))
9108 : {
9109 0 : case CFN_BUILT_IN_POPCOUNTLL:
9110 0 : if (call_expr_nargs (_p1) == 1)
9111 : {
9112 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9113 0 : switch (TREE_CODE (_q60))
9114 : {
9115 0 : case BIT_IOR_EXPR:
9116 0 : {
9117 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9118 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9119 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9120 : {
9121 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9122 : {
9123 0 : {
9124 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9125 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
9126 0 : if (res) return res;
9127 : }
9128 : }
9129 : }
9130 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9131 : {
9132 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9133 : {
9134 0 : {
9135 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9136 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
9137 0 : if (res) return res;
9138 : }
9139 : }
9140 : }
9141 : break;
9142 : }
9143 : default:;
9144 : }
9145 : }
9146 : break;
9147 : default:;
9148 : }
9149 : break;
9150 : default:;
9151 : }
9152 : break;
9153 : }
9154 0 : case BIT_IOR_EXPR:
9155 0 : {
9156 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9157 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9158 0 : switch (TREE_CODE (_p1))
9159 : {
9160 0 : case CALL_EXPR:
9161 0 : switch (get_call_combined_fn (_p1))
9162 : {
9163 0 : case CFN_BUILT_IN_POPCOUNTLL:
9164 0 : if (call_expr_nargs (_p1) == 1)
9165 : {
9166 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9167 0 : switch (TREE_CODE (_q60))
9168 : {
9169 0 : case BIT_AND_EXPR:
9170 0 : {
9171 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9172 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9173 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9174 : {
9175 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9176 : {
9177 0 : {
9178 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
9179 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
9180 0 : if (res) return res;
9181 : }
9182 : }
9183 : }
9184 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9185 : {
9186 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9187 : {
9188 0 : {
9189 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
9190 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
9191 0 : if (res) return res;
9192 : }
9193 : }
9194 : }
9195 : break;
9196 : }
9197 : default:;
9198 : }
9199 : }
9200 : break;
9201 : default:;
9202 : }
9203 : break;
9204 : default:;
9205 : }
9206 : break;
9207 : }
9208 27 : default:;
9209 : }
9210 27 : switch (TREE_CODE (_p1))
9211 : {
9212 0 : case MINUS_EXPR:
9213 0 : {
9214 0 : tree _q40 = TREE_OPERAND (_p1, 0);
9215 0 : tree _q41 = TREE_OPERAND (_p1, 1);
9216 0 : switch (TREE_CODE (_q40))
9217 : {
9218 0 : case CALL_EXPR:
9219 0 : switch (get_call_combined_fn (_q40))
9220 : {
9221 0 : case CFN_BUILT_IN_POPCOUNTLL:
9222 0 : if (call_expr_nargs (_q40) == 1)
9223 : {
9224 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
9225 0 : switch (TREE_CODE (_q41))
9226 : {
9227 0 : case CALL_EXPR:
9228 0 : switch (get_call_combined_fn (_q41))
9229 : {
9230 0 : case CFN_BUILT_IN_POPCOUNTLL:
9231 0 : if (call_expr_nargs (_q41) == 1)
9232 : {
9233 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
9234 0 : switch (TREE_CODE (_q70))
9235 : {
9236 0 : case BIT_AND_EXPR:
9237 0 : {
9238 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9239 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9240 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9241 : {
9242 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9243 : {
9244 0 : {
9245 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9246 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
9247 0 : if (res) return res;
9248 : }
9249 : }
9250 : }
9251 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9252 : {
9253 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9254 : {
9255 0 : {
9256 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9257 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
9258 0 : if (res) return res;
9259 : }
9260 : }
9261 : }
9262 : break;
9263 : }
9264 0 : case BIT_IOR_EXPR:
9265 0 : {
9266 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9267 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9268 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9269 : {
9270 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9271 : {
9272 0 : {
9273 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9274 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
9275 0 : if (res) return res;
9276 : }
9277 : }
9278 : }
9279 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9280 : {
9281 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9282 : {
9283 0 : {
9284 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9285 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
9286 0 : if (res) return res;
9287 : }
9288 : }
9289 : }
9290 : break;
9291 : }
9292 : default:;
9293 : }
9294 : }
9295 : break;
9296 : default:;
9297 : }
9298 : break;
9299 : default:;
9300 : }
9301 : }
9302 : break;
9303 : default:;
9304 : }
9305 : break;
9306 : default:;
9307 : }
9308 : break;
9309 : }
9310 : default:;
9311 : }
9312 : }
9313 : break;
9314 0 : case CFN_BUILT_IN_LOG10F:
9315 0 : if (call_expr_nargs (_p0) == 1)
9316 : {
9317 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9318 0 : switch (TREE_CODE (_p1))
9319 : {
9320 0 : case CALL_EXPR:
9321 0 : switch (get_call_combined_fn (_p1))
9322 : {
9323 0 : case CFN_BUILT_IN_LOG10F:
9324 0 : if (call_expr_nargs (_p1) == 1)
9325 : {
9326 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9327 0 : {
9328 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9329 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F);
9330 0 : if (res) return res;
9331 : }
9332 : }
9333 : break;
9334 : default:;
9335 : }
9336 : break;
9337 : default:;
9338 : }
9339 : }
9340 : break;
9341 0 : case CFN_BUILT_IN_LOG10L:
9342 0 : if (call_expr_nargs (_p0) == 1)
9343 : {
9344 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9345 0 : switch (TREE_CODE (_p1))
9346 : {
9347 0 : case CALL_EXPR:
9348 0 : switch (get_call_combined_fn (_p1))
9349 : {
9350 0 : case CFN_BUILT_IN_LOG10L:
9351 0 : if (call_expr_nargs (_p1) == 1)
9352 : {
9353 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9354 0 : {
9355 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9356 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L);
9357 0 : if (res) return res;
9358 : }
9359 : }
9360 : break;
9361 : default:;
9362 : }
9363 : break;
9364 : default:;
9365 : }
9366 : }
9367 : break;
9368 7 : case CFN_POPCOUNT:
9369 7 : if (call_expr_nargs (_p0) == 1)
9370 : {
9371 7 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9372 7 : switch (TREE_CODE (_p1))
9373 : {
9374 1 : case CALL_EXPR:
9375 1 : switch (get_call_combined_fn (_p1))
9376 : {
9377 1 : case CFN_POPCOUNT:
9378 1 : if (call_expr_nargs (_p1) == 1)
9379 : {
9380 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9381 1 : {
9382 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9383 1 : tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
9384 1 : if (res) return res;
9385 : }
9386 : }
9387 : break;
9388 : default:;
9389 : }
9390 : break;
9391 7 : default:;
9392 : }
9393 7 : switch (TREE_CODE (_q20))
9394 : {
9395 0 : case BIT_AND_EXPR:
9396 0 : {
9397 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9398 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9399 0 : switch (TREE_CODE (_p1))
9400 : {
9401 0 : case CALL_EXPR:
9402 0 : switch (get_call_combined_fn (_p1))
9403 : {
9404 0 : case CFN_POPCOUNT:
9405 0 : if (call_expr_nargs (_p1) == 1)
9406 : {
9407 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9408 0 : switch (TREE_CODE (_q60))
9409 : {
9410 0 : case BIT_IOR_EXPR:
9411 0 : {
9412 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9413 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9414 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9415 : {
9416 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9417 : {
9418 0 : {
9419 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9420 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
9421 0 : if (res) return res;
9422 : }
9423 : }
9424 : }
9425 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9426 : {
9427 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9428 : {
9429 0 : {
9430 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9431 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
9432 0 : if (res) return res;
9433 : }
9434 : }
9435 : }
9436 : break;
9437 : }
9438 : default:;
9439 : }
9440 : }
9441 : break;
9442 : default:;
9443 : }
9444 : break;
9445 : default:;
9446 : }
9447 : break;
9448 : }
9449 0 : case BIT_IOR_EXPR:
9450 0 : {
9451 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9452 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9453 0 : switch (TREE_CODE (_p1))
9454 : {
9455 0 : case CALL_EXPR:
9456 0 : switch (get_call_combined_fn (_p1))
9457 : {
9458 0 : case CFN_POPCOUNT:
9459 0 : if (call_expr_nargs (_p1) == 1)
9460 : {
9461 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9462 0 : switch (TREE_CODE (_q60))
9463 : {
9464 0 : case BIT_AND_EXPR:
9465 0 : {
9466 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9467 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9468 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9469 : {
9470 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9471 : {
9472 0 : {
9473 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
9474 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
9475 0 : if (res) return res;
9476 : }
9477 : }
9478 : }
9479 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9480 : {
9481 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9482 : {
9483 0 : {
9484 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
9485 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
9486 0 : if (res) return res;
9487 : }
9488 : }
9489 : }
9490 : break;
9491 : }
9492 : default:;
9493 : }
9494 : }
9495 : break;
9496 : default:;
9497 : }
9498 : break;
9499 : default:;
9500 : }
9501 : break;
9502 : }
9503 7 : default:;
9504 : }
9505 7 : switch (TREE_CODE (_p1))
9506 : {
9507 0 : case MINUS_EXPR:
9508 0 : {
9509 0 : tree _q40 = TREE_OPERAND (_p1, 0);
9510 0 : tree _q41 = TREE_OPERAND (_p1, 1);
9511 0 : switch (TREE_CODE (_q40))
9512 : {
9513 0 : case CALL_EXPR:
9514 0 : switch (get_call_combined_fn (_q40))
9515 : {
9516 0 : case CFN_POPCOUNT:
9517 0 : if (call_expr_nargs (_q40) == 1)
9518 : {
9519 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
9520 0 : switch (TREE_CODE (_q41))
9521 : {
9522 0 : case CALL_EXPR:
9523 0 : switch (get_call_combined_fn (_q41))
9524 : {
9525 0 : case CFN_POPCOUNT:
9526 0 : if (call_expr_nargs (_q41) == 1)
9527 : {
9528 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
9529 0 : switch (TREE_CODE (_q70))
9530 : {
9531 0 : case BIT_AND_EXPR:
9532 0 : {
9533 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9534 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9535 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9536 : {
9537 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9538 : {
9539 0 : {
9540 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9541 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
9542 0 : if (res) return res;
9543 : }
9544 : }
9545 : }
9546 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9547 : {
9548 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9549 : {
9550 0 : {
9551 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9552 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
9553 0 : if (res) return res;
9554 : }
9555 : }
9556 : }
9557 : break;
9558 : }
9559 0 : case BIT_IOR_EXPR:
9560 0 : {
9561 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9562 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9563 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9564 : {
9565 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9566 : {
9567 0 : {
9568 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9569 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
9570 0 : if (res) return res;
9571 : }
9572 : }
9573 : }
9574 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9575 : {
9576 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9577 : {
9578 0 : {
9579 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9580 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
9581 0 : if (res) return res;
9582 : }
9583 : }
9584 : }
9585 : break;
9586 : }
9587 : default:;
9588 : }
9589 : }
9590 : break;
9591 : default:;
9592 : }
9593 : break;
9594 : default:;
9595 : }
9596 : }
9597 : break;
9598 : default:;
9599 : }
9600 : break;
9601 : default:;
9602 : }
9603 : break;
9604 : }
9605 : default:;
9606 : }
9607 : }
9608 : break;
9609 0 : case CFN_LOG:
9610 0 : if (call_expr_nargs (_p0) == 1)
9611 : {
9612 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9613 0 : switch (TREE_CODE (_p1))
9614 : {
9615 0 : case CALL_EXPR:
9616 0 : switch (get_call_combined_fn (_p1))
9617 : {
9618 0 : case CFN_LOG:
9619 0 : if (call_expr_nargs (_p1) == 1)
9620 : {
9621 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9622 0 : {
9623 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9624 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_LOG);
9625 0 : if (res) return res;
9626 : }
9627 : }
9628 : break;
9629 : default:;
9630 : }
9631 : break;
9632 : default:;
9633 : }
9634 : }
9635 : break;
9636 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9637 0 : if (call_expr_nargs (_p0) == 1)
9638 : {
9639 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9640 0 : switch (TREE_CODE (_p1))
9641 : {
9642 0 : case CALL_EXPR:
9643 0 : switch (get_call_combined_fn (_p1))
9644 : {
9645 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9646 0 : if (call_expr_nargs (_p1) == 1)
9647 : {
9648 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9649 0 : {
9650 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9651 0 : tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
9652 0 : if (res) return res;
9653 : }
9654 : }
9655 : break;
9656 : default:;
9657 : }
9658 : break;
9659 0 : default:;
9660 : }
9661 0 : switch (TREE_CODE (_q20))
9662 : {
9663 0 : case BIT_AND_EXPR:
9664 0 : {
9665 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9666 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9667 0 : switch (TREE_CODE (_p1))
9668 : {
9669 0 : case CALL_EXPR:
9670 0 : switch (get_call_combined_fn (_p1))
9671 : {
9672 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9673 0 : if (call_expr_nargs (_p1) == 1)
9674 : {
9675 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9676 0 : switch (TREE_CODE (_q60))
9677 : {
9678 0 : case BIT_IOR_EXPR:
9679 0 : {
9680 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9681 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9682 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9683 : {
9684 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9685 : {
9686 0 : {
9687 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9688 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
9689 0 : if (res) return res;
9690 : }
9691 : }
9692 : }
9693 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9694 : {
9695 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9696 : {
9697 0 : {
9698 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9699 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
9700 0 : if (res) return res;
9701 : }
9702 : }
9703 : }
9704 : break;
9705 : }
9706 : default:;
9707 : }
9708 : }
9709 : break;
9710 : default:;
9711 : }
9712 : break;
9713 : default:;
9714 : }
9715 : break;
9716 : }
9717 0 : case BIT_IOR_EXPR:
9718 0 : {
9719 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9720 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9721 0 : switch (TREE_CODE (_p1))
9722 : {
9723 0 : case CALL_EXPR:
9724 0 : switch (get_call_combined_fn (_p1))
9725 : {
9726 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9727 0 : if (call_expr_nargs (_p1) == 1)
9728 : {
9729 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9730 0 : switch (TREE_CODE (_q60))
9731 : {
9732 0 : case BIT_AND_EXPR:
9733 0 : {
9734 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9735 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9736 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9737 : {
9738 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9739 : {
9740 0 : {
9741 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
9742 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
9743 0 : if (res) return res;
9744 : }
9745 : }
9746 : }
9747 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9748 : {
9749 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9750 : {
9751 0 : {
9752 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
9753 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
9754 0 : if (res) return res;
9755 : }
9756 : }
9757 : }
9758 : break;
9759 : }
9760 : default:;
9761 : }
9762 : }
9763 : break;
9764 : default:;
9765 : }
9766 : break;
9767 : default:;
9768 : }
9769 : break;
9770 : }
9771 0 : default:;
9772 : }
9773 0 : switch (TREE_CODE (_p1))
9774 : {
9775 0 : case MINUS_EXPR:
9776 0 : {
9777 0 : tree _q40 = TREE_OPERAND (_p1, 0);
9778 0 : tree _q41 = TREE_OPERAND (_p1, 1);
9779 0 : switch (TREE_CODE (_q40))
9780 : {
9781 0 : case CALL_EXPR:
9782 0 : switch (get_call_combined_fn (_q40))
9783 : {
9784 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9785 0 : if (call_expr_nargs (_q40) == 1)
9786 : {
9787 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
9788 0 : switch (TREE_CODE (_q41))
9789 : {
9790 0 : case CALL_EXPR:
9791 0 : switch (get_call_combined_fn (_q41))
9792 : {
9793 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9794 0 : if (call_expr_nargs (_q41) == 1)
9795 : {
9796 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
9797 0 : switch (TREE_CODE (_q70))
9798 : {
9799 0 : case BIT_AND_EXPR:
9800 0 : {
9801 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9802 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9803 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9804 : {
9805 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9806 : {
9807 0 : {
9808 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9809 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9810 0 : if (res) return res;
9811 : }
9812 : }
9813 : }
9814 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9815 : {
9816 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9817 : {
9818 0 : {
9819 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9820 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9821 0 : if (res) return res;
9822 : }
9823 : }
9824 : }
9825 : break;
9826 : }
9827 0 : case BIT_IOR_EXPR:
9828 0 : {
9829 0 : tree _q80 = TREE_OPERAND (_q70, 0);
9830 0 : tree _q81 = TREE_OPERAND (_q70, 1);
9831 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
9832 : {
9833 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
9834 : {
9835 0 : {
9836 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9837 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9838 0 : if (res) return res;
9839 : }
9840 : }
9841 : }
9842 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
9843 : {
9844 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
9845 : {
9846 0 : {
9847 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
9848 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9849 0 : if (res) return res;
9850 : }
9851 : }
9852 : }
9853 : break;
9854 : }
9855 : default:;
9856 : }
9857 : }
9858 : break;
9859 : default:;
9860 : }
9861 : break;
9862 : default:;
9863 : }
9864 : }
9865 : break;
9866 : default:;
9867 : }
9868 : break;
9869 : default:;
9870 : }
9871 : break;
9872 : }
9873 : default:;
9874 : }
9875 : }
9876 : break;
9877 0 : case CFN_LOG2:
9878 0 : if (call_expr_nargs (_p0) == 1)
9879 : {
9880 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9881 0 : switch (TREE_CODE (_p1))
9882 : {
9883 0 : case CALL_EXPR:
9884 0 : switch (get_call_combined_fn (_p1))
9885 : {
9886 0 : case CFN_LOG2:
9887 0 : if (call_expr_nargs (_p1) == 1)
9888 : {
9889 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9890 0 : {
9891 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9892 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_LOG2);
9893 0 : if (res) return res;
9894 : }
9895 : }
9896 : break;
9897 : default:;
9898 : }
9899 : break;
9900 : default:;
9901 : }
9902 : }
9903 : break;
9904 136 : case CFN_BUILT_IN_POPCOUNTL:
9905 136 : if (call_expr_nargs (_p0) == 1)
9906 : {
9907 136 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9908 136 : switch (TREE_CODE (_p1))
9909 : {
9910 69 : case CALL_EXPR:
9911 69 : switch (get_call_combined_fn (_p1))
9912 : {
9913 69 : case CFN_BUILT_IN_POPCOUNTL:
9914 69 : if (call_expr_nargs (_p1) == 1)
9915 : {
9916 69 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
9917 69 : {
9918 69 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9919 69 : tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
9920 69 : if (res) return res;
9921 : }
9922 : }
9923 : break;
9924 : default:;
9925 : }
9926 : break;
9927 136 : default:;
9928 : }
9929 136 : switch (TREE_CODE (_q20))
9930 : {
9931 0 : case BIT_AND_EXPR:
9932 0 : {
9933 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9934 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9935 0 : switch (TREE_CODE (_p1))
9936 : {
9937 0 : case CALL_EXPR:
9938 0 : switch (get_call_combined_fn (_p1))
9939 : {
9940 0 : case CFN_BUILT_IN_POPCOUNTL:
9941 0 : if (call_expr_nargs (_p1) == 1)
9942 : {
9943 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9944 0 : switch (TREE_CODE (_q60))
9945 : {
9946 0 : case BIT_IOR_EXPR:
9947 0 : {
9948 0 : tree _q70 = TREE_OPERAND (_q60, 0);
9949 0 : tree _q71 = TREE_OPERAND (_q60, 1);
9950 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
9951 : {
9952 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
9953 : {
9954 0 : {
9955 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9956 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
9957 0 : if (res) return res;
9958 : }
9959 : }
9960 : }
9961 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
9962 : {
9963 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
9964 : {
9965 0 : {
9966 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
9967 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
9968 0 : if (res) return res;
9969 : }
9970 : }
9971 : }
9972 : break;
9973 : }
9974 : default:;
9975 : }
9976 : }
9977 : break;
9978 : default:;
9979 : }
9980 : break;
9981 : default:;
9982 : }
9983 : break;
9984 : }
9985 0 : case BIT_IOR_EXPR:
9986 0 : {
9987 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9988 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9989 0 : switch (TREE_CODE (_p1))
9990 : {
9991 0 : case CALL_EXPR:
9992 0 : switch (get_call_combined_fn (_p1))
9993 : {
9994 0 : case CFN_BUILT_IN_POPCOUNTL:
9995 0 : if (call_expr_nargs (_p1) == 1)
9996 : {
9997 0 : tree _q60 = CALL_EXPR_ARG (_p1, 0);
9998 0 : switch (TREE_CODE (_q60))
9999 : {
10000 0 : case BIT_AND_EXPR:
10001 0 : {
10002 0 : tree _q70 = TREE_OPERAND (_q60, 0);
10003 0 : tree _q71 = TREE_OPERAND (_q60, 1);
10004 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
10005 : {
10006 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
10007 : {
10008 0 : {
10009 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
10010 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
10011 0 : if (res) return res;
10012 : }
10013 : }
10014 : }
10015 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
10016 : {
10017 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
10018 : {
10019 0 : {
10020 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
10021 0 : tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
10022 0 : if (res) return res;
10023 : }
10024 : }
10025 : }
10026 : break;
10027 : }
10028 : default:;
10029 : }
10030 : }
10031 : break;
10032 : default:;
10033 : }
10034 : break;
10035 : default:;
10036 : }
10037 : break;
10038 : }
10039 136 : default:;
10040 : }
10041 136 : switch (TREE_CODE (_p1))
10042 : {
10043 0 : case MINUS_EXPR:
10044 0 : {
10045 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10046 0 : tree _q41 = TREE_OPERAND (_p1, 1);
10047 0 : switch (TREE_CODE (_q40))
10048 : {
10049 0 : case CALL_EXPR:
10050 0 : switch (get_call_combined_fn (_q40))
10051 : {
10052 0 : case CFN_BUILT_IN_POPCOUNTL:
10053 0 : if (call_expr_nargs (_q40) == 1)
10054 : {
10055 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
10056 0 : switch (TREE_CODE (_q41))
10057 : {
10058 0 : case CALL_EXPR:
10059 0 : switch (get_call_combined_fn (_q41))
10060 : {
10061 0 : case CFN_BUILT_IN_POPCOUNTL:
10062 0 : if (call_expr_nargs (_q41) == 1)
10063 : {
10064 0 : tree _q70 = CALL_EXPR_ARG (_q41, 0);
10065 0 : switch (TREE_CODE (_q70))
10066 : {
10067 0 : case BIT_AND_EXPR:
10068 0 : {
10069 0 : tree _q80 = TREE_OPERAND (_q70, 0);
10070 0 : tree _q81 = TREE_OPERAND (_q70, 1);
10071 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
10072 : {
10073 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
10074 : {
10075 0 : {
10076 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10077 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
10078 0 : if (res) return res;
10079 : }
10080 : }
10081 : }
10082 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
10083 : {
10084 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
10085 : {
10086 0 : {
10087 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10088 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
10089 0 : if (res) return res;
10090 : }
10091 : }
10092 : }
10093 : break;
10094 : }
10095 0 : case BIT_IOR_EXPR:
10096 0 : {
10097 0 : tree _q80 = TREE_OPERAND (_q70, 0);
10098 0 : tree _q81 = TREE_OPERAND (_q70, 1);
10099 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
10100 : {
10101 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
10102 : {
10103 0 : {
10104 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10105 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
10106 0 : if (res) return res;
10107 : }
10108 : }
10109 : }
10110 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
10111 : {
10112 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
10113 : {
10114 0 : {
10115 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
10116 0 : tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
10117 0 : if (res) return res;
10118 : }
10119 : }
10120 : }
10121 : break;
10122 : }
10123 : default:;
10124 : }
10125 : }
10126 : break;
10127 : default:;
10128 : }
10129 : break;
10130 : default:;
10131 : }
10132 : }
10133 : break;
10134 : default:;
10135 : }
10136 : break;
10137 : default:;
10138 : }
10139 : break;
10140 : }
10141 : default:;
10142 : }
10143 : }
10144 : break;
10145 0 : case CFN_LOG10:
10146 0 : if (call_expr_nargs (_p0) == 1)
10147 : {
10148 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10149 0 : switch (TREE_CODE (_p1))
10150 : {
10151 0 : case CALL_EXPR:
10152 0 : switch (get_call_combined_fn (_p1))
10153 : {
10154 0 : case CFN_LOG10:
10155 0 : if (call_expr_nargs (_p1) == 1)
10156 : {
10157 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10158 0 : {
10159 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10160 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_LOG10);
10161 0 : if (res) return res;
10162 : }
10163 : }
10164 : break;
10165 : default:;
10166 : }
10167 : break;
10168 : default:;
10169 : }
10170 : }
10171 : break;
10172 0 : case CFN_BUILT_IN_LOG10:
10173 0 : if (call_expr_nargs (_p0) == 1)
10174 : {
10175 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10176 0 : switch (TREE_CODE (_p1))
10177 : {
10178 0 : case CALL_EXPR:
10179 0 : switch (get_call_combined_fn (_p1))
10180 : {
10181 0 : case CFN_BUILT_IN_LOG10:
10182 0 : if (call_expr_nargs (_p1) == 1)
10183 : {
10184 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10185 0 : {
10186 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10187 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10);
10188 0 : if (res) return res;
10189 : }
10190 : }
10191 : break;
10192 : default:;
10193 : }
10194 : break;
10195 : default:;
10196 : }
10197 : }
10198 : break;
10199 0 : case CFN_BUILT_IN_LOG2F:
10200 0 : if (call_expr_nargs (_p0) == 1)
10201 : {
10202 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10203 0 : switch (TREE_CODE (_p1))
10204 : {
10205 0 : case CALL_EXPR:
10206 0 : switch (get_call_combined_fn (_p1))
10207 : {
10208 0 : case CFN_BUILT_IN_LOG2F:
10209 0 : if (call_expr_nargs (_p1) == 1)
10210 : {
10211 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10212 0 : {
10213 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10214 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F);
10215 0 : if (res) return res;
10216 : }
10217 : }
10218 : break;
10219 : default:;
10220 : }
10221 : break;
10222 : default:;
10223 : }
10224 : }
10225 : break;
10226 0 : case CFN_BUILT_IN_LOG2L:
10227 0 : if (call_expr_nargs (_p0) == 1)
10228 : {
10229 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10230 0 : switch (TREE_CODE (_p1))
10231 : {
10232 0 : case CALL_EXPR:
10233 0 : switch (get_call_combined_fn (_p1))
10234 : {
10235 0 : case CFN_BUILT_IN_LOG2L:
10236 0 : if (call_expr_nargs (_p1) == 1)
10237 : {
10238 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10239 0 : {
10240 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10241 0 : tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L);
10242 0 : if (res) return res;
10243 : }
10244 : }
10245 : break;
10246 : default:;
10247 : }
10248 : break;
10249 : default:;
10250 : }
10251 : }
10252 : break;
10253 : default:;
10254 : }
10255 : break;
10256 63436422 : default:;
10257 : }
10258 63436422 : switch (TREE_CODE (_p1))
10259 : {
10260 0 : case VEC_PERM_EXPR:
10261 0 : {
10262 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10263 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10264 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10265 0 : switch (TREE_CODE (_q30))
10266 : {
10267 0 : case MULT_EXPR:
10268 0 : {
10269 0 : tree _q40 = TREE_OPERAND (_q30, 0);
10270 0 : tree _q41 = TREE_OPERAND (_q30, 1);
10271 0 : if (tree_vec_same_elem_p (_q41))
10272 : {
10273 0 : if ((_q31 == _q30 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q30, 0) && types_match (_q31, _q30)))
10274 : {
10275 0 : {
10276 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q41, _q32, _p0 };
10277 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
10278 0 : if (res) return res;
10279 : }
10280 : }
10281 : }
10282 0 : if (tree_vec_same_elem_p (_q40))
10283 : {
10284 0 : if ((_q31 == _q30 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q30, 0) && types_match (_q31, _q30)))
10285 : {
10286 0 : {
10287 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _q40, _q32, _p0 };
10288 0 : tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
10289 0 : if (res) return res;
10290 : }
10291 : }
10292 : }
10293 : break;
10294 : }
10295 : default:;
10296 : }
10297 : break;
10298 : }
10299 : default:;
10300 : }
10301 : return NULL_TREE;
10302 : }
10303 :
10304 : tree
10305 1944 : generic_simplify_LROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10306 : {
10307 1944 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10308 1944 : if (integer_all_onesp (_p0))
10309 : {
10310 0 : {
10311 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10312 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10313 0 : if (res) return res;
10314 : }
10315 : }
10316 1944 : if (integer_zerop (_p1))
10317 : {
10318 0 : {
10319 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10320 0 : tree res = generic_simplify_423 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10321 0 : if (res) return res;
10322 : }
10323 : }
10324 1944 : if (integer_zerop (_p0))
10325 : {
10326 0 : {
10327 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10328 0 : tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10329 0 : if (res) return res;
10330 : }
10331 : }
10332 1944 : switch (TREE_CODE (_p1))
10333 : {
10334 0 : case VECTOR_CST:
10335 0 : {
10336 0 : {
10337 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10338 0 : tree res = generic_simplify_425 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10339 0 : if (res) return res;
10340 : }
10341 0 : break;
10342 : }
10343 0 : case CONSTRUCTOR:
10344 0 : {
10345 0 : {
10346 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10347 0 : tree res = generic_simplify_426 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10348 0 : if (res) return res;
10349 : }
10350 0 : break;
10351 : }
10352 1295 : case INTEGER_CST:
10353 1295 : {
10354 1295 : {
10355 1295 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10356 1295 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1794;
10357 1295 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1794;
10358 1295 : {
10359 1295 : tree res_op0;
10360 1295 : res_op0 = captures[0];
10361 1295 : tree res_op1;
10362 1295 : res_op1 = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]),
10363 1295 : build_int_cst (TREE_TYPE (captures[1]),
10364 1295 : element_precision (type)), captures[1]);
10365 1295 : tree _r;
10366 1295 : _r = fold_build2_loc (loc, RROTATE_EXPR, type, res_op0, res_op1);
10367 1295 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1038, __FILE__, __LINE__, true);
10368 1295 : return _r;
10369 : }
10370 0 : next_after_fail1794:;
10371 : }
10372 0 : break;
10373 : }
10374 0 : case MINUS_EXPR:
10375 0 : {
10376 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10377 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10378 0 : switch (TREE_CODE (_q30))
10379 : {
10380 0 : case INTEGER_CST:
10381 0 : {
10382 0 : {
10383 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
10384 0 : tree res = generic_simplify_561 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR);
10385 0 : if (res) return res;
10386 : }
10387 0 : break;
10388 : }
10389 : default:;
10390 : }
10391 : break;
10392 : }
10393 649 : default:;
10394 : }
10395 649 : switch (TREE_CODE (_p0))
10396 : {
10397 0 : case LROTATE_EXPR:
10398 0 : {
10399 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10400 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10401 0 : switch (TREE_CODE (_q21))
10402 : {
10403 0 : case INTEGER_CST:
10404 0 : {
10405 0 : switch (TREE_CODE (_p1))
10406 : {
10407 0 : case INTEGER_CST:
10408 0 : {
10409 0 : {
10410 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
10411 0 : tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
10412 0 : if (res) return res;
10413 : }
10414 0 : break;
10415 : }
10416 : default:;
10417 : }
10418 : break;
10419 : }
10420 : default:;
10421 : }
10422 : break;
10423 : }
10424 : default:;
10425 : }
10426 : return NULL_TREE;
10427 : }
10428 :
10429 : tree
10430 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)
10431 : {
10432 2797 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10433 2797 : if (integer_all_onesp (_p0))
10434 : {
10435 0 : {
10436 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10437 0 : tree res = generic_simplify_560 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10438 0 : if (res) return res;
10439 : }
10440 : }
10441 2797 : if (integer_zerop (_p1))
10442 : {
10443 1 : {
10444 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10445 1 : tree res = generic_simplify_423 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10446 1 : if (res) return res;
10447 : }
10448 : }
10449 2796 : if (integer_zerop (_p0))
10450 : {
10451 0 : {
10452 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10453 0 : tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10454 0 : if (res) return res;
10455 : }
10456 : }
10457 2796 : switch (TREE_CODE (_p1))
10458 : {
10459 0 : case VECTOR_CST:
10460 0 : {
10461 0 : {
10462 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10463 0 : tree res = generic_simplify_425 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10464 0 : if (res) return res;
10465 : }
10466 0 : break;
10467 : }
10468 0 : case CONSTRUCTOR:
10469 0 : {
10470 0 : {
10471 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10472 0 : tree res = generic_simplify_426 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10473 0 : if (res) return res;
10474 : }
10475 0 : break;
10476 : }
10477 0 : case MINUS_EXPR:
10478 0 : {
10479 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10480 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10481 0 : switch (TREE_CODE (_q30))
10482 : {
10483 0 : case INTEGER_CST:
10484 0 : {
10485 0 : {
10486 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
10487 0 : tree res = generic_simplify_561 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR);
10488 0 : if (res) return res;
10489 : }
10490 0 : break;
10491 : }
10492 : default:;
10493 : }
10494 : break;
10495 : }
10496 2796 : default:;
10497 : }
10498 2796 : switch (TREE_CODE (_p0))
10499 : {
10500 0 : case RROTATE_EXPR:
10501 0 : {
10502 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10503 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10504 0 : switch (TREE_CODE (_q21))
10505 : {
10506 0 : case INTEGER_CST:
10507 0 : {
10508 0 : switch (TREE_CODE (_p1))
10509 : {
10510 0 : case INTEGER_CST:
10511 0 : {
10512 0 : {
10513 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
10514 0 : tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
10515 0 : if (res) return res;
10516 : }
10517 0 : break;
10518 : }
10519 : default:;
10520 : }
10521 : break;
10522 : }
10523 : default:;
10524 : }
10525 : break;
10526 : }
10527 : default:;
10528 : }
10529 : return NULL_TREE;
10530 : }
10531 :
10532 : tree
10533 203823 : generic_simplify_ORDERED_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10534 : {
10535 203823 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10536 203823 : switch (TREE_CODE (_p0))
10537 : {
10538 0 : case VEC_COND_EXPR:
10539 0 : {
10540 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10541 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10542 0 : tree _q22 = TREE_OPERAND (_p0, 2);
10543 0 : switch (TREE_CODE (_p1))
10544 : {
10545 0 : case VEC_COND_EXPR:
10546 0 : {
10547 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10548 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10549 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10550 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10551 : {
10552 0 : {
10553 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
10554 0 : if (VECTOR_TYPE_P (type)
10555 0 : && (TREE_CODE_CLASS (ORDERED_EXPR) != tcc_comparison
10556 0 : || types_match (type, TREE_TYPE (captures[2]))
10557 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10558 : || (optimize_vectors_before_lowering_p ()
10559 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10560 : )
10561 : {
10562 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1801;
10563 0 : {
10564 0 : tree res_op0;
10565 0 : res_op0 = captures[1];
10566 0 : tree res_op1;
10567 0 : {
10568 0 : tree _o1[2], _r1;
10569 0 : _o1[0] = captures[2];
10570 0 : _o1[1] = captures[5];
10571 0 : _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
10572 0 : if (EXPR_P (_r1))
10573 0 : goto next_after_fail1801;
10574 0 : res_op1 = _r1;
10575 : }
10576 0 : tree res_op2;
10577 0 : {
10578 0 : tree _o1[2], _r1;
10579 0 : _o1[0] = captures[3];
10580 0 : _o1[1] = captures[6];
10581 0 : _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
10582 0 : if (EXPR_P (_r1))
10583 0 : goto next_after_fail1801;
10584 0 : res_op2 = _r1;
10585 : }
10586 0 : tree _r;
10587 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10588 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
10589 0 : return _r;
10590 : }
10591 0 : next_after_fail1801:;
10592 : }
10593 : }
10594 : }
10595 : break;
10596 : }
10597 0 : default:;
10598 : }
10599 0 : {
10600 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
10601 0 : if (VECTOR_TYPE_P (type)
10602 0 : && (TREE_CODE_CLASS (ORDERED_EXPR) != tcc_comparison
10603 0 : || types_match (type, TREE_TYPE (captures[2]))
10604 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10605 : || (optimize_vectors_before_lowering_p ()
10606 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10607 : )
10608 : {
10609 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1802;
10610 0 : {
10611 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1802;
10612 0 : tree res_op0;
10613 0 : res_op0 = captures[1];
10614 0 : tree res_op1;
10615 0 : {
10616 0 : tree _o1[2], _r1;
10617 0 : _o1[0] = captures[2];
10618 0 : _o1[1] = unshare_expr (captures[4]);
10619 0 : _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
10620 0 : if (EXPR_P (_r1))
10621 0 : goto next_after_fail1802;
10622 0 : res_op1 = _r1;
10623 : }
10624 0 : tree res_op2;
10625 0 : {
10626 0 : tree _o1[2], _r1;
10627 0 : _o1[0] = captures[3];
10628 0 : _o1[1] = captures[4];
10629 0 : _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
10630 0 : if (EXPR_P (_r1))
10631 0 : goto next_after_fail1802;
10632 0 : res_op2 = _r1;
10633 : }
10634 0 : tree _r;
10635 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10636 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
10637 0 : return _r;
10638 : }
10639 0 : next_after_fail1802:;
10640 : }
10641 : }
10642 0 : break;
10643 : }
10644 203823 : default:;
10645 : }
10646 203823 : switch (TREE_CODE (_p1))
10647 : {
10648 0 : case VEC_COND_EXPR:
10649 0 : {
10650 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10651 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10652 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10653 0 : {
10654 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
10655 0 : if (VECTOR_TYPE_P (type)
10656 0 : && (TREE_CODE_CLASS (ORDERED_EXPR) != tcc_comparison
10657 0 : || types_match (type, TREE_TYPE (captures[3]))
10658 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
10659 : || (optimize_vectors_before_lowering_p ()
10660 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
10661 : )
10662 : {
10663 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1803;
10664 0 : {
10665 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1803;
10666 0 : tree res_op0;
10667 0 : res_op0 = captures[2];
10668 0 : tree res_op1;
10669 0 : {
10670 0 : tree _o1[2], _r1;
10671 0 : _o1[0] = unshare_expr (captures[0]);
10672 0 : _o1[1] = captures[3];
10673 0 : _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
10674 0 : if (EXPR_P (_r1))
10675 0 : goto next_after_fail1803;
10676 0 : res_op1 = _r1;
10677 : }
10678 0 : tree res_op2;
10679 0 : {
10680 0 : tree _o1[2], _r1;
10681 0 : _o1[0] = captures[0];
10682 0 : _o1[1] = captures[4];
10683 0 : _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
10684 0 : if (EXPR_P (_r1))
10685 0 : goto next_after_fail1803;
10686 0 : res_op2 = _r1;
10687 : }
10688 0 : tree _r;
10689 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10690 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 901, __FILE__, __LINE__, true);
10691 0 : return _r;
10692 : }
10693 0 : next_after_fail1803:;
10694 : }
10695 : }
10696 0 : break;
10697 : }
10698 203823 : default:;
10699 : }
10700 203823 : switch (TREE_CODE (_p0))
10701 : {
10702 0 : case FLOAT_EXPR:
10703 0 : {
10704 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10705 0 : switch (TREE_CODE (_p1))
10706 : {
10707 0 : case FLOAT_EXPR:
10708 0 : {
10709 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10710 0 : {
10711 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10712 0 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
10713 0 : if (res) return res;
10714 : }
10715 0 : break;
10716 : }
10717 : default:;
10718 : }
10719 : break;
10720 : }
10721 0 : case NEGATE_EXPR:
10722 0 : {
10723 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10724 0 : switch (TREE_CODE (_p1))
10725 : {
10726 0 : case NEGATE_EXPR:
10727 0 : {
10728 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10729 0 : {
10730 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
10731 0 : tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
10732 0 : if (res) return res;
10733 : }
10734 0 : break;
10735 : }
10736 0 : default:;
10737 : }
10738 0 : if (CONSTANT_CLASS_P (_p1))
10739 : {
10740 0 : {
10741 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10742 0 : tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
10743 0 : if (res) return res;
10744 : }
10745 : }
10746 : break;
10747 : }
10748 203823 : default:;
10749 : }
10750 203823 : switch (TREE_CODE (_p1))
10751 : {
10752 102 : case REAL_CST:
10753 102 : {
10754 102 : {
10755 102 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10756 102 : tree res = generic_simplify_567 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
10757 102 : if (res) return res;
10758 : }
10759 102 : break;
10760 : }
10761 203823 : default:;
10762 : }
10763 203823 : {
10764 203823 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10765 203823 : if (tree_expr_nan_p (captures[0]) || tree_expr_nan_p (captures[1])
10766 : )
10767 : {
10768 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1804;
10769 0 : {
10770 0 : tree _r;
10771 0 : _r = constant_boolean_node (false, type);
10772 0 : if (TREE_SIDE_EFFECTS (captures[0]))
10773 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
10774 0 : if (TREE_SIDE_EFFECTS (captures[1]))
10775 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
10776 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1042, __FILE__, __LINE__, true);
10777 0 : return _r;
10778 : }
10779 0 : next_after_fail1804:;
10780 : }
10781 : else
10782 : {
10783 203823 : if (!tree_expr_maybe_nan_p (captures[0]) && !tree_expr_maybe_nan_p (captures[1])
10784 : )
10785 : {
10786 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1805;
10787 10 : {
10788 10 : tree _r;
10789 10 : _r = constant_boolean_node (true, type);
10790 10 : if (TREE_SIDE_EFFECTS (captures[0]))
10791 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
10792 10 : if (TREE_SIDE_EFFECTS (captures[1]))
10793 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
10794 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1043, __FILE__, __LINE__, true);
10795 10 : return _r;
10796 : }
10797 0 : next_after_fail1805:;
10798 : }
10799 : }
10800 : }
10801 203813 : return NULL_TREE;
10802 : }
10803 :
10804 : tree
10805 374872 : generic_simplify_UNEQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10806 : {
10807 374872 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10808 374872 : switch (TREE_CODE (_p0))
10809 : {
10810 0 : case VEC_COND_EXPR:
10811 0 : {
10812 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10813 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10814 0 : tree _q22 = TREE_OPERAND (_p0, 2);
10815 0 : switch (TREE_CODE (_p1))
10816 : {
10817 0 : case VEC_COND_EXPR:
10818 0 : {
10819 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10820 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10821 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10822 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10823 : {
10824 0 : {
10825 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
10826 0 : if (VECTOR_TYPE_P (type)
10827 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
10828 0 : || types_match (type, TREE_TYPE (captures[2]))
10829 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10830 : || (optimize_vectors_before_lowering_p ()
10831 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10832 : )
10833 : {
10834 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1818;
10835 0 : {
10836 0 : tree res_op0;
10837 0 : res_op0 = captures[1];
10838 0 : tree res_op1;
10839 0 : {
10840 0 : tree _o1[2], _r1;
10841 0 : _o1[0] = captures[2];
10842 0 : _o1[1] = captures[5];
10843 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10844 0 : if (EXPR_P (_r1))
10845 0 : goto next_after_fail1818;
10846 0 : res_op1 = _r1;
10847 : }
10848 0 : tree res_op2;
10849 0 : {
10850 0 : tree _o1[2], _r1;
10851 0 : _o1[0] = captures[3];
10852 0 : _o1[1] = captures[6];
10853 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10854 0 : if (EXPR_P (_r1))
10855 0 : goto next_after_fail1818;
10856 0 : res_op2 = _r1;
10857 : }
10858 0 : tree _r;
10859 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10860 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
10861 0 : return _r;
10862 : }
10863 0 : next_after_fail1818:;
10864 : }
10865 : }
10866 : }
10867 : break;
10868 : }
10869 0 : default:;
10870 : }
10871 0 : {
10872 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
10873 0 : if (VECTOR_TYPE_P (type)
10874 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
10875 0 : || types_match (type, TREE_TYPE (captures[2]))
10876 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10877 : || (optimize_vectors_before_lowering_p ()
10878 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10879 : )
10880 : {
10881 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1819;
10882 0 : {
10883 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1819;
10884 0 : tree res_op0;
10885 0 : res_op0 = captures[1];
10886 0 : tree res_op1;
10887 0 : {
10888 0 : tree _o1[2], _r1;
10889 0 : _o1[0] = captures[2];
10890 0 : _o1[1] = unshare_expr (captures[4]);
10891 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10892 0 : if (EXPR_P (_r1))
10893 0 : goto next_after_fail1819;
10894 0 : res_op1 = _r1;
10895 : }
10896 0 : tree res_op2;
10897 0 : {
10898 0 : tree _o1[2], _r1;
10899 0 : _o1[0] = captures[3];
10900 0 : _o1[1] = captures[4];
10901 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10902 0 : if (EXPR_P (_r1))
10903 0 : goto next_after_fail1819;
10904 0 : res_op2 = _r1;
10905 : }
10906 0 : tree _r;
10907 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10908 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
10909 0 : return _r;
10910 : }
10911 0 : next_after_fail1819:;
10912 : }
10913 : }
10914 0 : break;
10915 : }
10916 374872 : default:;
10917 : }
10918 374872 : switch (TREE_CODE (_p1))
10919 : {
10920 0 : case VEC_COND_EXPR:
10921 0 : {
10922 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10923 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10924 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10925 0 : {
10926 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
10927 0 : if (VECTOR_TYPE_P (type)
10928 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
10929 0 : || types_match (type, TREE_TYPE (captures[3]))
10930 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
10931 : || (optimize_vectors_before_lowering_p ()
10932 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
10933 : )
10934 : {
10935 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1820;
10936 0 : {
10937 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1820;
10938 0 : tree res_op0;
10939 0 : res_op0 = captures[2];
10940 0 : tree res_op1;
10941 0 : {
10942 0 : tree _o1[2], _r1;
10943 0 : _o1[0] = unshare_expr (captures[0]);
10944 0 : _o1[1] = captures[3];
10945 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10946 0 : if (EXPR_P (_r1))
10947 0 : goto next_after_fail1820;
10948 0 : res_op1 = _r1;
10949 : }
10950 0 : tree res_op2;
10951 0 : {
10952 0 : tree _o1[2], _r1;
10953 0 : _o1[0] = captures[0];
10954 0 : _o1[1] = captures[4];
10955 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10956 0 : if (EXPR_P (_r1))
10957 0 : goto next_after_fail1820;
10958 0 : res_op2 = _r1;
10959 : }
10960 0 : tree _r;
10961 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10962 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 901, __FILE__, __LINE__, true);
10963 0 : return _r;
10964 : }
10965 0 : next_after_fail1820:;
10966 : }
10967 : }
10968 0 : break;
10969 : }
10970 374872 : default:;
10971 : }
10972 374872 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
10973 : {
10974 0 : {
10975 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10976 0 : tree res = generic_simplify_569 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
10977 0 : if (res) return res;
10978 : }
10979 : }
10980 374872 : switch (TREE_CODE (_p0))
10981 : {
10982 0 : case FLOAT_EXPR:
10983 0 : {
10984 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10985 0 : switch (TREE_CODE (_p1))
10986 : {
10987 0 : case FLOAT_EXPR:
10988 0 : {
10989 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10990 0 : {
10991 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10992 0 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, UNEQ_EXPR, EQ_EXPR);
10993 0 : if (res) return res;
10994 : }
10995 0 : break;
10996 : }
10997 : default:;
10998 : }
10999 : break;
11000 : }
11001 0 : case NEGATE_EXPR:
11002 0 : {
11003 0 : tree _q20 = TREE_OPERAND (_p0, 0);
11004 0 : switch (TREE_CODE (_p1))
11005 : {
11006 0 : case NEGATE_EXPR:
11007 0 : {
11008 0 : tree _q40 = TREE_OPERAND (_p1, 0);
11009 0 : {
11010 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11011 0 : tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
11012 0 : if (res) return res;
11013 : }
11014 0 : break;
11015 : }
11016 0 : default:;
11017 : }
11018 0 : if (CONSTANT_CLASS_P (_p1))
11019 : {
11020 0 : {
11021 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
11022 0 : tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
11023 0 : if (res) return res;
11024 : }
11025 : }
11026 : break;
11027 : }
11028 374872 : default:;
11029 : }
11030 374872 : switch (TREE_CODE (_p1))
11031 : {
11032 154 : case REAL_CST:
11033 154 : {
11034 154 : {
11035 154 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11036 154 : tree res = generic_simplify_567 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
11037 154 : if (res) return res;
11038 : }
11039 152 : break;
11040 : }
11041 : default:;
11042 : }
11043 : return NULL_TREE;
11044 : }
11045 :
11046 : tree
11047 464503 : 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)
11048 : {
11049 464503 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
11050 464503 : switch (TREE_CODE (_p0))
11051 : {
11052 1418 : case NE_EXPR:
11053 1418 : {
11054 1418 : tree _q20 = TREE_OPERAND (_p0, 0);
11055 1418 : tree _q21 = TREE_OPERAND (_p0, 1);
11056 1418 : if (uniform_integer_cst_p (_q21))
11057 : {
11058 475 : switch (TREE_CODE (_p1))
11059 : {
11060 35 : case PLUS_EXPR:
11061 35 : {
11062 35 : tree _q50 = TREE_OPERAND (_p1, 0);
11063 35 : tree _q51 = TREE_OPERAND (_p1, 1);
11064 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11065 : {
11066 24 : if (uniform_integer_cst_p (_q51))
11067 : {
11068 24 : if (uniform_integer_cst_p (_p2))
11069 : {
11070 24 : {
11071 24 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
11072 24 : {
11073 24 : tree cst1 = uniform_integer_cst_p (captures[1]);
11074 24 : tree cst2 = uniform_integer_cst_p (captures[3]);
11075 24 : tree cst3 = uniform_integer_cst_p (captures[4]);
11076 24 : if (wi::to_wide (cst1) + wi::to_wide (cst2) == wi::to_wide (cst3)
11077 : )
11078 : {
11079 18 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1915;
11080 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1915;
11081 18 : {
11082 18 : tree _r;
11083 18 : _r = captures[2];
11084 18 : if (TREE_SIDE_EFFECTS (captures[1]))
11085 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11086 18 : if (TREE_SIDE_EFFECTS (captures[4]))
11087 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
11088 18 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
11089 18 : return _r;
11090 : }
11091 6 : next_after_fail1915:;
11092 : }
11093 : }
11094 : }
11095 : }
11096 : }
11097 : }
11098 : break;
11099 : }
11100 : default:;
11101 : }
11102 : }
11103 : break;
11104 : }
11105 21984 : case VECTOR_CST:
11106 21984 : {
11107 21984 : {
11108 21984 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11109 21984 : if (integer_all_onesp (captures[0])
11110 : )
11111 : {
11112 8040 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1916;
11113 8040 : {
11114 8040 : tree _r;
11115 8040 : _r = captures[1];
11116 8040 : if (TREE_SIDE_EFFECTS (captures[0]))
11117 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11118 8040 : if (TREE_SIDE_EFFECTS (captures[2]))
11119 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11120 8040 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1084, __FILE__, __LINE__, true);
11121 8040 : return _r;
11122 : }
11123 0 : next_after_fail1916:;
11124 : }
11125 : else
11126 : {
11127 13944 : if (integer_zerop (captures[0])
11128 : )
11129 : {
11130 2240 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1917;
11131 2240 : {
11132 2240 : tree _r;
11133 2240 : _r = captures[2];
11134 2240 : if (TREE_SIDE_EFFECTS (captures[0]))
11135 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11136 2240 : if (TREE_SIDE_EFFECTS (captures[1]))
11137 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11138 2240 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1085, __FILE__, __LINE__, true);
11139 2240 : return _r;
11140 : }
11141 0 : next_after_fail1917:;
11142 : }
11143 : }
11144 : }
11145 11704 : break;
11146 : }
11147 454205 : default:;
11148 : }
11149 454205 : switch (TREE_CODE (_p1))
11150 : {
11151 379275 : case VECTOR_CST:
11152 379275 : {
11153 379275 : switch (TREE_CODE (_p2))
11154 : {
11155 365351 : case VECTOR_CST:
11156 365351 : {
11157 365351 : {
11158 365351 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
11159 365351 : if (VECTOR_BOOLEAN_TYPE_P (type)
11160 365489 : && types_match (type, TREE_TYPE (captures[0]))
11161 : )
11162 : {
11163 131 : if (integer_zerop (captures[1]) && integer_all_onesp (captures[2])
11164 : )
11165 : {
11166 28 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1918;
11167 28 : {
11168 28 : tree res_op0;
11169 28 : res_op0 = captures[0];
11170 28 : tree _r;
11171 28 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
11172 28 : if (TREE_SIDE_EFFECTS (captures[1]))
11173 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11174 28 : if (TREE_SIDE_EFFECTS (captures[2]))
11175 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11176 28 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1086, __FILE__, __LINE__, true);
11177 28 : return _r;
11178 : }
11179 0 : next_after_fail1918:;
11180 : }
11181 : else
11182 : {
11183 103 : if (integer_all_onesp (captures[1]) && integer_zerop (captures[2])
11184 : )
11185 : {
11186 73 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1919;
11187 73 : {
11188 73 : tree _r;
11189 73 : _r = captures[0];
11190 73 : if (TREE_SIDE_EFFECTS (captures[1]))
11191 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11192 73 : if (TREE_SIDE_EFFECTS (captures[2]))
11193 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11194 73 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1087, __FILE__, __LINE__, true);
11195 73 : return _r;
11196 : }
11197 0 : next_after_fail1919:;
11198 : }
11199 : }
11200 : }
11201 : }
11202 365250 : break;
11203 : }
11204 : default:;
11205 : }
11206 : break;
11207 : }
11208 454104 : default:;
11209 : }
11210 454104 : switch (TREE_CODE (_p0))
11211 : {
11212 1398 : case NE_EXPR:
11213 1398 : {
11214 1398 : tree _q20 = TREE_OPERAND (_p0, 0);
11215 1398 : tree _q21 = TREE_OPERAND (_p0, 1);
11216 1398 : switch (TREE_CODE (_p1))
11217 : {
11218 6 : case MINUS_EXPR:
11219 6 : {
11220 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11221 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11222 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11223 : {
11224 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11225 : {
11226 6 : if (integer_zerop (_p2))
11227 : {
11228 6 : {
11229 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11230 6 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures);
11231 6 : if (res) return res;
11232 : }
11233 : }
11234 : }
11235 : }
11236 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11237 : {
11238 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11239 : {
11240 0 : if (integer_zerop (_p2))
11241 : {
11242 0 : {
11243 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11244 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, _p2, captures);
11245 0 : if (res) return res;
11246 : }
11247 : }
11248 : }
11249 : }
11250 : break;
11251 : }
11252 6 : case BIT_XOR_EXPR:
11253 6 : {
11254 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11255 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11256 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11257 : {
11258 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11259 : {
11260 6 : if (integer_zerop (_p2))
11261 : {
11262 6 : {
11263 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11264 6 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures);
11265 6 : if (res) return res;
11266 : }
11267 : }
11268 : }
11269 : }
11270 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11271 : {
11272 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11273 : {
11274 0 : if (integer_zerop (_p2))
11275 : {
11276 0 : {
11277 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11278 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, _p2, captures);
11279 0 : if (res) return res;
11280 : }
11281 : }
11282 : }
11283 : }
11284 : break;
11285 : }
11286 6 : case BIT_AND_EXPR:
11287 6 : {
11288 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11289 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11290 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11291 : {
11292 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11293 : {
11294 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11295 : {
11296 6 : {
11297 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11298 6 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11299 6 : if (res) return res;
11300 : }
11301 : }
11302 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11303 : {
11304 0 : {
11305 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11306 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11307 0 : if (res) return res;
11308 : }
11309 : }
11310 : }
11311 : }
11312 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11313 : {
11314 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11315 : {
11316 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11317 : {
11318 0 : {
11319 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11320 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11321 0 : if (res) return res;
11322 : }
11323 : }
11324 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11325 : {
11326 0 : {
11327 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11328 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
11329 0 : if (res) return res;
11330 : }
11331 : }
11332 : }
11333 : }
11334 : break;
11335 : }
11336 6 : case BIT_IOR_EXPR:
11337 6 : {
11338 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11339 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11340 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11341 : {
11342 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11343 : {
11344 6 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11345 : {
11346 6 : {
11347 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11348 6 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11349 6 : if (res) return res;
11350 : }
11351 : }
11352 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11353 : {
11354 0 : {
11355 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11356 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11357 0 : if (res) return res;
11358 : }
11359 : }
11360 : }
11361 : }
11362 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11363 : {
11364 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11365 : {
11366 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11367 : {
11368 0 : {
11369 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11370 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11371 0 : if (res) return res;
11372 : }
11373 : }
11374 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11375 : {
11376 0 : {
11377 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11378 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
11379 0 : if (res) return res;
11380 : }
11381 : }
11382 : }
11383 : }
11384 : break;
11385 : }
11386 0 : case MIN_EXPR:
11387 0 : {
11388 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11389 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11390 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11391 : {
11392 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11393 : {
11394 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11395 : {
11396 0 : {
11397 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11398 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11399 0 : if (res) return res;
11400 : }
11401 : }
11402 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11403 : {
11404 0 : {
11405 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11406 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11407 0 : if (res) return res;
11408 : }
11409 : }
11410 : }
11411 : }
11412 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11413 : {
11414 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11415 : {
11416 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11417 : {
11418 0 : {
11419 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11420 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11421 0 : if (res) return res;
11422 : }
11423 : }
11424 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11425 : {
11426 0 : {
11427 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11428 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
11429 0 : if (res) return res;
11430 : }
11431 : }
11432 : }
11433 : }
11434 : break;
11435 : }
11436 0 : case MAX_EXPR:
11437 0 : {
11438 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11439 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11440 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11441 : {
11442 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11443 : {
11444 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11445 : {
11446 0 : {
11447 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11448 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11449 0 : if (res) return res;
11450 : }
11451 : }
11452 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11453 : {
11454 0 : {
11455 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11456 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11457 0 : if (res) return res;
11458 : }
11459 : }
11460 : }
11461 : }
11462 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11463 : {
11464 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11465 : {
11466 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
11467 : {
11468 0 : {
11469 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11470 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11471 0 : if (res) return res;
11472 : }
11473 : }
11474 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
11475 : {
11476 0 : {
11477 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11478 0 : tree res = generic_simplify_547 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
11479 0 : if (res) return res;
11480 : }
11481 : }
11482 : }
11483 : }
11484 : break;
11485 : }
11486 6 : case MULT_EXPR:
11487 6 : {
11488 6 : tree _q50 = TREE_OPERAND (_p1, 0);
11489 6 : tree _q51 = TREE_OPERAND (_p1, 1);
11490 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11491 : {
11492 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11493 : {
11494 6 : switch (TREE_CODE (_p2))
11495 : {
11496 6 : case MULT_EXPR:
11497 6 : {
11498 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11499 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11500 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11501 : {
11502 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
11503 : {
11504 6 : {
11505 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11506 6 : const enum tree_code op = MULT_EXPR;
11507 6 : if (ANY_INTEGRAL_TYPE_P (type)
11508 : )
11509 : {
11510 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1920;
11511 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1920;
11512 6 : {
11513 6 : tree _r;
11514 6 : _r = captures[2];
11515 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
11516 6 : return _r;
11517 : }
11518 0 : next_after_fail1920:;
11519 : }
11520 : }
11521 : }
11522 : }
11523 : break;
11524 : }
11525 : default:;
11526 : }
11527 : }
11528 : }
11529 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11530 : {
11531 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11532 : {
11533 0 : switch (TREE_CODE (_p2))
11534 : {
11535 0 : case MULT_EXPR:
11536 0 : {
11537 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11538 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11539 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11540 : {
11541 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
11542 : {
11543 0 : {
11544 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11545 0 : const enum tree_code op = MULT_EXPR;
11546 0 : if (ANY_INTEGRAL_TYPE_P (type)
11547 : )
11548 : {
11549 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1921;
11550 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1921;
11551 0 : {
11552 0 : tree _r;
11553 0 : _r = captures[2];
11554 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
11555 0 : return _r;
11556 : }
11557 0 : next_after_fail1921:;
11558 : }
11559 : }
11560 : }
11561 : }
11562 : break;
11563 : }
11564 : default:;
11565 : }
11566 : }
11567 : }
11568 : break;
11569 : }
11570 35 : case PLUS_EXPR:
11571 35 : {
11572 35 : tree _q50 = TREE_OPERAND (_p1, 0);
11573 35 : tree _q51 = TREE_OPERAND (_p1, 1);
11574 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11575 : {
11576 24 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11577 : {
11578 12 : switch (TREE_CODE (_p2))
11579 : {
11580 6 : case PLUS_EXPR:
11581 6 : {
11582 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11583 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11584 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11585 : {
11586 6 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
11587 : {
11588 6 : {
11589 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11590 6 : const enum tree_code op = PLUS_EXPR;
11591 6 : if (ANY_INTEGRAL_TYPE_P (type)
11592 : )
11593 : {
11594 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1922;
11595 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1922;
11596 6 : {
11597 6 : tree _r;
11598 6 : _r = captures[2];
11599 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
11600 6 : return _r;
11601 : }
11602 0 : next_after_fail1922:;
11603 : }
11604 : }
11605 : }
11606 : }
11607 : break;
11608 : }
11609 6 : case MULT_EXPR:
11610 6 : {
11611 6 : tree _q80 = TREE_OPERAND (_p2, 0);
11612 6 : tree _q81 = TREE_OPERAND (_p2, 1);
11613 6 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11614 : {
11615 6 : if (uniform_integer_cst_p (_q81))
11616 : {
11617 6 : {
11618 6 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
11619 6 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11620 : )
11621 : {
11622 6 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1923;
11623 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1923;
11624 6 : {
11625 6 : tree _r;
11626 6 : _r = captures[2];
11627 6 : if (TREE_SIDE_EFFECTS (captures[3]))
11628 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11629 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1051, __FILE__, __LINE__, true);
11630 6 : return _r;
11631 : }
11632 0 : next_after_fail1923:;
11633 : }
11634 : }
11635 : }
11636 : }
11637 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11638 : {
11639 0 : if (uniform_integer_cst_p (_q81))
11640 : {
11641 0 : {
11642 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
11643 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11644 : )
11645 : {
11646 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1924;
11647 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1924;
11648 0 : {
11649 0 : tree _r;
11650 0 : _r = captures[2];
11651 0 : if (TREE_SIDE_EFFECTS (captures[3]))
11652 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11653 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1051, __FILE__, __LINE__, true);
11654 0 : return _r;
11655 : }
11656 0 : next_after_fail1924:;
11657 : }
11658 : }
11659 : }
11660 : }
11661 : break;
11662 : }
11663 : default:;
11664 : }
11665 : }
11666 : }
11667 23 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11668 : {
11669 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11670 : {
11671 0 : switch (TREE_CODE (_p2))
11672 : {
11673 0 : case PLUS_EXPR:
11674 0 : {
11675 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11676 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11677 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11678 : {
11679 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
11680 : {
11681 0 : {
11682 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
11683 0 : const enum tree_code op = PLUS_EXPR;
11684 0 : if (ANY_INTEGRAL_TYPE_P (type)
11685 : )
11686 : {
11687 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1925;
11688 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1925;
11689 0 : {
11690 0 : tree _r;
11691 0 : _r = captures[2];
11692 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1050, __FILE__, __LINE__, true);
11693 0 : return _r;
11694 : }
11695 0 : next_after_fail1925:;
11696 : }
11697 : }
11698 : }
11699 : }
11700 : break;
11701 : }
11702 0 : case MULT_EXPR:
11703 0 : {
11704 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11705 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11706 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11707 : {
11708 0 : if (uniform_integer_cst_p (_q81))
11709 : {
11710 0 : {
11711 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
11712 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11713 : )
11714 : {
11715 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1926;
11716 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1926;
11717 0 : {
11718 0 : tree _r;
11719 0 : _r = captures[2];
11720 0 : if (TREE_SIDE_EFFECTS (captures[3]))
11721 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11722 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1051, __FILE__, __LINE__, true);
11723 0 : return _r;
11724 : }
11725 0 : next_after_fail1926:;
11726 : }
11727 : }
11728 : }
11729 : }
11730 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11731 : {
11732 0 : if (uniform_integer_cst_p (_q81))
11733 : {
11734 0 : {
11735 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
11736 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
11737 : )
11738 : {
11739 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1927;
11740 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1927;
11741 0 : {
11742 0 : tree _r;
11743 0 : _r = captures[2];
11744 0 : if (TREE_SIDE_EFFECTS (captures[3]))
11745 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
11746 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1051, __FILE__, __LINE__, true);
11747 0 : return _r;
11748 : }
11749 0 : next_after_fail1927:;
11750 : }
11751 : }
11752 : }
11753 : }
11754 : break;
11755 : }
11756 : default:;
11757 : }
11758 : }
11759 : }
11760 : break;
11761 : }
11762 : default:;
11763 : }
11764 : break;
11765 : }
11766 454062 : default:;
11767 : }
11768 454062 : switch (TREE_CODE (_p1))
11769 : {
11770 6 : case VEC_COND_EXPR:
11771 6 : {
11772 6 : tree _q30 = TREE_OPERAND (_p1, 0);
11773 6 : tree _q31 = TREE_OPERAND (_p1, 1);
11774 6 : tree _q32 = TREE_OPERAND (_p1, 2);
11775 6 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
11776 : {
11777 0 : {
11778 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _p2 };
11779 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1928;
11780 0 : {
11781 0 : tree res_op0;
11782 0 : res_op0 = captures[0];
11783 0 : tree res_op1;
11784 0 : res_op1 = captures[1];
11785 0 : tree res_op2;
11786 0 : res_op2 = captures[3];
11787 0 : tree _r;
11788 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11789 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11790 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11791 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1059, __FILE__, __LINE__, true);
11792 0 : return _r;
11793 : }
11794 0 : next_after_fail1928:;
11795 : }
11796 : }
11797 : break;
11798 : }
11799 454062 : default:;
11800 : }
11801 454062 : switch (TREE_CODE (_p2))
11802 : {
11803 3 : case VEC_COND_EXPR:
11804 3 : {
11805 3 : tree _q40 = TREE_OPERAND (_p2, 0);
11806 3 : tree _q41 = TREE_OPERAND (_p2, 1);
11807 3 : tree _q42 = TREE_OPERAND (_p2, 2);
11808 3 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
11809 : {
11810 0 : {
11811 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q41, _q42 };
11812 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1929;
11813 0 : {
11814 0 : tree res_op0;
11815 0 : res_op0 = captures[0];
11816 0 : tree res_op1;
11817 0 : res_op1 = captures[1];
11818 0 : tree res_op2;
11819 0 : res_op2 = captures[3];
11820 0 : tree _r;
11821 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11822 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11823 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11824 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1060, __FILE__, __LINE__, true);
11825 0 : return _r;
11826 : }
11827 0 : next_after_fail1929:;
11828 : }
11829 : }
11830 3 : {
11831 3 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42 };
11832 3 : if (inverse_conditions_p (captures[0], captures[2])
11833 : )
11834 : {
11835 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1930;
11836 0 : {
11837 0 : tree res_op0;
11838 0 : res_op0 = captures[0];
11839 0 : tree res_op1;
11840 0 : res_op1 = captures[1];
11841 0 : tree res_op2;
11842 0 : res_op2 = captures[3];
11843 0 : tree _r;
11844 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11845 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11846 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11847 0 : if (TREE_SIDE_EFFECTS (captures[4]))
11848 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
11849 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
11850 0 : return _r;
11851 : }
11852 0 : next_after_fail1930:;
11853 : }
11854 : }
11855 3 : break;
11856 : }
11857 454062 : default:;
11858 : }
11859 454062 : switch (TREE_CODE (_p1))
11860 : {
11861 6 : case VEC_COND_EXPR:
11862 6 : {
11863 6 : tree _q30 = TREE_OPERAND (_p1, 0);
11864 6 : tree _q31 = TREE_OPERAND (_p1, 1);
11865 6 : tree _q32 = TREE_OPERAND (_p1, 2);
11866 6 : {
11867 6 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q32, _p2 };
11868 6 : if (inverse_conditions_p (captures[0], captures[1])
11869 : )
11870 : {
11871 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1931;
11872 0 : {
11873 0 : tree res_op0;
11874 0 : res_op0 = captures[0];
11875 0 : tree res_op1;
11876 0 : res_op1 = captures[3];
11877 0 : tree res_op2;
11878 0 : res_op2 = captures[4];
11879 0 : tree _r;
11880 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
11881 0 : if (TREE_SIDE_EFFECTS (captures[1]))
11882 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
11883 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11884 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11885 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
11886 0 : return _r;
11887 : }
11888 0 : next_after_fail1931:;
11889 : }
11890 : }
11891 6 : break;
11892 : }
11893 454062 : default:;
11894 : }
11895 454062 : if ((_p2 == _p1 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _p1, 0) && types_match (_p2, _p1)))
11896 : {
11897 36 : {
11898 36 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11899 36 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1932;
11900 36 : {
11901 36 : tree _r;
11902 36 : _r = captures[1];
11903 36 : if (TREE_SIDE_EFFECTS (captures[0]))
11904 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
11905 36 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1063, __FILE__, __LINE__, true);
11906 36 : return _r;
11907 : }
11908 0 : next_after_fail1932:;
11909 : }
11910 : }
11911 454026 : switch (TREE_CODE (_p0))
11912 : {
11913 67809 : case EQ_EXPR:
11914 67809 : {
11915 67809 : tree _q20 = TREE_OPERAND (_p0, 0);
11916 67809 : tree _q21 = TREE_OPERAND (_p0, 1);
11917 67809 : if (zerop (_q21))
11918 : {
11919 1597 : switch (TREE_CODE (_p2))
11920 : {
11921 0 : case NEGATE_EXPR:
11922 0 : {
11923 0 : tree _q60 = TREE_OPERAND (_p2, 0);
11924 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
11925 : {
11926 0 : {
11927 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
11928 0 : const enum tree_code cmp = EQ_EXPR;
11929 0 : if (!HONOR_SIGNED_ZEROS (type)
11930 0 : && bitwise_equal_p (captures[0], captures[1])
11931 : )
11932 : {
11933 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1933;
11934 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1933;
11935 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1933;
11936 0 : {
11937 0 : tree _r;
11938 0 : _r = captures[2];
11939 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1064, __FILE__, __LINE__, true);
11940 0 : return _r;
11941 : }
11942 0 : next_after_fail1933:;
11943 : }
11944 : }
11945 : }
11946 : break;
11947 : }
11948 1597 : default:;
11949 : }
11950 1597 : if (zerop (_p1))
11951 : {
11952 18 : switch (TREE_CODE (_p2))
11953 : {
11954 0 : case NEGATE_EXPR:
11955 0 : {
11956 0 : tree _q60 = TREE_OPERAND (_p2, 0);
11957 0 : {
11958 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
11959 0 : const enum tree_code cmp = EQ_EXPR;
11960 0 : if (!HONOR_SIGNED_ZEROS (type)
11961 0 : && bitwise_equal_p (captures[0], captures[2])
11962 : )
11963 : {
11964 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1934;
11965 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1934;
11966 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1934;
11967 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1934;
11968 0 : {
11969 0 : tree _r;
11970 0 : _r = captures[1];
11971 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
11972 0 : return _r;
11973 : }
11974 0 : next_after_fail1934:;
11975 : }
11976 : }
11977 0 : break;
11978 : }
11979 : default:;
11980 : }
11981 : }
11982 : }
11983 67809 : switch (TREE_CODE (_q20))
11984 : {
11985 0 : case MINUS_EXPR:
11986 0 : {
11987 0 : tree _q30 = TREE_OPERAND (_q20, 0);
11988 0 : tree _q31 = TREE_OPERAND (_q20, 1);
11989 0 : if (zerop (_q21))
11990 : {
11991 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
11992 : {
11993 0 : switch (TREE_CODE (_p2))
11994 : {
11995 0 : case MINUS_EXPR:
11996 0 : {
11997 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11998 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11999 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12000 : {
12001 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12002 : {
12003 0 : {
12004 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12005 0 : const enum tree_code cmp = EQ_EXPR;
12006 0 : if (!HONOR_SIGNED_ZEROS (type)
12007 : )
12008 : {
12009 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1935;
12010 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1935;
12011 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1935;
12012 0 : {
12013 0 : tree _r;
12014 0 : _r = captures[3];
12015 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
12016 0 : return _r;
12017 : }
12018 0 : next_after_fail1935:;
12019 : }
12020 : }
12021 : }
12022 : }
12023 : break;
12024 : }
12025 : default:;
12026 : }
12027 : }
12028 : }
12029 0 : if (integer_zerop (_q21))
12030 : {
12031 0 : if (integer_zerop (_p1))
12032 : {
12033 0 : switch (TREE_CODE (_p2))
12034 : {
12035 0 : case MINUS_EXPR:
12036 0 : {
12037 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12038 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12039 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12040 : {
12041 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12042 : {
12043 0 : {
12044 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12045 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
12046 0 : if (res) return res;
12047 : }
12048 : }
12049 : }
12050 : break;
12051 : }
12052 : default:;
12053 : }
12054 : }
12055 : }
12056 : break;
12057 : }
12058 : default:;
12059 : }
12060 : break;
12061 : }
12062 0 : case UNEQ_EXPR:
12063 0 : {
12064 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12065 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12066 0 : if (zerop (_q21))
12067 : {
12068 0 : switch (TREE_CODE (_p2))
12069 : {
12070 0 : case NEGATE_EXPR:
12071 0 : {
12072 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12073 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12074 : {
12075 0 : {
12076 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
12077 0 : const enum tree_code cmp = UNEQ_EXPR;
12078 0 : if (!HONOR_SIGNED_ZEROS (type)
12079 0 : && bitwise_equal_p (captures[0], captures[1])
12080 : )
12081 : {
12082 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1936;
12083 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1936;
12084 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1936;
12085 0 : {
12086 0 : tree _r;
12087 0 : _r = captures[2];
12088 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1064, __FILE__, __LINE__, true);
12089 0 : return _r;
12090 : }
12091 0 : next_after_fail1936:;
12092 : }
12093 : }
12094 : }
12095 : break;
12096 : }
12097 0 : default:;
12098 : }
12099 0 : if (zerop (_p1))
12100 : {
12101 0 : switch (TREE_CODE (_p2))
12102 : {
12103 0 : case NEGATE_EXPR:
12104 0 : {
12105 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12106 0 : {
12107 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
12108 0 : const enum tree_code cmp = UNEQ_EXPR;
12109 0 : if (!HONOR_SIGNED_ZEROS (type)
12110 0 : && bitwise_equal_p (captures[0], captures[2])
12111 : )
12112 : {
12113 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1937;
12114 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1937;
12115 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1937;
12116 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1937;
12117 0 : {
12118 0 : tree _r;
12119 0 : _r = captures[1];
12120 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
12121 0 : return _r;
12122 : }
12123 0 : next_after_fail1937:;
12124 : }
12125 : }
12126 0 : break;
12127 : }
12128 : default:;
12129 : }
12130 : }
12131 : }
12132 0 : switch (TREE_CODE (_q20))
12133 : {
12134 0 : case MINUS_EXPR:
12135 0 : {
12136 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12137 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12138 0 : if (zerop (_q21))
12139 : {
12140 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12141 : {
12142 0 : switch (TREE_CODE (_p2))
12143 : {
12144 0 : case MINUS_EXPR:
12145 0 : {
12146 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12147 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12148 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12149 : {
12150 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12151 : {
12152 0 : {
12153 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12154 0 : const enum tree_code cmp = UNEQ_EXPR;
12155 0 : if (!HONOR_SIGNED_ZEROS (type)
12156 : )
12157 : {
12158 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1938;
12159 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1938;
12160 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1938;
12161 0 : {
12162 0 : tree _r;
12163 0 : _r = captures[3];
12164 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
12165 0 : return _r;
12166 : }
12167 0 : next_after_fail1938:;
12168 : }
12169 : }
12170 : }
12171 : }
12172 : break;
12173 : }
12174 : default:;
12175 : }
12176 : }
12177 : }
12178 0 : if (integer_zerop (_q21))
12179 : {
12180 0 : if (integer_zerop (_p1))
12181 : {
12182 0 : switch (TREE_CODE (_p2))
12183 : {
12184 0 : case MINUS_EXPR:
12185 0 : {
12186 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12187 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12188 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12189 : {
12190 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12191 : {
12192 0 : {
12193 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
12194 0 : tree res = generic_simplify_548 (loc, type, _p0, _p1, _p2, captures, UNEQ_EXPR);
12195 0 : if (res) return res;
12196 : }
12197 : }
12198 : }
12199 : break;
12200 : }
12201 : default:;
12202 : }
12203 : }
12204 : }
12205 : break;
12206 : }
12207 : default:;
12208 : }
12209 : break;
12210 : }
12211 1356 : case NE_EXPR:
12212 1356 : {
12213 1356 : tree _q20 = TREE_OPERAND (_p0, 0);
12214 1356 : tree _q21 = TREE_OPERAND (_p0, 1);
12215 1356 : if (zerop (_q21))
12216 : {
12217 380 : switch (TREE_CODE (_p2))
12218 : {
12219 0 : case NEGATE_EXPR:
12220 0 : {
12221 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12222 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12223 : {
12224 0 : {
12225 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12226 0 : const enum tree_code cmp = NE_EXPR;
12227 0 : if (!HONOR_SIGNED_ZEROS (type)
12228 0 : && bitwise_equal_p (captures[0], captures[1])
12229 : )
12230 : {
12231 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1939;
12232 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1939;
12233 0 : {
12234 0 : tree _r;
12235 0 : _r = captures[1];
12236 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
12237 0 : return _r;
12238 : }
12239 0 : next_after_fail1939:;
12240 : }
12241 : }
12242 : }
12243 : break;
12244 : }
12245 380 : default:;
12246 : }
12247 380 : if (integer_zerop (_p2))
12248 : {
12249 190 : {
12250 190 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12251 190 : const enum tree_code cmp = NE_EXPR;
12252 190 : if (!HONOR_SIGNED_ZEROS (type)
12253 190 : && bitwise_equal_p (captures[0], captures[1])
12254 : )
12255 : {
12256 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1940;
12257 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1940;
12258 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1940;
12259 0 : {
12260 0 : tree _r;
12261 0 : _r = captures[1];
12262 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1068, __FILE__, __LINE__, true);
12263 0 : return _r;
12264 : }
12265 190 : next_after_fail1940:;
12266 : }
12267 : }
12268 : }
12269 : }
12270 1356 : switch (TREE_CODE (_q20))
12271 : {
12272 40 : case MINUS_EXPR:
12273 40 : {
12274 40 : tree _q30 = TREE_OPERAND (_q20, 0);
12275 40 : tree _q31 = TREE_OPERAND (_q20, 1);
12276 40 : if (zerop (_q21))
12277 : {
12278 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12279 : {
12280 0 : switch (TREE_CODE (_p2))
12281 : {
12282 0 : case MINUS_EXPR:
12283 0 : {
12284 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12285 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12286 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12287 : {
12288 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12289 : {
12290 0 : {
12291 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12292 0 : const enum tree_code cmp = NE_EXPR;
12293 0 : if (!HONOR_SIGNED_ZEROS (type)
12294 : )
12295 : {
12296 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1941;
12297 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1941;
12298 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1941;
12299 0 : {
12300 0 : tree _r;
12301 0 : _r = captures[0];
12302 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
12303 0 : return _r;
12304 : }
12305 0 : next_after_fail1941:;
12306 : }
12307 : }
12308 : }
12309 : }
12310 : break;
12311 : }
12312 : default:;
12313 : }
12314 : }
12315 : }
12316 40 : if (integer_zerop (_q21))
12317 : {
12318 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12319 : {
12320 0 : if (integer_zerop (_p2))
12321 : {
12322 0 : {
12323 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12324 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
12325 0 : if (res) return res;
12326 : }
12327 : }
12328 : }
12329 : }
12330 : break;
12331 : }
12332 : default:;
12333 : }
12334 : break;
12335 : }
12336 0 : case LTGT_EXPR:
12337 0 : {
12338 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12339 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12340 0 : if (zerop (_q21))
12341 : {
12342 0 : switch (TREE_CODE (_p2))
12343 : {
12344 0 : case NEGATE_EXPR:
12345 0 : {
12346 0 : tree _q60 = TREE_OPERAND (_p2, 0);
12347 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12348 : {
12349 0 : {
12350 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12351 0 : const enum tree_code cmp = LTGT_EXPR;
12352 0 : if (!HONOR_SIGNED_ZEROS (type)
12353 0 : && bitwise_equal_p (captures[0], captures[1])
12354 : )
12355 : {
12356 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1942;
12357 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1942;
12358 0 : {
12359 0 : tree _r;
12360 0 : _r = captures[1];
12361 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
12362 0 : return _r;
12363 : }
12364 0 : next_after_fail1942:;
12365 : }
12366 : }
12367 : }
12368 : break;
12369 : }
12370 0 : default:;
12371 : }
12372 0 : if (integer_zerop (_p2))
12373 : {
12374 0 : {
12375 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12376 0 : const enum tree_code cmp = LTGT_EXPR;
12377 0 : if (!HONOR_SIGNED_ZEROS (type)
12378 0 : && bitwise_equal_p (captures[0], captures[1])
12379 : )
12380 : {
12381 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1943;
12382 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1943;
12383 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1943;
12384 0 : {
12385 0 : tree _r;
12386 0 : _r = captures[1];
12387 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1068, __FILE__, __LINE__, true);
12388 0 : return _r;
12389 : }
12390 0 : next_after_fail1943:;
12391 : }
12392 : }
12393 : }
12394 : }
12395 0 : switch (TREE_CODE (_q20))
12396 : {
12397 0 : case MINUS_EXPR:
12398 0 : {
12399 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12400 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12401 0 : if (zerop (_q21))
12402 : {
12403 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12404 : {
12405 0 : switch (TREE_CODE (_p2))
12406 : {
12407 0 : case MINUS_EXPR:
12408 0 : {
12409 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12410 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12411 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12412 : {
12413 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12414 : {
12415 0 : {
12416 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12417 0 : const enum tree_code cmp = LTGT_EXPR;
12418 0 : if (!HONOR_SIGNED_ZEROS (type)
12419 : )
12420 : {
12421 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1944;
12422 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1944;
12423 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1944;
12424 0 : {
12425 0 : tree _r;
12426 0 : _r = captures[0];
12427 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
12428 0 : return _r;
12429 : }
12430 0 : next_after_fail1944:;
12431 : }
12432 : }
12433 : }
12434 : }
12435 : break;
12436 : }
12437 : default:;
12438 : }
12439 : }
12440 : }
12441 0 : if (integer_zerop (_q21))
12442 : {
12443 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12444 : {
12445 0 : if (integer_zerop (_p2))
12446 : {
12447 0 : {
12448 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12449 0 : tree res = generic_simplify_549 (loc, type, _p0, _p1, _p2, captures, LTGT_EXPR);
12450 0 : if (res) return res;
12451 : }
12452 : }
12453 : }
12454 : }
12455 : break;
12456 : }
12457 : default:;
12458 : }
12459 : break;
12460 : }
12461 1198 : case GE_EXPR:
12462 1198 : {
12463 1198 : tree _q20 = TREE_OPERAND (_p0, 0);
12464 1198 : tree _q21 = TREE_OPERAND (_p0, 1);
12465 1198 : switch (TREE_CODE (_q20))
12466 : {
12467 3 : CASE_CONVERT:
12468 3 : {
12469 3 : tree _q30 = TREE_OPERAND (_q20, 0);
12470 3 : if (zerop (_q21))
12471 : {
12472 0 : switch (TREE_CODE (_p2))
12473 : {
12474 0 : case NEGATE_EXPR:
12475 0 : {
12476 0 : tree _q70 = TREE_OPERAND (_p2, 0);
12477 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
12478 : {
12479 0 : {
12480 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
12481 0 : const enum tree_code cmp = GE_EXPR;
12482 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12483 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12484 0 : && element_precision (captures[1])
12485 0 : <= element_precision (captures[0])
12486 0 : && bitwise_equal_p (captures[1], captures[2])
12487 0 : && (!VECTOR_TYPE_P (type)
12488 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12489 : )
12490 : {
12491 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12492 : )
12493 : {
12494 0 : {
12495 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12496 0 : if (types_match (captures[0], stype)
12497 : )
12498 : {
12499 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1945;
12500 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1945;
12501 0 : {
12502 0 : tree res_op0;
12503 0 : res_op0 = captures[0];
12504 0 : tree _r;
12505 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12506 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12507 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12508 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
12509 0 : return _r;
12510 : }
12511 0 : next_after_fail1945:;
12512 : }
12513 : else
12514 : {
12515 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1946;
12516 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1946;
12517 0 : {
12518 0 : tree res_op0;
12519 0 : {
12520 0 : tree _o1[1], _r1;
12521 0 : _o1[0] = captures[2];
12522 0 : if (TREE_TYPE (_o1[0]) != stype)
12523 : {
12524 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12525 : }
12526 : else
12527 : _r1 = _o1[0];
12528 0 : res_op0 = _r1;
12529 : }
12530 0 : tree _r;
12531 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12532 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
12533 0 : return _r;
12534 : }
12535 0 : next_after_fail1946:;
12536 : }
12537 : }
12538 : }
12539 : else
12540 : {
12541 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1947;
12542 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1947;
12543 0 : {
12544 0 : tree res_op0;
12545 0 : res_op0 = captures[2];
12546 0 : tree _r;
12547 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12548 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
12549 0 : return _r;
12550 : }
12551 0 : next_after_fail1947:;
12552 : }
12553 : }
12554 : }
12555 : }
12556 : break;
12557 : }
12558 : default:;
12559 : }
12560 : }
12561 : break;
12562 : }
12563 1198 : default:;
12564 : }
12565 1198 : if (zerop (_q21))
12566 : {
12567 350 : switch (TREE_CODE (_p2))
12568 : {
12569 3 : case NEGATE_EXPR:
12570 3 : {
12571 3 : tree _q60 = TREE_OPERAND (_p2, 0);
12572 3 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12573 : {
12574 3 : {
12575 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
12576 3 : const enum tree_code cmp = GE_EXPR;
12577 3 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12578 3 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12579 6 : && element_precision (captures[1])
12580 3 : <= element_precision (captures[0])
12581 3 : && bitwise_equal_p (captures[1], captures[2])
12582 6 : && (!VECTOR_TYPE_P (type)
12583 3 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12584 : )
12585 : {
12586 3 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12587 : )
12588 : {
12589 0 : {
12590 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12591 0 : if (types_match (captures[0], stype)
12592 : )
12593 : {
12594 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1948;
12595 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1948;
12596 0 : {
12597 0 : tree res_op0;
12598 0 : res_op0 = captures[0];
12599 0 : tree _r;
12600 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12601 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12602 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12603 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
12604 0 : return _r;
12605 : }
12606 0 : next_after_fail1948:;
12607 : }
12608 : else
12609 : {
12610 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1949;
12611 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1949;
12612 0 : {
12613 0 : tree res_op0;
12614 0 : {
12615 0 : tree _o1[1], _r1;
12616 0 : _o1[0] = captures[2];
12617 0 : if (TREE_TYPE (_o1[0]) != stype)
12618 : {
12619 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12620 : }
12621 : else
12622 : _r1 = _o1[0];
12623 0 : res_op0 = _r1;
12624 : }
12625 0 : tree _r;
12626 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12627 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
12628 0 : return _r;
12629 : }
12630 0 : next_after_fail1949:;
12631 : }
12632 : }
12633 : }
12634 : else
12635 : {
12636 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1950;
12637 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1950;
12638 3 : {
12639 3 : tree res_op0;
12640 3 : res_op0 = captures[2];
12641 3 : tree _r;
12642 3 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12643 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
12644 3 : return _r;
12645 : }
12646 0 : next_after_fail1950:;
12647 : }
12648 : }
12649 : }
12650 : }
12651 : break;
12652 : }
12653 : default:;
12654 : }
12655 : }
12656 1195 : switch (TREE_CODE (_q20))
12657 : {
12658 0 : case MINUS_EXPR:
12659 0 : {
12660 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12661 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12662 0 : if (zerop (_q21))
12663 : {
12664 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12665 : {
12666 0 : switch (TREE_CODE (_p2))
12667 : {
12668 0 : case MINUS_EXPR:
12669 0 : {
12670 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12671 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12672 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12673 : {
12674 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12675 : {
12676 0 : {
12677 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12678 0 : const enum tree_code cmp = GE_EXPR;
12679 0 : if (!HONOR_SIGNED_ZEROS (type)
12680 0 : && !TYPE_UNSIGNED (type)
12681 0 : && (!VECTOR_TYPE_P (type)
12682 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12683 : )
12684 : {
12685 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1951;
12686 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1951;
12687 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1951;
12688 0 : {
12689 0 : tree res_op0;
12690 0 : res_op0 = captures[0];
12691 0 : tree _r;
12692 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12693 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
12694 0 : return _r;
12695 : }
12696 0 : next_after_fail1951:;
12697 : }
12698 : }
12699 : }
12700 : }
12701 : break;
12702 : }
12703 : default:;
12704 : }
12705 : }
12706 : }
12707 : break;
12708 : }
12709 : default:;
12710 : }
12711 : break;
12712 : }
12713 66456 : case GT_EXPR:
12714 66456 : {
12715 66456 : tree _q20 = TREE_OPERAND (_p0, 0);
12716 66456 : tree _q21 = TREE_OPERAND (_p0, 1);
12717 66456 : switch (TREE_CODE (_q20))
12718 : {
12719 13 : CASE_CONVERT:
12720 13 : {
12721 13 : tree _q30 = TREE_OPERAND (_q20, 0);
12722 13 : if (zerop (_q21))
12723 : {
12724 1 : switch (TREE_CODE (_p2))
12725 : {
12726 0 : case NEGATE_EXPR:
12727 0 : {
12728 0 : tree _q70 = TREE_OPERAND (_p2, 0);
12729 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
12730 : {
12731 0 : {
12732 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
12733 0 : const enum tree_code cmp = GT_EXPR;
12734 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12735 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12736 0 : && element_precision (captures[1])
12737 0 : <= element_precision (captures[0])
12738 0 : && bitwise_equal_p (captures[1], captures[2])
12739 0 : && (!VECTOR_TYPE_P (type)
12740 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12741 : )
12742 : {
12743 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12744 : )
12745 : {
12746 0 : {
12747 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12748 0 : if (types_match (captures[0], stype)
12749 : )
12750 : {
12751 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1952;
12752 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1952;
12753 0 : {
12754 0 : tree res_op0;
12755 0 : res_op0 = captures[0];
12756 0 : tree _r;
12757 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12758 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12759 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12760 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
12761 0 : return _r;
12762 : }
12763 0 : next_after_fail1952:;
12764 : }
12765 : else
12766 : {
12767 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1953;
12768 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1953;
12769 0 : {
12770 0 : tree res_op0;
12771 0 : {
12772 0 : tree _o1[1], _r1;
12773 0 : _o1[0] = captures[2];
12774 0 : if (TREE_TYPE (_o1[0]) != stype)
12775 : {
12776 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12777 : }
12778 : else
12779 : _r1 = _o1[0];
12780 0 : res_op0 = _r1;
12781 : }
12782 0 : tree _r;
12783 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12784 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
12785 0 : return _r;
12786 : }
12787 0 : next_after_fail1953:;
12788 : }
12789 : }
12790 : }
12791 : else
12792 : {
12793 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1954;
12794 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1954;
12795 0 : {
12796 0 : tree res_op0;
12797 0 : res_op0 = captures[2];
12798 0 : tree _r;
12799 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12800 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
12801 0 : return _r;
12802 : }
12803 0 : next_after_fail1954:;
12804 : }
12805 : }
12806 : }
12807 : }
12808 : break;
12809 : }
12810 : default:;
12811 : }
12812 : }
12813 : break;
12814 : }
12815 66456 : default:;
12816 : }
12817 66456 : if (zerop (_q21))
12818 : {
12819 84 : switch (TREE_CODE (_p2))
12820 : {
12821 6 : case NEGATE_EXPR:
12822 6 : {
12823 6 : tree _q60 = TREE_OPERAND (_p2, 0);
12824 6 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
12825 : {
12826 6 : {
12827 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
12828 6 : const enum tree_code cmp = GT_EXPR;
12829 6 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12830 6 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12831 12 : && element_precision (captures[1])
12832 6 : <= element_precision (captures[0])
12833 6 : && bitwise_equal_p (captures[1], captures[2])
12834 12 : && (!VECTOR_TYPE_P (type)
12835 6 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12836 : )
12837 : {
12838 6 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12839 : )
12840 : {
12841 0 : {
12842 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
12843 0 : if (types_match (captures[0], stype)
12844 : )
12845 : {
12846 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1955;
12847 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1955;
12848 0 : {
12849 0 : tree res_op0;
12850 0 : res_op0 = captures[0];
12851 0 : tree _r;
12852 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12853 0 : if (TREE_SIDE_EFFECTS (captures[2]))
12854 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
12855 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
12856 0 : return _r;
12857 : }
12858 0 : next_after_fail1955:;
12859 : }
12860 : else
12861 : {
12862 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1956;
12863 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1956;
12864 0 : {
12865 0 : tree res_op0;
12866 0 : {
12867 0 : tree _o1[1], _r1;
12868 0 : _o1[0] = captures[2];
12869 0 : if (TREE_TYPE (_o1[0]) != stype)
12870 : {
12871 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
12872 : }
12873 : else
12874 : _r1 = _o1[0];
12875 0 : res_op0 = _r1;
12876 : }
12877 0 : tree _r;
12878 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
12879 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
12880 0 : return _r;
12881 : }
12882 0 : next_after_fail1956:;
12883 : }
12884 : }
12885 : }
12886 : else
12887 : {
12888 6 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1957;
12889 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1957;
12890 6 : {
12891 6 : tree res_op0;
12892 6 : res_op0 = captures[2];
12893 6 : tree _r;
12894 6 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12895 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
12896 6 : return _r;
12897 : }
12898 0 : next_after_fail1957:;
12899 : }
12900 : }
12901 : }
12902 : }
12903 : break;
12904 : }
12905 : default:;
12906 : }
12907 : }
12908 66450 : switch (TREE_CODE (_q20))
12909 : {
12910 0 : case MINUS_EXPR:
12911 0 : {
12912 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12913 0 : tree _q31 = TREE_OPERAND (_q20, 1);
12914 0 : if (zerop (_q21))
12915 : {
12916 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12917 : {
12918 0 : switch (TREE_CODE (_p2))
12919 : {
12920 0 : case MINUS_EXPR:
12921 0 : {
12922 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12923 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12924 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
12925 : {
12926 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12927 : {
12928 0 : {
12929 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
12930 0 : const enum tree_code cmp = GT_EXPR;
12931 0 : if (!HONOR_SIGNED_ZEROS (type)
12932 0 : && !TYPE_UNSIGNED (type)
12933 0 : && (!VECTOR_TYPE_P (type)
12934 0 : || target_supports_op_p (type, ABS_EXPR, optab_vector))
12935 : )
12936 : {
12937 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1958;
12938 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1958;
12939 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1958;
12940 0 : {
12941 0 : tree res_op0;
12942 0 : res_op0 = captures[0];
12943 0 : tree _r;
12944 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
12945 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
12946 0 : return _r;
12947 : }
12948 0 : next_after_fail1958:;
12949 : }
12950 : }
12951 : }
12952 : }
12953 : break;
12954 : }
12955 : default:;
12956 : }
12957 : }
12958 : }
12959 : break;
12960 : }
12961 : default:;
12962 : }
12963 : break;
12964 : }
12965 1055 : case LE_EXPR:
12966 1055 : {
12967 1055 : tree _q20 = TREE_OPERAND (_p0, 0);
12968 1055 : tree _q21 = TREE_OPERAND (_p0, 1);
12969 1055 : switch (TREE_CODE (_q20))
12970 : {
12971 128 : CASE_CONVERT:
12972 128 : {
12973 128 : tree _q30 = TREE_OPERAND (_q20, 0);
12974 128 : if (zerop (_q21))
12975 : {
12976 0 : switch (TREE_CODE (_p2))
12977 : {
12978 0 : case NEGATE_EXPR:
12979 0 : {
12980 0 : tree _q70 = TREE_OPERAND (_p2, 0);
12981 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
12982 : {
12983 0 : {
12984 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
12985 0 : const enum tree_code cmp = LE_EXPR;
12986 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
12987 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
12988 0 : && element_precision (captures[1])
12989 0 : <= element_precision (captures[0])
12990 0 : && bitwise_equal_p (captures[1], captures[2])
12991 0 : && (!VECTOR_TYPE_P (type)
12992 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
12993 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
12994 : )
12995 : {
12996 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
12997 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
12998 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
12999 : )
13000 : {
13001 0 : {
13002 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13003 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13004 0 : if (types_match (captures[0], stype)
13005 : )
13006 : {
13007 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1959;
13008 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1959;
13009 0 : {
13010 0 : tree res_op0;
13011 0 : {
13012 0 : tree _o1[1], _r1;
13013 0 : {
13014 0 : tree _o2[1], _r2;
13015 0 : _o2[0] = captures[0];
13016 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13017 0 : _o1[0] = _r2;
13018 : }
13019 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13020 0 : res_op0 = _r1;
13021 : }
13022 0 : tree _r;
13023 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13024 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13025 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13026 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
13027 0 : return _r;
13028 : }
13029 0 : next_after_fail1959:;
13030 : }
13031 : else
13032 : {
13033 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1960;
13034 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1960;
13035 0 : {
13036 0 : tree res_op0;
13037 0 : {
13038 0 : tree _o1[1], _r1;
13039 0 : {
13040 0 : tree _o2[1], _r2;
13041 0 : {
13042 0 : tree _o3[1], _r3;
13043 0 : _o3[0] = captures[2];
13044 0 : if (TREE_TYPE (_o3[0]) != stype)
13045 : {
13046 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13047 : }
13048 : else
13049 : _r3 = _o3[0];
13050 0 : _o2[0] = _r3;
13051 : }
13052 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13053 0 : _o1[0] = _r2;
13054 : }
13055 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13056 0 : res_op0 = _r1;
13057 : }
13058 0 : tree _r;
13059 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13060 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1077, __FILE__, __LINE__, true);
13061 0 : return _r;
13062 : }
13063 0 : next_after_fail1960:;
13064 : }
13065 : }
13066 : }
13067 : else
13068 : {
13069 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1961;
13070 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1961;
13071 0 : {
13072 0 : tree res_op0;
13073 0 : {
13074 0 : tree _o1[1], _r1;
13075 0 : {
13076 0 : tree _o2[1], _r2;
13077 0 : _o2[0] = captures[2];
13078 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13079 0 : _o1[0] = _r2;
13080 : }
13081 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13082 0 : res_op0 = _r1;
13083 : }
13084 0 : tree _r;
13085 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13086 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1078, __FILE__, __LINE__, true);
13087 0 : return _r;
13088 : }
13089 0 : next_after_fail1961:;
13090 : }
13091 : }
13092 : }
13093 : }
13094 : break;
13095 : }
13096 : default:;
13097 : }
13098 : }
13099 : break;
13100 : }
13101 1055 : default:;
13102 : }
13103 1055 : if (zerop (_q21))
13104 : {
13105 18 : switch (TREE_CODE (_p2))
13106 : {
13107 0 : case NEGATE_EXPR:
13108 0 : {
13109 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13110 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13111 : {
13112 0 : {
13113 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13114 0 : const enum tree_code cmp = LE_EXPR;
13115 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13116 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13117 0 : && element_precision (captures[1])
13118 0 : <= element_precision (captures[0])
13119 0 : && bitwise_equal_p (captures[1], captures[2])
13120 0 : && (!VECTOR_TYPE_P (type)
13121 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13122 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13123 : )
13124 : {
13125 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13126 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13127 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13128 : )
13129 : {
13130 0 : {
13131 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13132 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13133 0 : if (types_match (captures[0], stype)
13134 : )
13135 : {
13136 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1962;
13137 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1962;
13138 0 : {
13139 0 : tree res_op0;
13140 0 : {
13141 0 : tree _o1[1], _r1;
13142 0 : {
13143 0 : tree _o2[1], _r2;
13144 0 : _o2[0] = captures[0];
13145 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13146 0 : _o1[0] = _r2;
13147 : }
13148 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13149 0 : res_op0 = _r1;
13150 : }
13151 0 : tree _r;
13152 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13153 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13154 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13155 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
13156 0 : return _r;
13157 : }
13158 0 : next_after_fail1962:;
13159 : }
13160 : else
13161 : {
13162 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1963;
13163 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1963;
13164 0 : {
13165 0 : tree res_op0;
13166 0 : {
13167 0 : tree _o1[1], _r1;
13168 0 : {
13169 0 : tree _o2[1], _r2;
13170 0 : {
13171 0 : tree _o3[1], _r3;
13172 0 : _o3[0] = captures[2];
13173 0 : if (TREE_TYPE (_o3[0]) != stype)
13174 : {
13175 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13176 : }
13177 : else
13178 : _r3 = _o3[0];
13179 0 : _o2[0] = _r3;
13180 : }
13181 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13182 0 : _o1[0] = _r2;
13183 : }
13184 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13185 0 : res_op0 = _r1;
13186 : }
13187 0 : tree _r;
13188 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13189 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1077, __FILE__, __LINE__, true);
13190 0 : return _r;
13191 : }
13192 0 : next_after_fail1963:;
13193 : }
13194 : }
13195 : }
13196 : else
13197 : {
13198 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1964;
13199 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1964;
13200 0 : {
13201 0 : tree res_op0;
13202 0 : {
13203 0 : tree _o1[1], _r1;
13204 0 : {
13205 0 : tree _o2[1], _r2;
13206 0 : _o2[0] = captures[2];
13207 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13208 0 : _o1[0] = _r2;
13209 : }
13210 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13211 0 : res_op0 = _r1;
13212 : }
13213 0 : tree _r;
13214 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13215 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1078, __FILE__, __LINE__, true);
13216 0 : return _r;
13217 : }
13218 0 : next_after_fail1964:;
13219 : }
13220 : }
13221 : }
13222 : }
13223 : break;
13224 : }
13225 : default:;
13226 : }
13227 : }
13228 1055 : switch (TREE_CODE (_q20))
13229 : {
13230 0 : case MINUS_EXPR:
13231 0 : {
13232 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13233 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13234 0 : if (zerop (_q21))
13235 : {
13236 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13237 : {
13238 0 : switch (TREE_CODE (_p2))
13239 : {
13240 0 : case MINUS_EXPR:
13241 0 : {
13242 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13243 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13244 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13245 : {
13246 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13247 : {
13248 0 : {
13249 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13250 0 : const enum tree_code cmp = LE_EXPR;
13251 0 : if (!HONOR_SIGNED_ZEROS (type)
13252 0 : && !TYPE_UNSIGNED (type)
13253 : )
13254 : {
13255 0 : if (ANY_INTEGRAL_TYPE_P (type)
13256 0 : && !TYPE_OVERFLOW_WRAPS (type)
13257 0 : && (!VECTOR_TYPE_P (type)
13258 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13259 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13260 : )
13261 : {
13262 0 : {
13263 0 : tree utype = unsigned_type_for (type);
13264 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1965;
13265 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1965;
13266 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1965;
13267 0 : {
13268 0 : tree res_op0;
13269 0 : {
13270 0 : tree _o1[1], _r1;
13271 0 : {
13272 0 : tree _o2[1], _r2;
13273 0 : _o2[0] = captures[0];
13274 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13275 0 : _o1[0] = _r2;
13276 : }
13277 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13278 0 : res_op0 = _r1;
13279 : }
13280 0 : tree _r;
13281 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13282 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1079, __FILE__, __LINE__, true);
13283 0 : return _r;
13284 : }
13285 0 : next_after_fail1965:;
13286 : }
13287 : }
13288 : else
13289 : {
13290 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1966;
13291 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1966;
13292 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1966;
13293 0 : {
13294 0 : tree res_op0;
13295 0 : {
13296 0 : tree _o1[1], _r1;
13297 0 : _o1[0] = captures[0];
13298 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13299 0 : res_op0 = _r1;
13300 : }
13301 0 : tree _r;
13302 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13303 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1080, __FILE__, __LINE__, true);
13304 0 : return _r;
13305 : }
13306 0 : next_after_fail1966:;
13307 : }
13308 : }
13309 : }
13310 : }
13311 : }
13312 : break;
13313 : }
13314 : default:;
13315 : }
13316 : }
13317 : }
13318 : break;
13319 : }
13320 : default:;
13321 : }
13322 : break;
13323 : }
13324 20950 : case LT_EXPR:
13325 20950 : {
13326 20950 : tree _q20 = TREE_OPERAND (_p0, 0);
13327 20950 : tree _q21 = TREE_OPERAND (_p0, 1);
13328 20950 : switch (TREE_CODE (_q20))
13329 : {
13330 316 : CASE_CONVERT:
13331 316 : {
13332 316 : tree _q30 = TREE_OPERAND (_q20, 0);
13333 316 : if (zerop (_q21))
13334 : {
13335 162 : switch (TREE_CODE (_p2))
13336 : {
13337 0 : case NEGATE_EXPR:
13338 0 : {
13339 0 : tree _q70 = TREE_OPERAND (_p2, 0);
13340 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
13341 : {
13342 0 : {
13343 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
13344 0 : const enum tree_code cmp = LT_EXPR;
13345 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13346 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13347 0 : && element_precision (captures[1])
13348 0 : <= element_precision (captures[0])
13349 0 : && bitwise_equal_p (captures[1], captures[2])
13350 0 : && (!VECTOR_TYPE_P (type)
13351 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13352 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13353 : )
13354 : {
13355 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13356 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13357 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13358 : )
13359 : {
13360 0 : {
13361 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13362 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13363 0 : if (types_match (captures[0], stype)
13364 : )
13365 : {
13366 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1967;
13367 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1967;
13368 0 : {
13369 0 : tree res_op0;
13370 0 : {
13371 0 : tree _o1[1], _r1;
13372 0 : {
13373 0 : tree _o2[1], _r2;
13374 0 : _o2[0] = captures[0];
13375 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13376 0 : _o1[0] = _r2;
13377 : }
13378 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13379 0 : res_op0 = _r1;
13380 : }
13381 0 : tree _r;
13382 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13383 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13384 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13385 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
13386 0 : return _r;
13387 : }
13388 0 : next_after_fail1967:;
13389 : }
13390 : else
13391 : {
13392 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1968;
13393 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1968;
13394 0 : {
13395 0 : tree res_op0;
13396 0 : {
13397 0 : tree _o1[1], _r1;
13398 0 : {
13399 0 : tree _o2[1], _r2;
13400 0 : {
13401 0 : tree _o3[1], _r3;
13402 0 : _o3[0] = captures[2];
13403 0 : if (TREE_TYPE (_o3[0]) != stype)
13404 : {
13405 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13406 : }
13407 : else
13408 : _r3 = _o3[0];
13409 0 : _o2[0] = _r3;
13410 : }
13411 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13412 0 : _o1[0] = _r2;
13413 : }
13414 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13415 0 : res_op0 = _r1;
13416 : }
13417 0 : tree _r;
13418 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13419 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1077, __FILE__, __LINE__, true);
13420 0 : return _r;
13421 : }
13422 0 : next_after_fail1968:;
13423 : }
13424 : }
13425 : }
13426 : else
13427 : {
13428 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1969;
13429 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1969;
13430 0 : {
13431 0 : tree res_op0;
13432 0 : {
13433 0 : tree _o1[1], _r1;
13434 0 : {
13435 0 : tree _o2[1], _r2;
13436 0 : _o2[0] = captures[2];
13437 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13438 0 : _o1[0] = _r2;
13439 : }
13440 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13441 0 : res_op0 = _r1;
13442 : }
13443 0 : tree _r;
13444 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13445 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1078, __FILE__, __LINE__, true);
13446 0 : return _r;
13447 : }
13448 0 : next_after_fail1969:;
13449 : }
13450 : }
13451 : }
13452 : }
13453 : break;
13454 : }
13455 : default:;
13456 : }
13457 : }
13458 : break;
13459 : }
13460 20950 : default:;
13461 : }
13462 20950 : if (zerop (_q21))
13463 : {
13464 712 : switch (TREE_CODE (_p2))
13465 : {
13466 16 : case NEGATE_EXPR:
13467 16 : {
13468 16 : tree _q60 = TREE_OPERAND (_p2, 0);
13469 16 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
13470 : {
13471 16 : {
13472 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
13473 16 : const enum tree_code cmp = LT_EXPR;
13474 16 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
13475 16 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
13476 32 : && element_precision (captures[1])
13477 16 : <= element_precision (captures[0])
13478 16 : && bitwise_equal_p (captures[1], captures[2])
13479 32 : && (!VECTOR_TYPE_P (type)
13480 16 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13481 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13482 : )
13483 : {
13484 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
13485 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
13486 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
13487 : )
13488 : {
13489 0 : {
13490 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
13491 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
13492 0 : if (types_match (captures[0], stype)
13493 : )
13494 : {
13495 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1970;
13496 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1970;
13497 0 : {
13498 0 : tree res_op0;
13499 0 : {
13500 0 : tree _o1[1], _r1;
13501 0 : {
13502 0 : tree _o2[1], _r2;
13503 0 : _o2[0] = captures[0];
13504 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13505 0 : _o1[0] = _r2;
13506 : }
13507 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13508 0 : res_op0 = _r1;
13509 : }
13510 0 : tree _r;
13511 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13512 0 : if (TREE_SIDE_EFFECTS (captures[2]))
13513 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
13514 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
13515 0 : return _r;
13516 : }
13517 16 : next_after_fail1970:;
13518 : }
13519 : else
13520 : {
13521 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1971;
13522 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1971;
13523 0 : {
13524 0 : tree res_op0;
13525 0 : {
13526 0 : tree _o1[1], _r1;
13527 0 : {
13528 0 : tree _o2[1], _r2;
13529 0 : {
13530 0 : tree _o3[1], _r3;
13531 0 : _o3[0] = captures[2];
13532 0 : if (TREE_TYPE (_o3[0]) != stype)
13533 : {
13534 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
13535 : }
13536 : else
13537 : _r3 = _o3[0];
13538 0 : _o2[0] = _r3;
13539 : }
13540 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13541 0 : _o1[0] = _r2;
13542 : }
13543 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13544 0 : res_op0 = _r1;
13545 : }
13546 0 : tree _r;
13547 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13548 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1077, __FILE__, __LINE__, true);
13549 0 : return _r;
13550 : }
13551 16 : next_after_fail1971:;
13552 : }
13553 : }
13554 : }
13555 : else
13556 : {
13557 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1972;
13558 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1972;
13559 0 : {
13560 0 : tree res_op0;
13561 0 : {
13562 0 : tree _o1[1], _r1;
13563 0 : {
13564 0 : tree _o2[1], _r2;
13565 0 : _o2[0] = captures[2];
13566 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
13567 0 : _o1[0] = _r2;
13568 : }
13569 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13570 0 : res_op0 = _r1;
13571 : }
13572 0 : tree _r;
13573 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13574 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1078, __FILE__, __LINE__, true);
13575 0 : return _r;
13576 : }
13577 16 : next_after_fail1972:;
13578 : }
13579 : }
13580 : }
13581 : }
13582 : break;
13583 : }
13584 : default:;
13585 : }
13586 : }
13587 20950 : switch (TREE_CODE (_q20))
13588 : {
13589 0 : case MINUS_EXPR:
13590 0 : {
13591 0 : tree _q30 = TREE_OPERAND (_q20, 0);
13592 0 : tree _q31 = TREE_OPERAND (_q20, 1);
13593 0 : if (zerop (_q21))
13594 : {
13595 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13596 : {
13597 0 : switch (TREE_CODE (_p2))
13598 : {
13599 0 : case MINUS_EXPR:
13600 0 : {
13601 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13602 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13603 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
13604 : {
13605 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
13606 : {
13607 0 : {
13608 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
13609 0 : const enum tree_code cmp = LT_EXPR;
13610 0 : if (!HONOR_SIGNED_ZEROS (type)
13611 0 : && !TYPE_UNSIGNED (type)
13612 : )
13613 : {
13614 0 : if (ANY_INTEGRAL_TYPE_P (type)
13615 0 : && !TYPE_OVERFLOW_WRAPS (type)
13616 0 : && (!VECTOR_TYPE_P (type)
13617 0 : || (target_supports_op_p (type, ABS_EXPR, optab_vector)
13618 0 : && target_supports_op_p (type, NEGATE_EXPR, optab_vector)))
13619 : )
13620 : {
13621 0 : {
13622 0 : tree utype = unsigned_type_for (type);
13623 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1973;
13624 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1973;
13625 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1973;
13626 0 : {
13627 0 : tree res_op0;
13628 0 : {
13629 0 : tree _o1[1], _r1;
13630 0 : {
13631 0 : tree _o2[1], _r2;
13632 0 : _o2[0] = captures[0];
13633 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
13634 0 : _o1[0] = _r2;
13635 : }
13636 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13637 0 : res_op0 = _r1;
13638 : }
13639 0 : tree _r;
13640 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
13641 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1079, __FILE__, __LINE__, true);
13642 0 : return _r;
13643 : }
13644 0 : next_after_fail1973:;
13645 : }
13646 : }
13647 : else
13648 : {
13649 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1974;
13650 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1974;
13651 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1974;
13652 0 : {
13653 0 : tree res_op0;
13654 0 : {
13655 0 : tree _o1[1], _r1;
13656 0 : _o1[0] = captures[0];
13657 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
13658 0 : res_op0 = _r1;
13659 : }
13660 0 : tree _r;
13661 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
13662 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1080, __FILE__, __LINE__, true);
13663 0 : return _r;
13664 : }
13665 0 : next_after_fail1974:;
13666 : }
13667 : }
13668 : }
13669 : }
13670 : }
13671 : break;
13672 : }
13673 : default:;
13674 : }
13675 : }
13676 : }
13677 : break;
13678 : }
13679 : default:;
13680 : }
13681 : break;
13682 : }
13683 454017 : default:;
13684 : }
13685 454017 : {
13686 454017 : tree _p0_pops[1];
13687 454017 : if (tree_logical_inverted_value (_p0, _p0_pops))
13688 : {
13689 1418 : tree _q20 = _p0_pops[0];
13690 1418 : if (tree_truth_valued_p (_q20))
13691 : {
13692 0 : {
13693 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
13694 0 : if (VEC_COND_EXPR == VEC_COND_EXPR
13695 : || TYPE_UNSIGNED (TREE_TYPE (captures[0]))
13696 : )
13697 : {
13698 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1975;
13699 0 : {
13700 0 : tree res_op0;
13701 0 : res_op0 = captures[0];
13702 0 : tree res_op1;
13703 0 : res_op1 = captures[2];
13704 0 : tree res_op2;
13705 0 : res_op2 = captures[1];
13706 0 : tree _r;
13707 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
13708 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1083, __FILE__, __LINE__, true);
13709 0 : return _r;
13710 : }
13711 0 : next_after_fail1975:;
13712 : }
13713 : }
13714 : }
13715 : }
13716 : }
13717 454017 : switch (TREE_CODE (_p1))
13718 : {
13719 0 : case VIEW_CONVERT_EXPR:
13720 0 : {
13721 0 : tree _q30 = TREE_OPERAND (_p1, 0);
13722 0 : switch (TREE_CODE (_q30))
13723 : {
13724 0 : case CALL_EXPR:
13725 0 : switch (get_call_combined_fn (_q30))
13726 : {
13727 0 : case CFN_COND_ADD:
13728 0 : if (call_expr_nargs (_q30) == 4)
13729 : {
13730 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13731 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13732 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13733 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13734 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13735 : {
13736 0 : {
13737 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13738 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
13739 0 : if (res) return res;
13740 : }
13741 : }
13742 : }
13743 : break;
13744 0 : case CFN_COND_AND:
13745 0 : if (call_expr_nargs (_q30) == 4)
13746 : {
13747 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13748 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13749 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13750 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13751 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13752 : {
13753 0 : {
13754 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13755 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
13756 0 : if (res) return res;
13757 : }
13758 : }
13759 : }
13760 : break;
13761 0 : case CFN_COND_DIV:
13762 0 : if (call_expr_nargs (_q30) == 4)
13763 : {
13764 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13765 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13766 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13767 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13768 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13769 : {
13770 0 : {
13771 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13772 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
13773 0 : if (res) return res;
13774 : }
13775 : }
13776 : }
13777 : break;
13778 0 : case CFN_COND_IOR:
13779 0 : if (call_expr_nargs (_q30) == 4)
13780 : {
13781 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13782 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13783 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13784 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13785 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13786 : {
13787 0 : {
13788 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13789 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
13790 0 : if (res) return res;
13791 : }
13792 : }
13793 : }
13794 : break;
13795 0 : case CFN_COND_MAX:
13796 0 : if (call_expr_nargs (_q30) == 4)
13797 : {
13798 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13799 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13800 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13801 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13802 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13803 : {
13804 0 : {
13805 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13806 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
13807 0 : if (res) return res;
13808 : }
13809 : }
13810 : }
13811 : break;
13812 0 : case CFN_COND_MIN:
13813 0 : if (call_expr_nargs (_q30) == 4)
13814 : {
13815 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13816 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13817 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13818 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13819 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13820 : {
13821 0 : {
13822 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13823 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
13824 0 : if (res) return res;
13825 : }
13826 : }
13827 : }
13828 : break;
13829 0 : case CFN_COND_MOD:
13830 0 : if (call_expr_nargs (_q30) == 4)
13831 : {
13832 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13833 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13834 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13835 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13836 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13837 : {
13838 0 : {
13839 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13840 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
13841 0 : if (res) return res;
13842 : }
13843 : }
13844 : }
13845 : break;
13846 0 : case CFN_COND_MUL:
13847 0 : if (call_expr_nargs (_q30) == 4)
13848 : {
13849 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13850 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13851 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13852 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13853 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13854 : {
13855 0 : {
13856 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13857 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
13858 0 : if (res) return res;
13859 : }
13860 : }
13861 : }
13862 : break;
13863 0 : case CFN_COND_SHL:
13864 0 : if (call_expr_nargs (_q30) == 4)
13865 : {
13866 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13867 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13868 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13869 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13870 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13871 : {
13872 0 : {
13873 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13874 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
13875 0 : if (res) return res;
13876 : }
13877 : }
13878 : }
13879 : break;
13880 0 : case CFN_COND_SHR:
13881 0 : if (call_expr_nargs (_q30) == 4)
13882 : {
13883 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13884 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13885 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13886 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13887 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13888 : {
13889 0 : {
13890 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13891 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
13892 0 : if (res) return res;
13893 : }
13894 : }
13895 : }
13896 : break;
13897 0 : case CFN_COND_SUB:
13898 0 : if (call_expr_nargs (_q30) == 4)
13899 : {
13900 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13901 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13902 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13903 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13904 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13905 : {
13906 0 : {
13907 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13908 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
13909 0 : if (res) return res;
13910 : }
13911 : }
13912 : }
13913 : break;
13914 0 : case CFN_COND_XOR:
13915 0 : if (call_expr_nargs (_q30) == 4)
13916 : {
13917 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13918 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13919 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13920 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13921 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13922 : {
13923 0 : {
13924 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13925 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
13926 0 : if (res) return res;
13927 : }
13928 : }
13929 : }
13930 : break;
13931 0 : case CFN_COND_COPYSIGN:
13932 0 : if (call_expr_nargs (_q30) == 4)
13933 : {
13934 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13935 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13936 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13937 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13938 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13939 : {
13940 0 : {
13941 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13942 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
13943 0 : if (res) return res;
13944 : }
13945 : }
13946 : }
13947 : break;
13948 0 : case CFN_COND_FMAX:
13949 0 : if (call_expr_nargs (_q30) == 4)
13950 : {
13951 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13952 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13953 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13954 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13955 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13956 : {
13957 0 : {
13958 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13959 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
13960 0 : if (res) return res;
13961 : }
13962 : }
13963 : }
13964 : break;
13965 0 : case CFN_COND_FMIN:
13966 0 : if (call_expr_nargs (_q30) == 4)
13967 : {
13968 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13969 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13970 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13971 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13972 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13973 : {
13974 0 : {
13975 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13976 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
13977 0 : if (res) return res;
13978 : }
13979 : }
13980 : }
13981 : break;
13982 0 : case CFN_COND_RDIV:
13983 0 : if (call_expr_nargs (_q30) == 4)
13984 : {
13985 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13986 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
13987 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
13988 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
13989 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
13990 : {
13991 0 : {
13992 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
13993 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
13994 0 : if (res) return res;
13995 : }
13996 : }
13997 : }
13998 : break;
13999 : default:;
14000 : }
14001 : break;
14002 : default:;
14003 : }
14004 : break;
14005 : }
14006 12 : case CALL_EXPR:
14007 12 : switch (get_call_combined_fn (_p1))
14008 : {
14009 0 : case CFN_COND_ADD:
14010 0 : if (call_expr_nargs (_p1) == 4)
14011 : {
14012 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14013 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14014 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14015 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14016 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14017 : {
14018 0 : {
14019 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14020 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14021 0 : if (res) return res;
14022 : }
14023 : }
14024 : }
14025 : break;
14026 0 : case CFN_COND_AND:
14027 0 : if (call_expr_nargs (_p1) == 4)
14028 : {
14029 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14030 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14031 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14032 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14033 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14034 : {
14035 0 : {
14036 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14037 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14038 0 : if (res) return res;
14039 : }
14040 : }
14041 : }
14042 : break;
14043 0 : case CFN_COND_DIV:
14044 0 : if (call_expr_nargs (_p1) == 4)
14045 : {
14046 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14047 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14048 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14049 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14050 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14051 : {
14052 0 : {
14053 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14054 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14055 0 : if (res) return res;
14056 : }
14057 : }
14058 : }
14059 : break;
14060 0 : case CFN_COND_IOR:
14061 0 : if (call_expr_nargs (_p1) == 4)
14062 : {
14063 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14064 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14065 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14066 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14067 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14068 : {
14069 0 : {
14070 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14071 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14072 0 : if (res) return res;
14073 : }
14074 : }
14075 : }
14076 : break;
14077 0 : case CFN_COND_MAX:
14078 0 : if (call_expr_nargs (_p1) == 4)
14079 : {
14080 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14081 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14082 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14083 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14084 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14085 : {
14086 0 : {
14087 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14088 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14089 0 : if (res) return res;
14090 : }
14091 : }
14092 : }
14093 : break;
14094 0 : case CFN_COND_MIN:
14095 0 : if (call_expr_nargs (_p1) == 4)
14096 : {
14097 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14098 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14099 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14100 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14101 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14102 : {
14103 0 : {
14104 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14105 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14106 0 : if (res) return res;
14107 : }
14108 : }
14109 : }
14110 : break;
14111 0 : case CFN_COND_MOD:
14112 0 : if (call_expr_nargs (_p1) == 4)
14113 : {
14114 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14115 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14116 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14117 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14118 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14119 : {
14120 0 : {
14121 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14122 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14123 0 : if (res) return res;
14124 : }
14125 : }
14126 : }
14127 : break;
14128 0 : case CFN_COND_MUL:
14129 0 : if (call_expr_nargs (_p1) == 4)
14130 : {
14131 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14132 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14133 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14134 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14135 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14136 : {
14137 0 : {
14138 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14139 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14140 0 : if (res) return res;
14141 : }
14142 : }
14143 : }
14144 : break;
14145 0 : case CFN_COND_SHL:
14146 0 : if (call_expr_nargs (_p1) == 4)
14147 : {
14148 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14149 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14150 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14151 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14152 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14153 : {
14154 0 : {
14155 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14156 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14157 0 : if (res) return res;
14158 : }
14159 : }
14160 : }
14161 : break;
14162 0 : case CFN_COND_SHR:
14163 0 : if (call_expr_nargs (_p1) == 4)
14164 : {
14165 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14166 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14167 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14168 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14169 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14170 : {
14171 0 : {
14172 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14173 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14174 0 : if (res) return res;
14175 : }
14176 : }
14177 : }
14178 : break;
14179 0 : case CFN_COND_SUB:
14180 0 : if (call_expr_nargs (_p1) == 4)
14181 : {
14182 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14183 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14184 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14185 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14186 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14187 : {
14188 0 : {
14189 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14190 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14191 0 : if (res) return res;
14192 : }
14193 : }
14194 : }
14195 : break;
14196 0 : case CFN_COND_XOR:
14197 0 : if (call_expr_nargs (_p1) == 4)
14198 : {
14199 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14200 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14201 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14202 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14203 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14204 : {
14205 0 : {
14206 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14207 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14208 0 : if (res) return res;
14209 : }
14210 : }
14211 : }
14212 : break;
14213 0 : case CFN_COND_COPYSIGN:
14214 0 : if (call_expr_nargs (_p1) == 4)
14215 : {
14216 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14217 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14218 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14219 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14220 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14221 : {
14222 0 : {
14223 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14224 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14225 0 : if (res) return res;
14226 : }
14227 : }
14228 : }
14229 : break;
14230 0 : case CFN_COND_FMAX:
14231 0 : if (call_expr_nargs (_p1) == 4)
14232 : {
14233 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14234 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14235 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14236 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14237 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14238 : {
14239 0 : {
14240 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14241 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14242 0 : if (res) return res;
14243 : }
14244 : }
14245 : }
14246 : break;
14247 0 : case CFN_COND_FMIN:
14248 0 : if (call_expr_nargs (_p1) == 4)
14249 : {
14250 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14251 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14252 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14253 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14254 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14255 : {
14256 0 : {
14257 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14258 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14259 0 : if (res) return res;
14260 : }
14261 : }
14262 : }
14263 : break;
14264 0 : case CFN_COND_RDIV:
14265 0 : if (call_expr_nargs (_p1) == 4)
14266 : {
14267 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14268 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14269 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14270 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14271 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14272 : {
14273 0 : {
14274 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
14275 0 : tree res = generic_simplify_550 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14276 0 : if (res) return res;
14277 : }
14278 : }
14279 : }
14280 : break;
14281 : default:;
14282 : }
14283 : break;
14284 454017 : default:;
14285 : }
14286 454017 : switch (TREE_CODE (_p2))
14287 : {
14288 0 : case VIEW_CONVERT_EXPR:
14289 0 : {
14290 0 : tree _q40 = TREE_OPERAND (_p2, 0);
14291 0 : switch (TREE_CODE (_q40))
14292 : {
14293 0 : case CALL_EXPR:
14294 0 : switch (get_call_combined_fn (_q40))
14295 : {
14296 0 : case CFN_COND_ADD:
14297 0 : if (call_expr_nargs (_q40) == 4)
14298 : {
14299 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14300 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14301 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14302 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14303 0 : {
14304 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14305 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14306 0 : if (res) return res;
14307 : }
14308 : }
14309 : break;
14310 0 : case CFN_COND_AND:
14311 0 : if (call_expr_nargs (_q40) == 4)
14312 : {
14313 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14314 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14315 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14316 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14317 0 : {
14318 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14319 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14320 0 : if (res) return res;
14321 : }
14322 : }
14323 : break;
14324 0 : case CFN_COND_DIV:
14325 0 : if (call_expr_nargs (_q40) == 4)
14326 : {
14327 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14328 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14329 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14330 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14331 0 : {
14332 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14333 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14334 0 : if (res) return res;
14335 : }
14336 : }
14337 : break;
14338 0 : case CFN_COND_IOR:
14339 0 : if (call_expr_nargs (_q40) == 4)
14340 : {
14341 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14342 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14343 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14344 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14345 0 : {
14346 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14347 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14348 0 : if (res) return res;
14349 : }
14350 : }
14351 : break;
14352 0 : case CFN_COND_MAX:
14353 0 : if (call_expr_nargs (_q40) == 4)
14354 : {
14355 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14356 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14357 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14358 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14359 0 : {
14360 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14361 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14362 0 : if (res) return res;
14363 : }
14364 : }
14365 : break;
14366 0 : case CFN_COND_MIN:
14367 0 : if (call_expr_nargs (_q40) == 4)
14368 : {
14369 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14370 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14371 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14372 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14373 0 : {
14374 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14375 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14376 0 : if (res) return res;
14377 : }
14378 : }
14379 : break;
14380 0 : case CFN_COND_MOD:
14381 0 : if (call_expr_nargs (_q40) == 4)
14382 : {
14383 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14384 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14385 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14386 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14387 0 : {
14388 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14389 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14390 0 : if (res) return res;
14391 : }
14392 : }
14393 : break;
14394 0 : case CFN_COND_MUL:
14395 0 : if (call_expr_nargs (_q40) == 4)
14396 : {
14397 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14398 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14399 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14400 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14401 0 : {
14402 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14403 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14404 0 : if (res) return res;
14405 : }
14406 : }
14407 : break;
14408 0 : case CFN_COND_SHL:
14409 0 : if (call_expr_nargs (_q40) == 4)
14410 : {
14411 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14412 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14413 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14414 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14415 0 : {
14416 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14417 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14418 0 : if (res) return res;
14419 : }
14420 : }
14421 : break;
14422 0 : case CFN_COND_SHR:
14423 0 : if (call_expr_nargs (_q40) == 4)
14424 : {
14425 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14426 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14427 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14428 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14429 0 : {
14430 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14431 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14432 0 : if (res) return res;
14433 : }
14434 : }
14435 : break;
14436 0 : case CFN_COND_SUB:
14437 0 : if (call_expr_nargs (_q40) == 4)
14438 : {
14439 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14440 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14441 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14442 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14443 0 : {
14444 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14445 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14446 0 : if (res) return res;
14447 : }
14448 : }
14449 : break;
14450 0 : case CFN_COND_XOR:
14451 0 : if (call_expr_nargs (_q40) == 4)
14452 : {
14453 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14454 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14455 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14456 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14457 0 : {
14458 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14459 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14460 0 : if (res) return res;
14461 : }
14462 : }
14463 : break;
14464 0 : case CFN_COND_COPYSIGN:
14465 0 : if (call_expr_nargs (_q40) == 4)
14466 : {
14467 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14468 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14469 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14470 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14471 0 : {
14472 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14473 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14474 0 : if (res) return res;
14475 : }
14476 : }
14477 : break;
14478 0 : case CFN_COND_FMAX:
14479 0 : if (call_expr_nargs (_q40) == 4)
14480 : {
14481 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14482 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14483 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14484 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14485 0 : {
14486 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14487 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14488 0 : if (res) return res;
14489 : }
14490 : }
14491 : break;
14492 0 : case CFN_COND_FMIN:
14493 0 : if (call_expr_nargs (_q40) == 4)
14494 : {
14495 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14496 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14497 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14498 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14499 0 : {
14500 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14501 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14502 0 : if (res) return res;
14503 : }
14504 : }
14505 : break;
14506 0 : case CFN_COND_RDIV:
14507 0 : if (call_expr_nargs (_q40) == 4)
14508 : {
14509 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14510 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14511 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14512 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14513 0 : {
14514 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
14515 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14516 0 : if (res) return res;
14517 : }
14518 : }
14519 : break;
14520 : default:;
14521 : }
14522 : break;
14523 : default:;
14524 : }
14525 : break;
14526 : }
14527 12 : case CALL_EXPR:
14528 12 : switch (get_call_combined_fn (_p2))
14529 : {
14530 0 : case CFN_COND_ADD:
14531 0 : if (call_expr_nargs (_p2) == 4)
14532 : {
14533 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14534 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14535 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14536 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14537 0 : {
14538 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14539 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
14540 0 : if (res) return res;
14541 : }
14542 : }
14543 : break;
14544 0 : case CFN_COND_AND:
14545 0 : if (call_expr_nargs (_p2) == 4)
14546 : {
14547 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14548 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14549 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14550 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14551 0 : {
14552 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14553 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
14554 0 : if (res) return res;
14555 : }
14556 : }
14557 : break;
14558 0 : case CFN_COND_DIV:
14559 0 : if (call_expr_nargs (_p2) == 4)
14560 : {
14561 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14562 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14563 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14564 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14565 0 : {
14566 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14567 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
14568 0 : if (res) return res;
14569 : }
14570 : }
14571 : break;
14572 0 : case CFN_COND_IOR:
14573 0 : if (call_expr_nargs (_p2) == 4)
14574 : {
14575 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14576 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14577 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14578 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14579 0 : {
14580 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14581 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
14582 0 : if (res) return res;
14583 : }
14584 : }
14585 : break;
14586 0 : case CFN_COND_MAX:
14587 0 : if (call_expr_nargs (_p2) == 4)
14588 : {
14589 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14590 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14591 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14592 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14593 0 : {
14594 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14595 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
14596 0 : if (res) return res;
14597 : }
14598 : }
14599 : break;
14600 0 : case CFN_COND_MIN:
14601 0 : if (call_expr_nargs (_p2) == 4)
14602 : {
14603 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14604 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14605 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14606 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14607 0 : {
14608 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14609 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
14610 0 : if (res) return res;
14611 : }
14612 : }
14613 : break;
14614 0 : case CFN_COND_MOD:
14615 0 : if (call_expr_nargs (_p2) == 4)
14616 : {
14617 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14618 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14619 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14620 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14621 0 : {
14622 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14623 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
14624 0 : if (res) return res;
14625 : }
14626 : }
14627 : break;
14628 0 : case CFN_COND_MUL:
14629 0 : if (call_expr_nargs (_p2) == 4)
14630 : {
14631 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14632 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14633 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14634 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14635 0 : {
14636 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14637 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
14638 0 : if (res) return res;
14639 : }
14640 : }
14641 : break;
14642 0 : case CFN_COND_SHL:
14643 0 : if (call_expr_nargs (_p2) == 4)
14644 : {
14645 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14646 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14647 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14648 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14649 0 : {
14650 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14651 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
14652 0 : if (res) return res;
14653 : }
14654 : }
14655 : break;
14656 0 : case CFN_COND_SHR:
14657 0 : if (call_expr_nargs (_p2) == 4)
14658 : {
14659 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14660 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14661 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14662 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14663 0 : {
14664 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14665 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
14666 0 : if (res) return res;
14667 : }
14668 : }
14669 : break;
14670 0 : case CFN_COND_SUB:
14671 0 : if (call_expr_nargs (_p2) == 4)
14672 : {
14673 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14674 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14675 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14676 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14677 0 : {
14678 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14679 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
14680 0 : if (res) return res;
14681 : }
14682 : }
14683 : break;
14684 0 : case CFN_COND_XOR:
14685 0 : if (call_expr_nargs (_p2) == 4)
14686 : {
14687 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14688 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14689 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14690 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14691 0 : {
14692 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14693 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
14694 0 : if (res) return res;
14695 : }
14696 : }
14697 : break;
14698 0 : case CFN_COND_COPYSIGN:
14699 0 : if (call_expr_nargs (_p2) == 4)
14700 : {
14701 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14702 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14703 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14704 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14705 0 : {
14706 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14707 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
14708 0 : if (res) return res;
14709 : }
14710 : }
14711 : break;
14712 0 : case CFN_COND_FMAX:
14713 0 : if (call_expr_nargs (_p2) == 4)
14714 : {
14715 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14716 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14717 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14718 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14719 0 : {
14720 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14721 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
14722 0 : if (res) return res;
14723 : }
14724 : }
14725 : break;
14726 0 : case CFN_COND_FMIN:
14727 0 : if (call_expr_nargs (_p2) == 4)
14728 : {
14729 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14730 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14731 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14732 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14733 0 : {
14734 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14735 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
14736 0 : if (res) return res;
14737 : }
14738 : }
14739 : break;
14740 0 : case CFN_COND_RDIV:
14741 0 : if (call_expr_nargs (_p2) == 4)
14742 : {
14743 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
14744 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
14745 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
14746 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
14747 0 : {
14748 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
14749 0 : tree res = generic_simplify_551 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
14750 0 : if (res) return res;
14751 : }
14752 : }
14753 : break;
14754 : default:;
14755 : }
14756 : break;
14757 454017 : default:;
14758 : }
14759 454017 : switch (TREE_CODE (_p1))
14760 : {
14761 0 : case VIEW_CONVERT_EXPR:
14762 0 : {
14763 0 : tree _q30 = TREE_OPERAND (_p1, 0);
14764 0 : switch (TREE_CODE (_q30))
14765 : {
14766 0 : case CALL_EXPR:
14767 0 : switch (get_call_combined_fn (_q30))
14768 : {
14769 0 : case CFN_COND_FMA:
14770 0 : if (call_expr_nargs (_q30) == 5)
14771 : {
14772 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14773 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14774 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14775 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14776 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14777 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14778 : {
14779 0 : {
14780 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14781 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
14782 0 : if (res) return res;
14783 : }
14784 : }
14785 : }
14786 : break;
14787 0 : case CFN_COND_FMS:
14788 0 : if (call_expr_nargs (_q30) == 5)
14789 : {
14790 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14791 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14792 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14793 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14794 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14795 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14796 : {
14797 0 : {
14798 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14799 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
14800 0 : if (res) return res;
14801 : }
14802 : }
14803 : }
14804 : break;
14805 0 : case CFN_COND_FNMA:
14806 0 : if (call_expr_nargs (_q30) == 5)
14807 : {
14808 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14809 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14810 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14811 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14812 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
14813 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
14814 : {
14815 0 : {
14816 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14817 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
14818 0 : if (res) return res;
14819 : }
14820 : }
14821 : }
14822 : break;
14823 0 : case CFN_COND_FNMS:
14824 0 : if (call_expr_nargs (_q30) == 5)
14825 : {
14826 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14827 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
14828 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
14829 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
14830 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
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[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
14835 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
14836 0 : if (res) return res;
14837 : }
14838 : }
14839 : }
14840 : break;
14841 : default:;
14842 : }
14843 : break;
14844 : default:;
14845 : }
14846 : break;
14847 : }
14848 12 : case CALL_EXPR:
14849 12 : switch (get_call_combined_fn (_p1))
14850 : {
14851 0 : case CFN_COND_FMA:
14852 0 : if (call_expr_nargs (_p1) == 5)
14853 : {
14854 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14855 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14856 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14857 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14858 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
14859 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14860 : {
14861 0 : {
14862 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
14863 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
14864 0 : if (res) return res;
14865 : }
14866 : }
14867 : }
14868 : break;
14869 0 : case CFN_COND_FMS:
14870 0 : if (call_expr_nargs (_p1) == 5)
14871 : {
14872 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14873 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14874 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14875 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14876 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
14877 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14878 : {
14879 0 : {
14880 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
14881 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
14882 0 : if (res) return res;
14883 : }
14884 : }
14885 : }
14886 : break;
14887 0 : case CFN_COND_FNMA:
14888 0 : if (call_expr_nargs (_p1) == 5)
14889 : {
14890 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14891 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14892 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14893 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14894 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
14895 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14896 : {
14897 0 : {
14898 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
14899 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
14900 0 : if (res) return res;
14901 : }
14902 : }
14903 : }
14904 : break;
14905 0 : case CFN_COND_FNMS:
14906 0 : if (call_expr_nargs (_p1) == 5)
14907 : {
14908 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
14909 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
14910 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
14911 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
14912 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
14913 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
14914 : {
14915 0 : {
14916 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
14917 0 : tree res = generic_simplify_552 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
14918 0 : if (res) return res;
14919 : }
14920 : }
14921 : }
14922 : break;
14923 : default:;
14924 : }
14925 : break;
14926 454017 : default:;
14927 : }
14928 454017 : switch (TREE_CODE (_p2))
14929 : {
14930 0 : case VIEW_CONVERT_EXPR:
14931 0 : {
14932 0 : tree _q40 = TREE_OPERAND (_p2, 0);
14933 0 : switch (TREE_CODE (_q40))
14934 : {
14935 0 : case CALL_EXPR:
14936 0 : switch (get_call_combined_fn (_q40))
14937 : {
14938 0 : case CFN_COND_FMA:
14939 0 : if (call_expr_nargs (_q40) == 5)
14940 : {
14941 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14942 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14943 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14944 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14945 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
14946 0 : {
14947 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
14948 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
14949 0 : if (res) return res;
14950 : }
14951 : }
14952 : break;
14953 0 : case CFN_COND_FMS:
14954 0 : if (call_expr_nargs (_q40) == 5)
14955 : {
14956 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14957 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14958 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14959 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14960 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
14961 0 : {
14962 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
14963 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
14964 0 : if (res) return res;
14965 : }
14966 : }
14967 : break;
14968 0 : case CFN_COND_FNMA:
14969 0 : if (call_expr_nargs (_q40) == 5)
14970 : {
14971 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14972 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14973 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14974 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14975 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
14976 0 : {
14977 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
14978 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
14979 0 : if (res) return res;
14980 : }
14981 : }
14982 : break;
14983 0 : case CFN_COND_FNMS:
14984 0 : if (call_expr_nargs (_q40) == 5)
14985 : {
14986 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
14987 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
14988 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
14989 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
14990 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
14991 0 : {
14992 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
14993 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
14994 0 : if (res) return res;
14995 : }
14996 : }
14997 : break;
14998 : default:;
14999 : }
15000 : break;
15001 : default:;
15002 : }
15003 : break;
15004 : }
15005 12 : case CALL_EXPR:
15006 12 : switch (get_call_combined_fn (_p2))
15007 : {
15008 0 : case CFN_COND_FMA:
15009 0 : if (call_expr_nargs (_p2) == 5)
15010 : {
15011 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15012 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15013 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15014 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15015 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15016 0 : {
15017 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15018 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
15019 0 : if (res) return res;
15020 : }
15021 : }
15022 : break;
15023 0 : case CFN_COND_FMS:
15024 0 : if (call_expr_nargs (_p2) == 5)
15025 : {
15026 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15027 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15028 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15029 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15030 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15031 0 : {
15032 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15033 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
15034 0 : if (res) return res;
15035 : }
15036 : }
15037 : break;
15038 0 : case CFN_COND_FNMA:
15039 0 : if (call_expr_nargs (_p2) == 5)
15040 : {
15041 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15042 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15043 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15044 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15045 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15046 0 : {
15047 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15048 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
15049 0 : if (res) return res;
15050 : }
15051 : }
15052 : break;
15053 0 : case CFN_COND_FNMS:
15054 0 : if (call_expr_nargs (_p2) == 5)
15055 : {
15056 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15057 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15058 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15059 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15060 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15061 0 : {
15062 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
15063 0 : tree res = generic_simplify_553 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
15064 0 : if (res) return res;
15065 : }
15066 : }
15067 : break;
15068 : default:;
15069 : }
15070 : break;
15071 454017 : default:;
15072 : }
15073 454017 : switch (TREE_CODE (_p1))
15074 : {
15075 0 : case VIEW_CONVERT_EXPR:
15076 0 : {
15077 0 : tree _q30 = TREE_OPERAND (_p1, 0);
15078 0 : switch (TREE_CODE (_q30))
15079 : {
15080 0 : case CALL_EXPR:
15081 0 : switch (get_call_combined_fn (_q30))
15082 : {
15083 0 : case CFN_COND_LEN_ADD:
15084 0 : if (call_expr_nargs (_q30) == 6)
15085 : {
15086 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15087 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15088 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15089 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15090 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15091 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15092 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15093 : {
15094 0 : {
15095 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15096 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15097 0 : if (res) return res;
15098 : }
15099 : }
15100 : }
15101 : break;
15102 0 : case CFN_COND_LEN_AND:
15103 0 : if (call_expr_nargs (_q30) == 6)
15104 : {
15105 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15106 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15107 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15108 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15109 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15110 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15111 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15112 : {
15113 0 : {
15114 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15115 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15116 0 : if (res) return res;
15117 : }
15118 : }
15119 : }
15120 : break;
15121 0 : case CFN_COND_LEN_DIV:
15122 0 : if (call_expr_nargs (_q30) == 6)
15123 : {
15124 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15125 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15126 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15127 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15128 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15129 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15130 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15131 : {
15132 0 : {
15133 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15134 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15135 0 : if (res) return res;
15136 : }
15137 : }
15138 : }
15139 : break;
15140 0 : case CFN_COND_LEN_IOR:
15141 0 : if (call_expr_nargs (_q30) == 6)
15142 : {
15143 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15144 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15145 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15146 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15147 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15148 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15149 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15150 : {
15151 0 : {
15152 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15153 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15154 0 : if (res) return res;
15155 : }
15156 : }
15157 : }
15158 : break;
15159 0 : case CFN_COND_LEN_MAX:
15160 0 : if (call_expr_nargs (_q30) == 6)
15161 : {
15162 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15163 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15164 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15165 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15166 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15167 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15168 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15169 : {
15170 0 : {
15171 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15172 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15173 0 : if (res) return res;
15174 : }
15175 : }
15176 : }
15177 : break;
15178 0 : case CFN_COND_LEN_MIN:
15179 0 : if (call_expr_nargs (_q30) == 6)
15180 : {
15181 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15182 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15183 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15184 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15185 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15186 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15187 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15188 : {
15189 0 : {
15190 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15191 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15192 0 : if (res) return res;
15193 : }
15194 : }
15195 : }
15196 : break;
15197 0 : case CFN_COND_LEN_MOD:
15198 0 : if (call_expr_nargs (_q30) == 6)
15199 : {
15200 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15201 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15202 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15203 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15204 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15205 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15206 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15207 : {
15208 0 : {
15209 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15210 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15211 0 : if (res) return res;
15212 : }
15213 : }
15214 : }
15215 : break;
15216 0 : case CFN_COND_LEN_MUL:
15217 0 : if (call_expr_nargs (_q30) == 6)
15218 : {
15219 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15220 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15221 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15222 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15223 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15224 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15225 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15226 : {
15227 0 : {
15228 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15229 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15230 0 : if (res) return res;
15231 : }
15232 : }
15233 : }
15234 : break;
15235 0 : case CFN_COND_LEN_SHL:
15236 0 : if (call_expr_nargs (_q30) == 6)
15237 : {
15238 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15239 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15240 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15241 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15242 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15243 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15244 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15245 : {
15246 0 : {
15247 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15248 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15249 0 : if (res) return res;
15250 : }
15251 : }
15252 : }
15253 : break;
15254 0 : case CFN_COND_LEN_SHR:
15255 0 : if (call_expr_nargs (_q30) == 6)
15256 : {
15257 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15258 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15259 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15260 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15261 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15262 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15263 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15264 : {
15265 0 : {
15266 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15267 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15268 0 : if (res) return res;
15269 : }
15270 : }
15271 : }
15272 : break;
15273 0 : case CFN_COND_LEN_SUB:
15274 0 : if (call_expr_nargs (_q30) == 6)
15275 : {
15276 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15277 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15278 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15279 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15280 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15281 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15282 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15283 : {
15284 0 : {
15285 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15286 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15287 0 : if (res) return res;
15288 : }
15289 : }
15290 : }
15291 : break;
15292 0 : case CFN_COND_LEN_XOR:
15293 0 : if (call_expr_nargs (_q30) == 6)
15294 : {
15295 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15296 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15297 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15298 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15299 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15300 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15301 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15302 : {
15303 0 : {
15304 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15305 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15306 0 : if (res) return res;
15307 : }
15308 : }
15309 : }
15310 : break;
15311 0 : case CFN_COND_LEN_FMAX:
15312 0 : if (call_expr_nargs (_q30) == 6)
15313 : {
15314 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15315 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15316 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15317 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15318 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15319 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15320 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15321 : {
15322 0 : {
15323 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15324 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15325 0 : if (res) return res;
15326 : }
15327 : }
15328 : }
15329 : break;
15330 0 : case CFN_COND_LEN_FMIN:
15331 0 : if (call_expr_nargs (_q30) == 6)
15332 : {
15333 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15334 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15335 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15336 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15337 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15338 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15339 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15340 : {
15341 0 : {
15342 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15343 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15344 0 : if (res) return res;
15345 : }
15346 : }
15347 : }
15348 : break;
15349 0 : case CFN_COND_LEN_RDIV:
15350 0 : if (call_expr_nargs (_q30) == 6)
15351 : {
15352 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15353 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15354 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15355 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15356 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15357 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15358 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15359 : {
15360 0 : {
15361 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15362 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15363 0 : if (res) return res;
15364 : }
15365 : }
15366 : }
15367 : break;
15368 0 : case CFN_COND_LEN_COPYSIGN:
15369 0 : if (call_expr_nargs (_q30) == 6)
15370 : {
15371 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
15372 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
15373 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
15374 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
15375 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
15376 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
15377 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
15378 : {
15379 0 : {
15380 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _p2 };
15381 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15382 0 : if (res) return res;
15383 : }
15384 : }
15385 : }
15386 : break;
15387 : default:;
15388 : }
15389 : break;
15390 : default:;
15391 : }
15392 : break;
15393 : }
15394 12 : case CALL_EXPR:
15395 12 : switch (get_call_combined_fn (_p1))
15396 : {
15397 0 : case CFN_COND_LEN_ADD:
15398 0 : if (call_expr_nargs (_p1) == 6)
15399 : {
15400 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15401 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15402 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15403 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15404 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15405 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15406 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15407 : {
15408 0 : {
15409 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15410 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15411 0 : if (res) return res;
15412 : }
15413 : }
15414 : }
15415 : break;
15416 0 : case CFN_COND_LEN_AND:
15417 0 : if (call_expr_nargs (_p1) == 6)
15418 : {
15419 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15420 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15421 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15422 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15423 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15424 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15425 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15426 : {
15427 0 : {
15428 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15429 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15430 0 : if (res) return res;
15431 : }
15432 : }
15433 : }
15434 : break;
15435 0 : case CFN_COND_LEN_DIV:
15436 0 : if (call_expr_nargs (_p1) == 6)
15437 : {
15438 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15439 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15440 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15441 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15442 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15443 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15444 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15445 : {
15446 0 : {
15447 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15448 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15449 0 : if (res) return res;
15450 : }
15451 : }
15452 : }
15453 : break;
15454 0 : case CFN_COND_LEN_IOR:
15455 0 : if (call_expr_nargs (_p1) == 6)
15456 : {
15457 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15458 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15459 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15460 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15461 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15462 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15463 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15464 : {
15465 0 : {
15466 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15467 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15468 0 : if (res) return res;
15469 : }
15470 : }
15471 : }
15472 : break;
15473 0 : case CFN_COND_LEN_MAX:
15474 0 : if (call_expr_nargs (_p1) == 6)
15475 : {
15476 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15477 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15478 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15479 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15480 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15481 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15482 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15483 : {
15484 0 : {
15485 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15486 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15487 0 : if (res) return res;
15488 : }
15489 : }
15490 : }
15491 : break;
15492 0 : case CFN_COND_LEN_MIN:
15493 0 : if (call_expr_nargs (_p1) == 6)
15494 : {
15495 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15496 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15497 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15498 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15499 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15500 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15501 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15502 : {
15503 0 : {
15504 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15505 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15506 0 : if (res) return res;
15507 : }
15508 : }
15509 : }
15510 : break;
15511 0 : case CFN_COND_LEN_MOD:
15512 0 : if (call_expr_nargs (_p1) == 6)
15513 : {
15514 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15515 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15516 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15517 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15518 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15519 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15520 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15521 : {
15522 0 : {
15523 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15524 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15525 0 : if (res) return res;
15526 : }
15527 : }
15528 : }
15529 : break;
15530 0 : case CFN_COND_LEN_MUL:
15531 0 : if (call_expr_nargs (_p1) == 6)
15532 : {
15533 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15534 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15535 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15536 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15537 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15538 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15539 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15540 : {
15541 0 : {
15542 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15543 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15544 0 : if (res) return res;
15545 : }
15546 : }
15547 : }
15548 : break;
15549 0 : case CFN_COND_LEN_SHL:
15550 0 : if (call_expr_nargs (_p1) == 6)
15551 : {
15552 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15553 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15554 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15555 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15556 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15557 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15558 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15559 : {
15560 0 : {
15561 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15562 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15563 0 : if (res) return res;
15564 : }
15565 : }
15566 : }
15567 : break;
15568 0 : case CFN_COND_LEN_SHR:
15569 0 : if (call_expr_nargs (_p1) == 6)
15570 : {
15571 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15572 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15573 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15574 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15575 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15576 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15577 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15578 : {
15579 0 : {
15580 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15581 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15582 0 : if (res) return res;
15583 : }
15584 : }
15585 : }
15586 : break;
15587 0 : case CFN_COND_LEN_SUB:
15588 0 : if (call_expr_nargs (_p1) == 6)
15589 : {
15590 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15591 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15592 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15593 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15594 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15595 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15596 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15597 : {
15598 0 : {
15599 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15600 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15601 0 : if (res) return res;
15602 : }
15603 : }
15604 : }
15605 : break;
15606 0 : case CFN_COND_LEN_XOR:
15607 0 : if (call_expr_nargs (_p1) == 6)
15608 : {
15609 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15610 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15611 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15612 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15613 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15614 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15615 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15616 : {
15617 0 : {
15618 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15619 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15620 0 : if (res) return res;
15621 : }
15622 : }
15623 : }
15624 : break;
15625 0 : case CFN_COND_LEN_FMAX:
15626 0 : if (call_expr_nargs (_p1) == 6)
15627 : {
15628 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15629 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15630 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15631 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15632 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15633 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15634 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15635 : {
15636 0 : {
15637 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15638 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15639 0 : if (res) return res;
15640 : }
15641 : }
15642 : }
15643 : break;
15644 0 : case CFN_COND_LEN_FMIN:
15645 0 : if (call_expr_nargs (_p1) == 6)
15646 : {
15647 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15648 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15649 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15650 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15651 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15652 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15653 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15654 : {
15655 0 : {
15656 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15657 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15658 0 : if (res) return res;
15659 : }
15660 : }
15661 : }
15662 : break;
15663 0 : case CFN_COND_LEN_RDIV:
15664 0 : if (call_expr_nargs (_p1) == 6)
15665 : {
15666 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15667 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15668 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15669 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15670 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15671 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15672 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15673 : {
15674 0 : {
15675 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15676 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15677 0 : if (res) return res;
15678 : }
15679 : }
15680 : }
15681 : break;
15682 0 : case CFN_COND_LEN_COPYSIGN:
15683 0 : if (call_expr_nargs (_p1) == 6)
15684 : {
15685 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
15686 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
15687 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
15688 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
15689 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
15690 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
15691 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
15692 : {
15693 0 : {
15694 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _p2 };
15695 0 : tree res = generic_simplify_554 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15696 0 : if (res) return res;
15697 : }
15698 : }
15699 : }
15700 : break;
15701 : default:;
15702 : }
15703 : break;
15704 454017 : default:;
15705 : }
15706 454017 : switch (TREE_CODE (_p2))
15707 : {
15708 0 : case VIEW_CONVERT_EXPR:
15709 0 : {
15710 0 : tree _q40 = TREE_OPERAND (_p2, 0);
15711 0 : switch (TREE_CODE (_q40))
15712 : {
15713 0 : case CALL_EXPR:
15714 0 : switch (get_call_combined_fn (_q40))
15715 : {
15716 0 : case CFN_COND_LEN_ADD:
15717 0 : if (call_expr_nargs (_q40) == 6)
15718 : {
15719 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15720 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15721 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15722 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15723 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15724 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15725 0 : {
15726 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15727 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15728 0 : if (res) return res;
15729 : }
15730 : }
15731 : break;
15732 0 : case CFN_COND_LEN_AND:
15733 0 : if (call_expr_nargs (_q40) == 6)
15734 : {
15735 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15736 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15737 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15738 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15739 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15740 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15741 0 : {
15742 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15743 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
15744 0 : if (res) return res;
15745 : }
15746 : }
15747 : break;
15748 0 : case CFN_COND_LEN_DIV:
15749 0 : if (call_expr_nargs (_q40) == 6)
15750 : {
15751 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15752 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15753 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15754 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15755 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15756 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15757 0 : {
15758 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15759 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
15760 0 : if (res) return res;
15761 : }
15762 : }
15763 : break;
15764 0 : case CFN_COND_LEN_IOR:
15765 0 : if (call_expr_nargs (_q40) == 6)
15766 : {
15767 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15768 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15769 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15770 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15771 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15772 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15773 0 : {
15774 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15775 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
15776 0 : if (res) return res;
15777 : }
15778 : }
15779 : break;
15780 0 : case CFN_COND_LEN_MAX:
15781 0 : if (call_expr_nargs (_q40) == 6)
15782 : {
15783 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15784 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15785 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15786 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15787 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15788 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15789 0 : {
15790 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15791 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
15792 0 : if (res) return res;
15793 : }
15794 : }
15795 : break;
15796 0 : case CFN_COND_LEN_MIN:
15797 0 : if (call_expr_nargs (_q40) == 6)
15798 : {
15799 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15800 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15801 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15802 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15803 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15804 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15805 0 : {
15806 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15807 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
15808 0 : if (res) return res;
15809 : }
15810 : }
15811 : break;
15812 0 : case CFN_COND_LEN_MOD:
15813 0 : if (call_expr_nargs (_q40) == 6)
15814 : {
15815 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15816 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15817 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15818 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15819 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15820 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15821 0 : {
15822 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15823 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
15824 0 : if (res) return res;
15825 : }
15826 : }
15827 : break;
15828 0 : case CFN_COND_LEN_MUL:
15829 0 : if (call_expr_nargs (_q40) == 6)
15830 : {
15831 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15832 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15833 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15834 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15835 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15836 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15837 0 : {
15838 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15839 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
15840 0 : if (res) return res;
15841 : }
15842 : }
15843 : break;
15844 0 : case CFN_COND_LEN_SHL:
15845 0 : if (call_expr_nargs (_q40) == 6)
15846 : {
15847 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15848 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15849 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15850 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15851 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15852 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15853 0 : {
15854 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15855 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
15856 0 : if (res) return res;
15857 : }
15858 : }
15859 : break;
15860 0 : case CFN_COND_LEN_SHR:
15861 0 : if (call_expr_nargs (_q40) == 6)
15862 : {
15863 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15864 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15865 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15866 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15867 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15868 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15869 0 : {
15870 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15871 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
15872 0 : if (res) return res;
15873 : }
15874 : }
15875 : break;
15876 0 : case CFN_COND_LEN_SUB:
15877 0 : if (call_expr_nargs (_q40) == 6)
15878 : {
15879 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15880 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15881 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15882 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15883 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15884 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15885 0 : {
15886 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15887 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
15888 0 : if (res) return res;
15889 : }
15890 : }
15891 : break;
15892 0 : case CFN_COND_LEN_XOR:
15893 0 : if (call_expr_nargs (_q40) == 6)
15894 : {
15895 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15896 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15897 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15898 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15899 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15900 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15901 0 : {
15902 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15903 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
15904 0 : if (res) return res;
15905 : }
15906 : }
15907 : break;
15908 0 : case CFN_COND_LEN_FMAX:
15909 0 : if (call_expr_nargs (_q40) == 6)
15910 : {
15911 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15912 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15913 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15914 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15915 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15916 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15917 0 : {
15918 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15919 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
15920 0 : if (res) return res;
15921 : }
15922 : }
15923 : break;
15924 0 : case CFN_COND_LEN_FMIN:
15925 0 : if (call_expr_nargs (_q40) == 6)
15926 : {
15927 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15928 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15929 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15930 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15931 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15932 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15933 0 : {
15934 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15935 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
15936 0 : if (res) return res;
15937 : }
15938 : }
15939 : break;
15940 0 : case CFN_COND_LEN_RDIV:
15941 0 : if (call_expr_nargs (_q40) == 6)
15942 : {
15943 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15944 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15945 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15946 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15947 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15948 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15949 0 : {
15950 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15951 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
15952 0 : if (res) return res;
15953 : }
15954 : }
15955 : break;
15956 0 : case CFN_COND_LEN_COPYSIGN:
15957 0 : if (call_expr_nargs (_q40) == 6)
15958 : {
15959 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
15960 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
15961 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
15962 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
15963 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
15964 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
15965 0 : {
15966 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55 };
15967 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
15968 0 : if (res) return res;
15969 : }
15970 : }
15971 : break;
15972 : default:;
15973 : }
15974 : break;
15975 : default:;
15976 : }
15977 : break;
15978 : }
15979 12 : case CALL_EXPR:
15980 12 : switch (get_call_combined_fn (_p2))
15981 : {
15982 0 : case CFN_COND_LEN_ADD:
15983 0 : if (call_expr_nargs (_p2) == 6)
15984 : {
15985 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
15986 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
15987 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
15988 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
15989 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
15990 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
15991 0 : {
15992 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
15993 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_ADD);
15994 0 : if (res) return res;
15995 : }
15996 : }
15997 : break;
15998 0 : case CFN_COND_LEN_AND:
15999 0 : if (call_expr_nargs (_p2) == 6)
16000 : {
16001 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16002 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16003 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16004 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16005 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16006 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16007 0 : {
16008 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16009 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_AND);
16010 0 : if (res) return res;
16011 : }
16012 : }
16013 : break;
16014 0 : case CFN_COND_LEN_DIV:
16015 0 : if (call_expr_nargs (_p2) == 6)
16016 : {
16017 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16018 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16019 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16020 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16021 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16022 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16023 0 : {
16024 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16025 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_DIV);
16026 0 : if (res) return res;
16027 : }
16028 : }
16029 : break;
16030 0 : case CFN_COND_LEN_IOR:
16031 0 : if (call_expr_nargs (_p2) == 6)
16032 : {
16033 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16034 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16035 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16036 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16037 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16038 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16039 0 : {
16040 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16041 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_IOR);
16042 0 : if (res) return res;
16043 : }
16044 : }
16045 : break;
16046 0 : case CFN_COND_LEN_MAX:
16047 0 : if (call_expr_nargs (_p2) == 6)
16048 : {
16049 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16050 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16051 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16052 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16053 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16054 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16055 0 : {
16056 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16057 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MAX);
16058 0 : if (res) return res;
16059 : }
16060 : }
16061 : break;
16062 0 : case CFN_COND_LEN_MIN:
16063 0 : if (call_expr_nargs (_p2) == 6)
16064 : {
16065 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16066 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16067 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16068 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16069 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16070 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16071 0 : {
16072 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16073 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MIN);
16074 0 : if (res) return res;
16075 : }
16076 : }
16077 : break;
16078 0 : case CFN_COND_LEN_MOD:
16079 0 : if (call_expr_nargs (_p2) == 6)
16080 : {
16081 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16082 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16083 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16084 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16085 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16086 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16087 0 : {
16088 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16089 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MOD);
16090 0 : if (res) return res;
16091 : }
16092 : }
16093 : break;
16094 0 : case CFN_COND_LEN_MUL:
16095 0 : if (call_expr_nargs (_p2) == 6)
16096 : {
16097 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16098 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16099 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16100 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16101 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16102 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16103 0 : {
16104 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16105 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_MUL);
16106 0 : if (res) return res;
16107 : }
16108 : }
16109 : break;
16110 0 : case CFN_COND_LEN_SHL:
16111 0 : if (call_expr_nargs (_p2) == 6)
16112 : {
16113 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16114 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16115 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16116 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16117 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16118 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16119 0 : {
16120 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16121 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHL);
16122 0 : if (res) return res;
16123 : }
16124 : }
16125 : break;
16126 0 : case CFN_COND_LEN_SHR:
16127 0 : if (call_expr_nargs (_p2) == 6)
16128 : {
16129 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16130 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16131 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16132 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16133 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16134 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16135 0 : {
16136 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16137 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SHR);
16138 0 : if (res) return res;
16139 : }
16140 : }
16141 : break;
16142 0 : case CFN_COND_LEN_SUB:
16143 0 : if (call_expr_nargs (_p2) == 6)
16144 : {
16145 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16146 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16147 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16148 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16149 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16150 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16151 0 : {
16152 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16153 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_SUB);
16154 0 : if (res) return res;
16155 : }
16156 : }
16157 : break;
16158 0 : case CFN_COND_LEN_XOR:
16159 0 : if (call_expr_nargs (_p2) == 6)
16160 : {
16161 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16162 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16163 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16164 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16165 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16166 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16167 0 : {
16168 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16169 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_XOR);
16170 0 : if (res) return res;
16171 : }
16172 : }
16173 : break;
16174 0 : case CFN_COND_LEN_FMAX:
16175 0 : if (call_expr_nargs (_p2) == 6)
16176 : {
16177 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16178 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16179 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16180 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16181 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16182 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16183 0 : {
16184 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16185 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMAX);
16186 0 : if (res) return res;
16187 : }
16188 : }
16189 : break;
16190 0 : case CFN_COND_LEN_FMIN:
16191 0 : if (call_expr_nargs (_p2) == 6)
16192 : {
16193 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16194 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16195 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16196 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16197 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16198 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16199 0 : {
16200 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16201 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMIN);
16202 0 : if (res) return res;
16203 : }
16204 : }
16205 : break;
16206 0 : case CFN_COND_LEN_RDIV:
16207 0 : if (call_expr_nargs (_p2) == 6)
16208 : {
16209 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16210 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16211 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16212 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16213 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16214 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16215 0 : {
16216 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16217 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_RDIV);
16218 0 : if (res) return res;
16219 : }
16220 : }
16221 : break;
16222 0 : case CFN_COND_LEN_COPYSIGN:
16223 0 : if (call_expr_nargs (_p2) == 6)
16224 : {
16225 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16226 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16227 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16228 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16229 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16230 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16231 0 : {
16232 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45 };
16233 0 : tree res = generic_simplify_555 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_COPYSIGN);
16234 0 : if (res) return res;
16235 : }
16236 : }
16237 : break;
16238 : default:;
16239 : }
16240 : break;
16241 454017 : default:;
16242 : }
16243 454017 : switch (TREE_CODE (_p1))
16244 : {
16245 0 : case VIEW_CONVERT_EXPR:
16246 0 : {
16247 0 : tree _q30 = TREE_OPERAND (_p1, 0);
16248 0 : switch (TREE_CODE (_q30))
16249 : {
16250 0 : case CALL_EXPR:
16251 0 : switch (get_call_combined_fn (_q30))
16252 : {
16253 0 : case CFN_COND_LEN_FMA:
16254 0 : if (call_expr_nargs (_q30) == 7)
16255 : {
16256 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16257 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16258 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16259 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16260 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16261 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16262 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16263 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16264 : {
16265 0 : {
16266 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16267 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16268 0 : if (res) return res;
16269 : }
16270 : }
16271 : }
16272 : break;
16273 0 : case CFN_COND_LEN_FMS:
16274 0 : if (call_expr_nargs (_q30) == 7)
16275 : {
16276 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16277 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16278 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16279 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16280 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16281 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16282 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16283 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16284 : {
16285 0 : {
16286 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16287 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16288 0 : if (res) return res;
16289 : }
16290 : }
16291 : }
16292 : break;
16293 0 : case CFN_COND_LEN_FNMA:
16294 0 : if (call_expr_nargs (_q30) == 7)
16295 : {
16296 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16297 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16298 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16299 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16300 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16301 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16302 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16303 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16304 : {
16305 0 : {
16306 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16307 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16308 0 : if (res) return res;
16309 : }
16310 : }
16311 : }
16312 : break;
16313 0 : case CFN_COND_LEN_FNMS:
16314 0 : if (call_expr_nargs (_q30) == 7)
16315 : {
16316 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16317 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
16318 0 : tree _q42 = CALL_EXPR_ARG (_q30, 2);
16319 0 : tree _q43 = CALL_EXPR_ARG (_q30, 3);
16320 0 : tree _q44 = CALL_EXPR_ARG (_q30, 4);
16321 0 : tree _q45 = CALL_EXPR_ARG (_q30, 5);
16322 0 : tree _q46 = CALL_EXPR_ARG (_q30, 6);
16323 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16324 : {
16325 0 : {
16326 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _q45, _q46, _p2 };
16327 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16328 0 : if (res) return res;
16329 : }
16330 : }
16331 : }
16332 : break;
16333 : default:;
16334 : }
16335 : break;
16336 : default:;
16337 : }
16338 : break;
16339 : }
16340 12 : case CALL_EXPR:
16341 12 : switch (get_call_combined_fn (_p1))
16342 : {
16343 0 : case CFN_COND_LEN_FMA:
16344 0 : if (call_expr_nargs (_p1) == 7)
16345 : {
16346 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16347 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16348 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16349 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16350 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16351 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16352 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16353 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16354 : {
16355 0 : {
16356 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16357 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16358 0 : if (res) return res;
16359 : }
16360 : }
16361 : }
16362 : break;
16363 0 : case CFN_COND_LEN_FMS:
16364 0 : if (call_expr_nargs (_p1) == 7)
16365 : {
16366 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16367 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16368 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16369 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16370 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16371 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16372 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16373 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16374 : {
16375 0 : {
16376 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16377 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16378 0 : if (res) return res;
16379 : }
16380 : }
16381 : }
16382 : break;
16383 0 : case CFN_COND_LEN_FNMA:
16384 0 : if (call_expr_nargs (_p1) == 7)
16385 : {
16386 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16387 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16388 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16389 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16390 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16391 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16392 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16393 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16394 : {
16395 0 : {
16396 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16397 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16398 0 : if (res) return res;
16399 : }
16400 : }
16401 : }
16402 : break;
16403 0 : case CFN_COND_LEN_FNMS:
16404 0 : if (call_expr_nargs (_p1) == 7)
16405 : {
16406 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16407 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16408 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16409 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16410 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16411 0 : tree _q35 = CALL_EXPR_ARG (_p1, 5);
16412 0 : tree _q36 = CALL_EXPR_ARG (_p1, 6);
16413 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16414 : {
16415 0 : {
16416 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _q35, _q36, _p2 };
16417 0 : tree res = generic_simplify_556 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16418 0 : if (res) return res;
16419 : }
16420 : }
16421 : }
16422 : break;
16423 : default:;
16424 : }
16425 : break;
16426 454017 : default:;
16427 : }
16428 454017 : switch (TREE_CODE (_p2))
16429 : {
16430 0 : case VIEW_CONVERT_EXPR:
16431 0 : {
16432 0 : tree _q40 = TREE_OPERAND (_p2, 0);
16433 0 : switch (TREE_CODE (_q40))
16434 : {
16435 0 : case CALL_EXPR:
16436 0 : switch (get_call_combined_fn (_q40))
16437 : {
16438 0 : case CFN_COND_LEN_FMA:
16439 0 : if (call_expr_nargs (_q40) == 7)
16440 : {
16441 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16442 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16443 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16444 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16445 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16446 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16447 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16448 0 : {
16449 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16450 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16451 0 : if (res) return res;
16452 : }
16453 : }
16454 : break;
16455 0 : case CFN_COND_LEN_FMS:
16456 0 : if (call_expr_nargs (_q40) == 7)
16457 : {
16458 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16459 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16460 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16461 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16462 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16463 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16464 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16465 0 : {
16466 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16467 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16468 0 : if (res) return res;
16469 : }
16470 : }
16471 : break;
16472 0 : case CFN_COND_LEN_FNMA:
16473 0 : if (call_expr_nargs (_q40) == 7)
16474 : {
16475 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16476 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16477 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16478 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16479 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16480 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16481 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16482 0 : {
16483 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16484 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16485 0 : if (res) return res;
16486 : }
16487 : }
16488 : break;
16489 0 : case CFN_COND_LEN_FNMS:
16490 0 : if (call_expr_nargs (_q40) == 7)
16491 : {
16492 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16493 0 : tree _q51 = CALL_EXPR_ARG (_q40, 1);
16494 0 : tree _q52 = CALL_EXPR_ARG (_q40, 2);
16495 0 : tree _q53 = CALL_EXPR_ARG (_q40, 3);
16496 0 : tree _q54 = CALL_EXPR_ARG (_q40, 4);
16497 0 : tree _q55 = CALL_EXPR_ARG (_q40, 5);
16498 0 : tree _q56 = CALL_EXPR_ARG (_q40, 6);
16499 0 : {
16500 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54, _q55, _q56 };
16501 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16502 0 : if (res) return res;
16503 : }
16504 : }
16505 : break;
16506 : default:;
16507 : }
16508 : break;
16509 : default:;
16510 : }
16511 : break;
16512 : }
16513 12 : case CALL_EXPR:
16514 12 : switch (get_call_combined_fn (_p2))
16515 : {
16516 0 : case CFN_COND_LEN_FMA:
16517 0 : if (call_expr_nargs (_p2) == 7)
16518 : {
16519 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16520 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16521 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16522 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16523 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16524 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16525 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16526 0 : {
16527 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16528 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMA);
16529 0 : if (res) return res;
16530 : }
16531 : }
16532 : break;
16533 0 : case CFN_COND_LEN_FMS:
16534 0 : if (call_expr_nargs (_p2) == 7)
16535 : {
16536 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16537 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16538 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16539 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16540 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16541 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16542 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16543 0 : {
16544 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16545 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FMS);
16546 0 : if (res) return res;
16547 : }
16548 : }
16549 : break;
16550 0 : case CFN_COND_LEN_FNMA:
16551 0 : if (call_expr_nargs (_p2) == 7)
16552 : {
16553 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16554 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16555 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16556 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16557 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16558 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16559 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16560 0 : {
16561 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16562 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMA);
16563 0 : if (res) return res;
16564 : }
16565 : }
16566 : break;
16567 0 : case CFN_COND_LEN_FNMS:
16568 0 : if (call_expr_nargs (_p2) == 7)
16569 : {
16570 0 : tree _q40 = CALL_EXPR_ARG (_p2, 0);
16571 0 : tree _q41 = CALL_EXPR_ARG (_p2, 1);
16572 0 : tree _q42 = CALL_EXPR_ARG (_p2, 2);
16573 0 : tree _q43 = CALL_EXPR_ARG (_p2, 3);
16574 0 : tree _q44 = CALL_EXPR_ARG (_p2, 4);
16575 0 : tree _q45 = CALL_EXPR_ARG (_p2, 5);
16576 0 : tree _q46 = CALL_EXPR_ARG (_p2, 6);
16577 0 : {
16578 0 : tree captures[9] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44, _q45, _q46 };
16579 0 : tree res = generic_simplify_557 (loc, type, _p0, _p1, _p2, captures, CFN_COND_LEN_FNMS);
16580 0 : if (res) return res;
16581 : }
16582 : }
16583 : break;
16584 : default:;
16585 : }
16586 : break;
16587 454017 : default:;
16588 : }
16589 454017 : switch (TREE_CODE (_p1))
16590 : {
16591 12 : case CALL_EXPR:
16592 12 : switch (get_call_combined_fn (_p1))
16593 : {
16594 0 : case CFN_COND_ADD:
16595 0 : if (call_expr_nargs (_p1) == 4)
16596 : {
16597 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16598 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16599 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16600 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16601 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16602 : {
16603 0 : {
16604 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16605 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
16606 0 : if (res) return res;
16607 : }
16608 : }
16609 : }
16610 : break;
16611 0 : case CFN_COND_AND:
16612 0 : if (call_expr_nargs (_p1) == 4)
16613 : {
16614 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16615 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16616 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16617 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16618 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16619 : {
16620 0 : {
16621 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16622 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
16623 0 : if (res) return res;
16624 : }
16625 : }
16626 : }
16627 : break;
16628 0 : case CFN_COND_DIV:
16629 0 : if (call_expr_nargs (_p1) == 4)
16630 : {
16631 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16632 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16633 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16634 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16635 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16636 : {
16637 0 : {
16638 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16639 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
16640 0 : if (res) return res;
16641 : }
16642 : }
16643 : }
16644 : break;
16645 0 : case CFN_COND_FMA:
16646 0 : if (call_expr_nargs (_p1) == 5)
16647 : {
16648 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16649 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16650 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16651 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16652 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16653 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16654 : {
16655 0 : {
16656 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16657 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
16658 0 : if (res) return res;
16659 : }
16660 : }
16661 : }
16662 : break;
16663 0 : case CFN_COND_FMS:
16664 0 : if (call_expr_nargs (_p1) == 5)
16665 : {
16666 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16667 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16668 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16669 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16670 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16671 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16672 : {
16673 0 : {
16674 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16675 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
16676 0 : if (res) return res;
16677 : }
16678 : }
16679 : }
16680 : break;
16681 0 : case CFN_COND_IOR:
16682 0 : if (call_expr_nargs (_p1) == 4)
16683 : {
16684 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16685 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16686 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16687 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16688 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16689 : {
16690 0 : {
16691 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16692 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
16693 0 : if (res) return res;
16694 : }
16695 : }
16696 : }
16697 : break;
16698 0 : case CFN_COND_MAX:
16699 0 : if (call_expr_nargs (_p1) == 4)
16700 : {
16701 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16702 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16703 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16704 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16705 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16706 : {
16707 0 : {
16708 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16709 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
16710 0 : if (res) return res;
16711 : }
16712 : }
16713 : }
16714 : break;
16715 0 : case CFN_COND_MIN:
16716 0 : if (call_expr_nargs (_p1) == 4)
16717 : {
16718 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16719 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16720 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16721 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16722 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16723 : {
16724 0 : {
16725 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16726 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
16727 0 : if (res) return res;
16728 : }
16729 : }
16730 : }
16731 : break;
16732 0 : case CFN_COND_MOD:
16733 0 : if (call_expr_nargs (_p1) == 4)
16734 : {
16735 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16736 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16737 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16738 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16739 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16740 : {
16741 0 : {
16742 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16743 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
16744 0 : if (res) return res;
16745 : }
16746 : }
16747 : }
16748 : break;
16749 0 : case CFN_COND_MUL:
16750 0 : if (call_expr_nargs (_p1) == 4)
16751 : {
16752 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16753 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16754 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16755 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16756 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16757 : {
16758 0 : {
16759 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16760 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
16761 0 : if (res) return res;
16762 : }
16763 : }
16764 : }
16765 : break;
16766 0 : case CFN_COND_SHL:
16767 0 : if (call_expr_nargs (_p1) == 4)
16768 : {
16769 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16770 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16771 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16772 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16773 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16774 : {
16775 0 : {
16776 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16777 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
16778 0 : if (res) return res;
16779 : }
16780 : }
16781 : }
16782 : break;
16783 0 : case CFN_COND_SHR:
16784 0 : if (call_expr_nargs (_p1) == 4)
16785 : {
16786 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16787 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16788 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16789 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16790 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16791 : {
16792 0 : {
16793 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16794 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
16795 0 : if (res) return res;
16796 : }
16797 : }
16798 : }
16799 : break;
16800 0 : case CFN_COND_SUB:
16801 0 : if (call_expr_nargs (_p1) == 4)
16802 : {
16803 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16804 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16805 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16806 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16807 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16808 : {
16809 0 : {
16810 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16811 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
16812 0 : if (res) return res;
16813 : }
16814 : }
16815 : }
16816 : break;
16817 0 : case CFN_COND_XOR:
16818 0 : if (call_expr_nargs (_p1) == 4)
16819 : {
16820 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16821 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16822 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16823 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16824 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16825 : {
16826 0 : {
16827 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16828 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
16829 0 : if (res) return res;
16830 : }
16831 : }
16832 : }
16833 : break;
16834 0 : case CFN_COND_COPYSIGN:
16835 0 : if (call_expr_nargs (_p1) == 4)
16836 : {
16837 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16838 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16839 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16840 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16841 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16842 : {
16843 0 : {
16844 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16845 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_COPYSIGN);
16846 0 : if (res) return res;
16847 : }
16848 : }
16849 : }
16850 : break;
16851 0 : case CFN_COND_FMAX:
16852 0 : if (call_expr_nargs (_p1) == 4)
16853 : {
16854 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16855 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16856 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16857 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16858 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16859 : {
16860 0 : {
16861 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16862 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
16863 0 : if (res) return res;
16864 : }
16865 : }
16866 : }
16867 : break;
16868 0 : case CFN_COND_FMIN:
16869 0 : if (call_expr_nargs (_p1) == 4)
16870 : {
16871 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16872 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16873 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16874 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16875 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16876 : {
16877 0 : {
16878 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16879 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
16880 0 : if (res) return res;
16881 : }
16882 : }
16883 : }
16884 : break;
16885 0 : case CFN_COND_FNMA:
16886 0 : if (call_expr_nargs (_p1) == 5)
16887 : {
16888 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16889 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16890 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16891 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16892 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16893 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16894 : {
16895 0 : {
16896 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16897 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
16898 0 : if (res) return res;
16899 : }
16900 : }
16901 : }
16902 : break;
16903 0 : case CFN_COND_FNMS:
16904 0 : if (call_expr_nargs (_p1) == 5)
16905 : {
16906 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16907 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16908 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16909 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16910 0 : tree _q34 = CALL_EXPR_ARG (_p1, 4);
16911 0 : if ((_p2 == _q34 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q34, 0) && types_match (_p2, _q34)))
16912 : {
16913 0 : {
16914 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33, _q34 };
16915 0 : tree res = generic_simplify_559 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
16916 0 : if (res) return res;
16917 : }
16918 : }
16919 : }
16920 : break;
16921 0 : case CFN_COND_RDIV:
16922 0 : if (call_expr_nargs (_p1) == 4)
16923 : {
16924 0 : tree _q30 = CALL_EXPR_ARG (_p1, 0);
16925 0 : tree _q31 = CALL_EXPR_ARG (_p1, 1);
16926 0 : tree _q32 = CALL_EXPR_ARG (_p1, 2);
16927 0 : tree _q33 = CALL_EXPR_ARG (_p1, 3);
16928 0 : if ((_p2 == _q33 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q33, 0) && types_match (_p2, _q33)))
16929 : {
16930 0 : {
16931 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _q33 };
16932 0 : tree res = generic_simplify_558 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
16933 0 : if (res) return res;
16934 : }
16935 : }
16936 : }
16937 : break;
16938 : default:;
16939 : }
16940 : break;
16941 : default:;
16942 : }
16943 : return NULL_TREE;
16944 : }
16945 : #pragma GCC diagnostic pop
|