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 113151286 : tree_bit_not_with_nop (tree t, tree *res_ops)
11 : {
12 113151286 : const tree type = TREE_TYPE (t);
13 113151286 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 113151286 : if (TREE_SIDE_EFFECTS (t)) return false;
15 113151286 : switch (TREE_CODE (t))
16 : {
17 146205 : case BIT_NOT_EXPR:
18 146205 : {
19 146205 : tree _p0 = TREE_OPERAND (t, 0);
20 146205 : {
21 146205 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
22 146205 : {
23 146205 : res_ops[0] = captures[0];
24 146205 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 2, __FILE__, __LINE__, false);
25 : return true;
26 : }
27 : }
28 24273369 : break;
29 : }
30 24273369 : CASE_CONVERT:
31 24273369 : {
32 24273369 : tree _p0 = TREE_OPERAND (t, 0);
33 24273369 : switch (TREE_CODE (_p0))
34 : {
35 1100 : case BIT_NOT_EXPR:
36 1100 : {
37 1100 : tree _q20 = TREE_OPERAND (_p0, 0);
38 1100 : {
39 1100 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
40 1100 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
41 : )
42 : {
43 615 : {
44 615 : res_ops[0] = captures[0];
45 615 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 3, __FILE__, __LINE__, false);
46 615 : return true;
47 : }
48 : }
49 : }
50 : break;
51 : }
52 : default:;
53 : }
54 : break;
55 : }
56 : default:;
57 : }
58 : return false;
59 : }
60 :
61 : bool
62 83769116 : tree_with_known_nonzero_bits_1 (tree t)
63 : {
64 83769116 : const tree type = TREE_TYPE (t);
65 83769116 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
66 83769116 : if (TREE_SIDE_EFFECTS (t)) return false;
67 83769116 : switch (TREE_CODE (t))
68 : {
69 20257336 : case INTEGER_CST:
70 20257336 : {
71 20257336 : {
72 20257336 : tree captures[1] ATTRIBUTE_UNUSED = { t };
73 20257336 : {
74 20257336 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 37, __FILE__, __LINE__, false);
75 20257336 : return true;
76 : }
77 : }
78 27191167 : break;
79 : }
80 27191167 : case SSA_NAME:
81 27191167 : {
82 27191167 : {
83 27191167 : tree captures[1] ATTRIBUTE_UNUSED = { t };
84 27191167 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
85 : )
86 : {
87 19288757 : {
88 19288757 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 38, __FILE__, __LINE__, false);
89 19288757 : return true;
90 : }
91 : }
92 : }
93 : break;
94 : }
95 : default:;
96 : }
97 : return false;
98 : }
99 :
100 : bool
101 0 : tree_compositional_complex (tree t)
102 : {
103 0 : const tree type = TREE_TYPE (t);
104 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
105 0 : if (TREE_SIDE_EFFECTS (t)) return false;
106 0 : switch (TREE_CODE (t))
107 : {
108 0 : CASE_CONVERT:
109 0 : {
110 0 : tree _p0 = TREE_OPERAND (t, 0);
111 0 : switch (TREE_CODE (_p0))
112 : {
113 0 : case COMPLEX_EXPR:
114 0 : {
115 0 : tree _q20 = TREE_OPERAND (_p0, 0);
116 0 : tree _q21 = TREE_OPERAND (_p0, 1);
117 0 : {
118 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
119 0 : {
120 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 43, __FILE__, __LINE__, false);
121 0 : return true;
122 : }
123 : }
124 : break;
125 : }
126 : default:;
127 : }
128 : break;
129 : }
130 0 : case COMPLEX_EXPR:
131 0 : {
132 0 : tree _p0 = TREE_OPERAND (t, 0);
133 0 : tree _p1 = TREE_OPERAND (t, 1);
134 0 : {
135 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
136 0 : {
137 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 43, __FILE__, __LINE__, false);
138 0 : return true;
139 : }
140 : }
141 : break;
142 : }
143 : default:;
144 : }
145 : return false;
146 : }
147 :
148 : tree
149 0 : generic_simplify_10 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
150 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
151 : const enum tree_code ARG_UNUSED (bit_op))
152 : {
153 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
154 0 : if (bit_op == BIT_AND_EXPR
155 : )
156 : {
157 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail83;
158 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail83;
159 0 : {
160 0 : tree _r;
161 0 : _r = build_zero_cst (type);
162 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 58, __FILE__, __LINE__, true);
163 0 : return _r;
164 : }
165 : next_after_fail83:;
166 : }
167 : else
168 : {
169 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail84;
170 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail84;
171 0 : {
172 0 : tree _r;
173 0 : _r = build_minus_one_cst (type);
174 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 59, __FILE__, __LINE__, true);
175 0 : return _r;
176 : }
177 : next_after_fail84:;
178 : }
179 : return NULL_TREE;
180 : }
181 :
182 : tree
183 608 : generic_simplify_19 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
184 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
185 : {
186 608 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
187 608 : if (bitwise_equal_p (captures[0], captures[2])
188 : )
189 : {
190 88 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail94;
191 88 : {
192 88 : tree res_op0;
193 88 : {
194 88 : tree _o1[1], _r1;
195 88 : {
196 88 : tree _o2[2], _r2;
197 88 : _o2[0] = captures[0];
198 88 : {
199 88 : tree _o3[1], _r3;
200 88 : _o3[0] = captures[1];
201 88 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
202 : {
203 8 : _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
204 : }
205 : else
206 : _r3 = _o3[0];
207 88 : _o2[1] = _r3;
208 : }
209 88 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
210 88 : _o1[0] = _r2;
211 : }
212 88 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
213 88 : res_op0 = _r1;
214 : }
215 88 : tree _r;
216 88 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
217 88 : if (TREE_SIDE_EFFECTS (captures[2]))
218 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
219 88 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 67, __FILE__, __LINE__, true);
220 88 : return _r;
221 : }
222 0 : next_after_fail94:;
223 : }
224 : return NULL_TREE;
225 : }
226 :
227 : tree
228 3083441 : generic_simplify_33 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
229 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
230 : const enum tree_code ARG_UNUSED (bitop))
231 : {
232 3083441 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
233 3083441 : if (((TREE_CODE (captures[3]) == INTEGER_CST
234 922135 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
235 741026 : && (int_fits_type_p (captures[3], TREE_TYPE (captures[1]))
236 11101 : || tree_nop_conversion_p (TREE_TYPE (captures[1]), type)))
237 2351255 : || types_match (captures[1], captures[3]))
238 1142970 : && !POINTER_TYPE_P (TREE_TYPE (captures[1]))
239 1142970 : && !VECTOR_TYPE_P (TREE_TYPE (captures[1]))
240 1142878 : && TREE_CODE (TREE_TYPE (captures[1])) != OFFSET_TYPE
241 1142878 : && (bitop != BIT_AND_EXPR ||
242 :
243 : )
244 3083441 : && (
245 60224 : TYPE_PRECISION (TREE_TYPE (captures[1])) < TYPE_PRECISION (type)
246 : || (
247 :
248 : && TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (type))
249 59034 : || GET_MODE_CLASS (TYPE_MODE (type)) != MODE_INT
250 59034 : || !type_has_mode_precision_p (type)
251 59034 : || (
252 :
253 : && TREE_CODE (captures[3]) != INTEGER_CST
254 : && tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
255 : && single_use (captures[0])
256 : && single_use (captures[2])))
257 : )
258 : {
259 1193 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail108;
260 1193 : {
261 1193 : tree res_op0;
262 1193 : {
263 1193 : tree _o1[2], _r1;
264 1193 : _o1[0] = captures[1];
265 1193 : {
266 1193 : tree _o2[1], _r2;
267 1193 : _o2[0] = captures[3];
268 1193 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
269 : {
270 1193 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
271 : }
272 : else
273 : _r2 = _o2[0];
274 1193 : _o1[1] = _r2;
275 : }
276 1193 : _r1 = fold_build2_loc (loc, bitop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
277 1193 : res_op0 = _r1;
278 : }
279 1193 : tree _r;
280 1193 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
281 1193 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 80, __FILE__, __LINE__, true);
282 1193 : return _r;
283 : }
284 0 : next_after_fail108:;
285 : }
286 : return NULL_TREE;
287 : }
288 :
289 : tree
290 2 : generic_simplify_47 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
291 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
292 : {
293 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
294 2 : if (INTEGRAL_TYPE_P (type)
295 2 : && (
296 :
297 2 : || !TREE_SIDE_EFFECTS (captures[1]))
298 : )
299 : {
300 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail125;
301 2 : {
302 2 : tree res_op0;
303 2 : {
304 2 : tree _o1[1], _r1;
305 2 : _o1[0] = captures[2];
306 2 : if (TREE_TYPE (_o1[0]) != boolean_type_node)
307 : {
308 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, boolean_type_node, _o1[0]);
309 : }
310 : else
311 : _r1 = _o1[0];
312 2 : res_op0 = _r1;
313 : }
314 2 : tree res_op1;
315 2 : res_op1 = captures[1];
316 2 : tree res_op2;
317 2 : res_op2 = captures[0];
318 2 : tree _r;
319 2 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
320 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 93, __FILE__, __LINE__, true);
321 2 : return _r;
322 : }
323 0 : next_after_fail125:;
324 : }
325 : return NULL_TREE;
326 : }
327 :
328 : tree
329 5 : generic_simplify_52 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
330 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
331 : {
332 5 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
333 10 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
334 5 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
335 10 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
336 : )
337 : {
338 5 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail131;
339 5 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail131;
340 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail131;
341 5 : {
342 5 : tree res_op0;
343 5 : {
344 5 : tree _o1[2], _r1;
345 5 : _o1[0] = captures[1];
346 5 : _o1[1] = captures[3];
347 5 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
348 5 : res_op0 = _r1;
349 : }
350 5 : tree res_op1;
351 5 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
352 5 : tree _r;
353 5 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
354 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 99, __FILE__, __LINE__, true);
355 5 : return _r;
356 : }
357 : next_after_fail131:;
358 : }
359 : return NULL_TREE;
360 : }
361 :
362 : tree
363 321320 : generic_simplify_62 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
364 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
365 : {
366 321320 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
367 321320 : if (!TYPE_SATURATING (type)
368 : )
369 : {
370 321320 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
371 321320 : && !TYPE_OVERFLOW_SANITIZED (type)
372 : )
373 : {
374 319029 : {
375 319029 : tree t1 = type;
376 319029 : if (INTEGRAL_TYPE_P (type)
377 636885 : && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
378 4210 : t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]);
379 319029 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail143;
380 319029 : {
381 319029 : tree res_op0;
382 319029 : {
383 319029 : tree _o1[2], _r1;
384 319029 : {
385 319029 : tree _o2[1], _r2;
386 319029 : _o2[0] = captures[0];
387 319029 : if (TREE_TYPE (_o2[0]) != t1)
388 : {
389 3954 : _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
390 : }
391 : else
392 : _r2 = _o2[0];
393 319029 : _o1[0] = _r2;
394 : }
395 319029 : {
396 319029 : tree _o2[1], _r2;
397 319029 : _o2[0] = captures[1];
398 319029 : if (TREE_TYPE (_o2[0]) != t1)
399 : {
400 942 : _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
401 : }
402 : else
403 : _r2 = _o2[0];
404 319029 : _o1[1] = _r2;
405 : }
406 319029 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
407 319029 : res_op0 = _r1;
408 : }
409 319029 : tree _r;
410 319029 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
411 319029 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 111, __FILE__, __LINE__, true);
412 319029 : return _r;
413 : }
414 0 : next_after_fail143:;
415 : }
416 : }
417 : }
418 : return NULL_TREE;
419 : }
420 :
421 : tree
422 3904129 : generic_simplify_74 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
423 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
424 : {
425 3904129 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
426 3904129 : if (!TYPE_SATURATING (type)
427 3904129 : && (!FLOAT_TYPE_P (type) || flag_associative_math)
428 : )
429 : {
430 3904129 : if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
431 : )
432 : {
433 7808258 : if (TREE_CODE (type) == INTEGER_TYPE
434 3904129 : && wi::neg_p (wi::to_wide (captures[3]))
435 11712387 : && wi::to_wide (captures[3]) != wi::min_value (TYPE_PRECISION (type), SIGNED)
436 : )
437 : {
438 1040444 : {
439 1040444 : wide_int c0 = wi::to_wide (captures[1]);
440 1040444 : wide_int c2 = wi::to_wide (captures[3]);
441 1040444 : wide_int c2_abs = wi::abs (c2);
442 1040444 : if (wi::multiple_of_p (c2_abs, c0, TYPE_SIGN (type))
443 : )
444 : {
445 514055 : {
446 514055 : wide_int div_res = wi::sdiv_trunc (c2, c0);
447 514055 : tree div_cst = wide_int_to_tree (type, div_res);
448 514055 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail164;
449 514055 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail164;
450 514055 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail164;
451 514055 : {
452 514055 : tree res_op0;
453 514055 : {
454 514055 : tree _o1[2], _r1;
455 514055 : _o1[0] = captures[2];
456 514055 : _o1[1] = div_cst;
457 514055 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
458 514055 : res_op0 = _r1;
459 : }
460 514055 : tree res_op1;
461 514055 : res_op1 = captures[1];
462 514055 : tree _r;
463 514055 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
464 514055 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 132, __FILE__, __LINE__, true);
465 514055 : return _r;
466 : }
467 0 : next_after_fail164:;
468 514055 : }
469 : }
470 1040444 : }
471 : }
472 : }
473 : }
474 : return NULL_TREE;
475 : }
476 :
477 : tree
478 4 : generic_simplify_83 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
479 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
480 : const enum tree_code ARG_UNUSED (log1),
481 : const enum tree_code ARG_UNUSED (log2),
482 : const combined_fn ARG_UNUSED (popcount))
483 : {
484 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
485 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail174;
486 4 : {
487 4 : tree res_op0;
488 4 : {
489 4 : tree _o1[2], _r1;
490 4 : _o1[0] = captures[2];
491 4 : _o1[1] = captures[5];
492 4 : _r1 = fold_build2_loc (loc, log2, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
493 4 : res_op0 = _r1;
494 : }
495 4 : tree _r;
496 4 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
497 4 : if (!_r)
498 0 : goto next_after_fail174;
499 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 142, __FILE__, __LINE__, true);
500 : return _r;
501 : }
502 : next_after_fail174:;
503 : return NULL_TREE;
504 : }
505 :
506 : tree
507 0 : generic_simplify_89 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
508 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
509 : {
510 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
511 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail180;
512 0 : {
513 0 : tree res_op0;
514 0 : res_op0 = unshare_expr (captures[2]);
515 0 : tree res_op1;
516 0 : {
517 0 : tree _o1[2], _r1;
518 0 : _o1[0] = captures[1];
519 0 : _o1[1] = captures[2];
520 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
521 0 : res_op1 = _r1;
522 : }
523 0 : tree _r;
524 0 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
525 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 148, __FILE__, __LINE__, true);
526 : return _r;
527 : }
528 0 : next_after_fail180:;
529 0 : return NULL_TREE;
530 : }
531 :
532 : tree
533 3087 : generic_simplify_97 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
534 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
535 : {
536 3087 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
537 3087 : if (!TYPE_SATURATING (type)
538 : )
539 : {
540 3087 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
541 6174 : && !FIXED_POINT_TYPE_P (type)
542 : )
543 : {
544 0 : if (!ANY_INTEGRAL_TYPE_P (type)
545 3087 : || TYPE_OVERFLOW_WRAPS (type)
546 : )
547 : {
548 250 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail188;
549 250 : {
550 250 : tree res_op0;
551 250 : {
552 250 : tree _o1[1], _r1;
553 250 : _o1[0] = captures[1];
554 250 : if (TREE_TYPE (_o1[0]) != type)
555 : {
556 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
557 : }
558 : else
559 : _r1 = _o1[0];
560 250 : res_op0 = _r1;
561 : }
562 250 : tree _r;
563 250 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
564 250 : if (TREE_SIDE_EFFECTS (captures[0]))
565 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
566 250 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 155, __FILE__, __LINE__, true);
567 250 : return _r;
568 : }
569 0 : next_after_fail188:;
570 : }
571 : else
572 : {
573 2837 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail189;
574 2837 : {
575 2837 : tree res_op0;
576 2837 : {
577 2837 : tree _o1[1], _r1;
578 2837 : _o1[0] = captures[1];
579 2837 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
580 2837 : res_op0 = _r1;
581 : }
582 2837 : tree _r;
583 2837 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
584 2837 : if (TREE_SIDE_EFFECTS (captures[0]))
585 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
586 2837 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 156, __FILE__, __LINE__, true);
587 2837 : return _r;
588 : }
589 0 : next_after_fail189:;
590 : }
591 : }
592 : }
593 : return NULL_TREE;
594 : }
595 :
596 : tree
597 4 : generic_simplify_109 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
598 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
599 : const enum tree_code ARG_UNUSED (log1),
600 : const enum tree_code ARG_UNUSED (log2),
601 : const combined_fn ARG_UNUSED (popcount))
602 : {
603 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
604 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail206;
605 4 : {
606 4 : tree res_op0;
607 4 : {
608 4 : tree _o1[2], _r1;
609 4 : _o1[0] = captures[2];
610 4 : _o1[1] = captures[4];
611 4 : _r1 = fold_build2_loc (loc, log2, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
612 4 : res_op0 = _r1;
613 : }
614 4 : tree _r;
615 4 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
616 4 : if (!_r)
617 0 : goto next_after_fail206;
618 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 173, __FILE__, __LINE__, true);
619 : return _r;
620 : }
621 : next_after_fail206:;
622 : return NULL_TREE;
623 : }
624 :
625 : tree
626 0 : generic_simplify_113 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
627 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
628 : const enum tree_code ARG_UNUSED (bitop),
629 : const enum tree_code ARG_UNUSED (cmp))
630 : {
631 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
632 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
633 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
634 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[2]))
635 : )
636 : {
637 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail210;
638 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail210;
639 0 : {
640 0 : tree res_op0;
641 0 : {
642 0 : tree _o1[2], _r1;
643 0 : _o1[0] = captures[0];
644 0 : {
645 0 : tree _o2[1], _r2;
646 0 : _o2[0] = captures[2];
647 0 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
648 : {
649 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
650 : }
651 : else
652 : _r2 = _o2[0];
653 0 : _o1[1] = _r2;
654 : }
655 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
656 0 : res_op0 = _r1;
657 : }
658 0 : tree res_op1;
659 0 : res_op1 = captures[1];
660 0 : tree _r;
661 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
662 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 177, __FILE__, __LINE__, true);
663 0 : return _r;
664 : }
665 : next_after_fail210:;
666 : }
667 : return NULL_TREE;
668 : }
669 :
670 : tree
671 0 : generic_simplify_128 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
672 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
673 : {
674 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
675 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
676 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
677 : )
678 : {
679 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail225;
680 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail225;
681 0 : {
682 0 : tree _r;
683 0 : _r = captures[2];
684 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 186, __FILE__, __LINE__, true);
685 0 : return _r;
686 : }
687 : next_after_fail225:;
688 : }
689 : return NULL_TREE;
690 : }
691 :
692 : tree
693 0 : generic_simplify_139 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
694 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
695 : const enum tree_code ARG_UNUSED (op))
696 : {
697 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
698 0 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
699 0 : && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
700 : )
701 : {
702 0 : if (single_use (captures[4]) && single_use (captures[5])
703 : )
704 : {
705 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail237;
706 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail237;
707 0 : {
708 0 : tree res_op0;
709 0 : res_op0 = captures[0];
710 0 : tree res_op1;
711 0 : {
712 0 : tree _o1[1], _r1;
713 0 : _o1[0] = captures[6];
714 0 : if (TREE_TYPE (_o1[0]) != type)
715 : {
716 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
717 : }
718 : else
719 : _r1 = _o1[0];
720 0 : res_op1 = _r1;
721 : }
722 0 : tree _r;
723 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
724 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 195, __FILE__, __LINE__, true);
725 0 : return _r;
726 : }
727 : next_after_fail237:;
728 : }
729 : else
730 : {
731 : if (single_use (captures[0]) && single_use (captures[1])
732 : )
733 : {
734 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail238;
735 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail238;
736 : {
737 : tree res_op0;
738 : {
739 : tree _o1[1], _r1;
740 : _o1[0] = captures[3];
741 : if (TREE_TYPE (_o1[0]) != type)
742 : {
743 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
744 : }
745 : else
746 : _r1 = _o1[0];
747 : res_op0 = _r1;
748 : }
749 : tree res_op1;
750 : res_op1 = captures[4];
751 : tree _r;
752 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
753 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 196, __FILE__, __LINE__, true);
754 : return _r;
755 : }
756 : next_after_fail238:;
757 : }
758 : }
759 : }
760 : return NULL_TREE;
761 : }
762 :
763 : tree
764 300 : generic_simplify_154 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
765 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
766 : {
767 300 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
768 300 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail259;
769 300 : {
770 300 : if (! tree_invariant_p (captures[1])) goto next_after_fail259;
771 0 : tree res_op0;
772 0 : {
773 0 : tree _o1[2], _r1;
774 0 : {
775 0 : tree _o2[2], _r2;
776 0 : _o2[0] = unshare_expr (captures[1]);
777 0 : _o2[1] = captures[4];
778 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
779 0 : _o1[0] = _r2;
780 : }
781 0 : _o1[1] = captures[2];
782 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
783 0 : res_op0 = _r1;
784 : }
785 0 : tree res_op1;
786 0 : res_op1 = captures[1];
787 0 : tree _r;
788 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
789 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 208, __FILE__, __LINE__, true);
790 : return _r;
791 : }
792 : next_after_fail259:;
793 : return NULL_TREE;
794 : }
795 :
796 : tree
797 0 : generic_simplify_164 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
798 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
799 : {
800 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
801 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail287;
802 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail287;
803 0 : {
804 0 : tree _r;
805 0 : _r = constant_boolean_node (true, type);
806 0 : if (TREE_SIDE_EFFECTS (captures[1]))
807 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
808 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 228, __FILE__, __LINE__, true);
809 : return _r;
810 : }
811 : next_after_fail287:;
812 : return NULL_TREE;
813 : }
814 :
815 : tree
816 4 : generic_simplify_169 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
817 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
818 : {
819 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
820 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail305;
821 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail305;
822 4 : {
823 4 : tree _r;
824 4 : _r = constant_boolean_node (true, type);
825 4 : if (TREE_SIDE_EFFECTS (captures[1]))
826 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
827 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 228, __FILE__, __LINE__, true);
828 : return _r;
829 : }
830 : next_after_fail305:;
831 : return NULL_TREE;
832 : }
833 :
834 : tree
835 2 : generic_simplify_172 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
836 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
837 : {
838 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
839 4 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
840 4 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
841 : )
842 : {
843 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail309;
844 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail309;
845 2 : {
846 2 : tree res_op0;
847 2 : res_op0 = captures[3];
848 2 : tree res_op1;
849 2 : {
850 2 : tree _o1[2], _r1;
851 2 : _o1[0] = captures[1];
852 2 : _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
853 2 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
854 2 : res_op1 = _r1;
855 : }
856 2 : tree _r;
857 2 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
858 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 211, __FILE__, __LINE__, true);
859 2 : return _r;
860 : }
861 : next_after_fail309:;
862 : }
863 : return NULL_TREE;
864 : }
865 :
866 : tree
867 7 : generic_simplify_178 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
868 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
869 : {
870 7 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
871 7 : if (type_has_mode_precision_p (type)
872 0 : && tree_fits_uhwi_p (captures[1])
873 0 : && tree_fits_uhwi_p (captures[2])
874 0 : && tree_fits_uhwi_p (captures[4])
875 0 : && (((((HOST_WIDE_INT_1U << tree_to_uhwi (captures[1])) - 1)) & tree_to_uhwi (captures[2])) == 0)
876 0 : && (tree_to_uhwi (captures[1]) + tree_to_uhwi (captures[4])) == TYPE_PRECISION (type)
877 0 : && TYPE_UNSIGNED (type)
878 7 : && captures[0] == captures[3]
879 : )
880 : {
881 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail315;
882 0 : {
883 0 : tree res_op0;
884 0 : {
885 0 : tree _o1[2], _r1;
886 0 : _o1[0] = captures[0];
887 0 : _o1[1] = captures[4];
888 0 : _r1 = fold_build2_loc (loc, RROTATE_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
889 0 : res_op0 = _r1;
890 : }
891 0 : tree res_op1;
892 0 : res_op1 = captures[2];
893 0 : tree _r;
894 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
895 0 : if (TREE_SIDE_EFFECTS (captures[1]))
896 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
897 0 : if (TREE_SIDE_EFFECTS (captures[3]))
898 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
899 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 236, __FILE__, __LINE__, true);
900 0 : return _r;
901 : }
902 0 : next_after_fail315:;
903 : }
904 : return NULL_TREE;
905 : }
906 :
907 : tree
908 3645 : generic_simplify_185 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
909 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
910 : {
911 3645 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
912 3645 : if (! FLOAT_TYPE_P (type)
913 7290 : && tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
914 : )
915 : {
916 3644 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail322;
917 3644 : {
918 3644 : tree res_op0;
919 3644 : res_op0 = captures[0];
920 3644 : tree res_op1;
921 3644 : res_op1 = captures[2];
922 3644 : tree _r;
923 3644 : _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
924 3644 : if (TREE_SIDE_EFFECTS (captures[1]))
925 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
926 3644 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 241, __FILE__, __LINE__, true);
927 3644 : return _r;
928 : }
929 0 : next_after_fail322:;
930 : }
931 : return NULL_TREE;
932 : }
933 :
934 : tree
935 545 : generic_simplify_192 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
936 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
937 : {
938 545 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
939 545 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail331;
940 545 : {
941 545 : tree res_op0;
942 545 : {
943 545 : tree _o1[2], _r1;
944 545 : _o1[0] = captures[0];
945 545 : _o1[1] = captures[1];
946 545 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
947 545 : res_op0 = _r1;
948 : }
949 545 : tree _r;
950 545 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
951 545 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 247, __FILE__, __LINE__, true);
952 : return _r;
953 : }
954 0 : next_after_fail331:;
955 0 : return NULL_TREE;
956 : }
957 :
958 : tree
959 14 : generic_simplify_194 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
960 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
961 : {
962 14 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
963 14 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
964 14 : && wi::ltu_p (wi::to_widest (captures[1]), TYPE_PRECISION (type))
965 : )
966 : {
967 14 : {
968 14 : unsigned int shift = tree_to_uhwi (captures[1]);
969 14 : unsigned int prec = TYPE_PRECISION (type);
970 14 : if ((prec <= TYPE_PRECISION (TREE_TYPE (captures[2])) + shift
971 0 : || tree_int_cst_sgn (captures[2]) >= 0)
972 28 : && wi::to_wide (captures[3]) == wi::set_bit_in_zero (shift, prec)
973 : )
974 : {
975 6 : {
976 6 : auto mask = wide_int::from (wi::to_wide (captures[2]), prec, UNSIGNED);
977 6 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail333;
978 6 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail333;
979 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail333;
980 6 : {
981 6 : tree res_op0;
982 6 : {
983 6 : tree _o1[1], _r1;
984 6 : _o1[0] = captures[0];
985 6 : if (TREE_TYPE (_o1[0]) != type)
986 : {
987 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
988 : }
989 : else
990 : _r1 = _o1[0];
991 6 : res_op0 = _r1;
992 : }
993 6 : tree res_op1;
994 6 : res_op1 = wide_int_to_tree (type, mask << shift);
995 6 : tree _r;
996 6 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
997 6 : if (TREE_SIDE_EFFECTS (captures[3]))
998 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
999 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 248, __FILE__, __LINE__, true);
1000 6 : return _r;
1001 : }
1002 0 : next_after_fail333:;
1003 6 : }
1004 : }
1005 : }
1006 : }
1007 : return NULL_TREE;
1008 : }
1009 :
1010 : tree
1011 171 : generic_simplify_206 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1012 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1013 : const enum tree_code ARG_UNUSED (cmp))
1014 : {
1015 171 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1016 342 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1017 338 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE(captures[0]))
1018 : )
1019 : {
1020 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail346;
1021 3 : {
1022 3 : tree res_op0;
1023 3 : res_op0 = captures[0];
1024 3 : tree res_op1;
1025 3 : res_op1 = build_zero_cst (TREE_TYPE(captures[0]));
1026 3 : tree _r;
1027 3 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1028 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 261, __FILE__, __LINE__, true);
1029 3 : return _r;
1030 : }
1031 0 : next_after_fail346:;
1032 : }
1033 : return NULL_TREE;
1034 : }
1035 :
1036 : tree
1037 31 : generic_simplify_215 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1038 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1039 : const enum tree_code ARG_UNUSED (cmp),
1040 : const enum tree_code ARG_UNUSED (icmp))
1041 : {
1042 31 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1043 62 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1044 29 : && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1045 13 : && type_has_mode_precision_p (TREE_TYPE (captures[0]))
1046 13 : && types_match (captures[0], captures[2])
1047 13 : && tree_fits_shwi_p (captures[1])
1048 13 : && tree_to_shwi (captures[1]) > 0
1049 44 : && tree_to_shwi (captures[1]) < TYPE_PRECISION (TREE_TYPE (captures[0]))
1050 : )
1051 : {
1052 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail358;
1053 13 : {
1054 13 : tree res_op0;
1055 13 : {
1056 13 : tree _o1[2], _r1;
1057 13 : _o1[0] = captures[0];
1058 13 : _o1[1] = captures[2];
1059 13 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1060 13 : res_op0 = _r1;
1061 : }
1062 13 : tree res_op1;
1063 13 : {
1064 13 : tree _o1[2], _r1;
1065 13 : _o1[0] = build_one_cst (TREE_TYPE (captures[0]));
1066 13 : _o1[1] = captures[1];
1067 13 : _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1068 13 : res_op1 = _r1;
1069 : }
1070 13 : tree _r;
1071 13 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1072 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 272, __FILE__, __LINE__, true);
1073 13 : return _r;
1074 : }
1075 0 : next_after_fail358:;
1076 : }
1077 : return NULL_TREE;
1078 : }
1079 :
1080 : tree
1081 43 : generic_simplify_223 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1082 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1083 : const enum tree_code ARG_UNUSED (op))
1084 : {
1085 43 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1086 43 : if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2]))
1087 : )
1088 : {
1089 43 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail379;
1090 43 : {
1091 43 : tree res_op0;
1092 43 : res_op0 = captures[1];
1093 43 : tree res_op1;
1094 43 : res_op1 = captures[3];
1095 43 : tree _r;
1096 43 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1097 43 : if (TREE_SIDE_EFFECTS (captures[2]))
1098 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1099 43 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 293, __FILE__, __LINE__, true);
1100 43 : return _r;
1101 : }
1102 0 : next_after_fail379:;
1103 : }
1104 : return NULL_TREE;
1105 : }
1106 :
1107 : tree
1108 0 : generic_simplify_231 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1109 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1110 : const enum tree_code ARG_UNUSED (cmp1),
1111 : const enum tree_code ARG_UNUSED (cmp2),
1112 : const enum tree_code ARG_UNUSED (rcmp))
1113 : {
1114 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1115 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1116 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
1117 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[0]))
1118 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
1119 : )
1120 : {
1121 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail387;
1122 0 : {
1123 0 : tree res_op0;
1124 0 : res_op0 = captures[0];
1125 0 : tree res_op1;
1126 0 : res_op1 = captures[1];
1127 0 : tree _r;
1128 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
1129 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 300, __FILE__, __LINE__, true);
1130 0 : return _r;
1131 : }
1132 0 : next_after_fail387:;
1133 : }
1134 : return NULL_TREE;
1135 : }
1136 :
1137 : tree
1138 2 : generic_simplify_239 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1139 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1140 : const enum tree_code ARG_UNUSED (cmp),
1141 : const enum tree_code ARG_UNUSED (icmp))
1142 : {
1143 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1144 2 : if (tree_int_cst_sgn (captures[0]) > 0
1145 : )
1146 : {
1147 2 : {
1148 2 : int c1 = wi::clz (wi::to_wide (captures[0]));
1149 2 : int c2 = wi::clz (wi::to_wide (captures[2]));
1150 2 : if (c1 > c2
1151 : )
1152 : {
1153 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail399;
1154 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail399;
1155 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail399;
1156 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail399;
1157 0 : {
1158 0 : tree _r;
1159 0 : _r = constant_boolean_node (cmp == NE_EXPR ? false : true, type);
1160 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1161 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1162 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 312, __FILE__, __LINE__, true);
1163 0 : return _r;
1164 : }
1165 : next_after_fail399:;
1166 : }
1167 : else
1168 : {
1169 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail400;
1170 2 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail400;
1171 2 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail400;
1172 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail400;
1173 2 : {
1174 2 : tree res_op0;
1175 2 : res_op0 = captures[1];
1176 2 : tree res_op1;
1177 2 : res_op1 = build_int_cst (TREE_TYPE (captures[1]), c2 - c1);
1178 2 : tree _r;
1179 2 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1180 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 313, __FILE__, __LINE__, true);
1181 2 : return _r;
1182 : }
1183 : next_after_fail400:;
1184 : }
1185 : }
1186 : }
1187 : return NULL_TREE;
1188 : }
1189 :
1190 : tree
1191 179 : generic_simplify_248 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1192 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1193 : const enum tree_code ARG_UNUSED (cmp),
1194 : const enum tree_code ARG_UNUSED (icmp),
1195 : const enum tree_code ARG_UNUSED (ncmp))
1196 : {
1197 179 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1198 179 : if (types_match (type, TREE_TYPE (captures[0]))
1199 : )
1200 : {
1201 125 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail416;
1202 125 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail416;
1203 125 : {
1204 125 : tree res_op0;
1205 125 : res_op0 = captures[1];
1206 125 : tree res_op1;
1207 125 : res_op1 = captures[2];
1208 125 : tree _r;
1209 125 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1210 125 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 329, __FILE__, __LINE__, true);
1211 125 : return _r;
1212 : }
1213 : next_after_fail416:;
1214 : }
1215 : return NULL_TREE;
1216 : }
1217 :
1218 : tree
1219 45015934 : generic_simplify_255 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1220 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1221 : const enum tree_code ARG_UNUSED (cmp))
1222 : {
1223 45015934 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1224 45015934 : {
1225 45015934 : bool wascmp;
1226 45015934 : if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
1227 45015934 : && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
1228 : )
1229 : {
1230 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail429;
1231 5 : {
1232 5 : tree _r;
1233 5 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1234 5 : if (TREE_SIDE_EFFECTS (captures[0]))
1235 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1236 5 : if (TREE_SIDE_EFFECTS (captures[1]))
1237 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1238 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 341, __FILE__, __LINE__, true);
1239 5 : return _r;
1240 : }
1241 0 : next_after_fail429:;
1242 : }
1243 : }
1244 45015929 : return NULL_TREE;
1245 : }
1246 :
1247 : tree
1248 8863 : generic_simplify_260 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1249 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1250 : const enum tree_code ARG_UNUSED (op),
1251 : const enum tree_code ARG_UNUSED (cmp))
1252 : {
1253 8863 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1254 8863 : if (flag_unsafe_math_optimizations
1255 : )
1256 : {
1257 5 : {
1258 8 : tree tem = const_binop (op == PLUS_EXPR ? MINUS_EXPR : PLUS_EXPR,
1259 5 : TREE_TYPE (captures[1]), captures[2], captures[1]);
1260 5 : if (tem && !TREE_OVERFLOW (tem)
1261 : )
1262 : {
1263 4 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail448;
1264 4 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail448;
1265 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail448;
1266 4 : {
1267 4 : tree res_op0;
1268 4 : res_op0 = captures[0];
1269 4 : tree res_op1;
1270 4 : res_op1 = tem;
1271 4 : tree _r;
1272 4 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1273 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 359, __FILE__, __LINE__, true);
1274 4 : return _r;
1275 : }
1276 : next_after_fail448:;
1277 : }
1278 : }
1279 : }
1280 : return NULL_TREE;
1281 : }
1282 :
1283 : tree
1284 69 : generic_simplify_266 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1285 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1286 : const enum tree_code ARG_UNUSED (cmp))
1287 : {
1288 69 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1289 69 : if (!integer_zerop (captures[1])
1290 : )
1291 : {
1292 69 : if (wi::to_wide (captures[2]) == 0
1293 : )
1294 : {
1295 22 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail479;
1296 22 : {
1297 22 : tree res_op0;
1298 22 : res_op0 = captures[0];
1299 22 : tree res_op1;
1300 22 : res_op1 = captures[2];
1301 22 : tree _r;
1302 22 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1303 22 : if (TREE_SIDE_EFFECTS (captures[1]))
1304 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1305 22 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 390, __FILE__, __LINE__, true);
1306 22 : return _r;
1307 : }
1308 0 : next_after_fail479:;
1309 : }
1310 : else
1311 : {
1312 47 : if (TREE_CODE (captures[1]) == INTEGER_CST
1313 : )
1314 : {
1315 47 : {
1316 47 : wi::overflow_type ovf;
1317 47 : wide_int prod = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[1]),
1318 94 : TYPE_SIGN (TREE_TYPE (captures[1])), &ovf);
1319 47 : if (ovf
1320 : )
1321 : {
1322 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail480;
1323 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail480;
1324 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail480;
1325 0 : {
1326 0 : tree _r;
1327 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1328 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1329 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1330 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 391, __FILE__, __LINE__, true);
1331 0 : return _r;
1332 : }
1333 0 : next_after_fail480:;
1334 : }
1335 : else
1336 : {
1337 47 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail481;
1338 47 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail481;
1339 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail481;
1340 47 : {
1341 47 : tree res_op0;
1342 47 : res_op0 = captures[0];
1343 47 : tree res_op1;
1344 47 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[0]), prod);
1345 47 : tree _r;
1346 47 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1347 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 392, __FILE__, __LINE__, true);
1348 47 : return _r;
1349 : }
1350 0 : next_after_fail481:;
1351 : }
1352 47 : }
1353 : }
1354 : }
1355 : }
1356 : return NULL_TREE;
1357 : }
1358 :
1359 : tree
1360 25879 : generic_simplify_273 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1361 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1362 : const enum tree_code ARG_UNUSED (cmp))
1363 : {
1364 25879 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1365 25879 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail505;
1366 25879 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail505;
1367 25879 : {
1368 25879 : tree res_op0;
1369 25879 : res_op0 = captures[0];
1370 25879 : tree res_op1;
1371 25879 : res_op1 = captures[1];
1372 25879 : tree _r;
1373 25879 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1374 25879 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 408, __FILE__, __LINE__, true);
1375 : return _r;
1376 : }
1377 : next_after_fail505:;
1378 : return NULL_TREE;
1379 : }
1380 :
1381 : tree
1382 145443 : generic_simplify_275 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1383 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1384 : const enum tree_code ARG_UNUSED (cmp))
1385 : {
1386 145443 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1387 145443 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail507;
1388 145443 : {
1389 145443 : tree res_op0;
1390 145443 : {
1391 145443 : tree _o1[2], _r1;
1392 145443 : _o1[0] = captures[0];
1393 145443 : {
1394 145443 : tree _o2[1], _r2;
1395 145443 : _o2[0] = captures[1];
1396 145443 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
1397 145443 : if (EXPR_P (_r2))
1398 145414 : goto next_after_fail507;
1399 29 : _o1[1] = _r2;
1400 : }
1401 29 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1402 29 : res_op0 = _r1;
1403 : }
1404 29 : tree res_op1;
1405 29 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1406 29 : tree _r;
1407 29 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1408 29 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 410, __FILE__, __LINE__, true);
1409 : return _r;
1410 : }
1411 : next_after_fail507:;
1412 : return NULL_TREE;
1413 : }
1414 :
1415 : tree
1416 37303 : generic_simplify_280 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1417 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1418 : const enum tree_code ARG_UNUSED (cmp))
1419 : {
1420 37303 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1421 37303 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail512;
1422 37303 : {
1423 37303 : tree res_op0;
1424 37303 : {
1425 37303 : tree _o1[2], _r1;
1426 37303 : {
1427 37303 : tree _o2[2], _r2;
1428 37303 : _o2[0] = captures[1];
1429 37303 : _o2[1] = captures[4];
1430 37303 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1431 37303 : _o1[0] = _r2;
1432 : }
1433 37303 : _o1[1] = captures[2];
1434 37303 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1435 37303 : res_op0 = _r1;
1436 : }
1437 37303 : tree res_op1;
1438 37303 : res_op1 = build_zero_cst (TREE_TYPE (captures[2]));
1439 37303 : tree _r;
1440 37303 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1441 37303 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 415, __FILE__, __LINE__, true);
1442 : return _r;
1443 : }
1444 0 : next_after_fail512:;
1445 0 : return NULL_TREE;
1446 : }
1447 :
1448 : tree
1449 0 : generic_simplify_287 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1450 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1451 : const enum tree_code ARG_UNUSED (cmp))
1452 : {
1453 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1454 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail519;
1455 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail519;
1456 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail519;
1457 0 : {
1458 0 : tree res_op0;
1459 0 : res_op0 = captures[0];
1460 0 : tree res_op1;
1461 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1462 0 : tree _r;
1463 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1464 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 420, __FILE__, __LINE__, true);
1465 : return _r;
1466 : }
1467 : next_after_fail519:;
1468 : return NULL_TREE;
1469 : }
1470 :
1471 : tree
1472 1072760 : generic_simplify_291 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1473 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1474 : const enum tree_code ARG_UNUSED (cmp))
1475 : {
1476 1072760 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1477 1638461 : if (((POINTER_TYPE_P (TREE_TYPE (captures[0]))
1478 508898 : && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[0])))
1479 471895 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1480 9326 : && !(
1481 : 1
1482 9258 : && TREE_CODE (TREE_TYPE (captures[0])) == REFERENCE_TYPE
1483 68 : && (flag_sanitize & (SANITIZE_NULL | SANITIZE_ALIGNMENT))))
1484 1063514 : || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1485 563733 : && POINTER_TYPE_P (TREE_TYPE (captures[1]))
1486 2183 : && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1])))))
1487 1083685 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[1]))
1488 : )
1489 : {
1490 9923 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail537;
1491 9923 : {
1492 9923 : tree res_op0;
1493 9923 : res_op0 = captures[0];
1494 9923 : tree res_op1;
1495 9923 : {
1496 9923 : tree _o1[1], _r1;
1497 9923 : _o1[0] = captures[1];
1498 9923 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1499 : {
1500 9923 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1501 : }
1502 : else
1503 : _r1 = _o1[0];
1504 9923 : res_op1 = _r1;
1505 : }
1506 9923 : tree _r;
1507 9923 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1508 9923 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 430, __FILE__, __LINE__, true);
1509 9923 : return _r;
1510 : }
1511 0 : next_after_fail537:;
1512 : }
1513 : return NULL_TREE;
1514 : }
1515 :
1516 : tree
1517 592913 : generic_simplify_295 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1518 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1519 : const enum tree_code ARG_UNUSED (cmp),
1520 : const enum tree_code ARG_UNUSED (rcmp))
1521 : {
1522 592913 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1523 1185826 : if (!TREE_OVERFLOW (captures[0]) && !TREE_OVERFLOW (captures[2])
1524 1185826 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
1525 : )
1526 : {
1527 2965 : {
1528 2965 : tree res = int_const_binop (MINUS_EXPR, captures[0], captures[2]);
1529 2965 : if (TREE_OVERFLOW (res)
1530 : )
1531 : {
1532 48 : if (cmp == NE_EXPR
1533 : )
1534 : {
1535 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail546;
1536 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail546;
1537 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail546;
1538 0 : {
1539 0 : tree _r;
1540 0 : _r = constant_boolean_node (true, type);
1541 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1542 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1543 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 439, __FILE__, __LINE__, true);
1544 0 : return _r;
1545 : }
1546 : next_after_fail546:;
1547 : }
1548 : else
1549 : {
1550 48 : if (cmp == EQ_EXPR
1551 : )
1552 : {
1553 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail547;
1554 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail547;
1555 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail547;
1556 0 : {
1557 0 : tree _r;
1558 0 : _r = constant_boolean_node (false, type);
1559 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1560 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1561 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 440, __FILE__, __LINE__, true);
1562 0 : return _r;
1563 : }
1564 : next_after_fail547:;
1565 : }
1566 : else
1567 : {
1568 48 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail548;
1569 48 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail548;
1570 48 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail548;
1571 48 : {
1572 48 : tree _r;
1573 48 : bool less = cmp == LE_EXPR || cmp == LT_EXPR;
1574 48 : bool ovf_high = wi::lt_p (wi::to_wide (captures[0]), 0,
1575 48 : TYPE_SIGN (TREE_TYPE (captures[0]))); _r =
1576 48 : constant_boolean_node (less == ovf_high, type);
1577 48 : if (TREE_SIDE_EFFECTS (captures[1]))
1578 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1579 48 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 441, __FILE__, __LINE__, true);
1580 48 : return _r;
1581 : }
1582 : next_after_fail548:;
1583 : }
1584 : }
1585 : }
1586 : else
1587 : {
1588 2917 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail549;
1589 2917 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail549;
1590 2917 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail549;
1591 2917 : {
1592 2917 : tree res_op0;
1593 2917 : res_op0 = captures[1];
1594 2917 : tree res_op1;
1595 2917 : res_op1 = res;
1596 2917 : tree _r;
1597 2917 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
1598 2917 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 442, __FILE__, __LINE__, true);
1599 2917 : return _r;
1600 : }
1601 : next_after_fail549:;
1602 : }
1603 : }
1604 : }
1605 : else
1606 : {
1607 589948 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1608 : )
1609 : {
1610 589854 : if (cmp == EQ_EXPR || cmp == NE_EXPR
1611 : )
1612 : {
1613 37118 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail550;
1614 37118 : {
1615 37118 : tree res_op0;
1616 37118 : res_op0 = captures[1];
1617 37118 : tree res_op1;
1618 37118 : {
1619 37118 : tree _o1[2], _r1;
1620 37118 : _o1[0] = captures[0];
1621 37118 : _o1[1] = captures[2];
1622 37118 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1623 37118 : res_op1 = _r1;
1624 : }
1625 37118 : tree _r;
1626 37118 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1627 37118 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 443, __FILE__, __LINE__, true);
1628 37118 : return _r;
1629 : }
1630 0 : next_after_fail550:;
1631 : }
1632 : else
1633 : {
1634 552736 : if (cmp == LE_EXPR || cmp == GT_EXPR
1635 : )
1636 : {
1637 552736 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail551;
1638 552736 : {
1639 552736 : if (! tree_invariant_p (captures[2])) goto next_after_fail551;
1640 552736 : tree res_op0;
1641 552736 : {
1642 552736 : tree _o1[2], _r1;
1643 552736 : _o1[0] = captures[1];
1644 552736 : {
1645 552736 : tree _o2[2], _r2;
1646 552736 : _o2[0] = unshare_expr (captures[2]);
1647 552736 : _o2[1] = captures[0];
1648 552736 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1649 552736 : _o1[1] = _r2;
1650 : }
1651 552736 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1652 552736 : res_op0 = _r1;
1653 : }
1654 552736 : tree res_op1;
1655 552736 : res_op1 = captures[2];
1656 552736 : tree _r;
1657 552736 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1658 552736 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 444, __FILE__, __LINE__, true);
1659 552736 : return _r;
1660 : }
1661 : next_after_fail551:;
1662 : }
1663 : else
1664 : {
1665 0 : if (cmp == LT_EXPR || cmp == GE_EXPR
1666 : )
1667 : {
1668 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail552;
1669 0 : {
1670 0 : if (! tree_invariant_p (captures[2])) goto next_after_fail552;
1671 0 : tree res_op0;
1672 0 : {
1673 0 : tree _o1[2], _r1;
1674 0 : _o1[0] = captures[1];
1675 0 : {
1676 0 : tree _o2[2], _r2;
1677 0 : _o2[0] = unshare_expr (captures[2]);
1678 0 : {
1679 0 : tree _o3[2], _r3;
1680 0 : _o3[0] = captures[0];
1681 0 : _o3[1] = build_one_cst (TREE_TYPE (captures[1]));
1682 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
1683 0 : _o2[1] = _r3;
1684 : }
1685 0 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1686 0 : _o1[1] = _r2;
1687 : }
1688 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1689 0 : res_op0 = _r1;
1690 : }
1691 0 : tree res_op1;
1692 0 : res_op1 = captures[2];
1693 0 : tree _r;
1694 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1695 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 445, __FILE__, __LINE__, true);
1696 0 : return _r;
1697 : }
1698 : next_after_fail552:;
1699 : }
1700 : }
1701 : }
1702 : }
1703 : else
1704 : {
1705 94 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1706 94 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
1707 : )
1708 : {
1709 94 : if (cmp == EQ_EXPR || cmp == NE_EXPR
1710 : )
1711 : {
1712 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail553;
1713 0 : {
1714 0 : tree res_op0;
1715 0 : res_op0 = captures[1];
1716 0 : tree res_op1;
1717 0 : {
1718 0 : tree _o1[2], _r1;
1719 0 : _o1[0] = captures[0];
1720 0 : _o1[1] = captures[2];
1721 0 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1722 0 : res_op1 = _r1;
1723 : }
1724 0 : tree _r;
1725 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1726 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 446, __FILE__, __LINE__, true);
1727 0 : return _r;
1728 : }
1729 0 : next_after_fail553:;
1730 : }
1731 : else
1732 : {
1733 94 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail554;
1734 94 : {
1735 94 : tree res_op0;
1736 94 : {
1737 94 : tree _o1[2], _r1;
1738 94 : _o1[0] = captures[1];
1739 94 : {
1740 94 : tree _o2[2], _r2;
1741 94 : _o2[0] = captures[0];
1742 94 : _o2[1] = build_one_cst (TREE_TYPE (captures[1]));
1743 94 : _r2 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1744 94 : _o1[1] = _r2;
1745 : }
1746 94 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1747 94 : res_op0 = _r1;
1748 : }
1749 94 : tree res_op1;
1750 94 : {
1751 94 : tree _o1[1], _r1;
1752 94 : _o1[0] = captures[2];
1753 94 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1754 94 : res_op1 = _r1;
1755 : }
1756 94 : tree _r;
1757 94 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
1758 94 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 447, __FILE__, __LINE__, true);
1759 94 : return _r;
1760 : }
1761 0 : next_after_fail554:;
1762 : }
1763 : }
1764 : }
1765 : }
1766 : return NULL_TREE;
1767 : }
1768 :
1769 : tree
1770 2 : generic_simplify_333 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1771 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1772 : {
1773 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1774 0 : if (FLOAT_TYPE_P (type)
1775 2 : && ! HONOR_NANS (type)
1776 2 : && ! HONOR_INFINITIES (type)
1777 : )
1778 : {
1779 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail602;
1780 0 : {
1781 0 : tree _r;
1782 0 : _r = build_minus_one_cst (type);
1783 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1784 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1785 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 493, __FILE__, __LINE__, true);
1786 0 : return _r;
1787 : }
1788 0 : next_after_fail602:;
1789 : }
1790 : return NULL_TREE;
1791 : }
1792 :
1793 : tree
1794 6 : generic_simplify_341 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1795 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1796 : const combined_fn ARG_UNUSED (TAN),
1797 : const combined_fn ARG_UNUSED (SIN),
1798 : const combined_fn ARG_UNUSED (COS))
1799 : {
1800 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1801 6 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1802 : )
1803 : {
1804 6 : if (! HONOR_NANS (captures[1])
1805 6 : && ! HONOR_INFINITIES (captures[1])
1806 : )
1807 : {
1808 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail612;
1809 6 : {
1810 6 : tree res_op0;
1811 6 : res_op0 = build_one_cst (type);
1812 6 : tree res_op1;
1813 6 : {
1814 6 : tree _o1[1], _r1;
1815 6 : _o1[0] = captures[1];
1816 6 : _r1 = maybe_build_call_expr_loc (loc, COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
1817 6 : if (!_r1)
1818 0 : goto next_after_fail612;
1819 6 : res_op1 = _r1;
1820 : }
1821 6 : tree _r;
1822 6 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
1823 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 503, __FILE__, __LINE__, true);
1824 6 : return _r;
1825 : }
1826 : next_after_fail612:;
1827 : }
1828 : }
1829 : return NULL_TREE;
1830 : }
1831 :
1832 : tree
1833 0 : generic_simplify_351 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1834 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1835 : const enum tree_code ARG_UNUSED (cmp))
1836 : {
1837 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1838 0 : if (INTEGRAL_TYPE_P (type)
1839 : )
1840 : {
1841 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail628;
1842 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail628;
1843 0 : {
1844 0 : tree _r;
1845 0 : _r = captures[2];
1846 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1847 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1848 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 519, __FILE__, __LINE__, true);
1849 0 : return _r;
1850 : }
1851 : next_after_fail628:;
1852 : }
1853 : return NULL_TREE;
1854 : }
1855 :
1856 : tree
1857 21 : generic_simplify_355 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1858 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1859 : {
1860 21 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1861 21 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail632;
1862 21 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail632;
1863 21 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail632;
1864 21 : {
1865 21 : tree _r;
1866 21 : _r = captures[2];
1867 21 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 523, __FILE__, __LINE__, true);
1868 : return _r;
1869 : }
1870 : next_after_fail632:;
1871 : return NULL_TREE;
1872 : }
1873 :
1874 : tree
1875 0 : generic_simplify_358 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1876 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1877 : const enum tree_code ARG_UNUSED (op))
1878 : {
1879 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1880 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail635;
1881 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail635;
1882 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail635;
1883 0 : {
1884 0 : tree _r;
1885 0 : _r = captures[2];
1886 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 526, __FILE__, __LINE__, true);
1887 : return _r;
1888 : }
1889 : next_after_fail635:;
1890 : return NULL_TREE;
1891 : }
1892 :
1893 : tree
1894 0 : generic_simplify_365 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1895 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1896 : {
1897 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1898 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail642;
1899 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail642;
1900 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail642;
1901 0 : {
1902 0 : tree _r;
1903 0 : _r = captures[2];
1904 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 533, __FILE__, __LINE__, true);
1905 : return _r;
1906 : }
1907 : next_after_fail642:;
1908 : return NULL_TREE;
1909 : }
1910 :
1911 : tree
1912 0 : generic_simplify_371 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1913 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1914 : const combined_fn ARG_UNUSED (func))
1915 : {
1916 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1917 0 : if (wi::to_widest (captures[4]) == TYPE_PRECISION (TREE_TYPE (captures[3])) - 1
1918 : )
1919 : {
1920 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail649;
1921 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail649;
1922 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail649;
1923 0 : {
1924 0 : tree _r;
1925 0 : _r = captures[2];
1926 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1927 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1928 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 540, __FILE__, __LINE__, true);
1929 0 : return _r;
1930 : }
1931 : next_after_fail649:;
1932 : }
1933 : return NULL_TREE;
1934 : }
1935 :
1936 : tree
1937 20193 : generic_simplify_379 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1938 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1939 : const enum tree_code ARG_UNUSED (cmp))
1940 : {
1941 20193 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1942 40386 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1943 40325 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
1944 : )
1945 : {
1946 16559 : if (tree_expr_nonnegative_p (captures[1]) && tree_expr_nonzero_p (captures[1])
1947 : )
1948 : {
1949 13044 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail660;
1950 13044 : {
1951 13044 : tree res_op0;
1952 13044 : res_op0 = captures[0];
1953 13044 : tree res_op1;
1954 13044 : res_op1 = captures[2];
1955 13044 : tree _r;
1956 13044 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1957 13044 : if (TREE_SIDE_EFFECTS (captures[1]))
1958 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1959 13044 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 549, __FILE__, __LINE__, true);
1960 13044 : return _r;
1961 : }
1962 0 : next_after_fail660:;
1963 : }
1964 : else
1965 : {
1966 3515 : if (TREE_CODE (captures[1]) == INTEGER_CST
1967 3515 : && wi::neg_p (wi::to_wide (captures[1]), TYPE_SIGN (TREE_TYPE (captures[1])))
1968 : )
1969 : {
1970 1115 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail661;
1971 1115 : {
1972 1115 : tree res_op0;
1973 1115 : res_op0 = captures[2];
1974 1115 : tree res_op1;
1975 1115 : res_op1 = captures[0];
1976 1115 : tree _r;
1977 1115 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1978 1115 : if (TREE_SIDE_EFFECTS (captures[1]))
1979 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1980 1115 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 550, __FILE__, __LINE__, true);
1981 1115 : return _r;
1982 : }
1983 0 : next_after_fail661:;
1984 : }
1985 : }
1986 : }
1987 : return NULL_TREE;
1988 : }
1989 :
1990 : tree
1991 9506603 : generic_simplify_391 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1992 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1993 : const enum tree_code ARG_UNUSED (cmp),
1994 : const enum tree_code ARG_UNUSED (acmp))
1995 : {
1996 9506603 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1997 9506603 : {
1998 9506603 : tree cst = uniform_integer_cst_p (captures[1]);
1999 9506603 : if (tree_int_cst_sgn (cst) == 1
2000 : )
2001 : {
2002 3950984 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail674;
2003 3950984 : {
2004 3950984 : tree res_op0;
2005 3950984 : res_op0 = captures[0];
2006 3950984 : tree res_op1;
2007 3950984 : res_op1 = build_uniform_cst (TREE_TYPE (captures[1]),
2008 3950984 : wide_int_to_tree (TREE_TYPE (cst),
2009 3950984 : wi::to_wide (cst) - 1));
2010 3950984 : tree _r;
2011 3950984 : _r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
2012 3950984 : if (TREE_SIDE_EFFECTS (captures[1]))
2013 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2014 3950984 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 563, __FILE__, __LINE__, true);
2015 3950984 : return _r;
2016 : }
2017 0 : next_after_fail674:;
2018 : }
2019 : }
2020 : return NULL_TREE;
2021 : }
2022 :
2023 : tree
2024 0 : generic_simplify_401 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2025 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2026 : const enum tree_code ARG_UNUSED (cmp),
2027 : const enum tree_code ARG_UNUSED (out))
2028 : {
2029 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2030 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2031 0 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
2032 : )
2033 : {
2034 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail716;
2035 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail716;
2036 0 : {
2037 0 : tree res_op0;
2038 0 : {
2039 0 : tree _o1[1], _r1;
2040 0 : _o1[0] = captures[0];
2041 0 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2042 0 : res_op0 = _r1;
2043 : }
2044 0 : tree res_op1;
2045 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2046 0 : tree _r;
2047 0 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2048 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 588, __FILE__, __LINE__, true);
2049 0 : return _r;
2050 : }
2051 : next_after_fail716:;
2052 : }
2053 : return NULL_TREE;
2054 : }
2055 :
2056 : tree
2057 20185321 : generic_simplify_408 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2058 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2059 : const enum tree_code ARG_UNUSED (cmp),
2060 : const enum tree_code ARG_UNUSED (acmp))
2061 : {
2062 20185321 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2063 20185321 : {
2064 20185321 : tree cst = uniform_integer_cst_p (captures[1]);
2065 20185321 : if (tree_int_cst_sgn (cst) == -1
2066 : )
2067 : {
2068 177156 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail730;
2069 177156 : {
2070 177156 : tree res_op0;
2071 177156 : res_op0 = captures[0];
2072 177156 : tree res_op1;
2073 177156 : res_op1 = build_uniform_cst (TREE_TYPE (captures[1]),
2074 177156 : wide_int_to_tree (TREE_TYPE (cst),
2075 177156 : wi::to_wide (cst)
2076 354312 : + 1));
2077 177156 : tree _r;
2078 177156 : _r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
2079 177156 : if (TREE_SIDE_EFFECTS (captures[1]))
2080 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2081 177156 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 602, __FILE__, __LINE__, true);
2082 177156 : return _r;
2083 : }
2084 0 : next_after_fail730:;
2085 : }
2086 : }
2087 : return NULL_TREE;
2088 : }
2089 :
2090 : tree
2091 0 : generic_simplify_411 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2092 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2093 : const enum tree_code ARG_UNUSED (cmp),
2094 : const enum tree_code ARG_UNUSED (out))
2095 : {
2096 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2097 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2098 0 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
2099 : )
2100 : {
2101 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail733;
2102 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail733;
2103 0 : {
2104 0 : tree res_op0;
2105 0 : {
2106 0 : tree _o1[1], _r1;
2107 0 : _o1[0] = captures[0];
2108 0 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2109 0 : res_op0 = _r1;
2110 : }
2111 0 : tree res_op1;
2112 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2113 0 : tree _r;
2114 0 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2115 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 587, __FILE__, __LINE__, true);
2116 0 : return _r;
2117 : }
2118 : next_after_fail733:;
2119 : }
2120 : return NULL_TREE;
2121 : }
2122 :
2123 : tree
2124 43 : generic_simplify_416 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2125 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2126 : const enum tree_code ARG_UNUSED (cmp),
2127 : const enum tree_code ARG_UNUSED (cmp2),
2128 : const enum tree_code ARG_UNUSED (cmp3),
2129 : const enum tree_code ARG_UNUSED (bit_op),
2130 : const combined_fn ARG_UNUSED (ffs))
2131 : {
2132 43 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2133 43 : {
2134 43 : int prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
2135 43 : if (integer_zerop (captures[2])
2136 : )
2137 : {
2138 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail738;
2139 11 : {
2140 11 : tree res_op0;
2141 11 : res_op0 = captures[1];
2142 11 : tree res_op1;
2143 11 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2144 11 : tree _r;
2145 11 : _r = fold_build2_loc (loc, cmp2, type, res_op0, res_op1);
2146 11 : if (TREE_SIDE_EFFECTS (captures[2]))
2147 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2148 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 606, __FILE__, __LINE__, true);
2149 27 : return _r;
2150 : }
2151 0 : next_after_fail738:;
2152 : }
2153 : else
2154 : {
2155 32 : if (tree_int_cst_sgn (captures[2]) < 0
2156 : )
2157 : {
2158 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail739;
2159 0 : {
2160 0 : tree _r;
2161 0 : _r = constant_boolean_node (cmp == GT_EXPR ? true : false, type);
2162 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2163 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2164 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2165 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2166 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 607, __FILE__, __LINE__, true);
2167 0 : return _r;
2168 : }
2169 0 : next_after_fail739:;
2170 : }
2171 : else
2172 : {
2173 32 : if (wi::to_widest (captures[2]) >= prec
2174 : )
2175 : {
2176 14 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail740;
2177 14 : {
2178 14 : tree _r;
2179 14 : _r = constant_boolean_node (cmp == GT_EXPR ? false : true, type);
2180 14 : if (TREE_SIDE_EFFECTS (captures[1]))
2181 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2182 14 : if (TREE_SIDE_EFFECTS (captures[2]))
2183 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2184 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 608, __FILE__, __LINE__, true);
2185 14 : return _r;
2186 : }
2187 0 : next_after_fail740:;
2188 : }
2189 : else
2190 : {
2191 18 : if (wi::to_widest (captures[2]) == prec - 1
2192 : )
2193 : {
2194 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail741;
2195 2 : {
2196 2 : tree res_op0;
2197 2 : res_op0 = captures[1];
2198 2 : tree res_op1;
2199 2 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[1]),
2200 2 : wi::shifted_mask (prec - 1, 1,
2201 : false, prec));
2202 2 : tree _r;
2203 2 : _r = fold_build2_loc (loc, cmp3, type, res_op0, res_op1);
2204 2 : if (TREE_SIDE_EFFECTS (captures[2]))
2205 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2206 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 609, __FILE__, __LINE__, true);
2207 2 : return _r;
2208 : }
2209 0 : next_after_fail741:;
2210 : }
2211 : else
2212 : {
2213 16 : if (single_use (captures[0])
2214 : )
2215 : {
2216 16 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail742;
2217 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail742;
2218 16 : {
2219 16 : if (! tree_invariant_p (captures[1])) goto next_after_fail742;
2220 0 : tree res_op0;
2221 0 : {
2222 0 : tree _o1[2], _r1;
2223 0 : _o1[0] = unshare_expr (captures[1]);
2224 0 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
2225 0 : _r1 = fold_build2_loc (loc, cmp2, type, _o1[0], _o1[1]);
2226 0 : res_op0 = _r1;
2227 : }
2228 0 : tree res_op1;
2229 0 : {
2230 0 : tree _o1[2], _r1;
2231 0 : {
2232 0 : tree _o2[2], _r2;
2233 0 : _o2[0] = captures[1];
2234 0 : _o2[1] = wide_int_to_tree (TREE_TYPE (captures[1]),
2235 0 : wi::mask (tree_to_uhwi (captures[2]),
2236 : false, prec));
2237 0 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2238 0 : _o1[0] = _r2;
2239 : }
2240 0 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
2241 0 : _r1 = fold_build2_loc (loc, cmp3, type, _o1[0], _o1[1]);
2242 0 : res_op1 = _r1;
2243 : }
2244 0 : tree _r;
2245 0 : _r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
2246 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 610, __FILE__, __LINE__, true);
2247 0 : return _r;
2248 : }
2249 16 : next_after_fail742:;
2250 : }
2251 : }
2252 : }
2253 : }
2254 : }
2255 : }
2256 16 : return NULL_TREE;
2257 : }
2258 :
2259 : tree
2260 4952370 : generic_simplify_439 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2261 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2262 : {
2263 4952370 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2264 4952370 : if (INTEGRAL_TYPE_P (type)
2265 2799848 : && TYPE_PRECISION (type) == 1
2266 4966440 : && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
2267 : )
2268 : {
2269 14070 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail786;
2270 14070 : {
2271 14070 : tree res_op0;
2272 14070 : res_op0 = captures[0];
2273 14070 : tree _r;
2274 14070 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2275 14070 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 640, __FILE__, __LINE__, true);
2276 14070 : return _r;
2277 : }
2278 0 : next_after_fail786:;
2279 : }
2280 : return NULL_TREE;
2281 : }
2282 :
2283 : tree
2284 0 : generic_simplify_442 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2285 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2286 : const combined_fn ARG_UNUSED (coshs),
2287 : const combined_fn ARG_UNUSED (atanhs),
2288 : const combined_fn ARG_UNUSED (sqrts))
2289 : {
2290 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2291 0 : if (!flag_errno_math
2292 : )
2293 : {
2294 0 : {
2295 0 : tree t_one = build_one_cst (type);
2296 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail789;
2297 0 : {
2298 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail789;
2299 0 : tree res_op0;
2300 0 : res_op0 = t_one;
2301 0 : tree res_op1;
2302 0 : {
2303 0 : tree _o1[1], _r1;
2304 0 : {
2305 0 : tree _o2[2], _r2;
2306 0 : {
2307 0 : tree _o3[2], _r3;
2308 0 : _o3[0] = t_one;
2309 0 : _o3[1] = unshare_expr (captures[1]);
2310 0 : _r3 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
2311 0 : _o2[0] = _r3;
2312 : }
2313 0 : {
2314 0 : tree _o3[2], _r3;
2315 0 : _o3[0] = t_one;
2316 0 : _o3[1] = captures[1];
2317 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
2318 0 : _o2[1] = _r3;
2319 : }
2320 0 : _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2321 0 : _o1[0] = _r2;
2322 : }
2323 0 : _r1 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o1[0]), 1, _o1[0]);
2324 0 : if (!_r1)
2325 0 : goto next_after_fail789;
2326 0 : res_op1 = _r1;
2327 : }
2328 0 : tree _r;
2329 0 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
2330 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 643, __FILE__, __LINE__, true);
2331 0 : return _r;
2332 : }
2333 : next_after_fail789:;
2334 : }
2335 : }
2336 : return NULL_TREE;
2337 : }
2338 :
2339 : tree
2340 0 : generic_simplify_446 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2341 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2342 : const combined_fn ARG_UNUSED (POW))
2343 : {
2344 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2345 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail793;
2346 0 : {
2347 0 : tree _r;
2348 0 : _r = captures[0];
2349 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2350 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2351 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 647, __FILE__, __LINE__, true);
2352 : return _r;
2353 : }
2354 0 : next_after_fail793:;
2355 0 : return NULL_TREE;
2356 : }
2357 :
2358 : tree
2359 0 : generic_simplify_449 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2360 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2361 : const combined_fn ARG_UNUSED (copysigns),
2362 : const combined_fn ARG_UNUSED (hypots))
2363 : {
2364 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2365 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail796;
2366 0 : {
2367 0 : tree res_op0;
2368 0 : res_op0 = captures[0];
2369 0 : tree res_op1;
2370 0 : res_op1 = captures[1];
2371 0 : tree _r;
2372 0 : _r = maybe_build_call_expr_loc (loc, hypots, type, 2, res_op0, res_op1);
2373 0 : if (!_r)
2374 0 : goto next_after_fail796;
2375 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2376 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2377 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 650, __FILE__, __LINE__, true);
2378 : return _r;
2379 : }
2380 : next_after_fail796:;
2381 : return NULL_TREE;
2382 : }
2383 :
2384 : tree
2385 21 : generic_simplify_454 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2386 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2387 : {
2388 21 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2389 42 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2390 42 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
2391 : )
2392 : {
2393 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail801;
2394 0 : {
2395 0 : tree res_op0;
2396 0 : res_op0 = captures[0];
2397 0 : tree res_op1;
2398 0 : res_op1 = captures[1];
2399 0 : tree _r;
2400 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2401 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 655, __FILE__, __LINE__, true);
2402 0 : return _r;
2403 : }
2404 0 : next_after_fail801:;
2405 : }
2406 : return NULL_TREE;
2407 : }
2408 :
2409 : tree
2410 0 : generic_simplify_459 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2411 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2412 : {
2413 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2414 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail806;
2415 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail806;
2416 0 : {
2417 0 : tree res_op0;
2418 0 : res_op0 = captures[0];
2419 0 : tree res_op1;
2420 0 : {
2421 0 : tree _o1[1], _r1;
2422 0 : _o1[0] = captures[5];
2423 0 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2424 0 : res_op1 = _r1;
2425 : }
2426 0 : tree _r;
2427 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2428 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 659, __FILE__, __LINE__, true);
2429 : return _r;
2430 : }
2431 : next_after_fail806:;
2432 : return NULL_TREE;
2433 : }
2434 :
2435 : tree
2436 0 : generic_simplify_465 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2437 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2438 : {
2439 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2440 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail812;
2441 0 : {
2442 0 : tree res_op0;
2443 0 : res_op0 = captures[0];
2444 0 : tree res_op1;
2445 0 : res_op1 = captures[1];
2446 0 : tree _r;
2447 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
2448 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 665, __FILE__, __LINE__, true);
2449 : return _r;
2450 : }
2451 0 : next_after_fail812:;
2452 0 : return NULL_TREE;
2453 : }
2454 :
2455 : tree
2456 1667 : generic_simplify_468 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2457 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2458 : {
2459 1667 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2460 1667 : {
2461 1667 : bool wascmp;
2462 1667 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
2463 1667 : || bitwise_inverted_equal_p (captures[1], captures[2], wascmp)
2464 : )
2465 : {
2466 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail815;
2467 8 : {
2468 8 : tree _r;
2469 8 : _r = wascmp ? constant_boolean_node (false, type) : build_zero_cst (type);
2470 8 : if (TREE_SIDE_EFFECTS (captures[0]))
2471 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2472 8 : if (TREE_SIDE_EFFECTS (captures[1]))
2473 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2474 8 : if (TREE_SIDE_EFFECTS (captures[2]))
2475 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2476 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 668, __FILE__, __LINE__, true);
2477 8 : return _r;
2478 : }
2479 0 : next_after_fail815:;
2480 : }
2481 : }
2482 1659 : return NULL_TREE;
2483 : }
2484 :
2485 : tree
2486 0 : generic_simplify_480 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2487 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2488 : const enum tree_code ARG_UNUSED (eqne))
2489 : {
2490 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2491 0 : if (eqne == EQ_EXPR
2492 : )
2493 : {
2494 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail848;
2495 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail848;
2496 0 : {
2497 0 : tree _r;
2498 0 : _r = constant_boolean_node (false, type);
2499 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2500 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2501 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 674, __FILE__, __LINE__, true);
2502 0 : return _r;
2503 : }
2504 : next_after_fail848:;
2505 : }
2506 : else
2507 : {
2508 0 : if (eqne == NE_EXPR
2509 : )
2510 : {
2511 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail849;
2512 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail849;
2513 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail849;
2514 0 : {
2515 0 : tree _r;
2516 0 : _r = captures[0];
2517 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 675, __FILE__, __LINE__, true);
2518 0 : return _r;
2519 : }
2520 : next_after_fail849:;
2521 : }
2522 : }
2523 : return NULL_TREE;
2524 : }
2525 :
2526 : tree
2527 4 : generic_simplify_488 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2528 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2529 : {
2530 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2531 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail869;
2532 4 : {
2533 4 : tree res_op0;
2534 4 : res_op0 = captures[1];
2535 4 : tree res_op1;
2536 4 : {
2537 4 : tree _o1[2], _r1;
2538 4 : _o1[0] = captures[2];
2539 4 : _o1[1] = captures[3];
2540 4 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2541 4 : if (EXPR_P (_r1))
2542 2 : goto next_after_fail869;
2543 2 : res_op1 = _r1;
2544 : }
2545 2 : tree _r;
2546 2 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
2547 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 693, __FILE__, __LINE__, true);
2548 : return _r;
2549 : }
2550 : next_after_fail869:;
2551 : return NULL_TREE;
2552 : }
2553 :
2554 : tree
2555 39032 : generic_simplify_492 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2556 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2557 : const enum tree_code ARG_UNUSED (shift))
2558 : {
2559 39032 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2560 39032 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2561 23502 : && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
2562 23502 : && tree_fits_uhwi_p (captures[4])
2563 23502 : && tree_to_uhwi (captures[4]) > 0
2564 62532 : && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
2565 : )
2566 : {
2567 23500 : {
2568 23500 : unsigned int shiftc = tree_to_uhwi (captures[4]);
2569 23500 : unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
2570 23500 : unsigned HOST_WIDE_INT newmask, zerobits = 0;
2571 23500 : tree shift_type = TREE_TYPE (captures[2]);
2572 23500 : unsigned int prec;
2573 23500 : if (shift == LSHIFT_EXPR)
2574 0 : zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
2575 23500 : else if (shift == RSHIFT_EXPR
2576 23500 : && type_has_mode_precision_p (shift_type))
2577 : {
2578 23500 : prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
2579 23500 : tree arg00 = captures[3];
2580 23500 : if (captures[2] != captures[3]
2581 23500 : && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2582 : {
2583 0 : tree inner_type = TREE_TYPE (captures[3]);
2584 0 : if (type_has_mode_precision_p (inner_type)
2585 0 : && TYPE_PRECISION (inner_type) < prec)
2586 : {
2587 0 : prec = TYPE_PRECISION (inner_type);
2588 0 : if (shiftc < prec)
2589 0 : shift_type = inner_type;
2590 : }
2591 : }
2592 23500 : zerobits = HOST_WIDE_INT_M1U;
2593 23500 : if (shiftc < prec)
2594 : {
2595 23500 : zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
2596 23500 : zerobits <<= prec - shiftc;
2597 : }
2598 23500 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
2599 23500 : && prec == TYPE_PRECISION (TREE_TYPE (captures[2])))
2600 : {
2601 98 : if ((mask & zerobits) == 0)
2602 82 : shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
2603 : else
2604 : zerobits = 0;
2605 : }
2606 : }
2607 23484 : if ((mask & zerobits) == mask
2608 : )
2609 : {
2610 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail879;
2611 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail879;
2612 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail879;
2613 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail879;
2614 0 : {
2615 0 : tree _r;
2616 0 : _r = build_int_cst (type, 0);
2617 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 694, __FILE__, __LINE__, true);
2618 0 : return _r;
2619 : }
2620 : next_after_fail879:;
2621 : }
2622 : else
2623 : {
2624 23500 : {
2625 23500 : newmask = mask | zerobits;
2626 23500 : if (newmask != mask && (newmask & (newmask + 1)) == 0
2627 : )
2628 : {
2629 : {
2630 109 : for (prec = BITS_PER_UNIT;
2631 181 : prec < HOST_BITS_PER_WIDE_INT; prec <<= 1)
2632 171 : if (newmask == (HOST_WIDE_INT_1U << prec) - 1)
2633 : break;
2634 72 : if (prec < HOST_BITS_PER_WIDE_INT
2635 10 : || newmask == HOST_WIDE_INT_M1U
2636 : )
2637 : {
2638 72 : {
2639 72 : tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
2640 72 : if (!tree_int_cst_equal (newmaskt, captures[5])
2641 : )
2642 : {
2643 72 : if (shift_type != TREE_TYPE (captures[2])
2644 : )
2645 : {
2646 11 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail880;
2647 11 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail880;
2648 11 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail880;
2649 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail880;
2650 11 : {
2651 11 : tree res_op0;
2652 11 : {
2653 11 : tree _o1[1], _r1;
2654 11 : {
2655 11 : tree _o2[2], _r2;
2656 11 : {
2657 11 : tree _o3[1], _r3;
2658 11 : _o3[0] = captures[2];
2659 11 : if (TREE_TYPE (_o3[0]) != shift_type)
2660 : {
2661 11 : _r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
2662 : }
2663 : else
2664 : _r3 = _o3[0];
2665 11 : _o2[0] = _r3;
2666 : }
2667 11 : _o2[1] = captures[4];
2668 11 : _r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
2669 11 : _o1[0] = _r2;
2670 : }
2671 11 : if (TREE_TYPE (_o1[0]) != type)
2672 : {
2673 11 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2674 : }
2675 : else
2676 : _r1 = _o1[0];
2677 11 : res_op0 = _r1;
2678 : }
2679 11 : tree res_op1;
2680 11 : res_op1 = newmaskt;
2681 11 : tree _r;
2682 11 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2683 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 695, __FILE__, __LINE__, true);
2684 11 : return _r;
2685 : }
2686 : next_after_fail880:;
2687 : }
2688 : else
2689 : {
2690 61 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail881;
2691 61 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail881;
2692 61 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail881;
2693 61 : {
2694 61 : tree res_op0;
2695 61 : res_op0 = captures[0];
2696 61 : tree res_op1;
2697 61 : res_op1 = newmaskt;
2698 61 : tree _r;
2699 61 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2700 61 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 696, __FILE__, __LINE__, true);
2701 61 : return _r;
2702 : }
2703 : next_after_fail881:;
2704 : }
2705 : }
2706 : }
2707 : }
2708 : }
2709 : }
2710 : }
2711 : }
2712 : }
2713 : }
2714 : return NULL_TREE;
2715 : }
2716 :
2717 : tree
2718 17 : generic_simplify_503 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2719 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2720 : {
2721 17 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2722 17 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail894;
2723 17 : {
2724 17 : tree res_op0;
2725 17 : res_op0 = captures[0];
2726 17 : tree res_op1;
2727 17 : res_op1 = captures[1];
2728 17 : tree _r;
2729 17 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
2730 17 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 708, __FILE__, __LINE__, true);
2731 : return _r;
2732 : }
2733 0 : next_after_fail894:;
2734 0 : return NULL_TREE;
2735 : }
2736 :
2737 : tree
2738 4 : generic_simplify_509 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2739 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2740 : {
2741 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2742 4 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
2743 7 : && (element_precision (TREE_TYPE (captures[2]))
2744 3 : <= element_precision (TREE_TYPE (captures[3]))
2745 0 : || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2746 : )
2747 : {
2748 3 : {
2749 3 : tree shift_type = TREE_TYPE (captures[2]);
2750 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail900;
2751 3 : {
2752 3 : tree res_op0;
2753 3 : {
2754 3 : tree _o1[2], _r1;
2755 3 : {
2756 3 : tree _o2[1], _r2;
2757 3 : _o2[0] = captures[3];
2758 3 : if (TREE_TYPE (_o2[0]) != shift_type)
2759 : {
2760 1 : _r2 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o2[0]);
2761 : }
2762 : else
2763 : _r2 = _o2[0];
2764 3 : _o1[0] = _r2;
2765 : }
2766 3 : _o1[1] = captures[4];
2767 3 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2768 3 : res_op0 = _r1;
2769 : }
2770 3 : tree _r;
2771 3 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2772 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 710, __FILE__, __LINE__, true);
2773 3 : return _r;
2774 : }
2775 0 : next_after_fail900:;
2776 : }
2777 : }
2778 : return NULL_TREE;
2779 : }
2780 :
2781 : tree
2782 2443 : generic_simplify_518 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2783 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2784 : {
2785 2443 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2786 2443 : if (! TYPE_UNSIGNED (type)
2787 2051 : && ! HONOR_SIGN_DEPENDENT_ROUNDING (type)
2788 2443 : && single_use (captures[0])
2789 : )
2790 : {
2791 2051 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail910;
2792 2051 : {
2793 2051 : tree res_op0;
2794 2051 : res_op0 = captures[1];
2795 2051 : tree res_op1;
2796 2051 : {
2797 2051 : tree _o1[1], _r1;
2798 2051 : _o1[0] = captures[2];
2799 2051 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2800 2051 : res_op1 = _r1;
2801 : }
2802 2051 : tree _r;
2803 2051 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
2804 2051 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 722, __FILE__, __LINE__, true);
2805 2051 : return _r;
2806 : }
2807 0 : next_after_fail910:;
2808 : }
2809 : return NULL_TREE;
2810 : }
2811 :
2812 : tree
2813 0 : generic_simplify_528 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2814 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2815 : const enum tree_code ARG_UNUSED (minmax))
2816 : {
2817 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2818 0 : if (TYPE_UNSIGNED (type)
2819 0 : || (tree_int_cst_sgn (captures[2]) == tree_int_cst_sgn (captures[4]))
2820 : )
2821 : {
2822 0 : {
2823 0 : auto andvalue = wi::to_wide (captures[2]) & wi::to_wide (captures[4]);
2824 0 : if (andvalue == ((minmax == MIN_EXPR)
2825 0 : ? wi::to_wide (captures[2]) : wi::to_wide (captures[4]))
2826 : )
2827 : {
2828 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail921;
2829 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail921;
2830 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail921;
2831 0 : {
2832 0 : tree _r;
2833 0 : _r = captures[0];
2834 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 732, __FILE__, __LINE__, true);
2835 0 : return _r;
2836 : }
2837 0 : next_after_fail921:;
2838 : }
2839 : else
2840 : {
2841 0 : if (andvalue == ((minmax != MIN_EXPR)
2842 0 : ? wi::to_wide (captures[2]) : wi::to_wide (captures[4]))
2843 : )
2844 : {
2845 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail922;
2846 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail922;
2847 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail922;
2848 0 : {
2849 0 : tree _r;
2850 0 : _r = captures[3];
2851 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 733, __FILE__, __LINE__, true);
2852 0 : return _r;
2853 : }
2854 0 : next_after_fail922:;
2855 : }
2856 : }
2857 0 : }
2858 : }
2859 : return NULL_TREE;
2860 : }
2861 :
2862 : tree
2863 0 : generic_simplify_540 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2864 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2865 : const combined_fn ARG_UNUSED (FMIN_ALL))
2866 : {
2867 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2868 0 : if (flag_finite_math_only
2869 : )
2870 : {
2871 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail947;
2872 0 : {
2873 0 : tree res_op0;
2874 0 : res_op0 = captures[0];
2875 0 : tree res_op1;
2876 0 : res_op1 = captures[1];
2877 0 : tree _r;
2878 0 : _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
2879 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 746, __FILE__, __LINE__, true);
2880 0 : return _r;
2881 : }
2882 0 : next_after_fail947:;
2883 : }
2884 : return NULL_TREE;
2885 : }
2886 :
2887 : tree
2888 0 : generic_simplify_546 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2889 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2890 : const enum tree_code ARG_UNUSED (cmp))
2891 : {
2892 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2893 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail953;
2894 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail953;
2895 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail953;
2896 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail953;
2897 0 : {
2898 0 : tree _r;
2899 0 : _r = captures[0];
2900 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 538, __FILE__, __LINE__, true);
2901 : return _r;
2902 : }
2903 : next_after_fail953:;
2904 : return NULL_TREE;
2905 : }
2906 :
2907 : tree
2908 0 : generic_simplify_556 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2909 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2910 : const combined_fn ARG_UNUSED (cond_op))
2911 : {
2912 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2913 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail963;
2914 0 : {
2915 0 : tree res_op0;
2916 0 : {
2917 0 : tree _o1[2], _r1;
2918 0 : _o1[0] = captures[2];
2919 0 : _o1[1] = captures[0];
2920 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2921 0 : res_op0 = _r1;
2922 : }
2923 0 : tree res_op1;
2924 0 : res_op1 = captures[3];
2925 0 : tree res_op2;
2926 0 : res_op2 = captures[4];
2927 0 : tree res_op3;
2928 0 : res_op3 = captures[5];
2929 0 : tree res_op4;
2930 0 : res_op4 = captures[6];
2931 0 : tree _r;
2932 0 : _r = maybe_build_call_expr_loc (loc, cond_op, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
2933 0 : if (!_r)
2934 0 : goto next_after_fail963;
2935 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 757, __FILE__, __LINE__, true);
2936 : return _r;
2937 : }
2938 : next_after_fail963:;
2939 : return NULL_TREE;
2940 : }
2941 :
2942 : tree
2943 0 : generic_simplify_562 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2944 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2945 : const combined_fn ARG_UNUSED (bswap))
2946 : {
2947 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2948 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail972;
2949 0 : {
2950 0 : tree res_op0;
2951 0 : res_op0 = captures[0];
2952 0 : tree _r;
2953 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
2954 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 766, __FILE__, __LINE__, true);
2955 : return _r;
2956 : }
2957 0 : next_after_fail972:;
2958 0 : return NULL_TREE;
2959 : }
2960 :
2961 : tree
2962 0 : generic_simplify_569 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2963 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2964 : const combined_fn ARG_UNUSED (logs))
2965 : {
2966 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2967 0 : if (flag_unsafe_math_optimizations
2968 : )
2969 : {
2970 0 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
2971 0 : && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
2972 0 : && ! flag_trapping_math
2973 0 : && ! flag_errno_math
2974 : )
2975 : {
2976 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail979;
2977 0 : {
2978 0 : tree res_op0;
2979 0 : {
2980 0 : tree _o1[1], _r1;
2981 0 : _o1[0] = captures[2];
2982 0 : _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
2983 0 : if (!_r1)
2984 0 : goto next_after_fail979;
2985 0 : res_op0 = _r1;
2986 : }
2987 0 : tree _r;
2988 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
2989 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2990 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2991 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 773, __FILE__, __LINE__, true);
2992 0 : return _r;
2993 : }
2994 : next_after_fail979:;
2995 : }
2996 : }
2997 : return NULL_TREE;
2998 : }
2999 :
3000 : tree
3001 0 : generic_simplify_578 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3002 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3003 : const combined_fn ARG_UNUSED (froms),
3004 : const combined_fn ARG_UNUSED (tos))
3005 : {
3006 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3007 0 : if (optimize && canonicalize_math_p ()
3008 : )
3009 : {
3010 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail988;
3011 0 : {
3012 0 : tree res_op0;
3013 0 : {
3014 0 : tree _o1[1], _r1;
3015 0 : _o1[0] = captures[0];
3016 0 : _r1 = maybe_build_call_expr_loc (loc, tos, TREE_TYPE (_o1[0]), 1, _o1[0]);
3017 0 : if (!_r1)
3018 0 : goto next_after_fail988;
3019 0 : res_op0 = _r1;
3020 : }
3021 0 : tree _r;
3022 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3023 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 782, __FILE__, __LINE__, true);
3024 0 : return _r;
3025 : }
3026 : next_after_fail988:;
3027 : }
3028 : return NULL_TREE;
3029 : }
3030 :
3031 : tree
3032 0 : generic_simplify_587 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3033 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3034 : const combined_fn ARG_UNUSED (ifn),
3035 : const combined_fn ARG_UNUSED (lfn),
3036 : const combined_fn ARG_UNUSED (llfn))
3037 : {
3038 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3039 0 : if (canonicalize_math_p ()
3040 : )
3041 : {
3042 0 : if (TYPE_PRECISION (long_long_integer_type_node)
3043 0 : == TYPE_PRECISION (long_integer_type_node)
3044 : )
3045 : {
3046 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail997;
3047 0 : {
3048 0 : tree res_op0;
3049 0 : res_op0 = captures[0];
3050 0 : tree _r;
3051 0 : _r = maybe_build_call_expr_loc (loc, lfn, type, 1, res_op0);
3052 0 : if (!_r)
3053 0 : goto next_after_fail997;
3054 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 791, __FILE__, __LINE__, true);
3055 0 : return _r;
3056 : }
3057 : next_after_fail997:;
3058 : }
3059 : }
3060 : return NULL_TREE;
3061 : }
3062 :
3063 : tree
3064 0 : generic_simplify_598 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3065 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3066 : {
3067 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3068 0 : if (canonicalize_math_after_vectorization_p ()
3069 : )
3070 : {
3071 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1008;
3072 : {
3073 : tree res_op0;
3074 : res_op0 = captures[0];
3075 : tree res_op1;
3076 : res_op1 = captures[1];
3077 : tree res_op2;
3078 : res_op2 = captures[2];
3079 : tree _r;
3080 : _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
3081 : if (!_r)
3082 : goto next_after_fail1008;
3083 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 802, __FILE__, __LINE__, true);
3084 : return _r;
3085 : }
3086 0 : next_after_fail1008:;
3087 : }
3088 0 : return NULL_TREE;
3089 : }
3090 :
3091 : tree
3092 0 : generic_simplify_607 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3093 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
3094 : {
3095 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3096 0 : if (canonicalize_math_after_vectorization_p ()
3097 : )
3098 : {
3099 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1017;
3100 : {
3101 : tree res_op0;
3102 : res_op0 = captures[0];
3103 : tree res_op1;
3104 : res_op1 = captures[1];
3105 : tree res_op2;
3106 : res_op2 = captures[2];
3107 : tree res_op3;
3108 : res_op3 = captures[3];
3109 : tree res_op4;
3110 : res_op4 = captures[4];
3111 : tree _r;
3112 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3113 : if (!_r)
3114 : goto next_after_fail1017;
3115 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 811, __FILE__, __LINE__, true);
3116 : return _r;
3117 : }
3118 0 : next_after_fail1017:;
3119 : }
3120 0 : return NULL_TREE;
3121 : }
3122 :
3123 : tree
3124 0 : generic_simplify_617 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3125 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3126 : const enum tree_code ARG_UNUSED (rot),
3127 : const combined_fn ARG_UNUSED (popcount))
3128 : {
3129 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3130 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3131 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3132 0 : && (
3133 :
3134 0 : || !TREE_SIDE_EFFECTS (captures[3]))
3135 : )
3136 : {
3137 0 : {
3138 0 : tree type0 = TREE_TYPE (captures[0]);
3139 0 : tree type1 = TREE_TYPE (captures[1]);
3140 0 : unsigned int prec0 = TYPE_PRECISION (type0);
3141 0 : unsigned int prec1 = TYPE_PRECISION (type1);
3142 0 : if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
3143 : )
3144 : {
3145 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1027;
3146 0 : {
3147 0 : tree res_op0;
3148 0 : {
3149 0 : tree _o1[1], _r1;
3150 0 : _o1[0] = captures[2];
3151 0 : if (TREE_TYPE (_o1[0]) != type0)
3152 : {
3153 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3154 : }
3155 : else
3156 : _r1 = _o1[0];
3157 0 : res_op0 = _r1;
3158 : }
3159 0 : tree _r;
3160 0 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
3161 0 : if (!_r)
3162 0 : goto next_after_fail1027;
3163 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3164 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3165 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 815, __FILE__, __LINE__, true);
3166 0 : return _r;
3167 : }
3168 : next_after_fail1027:;
3169 : }
3170 : }
3171 : }
3172 : return NULL_TREE;
3173 : }
3174 :
3175 : tree
3176 0 : generic_simplify_627 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3177 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3178 : {
3179 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3180 0 : {
3181 0 : bool can_fold = false;
3182 0 : unsigned HOST_WIDE_INT nelts;
3183 0 : vec_perm_builder builder;
3184 0 : if (TYPE_VECTOR_SUBPARTS (type).is_constant (&nelts)
3185 0 : && tree_to_vec_perm_builder (&builder, captures[2]))
3186 : {
3187 0 : vec_perm_indices sel0 (builder, 2, VECTOR_CST_NELTS (captures[2]));
3188 0 : unsigned int sel0_first_idx = sel0[0].to_constant ();
3189 0 : unsigned int elt_size = vector_element_bits (TREE_TYPE (captures[0]));
3190 0 : unsigned int ia_size = tree_to_uhwi (TYPE_SIZE (type))
3191 0 : - elt_size * sel0_first_idx;
3192 0 : unsigned int ib_start;
3193 0 : if (sel0.series_p (0, 1, sel0_first_idx, 1)
3194 0 : && multiple_p (ia_size, vector_element_bits (type), &ib_start)
3195 0 : && tree_to_vec_perm_builder (&builder, captures[5]))
3196 : {
3197 0 : vec_perm_indices sel1 (builder, 2, VECTOR_CST_NELTS (captures[5]));
3198 0 : can_fold = sel1.series_p (ib_start, 1, nelts + ib_start, 1);
3199 0 : if (can_fold)
3200 0 : for (unsigned int i = 0; i < ib_start; i++)
3201 0 : if (sel1[i].to_constant () != i)
3202 : {
3203 : can_fold = false;
3204 : break;
3205 : }
3206 0 : }
3207 0 : }
3208 0 : if (can_fold
3209 : )
3210 : {
3211 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1039;
3212 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1039;
3213 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1039;
3214 0 : {
3215 0 : tree res_op0;
3216 0 : {
3217 0 : tree _o1[3], _r1;
3218 0 : _o1[0] = captures[0];
3219 0 : _o1[1] = captures[4];
3220 0 : _o1[2] = captures[2];
3221 0 : _r1 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1], _o1[2]);
3222 0 : res_op0 = _r1;
3223 : }
3224 0 : tree _r;
3225 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
3226 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3227 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3228 0 : if (TREE_SIDE_EFFECTS (captures[3]))
3229 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3230 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 826, __FILE__, __LINE__, true);
3231 0 : return _r;
3232 : }
3233 0 : next_after_fail1039:;
3234 : }
3235 0 : }
3236 0 : return NULL_TREE;
3237 : }
3238 :
3239 : tree
3240 3678 : generic_simplify_PAREN_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3241 : {
3242 3678 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3243 3678 : switch (TREE_CODE (_p0))
3244 : {
3245 2 : case PAREN_EXPR:
3246 2 : {
3247 2 : tree _q20 = TREE_OPERAND (_p0, 0);
3248 2 : {
3249 2 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
3250 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1133;
3251 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1133;
3252 2 : {
3253 2 : tree _r;
3254 2 : _r = captures[0];
3255 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
3256 2 : return _r;
3257 : }
3258 0 : next_after_fail1133:;
3259 : }
3260 0 : break;
3261 : }
3262 3676 : default:;
3263 : }
3264 3676 : if (CONSTANT_CLASS_P (_p0))
3265 : {
3266 1 : {
3267 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3268 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1134;
3269 1 : {
3270 1 : tree _r;
3271 1 : _r = captures[0];
3272 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 879, __FILE__, __LINE__, true);
3273 1 : return _r;
3274 : }
3275 0 : next_after_fail1134:;
3276 : }
3277 : }
3278 : return NULL_TREE;
3279 : }
3280 :
3281 : tree
3282 1655890 : generic_simplify_REALPART_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3283 : {
3284 1655890 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3285 1655890 : switch (TREE_CODE (_p0))
3286 : {
3287 9611 : case COMPLEX_EXPR:
3288 9611 : {
3289 9611 : tree _q20 = TREE_OPERAND (_p0, 0);
3290 9611 : tree _q21 = TREE_OPERAND (_p0, 1);
3291 9611 : {
3292 9611 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3293 9611 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1135;
3294 9611 : {
3295 9611 : tree _r;
3296 9611 : _r = captures[0];
3297 9611 : if (TREE_SIDE_EFFECTS (captures[1]))
3298 1366 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3299 9611 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 880, __FILE__, __LINE__, true);
3300 9611 : return _r;
3301 : }
3302 0 : next_after_fail1135:;
3303 : }
3304 0 : break;
3305 : }
3306 45288 : CASE_CONVERT:
3307 45288 : {
3308 45288 : tree _q20 = TREE_OPERAND (_p0, 0);
3309 45288 : switch (TREE_CODE (_q20))
3310 : {
3311 0 : case CONJ_EXPR:
3312 0 : {
3313 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3314 0 : {
3315 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3316 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1136;
3317 0 : {
3318 0 : tree res_op0;
3319 0 : {
3320 0 : tree _o1[1], _r1;
3321 0 : _o1[0] = captures[2];
3322 0 : _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
3323 0 : res_op0 = _r1;
3324 : }
3325 0 : tree _r;
3326 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3327 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 881, __FILE__, __LINE__, true);
3328 0 : return _r;
3329 : }
3330 0 : next_after_fail1136:;
3331 : }
3332 0 : break;
3333 : }
3334 0 : case PLUS_EXPR:
3335 0 : {
3336 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3337 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3338 0 : {
3339 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
3340 0 : const enum tree_code op = PLUS_EXPR;
3341 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1137;
3342 0 : {
3343 0 : tree res_op0;
3344 0 : {
3345 0 : tree _o1[2], _r1;
3346 0 : {
3347 0 : tree _o2[1], _r2;
3348 0 : _o2[0] = captures[2];
3349 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3350 0 : _o1[0] = _r2;
3351 : }
3352 0 : {
3353 0 : tree _o2[1], _r2;
3354 0 : _o2[0] = captures[3];
3355 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3356 0 : _o1[1] = _r2;
3357 : }
3358 0 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3359 0 : res_op0 = _r1;
3360 : }
3361 0 : tree _r;
3362 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3363 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
3364 0 : return _r;
3365 : }
3366 0 : next_after_fail1137:;
3367 : }
3368 0 : break;
3369 : }
3370 0 : case MINUS_EXPR:
3371 0 : {
3372 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3373 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3374 0 : {
3375 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
3376 0 : const enum tree_code op = MINUS_EXPR;
3377 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1138;
3378 0 : {
3379 0 : tree res_op0;
3380 0 : {
3381 0 : tree _o1[2], _r1;
3382 0 : {
3383 0 : tree _o2[1], _r2;
3384 0 : _o2[0] = captures[2];
3385 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3386 0 : _o1[0] = _r2;
3387 : }
3388 0 : {
3389 0 : tree _o2[1], _r2;
3390 0 : _o2[0] = captures[3];
3391 0 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3392 0 : _o1[1] = _r2;
3393 : }
3394 0 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3395 0 : res_op0 = _r1;
3396 : }
3397 0 : tree _r;
3398 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3399 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
3400 0 : return _r;
3401 : }
3402 0 : next_after_fail1138:;
3403 : }
3404 0 : break;
3405 : }
3406 0 : case CALL_EXPR:
3407 0 : switch (get_call_combined_fn (_q20))
3408 : {
3409 0 : case CFN_BUILT_IN_CEXPIF:
3410 0 : if (call_expr_nargs (_q20) == 1)
3411 : {
3412 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
3413 0 : {
3414 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3415 0 : if (single_use (captures[1]) && single_use (captures[0])
3416 : )
3417 : {
3418 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1139;
3419 0 : {
3420 0 : tree res_op0;
3421 0 : {
3422 0 : tree _o1[1], _r1;
3423 0 : _o1[0] = captures[2];
3424 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (_o1[0]), 1, _o1[0]);
3425 0 : if (!_r1)
3426 0 : goto next_after_fail1139;
3427 0 : res_op0 = _r1;
3428 : }
3429 0 : tree _r;
3430 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3431 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 883, __FILE__, __LINE__, true);
3432 0 : return _r;
3433 : }
3434 0 : next_after_fail1139:;
3435 : }
3436 : }
3437 : }
3438 : break;
3439 0 : case CFN_BUILT_IN_CEXPIL:
3440 0 : if (call_expr_nargs (_q20) == 1)
3441 : {
3442 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
3443 0 : {
3444 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3445 0 : if (single_use (captures[1]) && single_use (captures[0])
3446 : )
3447 : {
3448 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1140;
3449 0 : {
3450 0 : tree res_op0;
3451 0 : {
3452 0 : tree _o1[1], _r1;
3453 0 : _o1[0] = captures[2];
3454 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (_o1[0]), 1, _o1[0]);
3455 0 : if (!_r1)
3456 0 : goto next_after_fail1140;
3457 0 : res_op0 = _r1;
3458 : }
3459 0 : tree _r;
3460 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3461 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 883, __FILE__, __LINE__, true);
3462 0 : return _r;
3463 : }
3464 0 : next_after_fail1140:;
3465 : }
3466 : }
3467 : }
3468 : break;
3469 0 : case CFN_BUILT_IN_CEXPI:
3470 0 : if (call_expr_nargs (_q20) == 1)
3471 : {
3472 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
3473 0 : {
3474 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3475 0 : if (single_use (captures[1]) && single_use (captures[0])
3476 : )
3477 : {
3478 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1141;
3479 0 : {
3480 0 : tree res_op0;
3481 0 : {
3482 0 : tree _o1[1], _r1;
3483 0 : _o1[0] = captures[2];
3484 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
3485 0 : if (!_r1)
3486 0 : goto next_after_fail1141;
3487 0 : res_op0 = _r1;
3488 : }
3489 0 : tree _r;
3490 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3491 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 883, __FILE__, __LINE__, true);
3492 0 : return _r;
3493 : }
3494 0 : next_after_fail1141:;
3495 : }
3496 : }
3497 : }
3498 : break;
3499 : default:;
3500 : }
3501 : break;
3502 : default:;
3503 : }
3504 : break;
3505 : }
3506 16 : case CONJ_EXPR:
3507 16 : {
3508 16 : tree _q20 = TREE_OPERAND (_p0, 0);
3509 16 : {
3510 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3511 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1142;
3512 16 : {
3513 16 : tree res_op0;
3514 16 : {
3515 16 : tree _o1[1], _r1;
3516 16 : _o1[0] = captures[2];
3517 16 : _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
3518 16 : res_op0 = _r1;
3519 : }
3520 16 : tree _r;
3521 16 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3522 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 881, __FILE__, __LINE__, true);
3523 16 : return _r;
3524 : }
3525 0 : next_after_fail1142:;
3526 : }
3527 0 : break;
3528 : }
3529 407 : case PLUS_EXPR:
3530 407 : {
3531 407 : tree _q20 = TREE_OPERAND (_p0, 0);
3532 407 : tree _q21 = TREE_OPERAND (_p0, 1);
3533 407 : {
3534 407 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
3535 407 : const enum tree_code op = PLUS_EXPR;
3536 407 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1143;
3537 407 : {
3538 407 : tree res_op0;
3539 407 : {
3540 407 : tree _o1[2], _r1;
3541 407 : {
3542 407 : tree _o2[1], _r2;
3543 407 : _o2[0] = captures[2];
3544 407 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3545 407 : _o1[0] = _r2;
3546 : }
3547 407 : {
3548 407 : tree _o2[1], _r2;
3549 407 : _o2[0] = captures[3];
3550 407 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3551 407 : _o1[1] = _r2;
3552 : }
3553 407 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3554 407 : res_op0 = _r1;
3555 : }
3556 407 : tree _r;
3557 407 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3558 407 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
3559 407 : return _r;
3560 : }
3561 0 : next_after_fail1143:;
3562 : }
3563 0 : break;
3564 : }
3565 47 : case MINUS_EXPR:
3566 47 : {
3567 47 : tree _q20 = TREE_OPERAND (_p0, 0);
3568 47 : tree _q21 = TREE_OPERAND (_p0, 1);
3569 47 : {
3570 47 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
3571 47 : const enum tree_code op = MINUS_EXPR;
3572 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1144;
3573 47 : {
3574 47 : tree res_op0;
3575 47 : {
3576 47 : tree _o1[2], _r1;
3577 47 : {
3578 47 : tree _o2[1], _r2;
3579 47 : _o2[0] = captures[2];
3580 47 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3581 47 : _o1[0] = _r2;
3582 : }
3583 47 : {
3584 47 : tree _o2[1], _r2;
3585 47 : _o2[0] = captures[3];
3586 47 : _r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
3587 47 : _o1[1] = _r2;
3588 : }
3589 47 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3590 47 : res_op0 = _r1;
3591 : }
3592 47 : tree _r;
3593 47 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3594 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
3595 47 : return _r;
3596 : }
3597 0 : next_after_fail1144:;
3598 : }
3599 0 : break;
3600 : }
3601 263 : case CALL_EXPR:
3602 263 : switch (get_call_combined_fn (_p0))
3603 : {
3604 0 : case CFN_BUILT_IN_CEXPIF:
3605 0 : if (call_expr_nargs (_p0) == 1)
3606 : {
3607 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3608 0 : {
3609 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3610 0 : if (single_use (captures[1]) && single_use (captures[0])
3611 : )
3612 : {
3613 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1145;
3614 0 : {
3615 0 : tree res_op0;
3616 0 : {
3617 0 : tree _o1[1], _r1;
3618 0 : _o1[0] = captures[2];
3619 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (_o1[0]), 1, _o1[0]);
3620 0 : if (!_r1)
3621 0 : goto next_after_fail1145;
3622 0 : res_op0 = _r1;
3623 : }
3624 0 : tree _r;
3625 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3626 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 883, __FILE__, __LINE__, true);
3627 0 : return _r;
3628 : }
3629 0 : next_after_fail1145:;
3630 : }
3631 : }
3632 : }
3633 : break;
3634 0 : case CFN_BUILT_IN_CEXPIL:
3635 0 : if (call_expr_nargs (_p0) == 1)
3636 : {
3637 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3638 0 : {
3639 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3640 0 : if (single_use (captures[1]) && single_use (captures[0])
3641 : )
3642 : {
3643 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1146;
3644 0 : {
3645 0 : tree res_op0;
3646 0 : {
3647 0 : tree _o1[1], _r1;
3648 0 : _o1[0] = captures[2];
3649 0 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (_o1[0]), 1, _o1[0]);
3650 0 : if (!_r1)
3651 0 : goto next_after_fail1146;
3652 0 : res_op0 = _r1;
3653 : }
3654 0 : tree _r;
3655 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3656 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 883, __FILE__, __LINE__, true);
3657 0 : return _r;
3658 : }
3659 0 : next_after_fail1146:;
3660 : }
3661 : }
3662 : }
3663 : break;
3664 1 : case CFN_BUILT_IN_CEXPI:
3665 1 : if (call_expr_nargs (_p0) == 1)
3666 : {
3667 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3668 1 : {
3669 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3670 1 : if (single_use (captures[1]) && single_use (captures[0])
3671 : )
3672 : {
3673 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1147;
3674 1 : {
3675 1 : tree res_op0;
3676 1 : {
3677 1 : tree _o1[1], _r1;
3678 1 : _o1[0] = captures[2];
3679 1 : _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
3680 1 : if (!_r1)
3681 0 : goto next_after_fail1147;
3682 1 : res_op0 = _r1;
3683 : }
3684 1 : tree _r;
3685 1 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3686 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 883, __FILE__, __LINE__, true);
3687 1 : return _r;
3688 : }
3689 0 : next_after_fail1147:;
3690 : }
3691 : }
3692 : }
3693 : break;
3694 : default:;
3695 : }
3696 : break;
3697 : default:;
3698 : }
3699 : return NULL_TREE;
3700 : }
3701 :
3702 : tree
3703 3004415 : generic_simplify_POINTER_DIFF_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
3704 : {
3705 3004415 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3706 3004415 : if (integer_zerop (_p1))
3707 : {
3708 29 : {
3709 29 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3710 29 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1375;
3711 29 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1375;
3712 29 : {
3713 29 : tree res_op0;
3714 29 : res_op0 = captures[0];
3715 29 : tree _r;
3716 29 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3717 29 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 949, __FILE__, __LINE__, true);
3718 29 : return _r;
3719 : }
3720 : next_after_fail1375:;
3721 : }
3722 : }
3723 3004386 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _p0, 0))
3724 : {
3725 49008 : {
3726 49008 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p0 };
3727 49008 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1376;
3728 49008 : {
3729 49008 : tree _r;
3730 49008 : _r = build_zero_cst (type);
3731 49008 : if (TREE_SIDE_EFFECTS (captures[1]))
3732 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3733 49008 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 950, __FILE__, __LINE__, true);
3734 49008 : return _r;
3735 : }
3736 0 : next_after_fail1376:;
3737 : }
3738 : }
3739 2955378 : switch (TREE_CODE (_p0))
3740 : {
3741 350035 : case POINTER_PLUS_EXPR:
3742 350035 : {
3743 350035 : tree _q20 = TREE_OPERAND (_p0, 0);
3744 350035 : tree _q21 = TREE_OPERAND (_p0, 1);
3745 350035 : switch (TREE_CODE (_p1))
3746 : {
3747 20825 : case POINTER_PLUS_EXPR:
3748 20825 : {
3749 20825 : tree _q50 = TREE_OPERAND (_p1, 0);
3750 20825 : tree _q51 = TREE_OPERAND (_p1, 1);
3751 20825 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3752 : {
3753 20794 : {
3754 20794 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
3755 20794 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
3756 : )
3757 : {
3758 20794 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1377;
3759 20794 : {
3760 20794 : tree res_op0;
3761 20794 : {
3762 20794 : tree _o1[2], _r1;
3763 20794 : _o1[0] = captures[1];
3764 20794 : _o1[1] = captures[2];
3765 20794 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3766 20794 : res_op0 = _r1;
3767 : }
3768 20794 : tree _r;
3769 20794 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3770 20794 : if (TREE_SIDE_EFFECTS (captures[0]))
3771 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3772 20794 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 951, __FILE__, __LINE__, true);
3773 20794 : return _r;
3774 : }
3775 0 : next_after_fail1377:;
3776 : }
3777 : }
3778 : }
3779 31 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3780 : {
3781 1 : {
3782 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
3783 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1378;
3784 1 : {
3785 1 : tree res_op0;
3786 1 : res_op0 = captures[0];
3787 1 : tree res_op1;
3788 1 : res_op1 = captures[2];
3789 1 : tree _r;
3790 1 : _r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
3791 1 : if (TREE_SIDE_EFFECTS (captures[1]))
3792 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3793 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 952, __FILE__, __LINE__, true);
3794 1 : return _r;
3795 : }
3796 0 : next_after_fail1378:;
3797 : }
3798 : }
3799 : break;
3800 : }
3801 : default:;
3802 : }
3803 : break;
3804 : }
3805 149852 : CASE_CONVERT:
3806 149852 : {
3807 149852 : tree _q20 = TREE_OPERAND (_p0, 0);
3808 149852 : switch (TREE_CODE (_q20))
3809 : {
3810 2163 : case ADDR_EXPR:
3811 2163 : {
3812 2163 : switch (TREE_CODE (_p1))
3813 : {
3814 324 : CASE_CONVERT:
3815 324 : {
3816 324 : tree _q40 = TREE_OPERAND (_p1, 0);
3817 324 : {
3818 324 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
3819 324 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3820 324 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3821 : )
3822 : {
3823 324 : {
3824 324 : poly_int64 diff;
3825 324 : if (ptr_difference_const (captures[1], captures[3], &diff)
3826 : )
3827 : {
3828 189 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1379;
3829 189 : {
3830 189 : tree _r;
3831 189 : _r = build_int_cst_type (type, diff);
3832 189 : if (TREE_SIDE_EFFECTS (captures[1]))
3833 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3834 189 : if (TREE_SIDE_EFFECTS (captures[3]))
3835 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3836 189 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 953, __FILE__, __LINE__, true);
3837 189 : return _r;
3838 : }
3839 0 : next_after_fail1379:;
3840 : }
3841 : }
3842 : }
3843 : }
3844 135 : break;
3845 : }
3846 1974 : default:;
3847 : }
3848 1974 : {
3849 1974 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
3850 1974 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3851 1974 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3852 : )
3853 : {
3854 1974 : {
3855 1974 : poly_int64 diff;
3856 1974 : if (ptr_difference_const (captures[1], captures[3], &diff)
3857 : )
3858 : {
3859 103 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1380;
3860 103 : {
3861 103 : tree _r;
3862 103 : _r = build_int_cst_type (type, diff);
3863 103 : if (TREE_SIDE_EFFECTS (captures[1]))
3864 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3865 103 : if (TREE_SIDE_EFFECTS (captures[2]))
3866 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3867 103 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 953, __FILE__, __LINE__, true);
3868 103 : return _r;
3869 : }
3870 0 : next_after_fail1380:;
3871 : }
3872 : }
3873 : }
3874 : }
3875 1871 : break;
3876 : }
3877 149560 : default:;
3878 : }
3879 149560 : switch (TREE_CODE (_p1))
3880 : {
3881 116973 : CASE_CONVERT:
3882 116973 : {
3883 116973 : tree _q40 = TREE_OPERAND (_p1, 0);
3884 116973 : switch (TREE_CODE (_q40))
3885 : {
3886 18173 : case ADDR_EXPR:
3887 18173 : {
3888 18173 : {
3889 18173 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
3890 18173 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3891 18173 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3892 : )
3893 : {
3894 18173 : {
3895 18173 : poly_int64 diff;
3896 18173 : if (ptr_difference_const (captures[1], captures[3], &diff)
3897 : )
3898 : {
3899 37 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1381;
3900 37 : {
3901 37 : tree _r;
3902 37 : _r = build_int_cst_type (type, diff);
3903 37 : if (TREE_SIDE_EFFECTS (captures[1]))
3904 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3905 37 : if (TREE_SIDE_EFFECTS (captures[3]))
3906 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3907 37 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 954, __FILE__, __LINE__, true);
3908 37 : return _r;
3909 : }
3910 0 : next_after_fail1381:;
3911 : }
3912 : }
3913 : }
3914 : }
3915 18136 : break;
3916 : }
3917 : default:;
3918 : }
3919 : break;
3920 : }
3921 12 : case ADDR_EXPR:
3922 12 : {
3923 12 : {
3924 12 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
3925 12 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3926 12 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3927 : )
3928 : {
3929 12 : {
3930 12 : poly_int64 diff;
3931 12 : if (ptr_difference_const (captures[1], captures[3], &diff)
3932 : )
3933 : {
3934 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1382;
3935 0 : {
3936 0 : tree _r;
3937 0 : _r = build_int_cst_type (type, diff);
3938 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3939 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3940 0 : if (TREE_SIDE_EFFECTS (captures[2]))
3941 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3942 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 954, __FILE__, __LINE__, true);
3943 0 : return _r;
3944 : }
3945 0 : next_after_fail1382:;
3946 : }
3947 : }
3948 : }
3949 : }
3950 12 : break;
3951 : }
3952 : default:;
3953 : }
3954 : break;
3955 : }
3956 5795 : case ADDR_EXPR:
3957 5795 : {
3958 5795 : switch (TREE_CODE (_p1))
3959 : {
3960 214 : CASE_CONVERT:
3961 214 : {
3962 214 : tree _q30 = TREE_OPERAND (_p1, 0);
3963 214 : {
3964 214 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
3965 214 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3966 214 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3967 : )
3968 : {
3969 214 : {
3970 214 : poly_int64 diff;
3971 214 : if (ptr_difference_const (captures[1], captures[3], &diff)
3972 : )
3973 : {
3974 193 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1383;
3975 193 : {
3976 193 : tree _r;
3977 193 : _r = build_int_cst_type (type, diff);
3978 193 : if (TREE_SIDE_EFFECTS (captures[0]))
3979 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
3980 193 : if (TREE_SIDE_EFFECTS (captures[3]))
3981 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
3982 193 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 953, __FILE__, __LINE__, true);
3983 193 : return _r;
3984 : }
3985 0 : next_after_fail1383:;
3986 : }
3987 : }
3988 : }
3989 : }
3990 21 : break;
3991 : }
3992 5602 : default:;
3993 : }
3994 5602 : {
3995 5602 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
3996 5602 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
3997 5602 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
3998 : )
3999 : {
4000 5602 : {
4001 5602 : poly_int64 diff;
4002 5602 : if (ptr_difference_const (captures[1], captures[3], &diff)
4003 : )
4004 : {
4005 4309 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1384;
4006 4309 : {
4007 4309 : tree _r;
4008 4309 : _r = build_int_cst_type (type, diff);
4009 4309 : if (TREE_SIDE_EFFECTS (captures[0]))
4010 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4011 4309 : if (TREE_SIDE_EFFECTS (captures[2]))
4012 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4013 4309 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 953, __FILE__, __LINE__, true);
4014 4309 : return _r;
4015 : }
4016 0 : next_after_fail1384:;
4017 : }
4018 : }
4019 : }
4020 : }
4021 1293 : break;
4022 : }
4023 2929752 : default:;
4024 : }
4025 2929752 : switch (TREE_CODE (_p1))
4026 : {
4027 628370 : CASE_CONVERT:
4028 628370 : {
4029 628370 : tree _q30 = TREE_OPERAND (_p1, 0);
4030 628370 : switch (TREE_CODE (_q30))
4031 : {
4032 464671 : case ADDR_EXPR:
4033 464671 : {
4034 464671 : {
4035 464671 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
4036 464671 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
4037 464671 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
4038 : )
4039 : {
4040 464671 : {
4041 464671 : poly_int64 diff;
4042 464671 : if (ptr_difference_const (captures[1], captures[3], &diff)
4043 : )
4044 : {
4045 314568 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1385;
4046 314568 : {
4047 314568 : tree _r;
4048 314568 : _r = build_int_cst_type (type, diff);
4049 314568 : if (TREE_SIDE_EFFECTS (captures[0]))
4050 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4051 314568 : if (TREE_SIDE_EFFECTS (captures[3]))
4052 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
4053 314568 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 954, __FILE__, __LINE__, true);
4054 314568 : return _r;
4055 : }
4056 0 : next_after_fail1385:;
4057 : }
4058 : }
4059 : }
4060 : }
4061 150103 : break;
4062 : }
4063 : default:;
4064 : }
4065 : break;
4066 : }
4067 8004 : case ADDR_EXPR:
4068 8004 : {
4069 8004 : {
4070 8004 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
4071 8004 : if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1]))
4072 8004 : && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3]))
4073 : )
4074 : {
4075 8004 : {
4076 8004 : poly_int64 diff;
4077 8004 : if (ptr_difference_const (captures[1], captures[3], &diff)
4078 : )
4079 : {
4080 76 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1386;
4081 76 : {
4082 76 : tree _r;
4083 76 : _r = build_int_cst_type (type, diff);
4084 76 : if (TREE_SIDE_EFFECTS (captures[0]))
4085 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4086 76 : if (TREE_SIDE_EFFECTS (captures[2]))
4087 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4088 76 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 954, __FILE__, __LINE__, true);
4089 76 : return _r;
4090 : }
4091 0 : next_after_fail1386:;
4092 : }
4093 : }
4094 : }
4095 : }
4096 7928 : break;
4097 : }
4098 2615108 : default:;
4099 : }
4100 2615108 : switch (TREE_CODE (_p0))
4101 : {
4102 14596 : case POINTER_PLUS_EXPR:
4103 14596 : {
4104 14596 : tree _q20 = TREE_OPERAND (_p0, 0);
4105 14596 : tree _q21 = TREE_OPERAND (_p0, 1);
4106 14596 : switch (TREE_CODE (_q20))
4107 : {
4108 65 : case ADDR_EXPR:
4109 65 : {
4110 65 : switch (TREE_CODE (_p1))
4111 : {
4112 0 : case POINTER_PLUS_EXPR:
4113 0 : {
4114 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4115 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4116 0 : switch (TREE_CODE (_q50))
4117 : {
4118 0 : case ADDR_EXPR:
4119 0 : {
4120 0 : {
4121 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
4122 0 : {
4123 0 : poly_int64 diff;
4124 0 : if (ptr_difference_const (captures[0], captures[2], &diff)
4125 : )
4126 : {
4127 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1387;
4128 0 : {
4129 0 : tree res_op0;
4130 0 : res_op0 = build_int_cst_type (type, diff);
4131 0 : tree res_op1;
4132 0 : {
4133 0 : tree _o1[1], _r1;
4134 0 : {
4135 0 : tree _o2[2], _r2;
4136 0 : _o2[0] = captures[1];
4137 0 : _o2[1] = captures[3];
4138 0 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
4139 0 : _o1[0] = _r2;
4140 : }
4141 0 : if (TREE_TYPE (_o1[0]) != type)
4142 : {
4143 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4144 : }
4145 : else
4146 : _r1 = _o1[0];
4147 0 : res_op1 = _r1;
4148 : }
4149 0 : tree _r;
4150 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
4151 0 : if (TREE_SIDE_EFFECTS (captures[0]))
4152 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4153 0 : if (TREE_SIDE_EFFECTS (captures[2]))
4154 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4155 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 955, __FILE__, __LINE__, true);
4156 0 : return _r;
4157 : }
4158 0 : next_after_fail1387:;
4159 : }
4160 : }
4161 : }
4162 0 : break;
4163 : }
4164 : default:;
4165 : }
4166 : break;
4167 : }
4168 : default:;
4169 : }
4170 : break;
4171 : }
4172 14596 : default:;
4173 : }
4174 14596 : switch (TREE_CODE (_p1))
4175 : {
4176 112 : case ADDR_EXPR:
4177 112 : {
4178 112 : {
4179 112 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4180 112 : {
4181 112 : poly_int64 diff;
4182 112 : if (ptr_difference_const (captures[0], captures[2], &diff)
4183 : )
4184 : {
4185 98 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1388;
4186 98 : {
4187 98 : tree res_op0;
4188 98 : res_op0 = build_int_cst_type (type, diff);
4189 98 : tree res_op1;
4190 98 : {
4191 98 : tree _o1[1], _r1;
4192 98 : _o1[0] = captures[1];
4193 98 : if (TREE_TYPE (_o1[0]) != type)
4194 : {
4195 98 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4196 : }
4197 : else
4198 : _r1 = _o1[0];
4199 98 : res_op1 = _r1;
4200 : }
4201 98 : tree _r;
4202 98 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
4203 98 : if (TREE_SIDE_EFFECTS (captures[0]))
4204 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4205 98 : if (TREE_SIDE_EFFECTS (captures[2]))
4206 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4207 98 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 956, __FILE__, __LINE__, true);
4208 98 : return _r;
4209 : }
4210 0 : next_after_fail1388:;
4211 : }
4212 : }
4213 : }
4214 14 : break;
4215 : }
4216 14498 : default:;
4217 : }
4218 14498 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
4219 : {
4220 10126 : {
4221 10126 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
4222 10126 : if (!TYPE_SATURATING (type)
4223 : )
4224 : {
4225 10126 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
4226 20252 : && !FIXED_POINT_TYPE_P (type)
4227 : )
4228 : {
4229 10126 : {
4230 10126 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
4231 10126 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1389;
4232 10126 : {
4233 10126 : tree res_op0;
4234 10126 : {
4235 10126 : tree _o1[1], _r1;
4236 10126 : _o1[0] = captures[1];
4237 10126 : if (TREE_TYPE (_o1[0]) != stype)
4238 : {
4239 10126 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o1[0]);
4240 : }
4241 : else
4242 : _r1 = _o1[0];
4243 10126 : res_op0 = _r1;
4244 : }
4245 10126 : tree _r;
4246 10126 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
4247 10126 : if (TREE_SIDE_EFFECTS (captures[2]))
4248 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4249 10126 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 957, __FILE__, __LINE__, true);
4250 10126 : return _r;
4251 : }
4252 0 : next_after_fail1389:;
4253 : }
4254 : }
4255 : }
4256 : }
4257 : }
4258 : break;
4259 : }
4260 1293 : case ADDR_EXPR:
4261 1293 : {
4262 1293 : switch (TREE_CODE (_p1))
4263 : {
4264 9 : case POINTER_PLUS_EXPR:
4265 9 : {
4266 9 : tree _q30 = TREE_OPERAND (_p1, 0);
4267 9 : tree _q31 = TREE_OPERAND (_p1, 1);
4268 9 : {
4269 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
4270 9 : {
4271 9 : poly_int64 diff;
4272 9 : if (ptr_difference_const (captures[0], captures[1], &diff)
4273 : )
4274 : {
4275 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1390;
4276 9 : {
4277 9 : tree res_op0;
4278 9 : res_op0 = build_int_cst_type (type, diff);
4279 9 : tree res_op1;
4280 9 : {
4281 9 : tree _o1[1], _r1;
4282 9 : _o1[0] = captures[2];
4283 9 : if (TREE_TYPE (_o1[0]) != type)
4284 : {
4285 9 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4286 : }
4287 : else
4288 : _r1 = _o1[0];
4289 9 : res_op1 = _r1;
4290 : }
4291 9 : tree _r;
4292 9 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
4293 9 : if (TREE_SIDE_EFFECTS (captures[0]))
4294 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4295 9 : if (TREE_SIDE_EFFECTS (captures[1]))
4296 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4297 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 958, __FILE__, __LINE__, true);
4298 9 : return _r;
4299 : }
4300 0 : next_after_fail1390:;
4301 : }
4302 : }
4303 : }
4304 0 : break;
4305 : }
4306 : default:;
4307 : }
4308 : break;
4309 : }
4310 2604875 : default:;
4311 : }
4312 2604875 : switch (TREE_CODE (_p1))
4313 : {
4314 209 : case POINTER_PLUS_EXPR:
4315 209 : {
4316 209 : tree _q30 = TREE_OPERAND (_p1, 0);
4317 209 : tree _q31 = TREE_OPERAND (_p1, 1);
4318 209 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
4319 : {
4320 124 : {
4321 124 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
4322 124 : if (!TYPE_SATURATING (type)
4323 : )
4324 : {
4325 124 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
4326 248 : && !FIXED_POINT_TYPE_P (type)
4327 : )
4328 : {
4329 124 : {
4330 124 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
4331 124 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1391;
4332 124 : {
4333 124 : tree res_op0;
4334 124 : {
4335 124 : tree _o1[1], _r1;
4336 124 : {
4337 124 : tree _o2[1], _r2;
4338 124 : _o2[0] = captures[1];
4339 124 : if (TREE_TYPE (_o2[0]) != stype)
4340 : {
4341 124 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
4342 : }
4343 : else
4344 : _r2 = _o2[0];
4345 124 : _o1[0] = _r2;
4346 : }
4347 124 : if (TREE_TYPE (_o1[0]) != type)
4348 : {
4349 124 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4350 : }
4351 : else
4352 : _r1 = _o1[0];
4353 124 : res_op0 = _r1;
4354 : }
4355 124 : tree _r;
4356 124 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
4357 124 : if (TREE_SIDE_EFFECTS (captures[2]))
4358 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
4359 124 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 959, __FILE__, __LINE__, true);
4360 124 : return _r;
4361 : }
4362 0 : next_after_fail1391:;
4363 : }
4364 : }
4365 : }
4366 : }
4367 : }
4368 : break;
4369 : }
4370 2604751 : default:;
4371 : }
4372 2604751 : switch (TREE_CODE (_p0))
4373 : {
4374 4372 : case POINTER_PLUS_EXPR:
4375 4372 : {
4376 4372 : tree _q20 = TREE_OPERAND (_p0, 0);
4377 4372 : tree _q21 = TREE_OPERAND (_p0, 1);
4378 4372 : switch (TREE_CODE (_p1))
4379 : {
4380 30 : case POINTER_PLUS_EXPR:
4381 30 : {
4382 30 : tree _q50 = TREE_OPERAND (_p1, 0);
4383 30 : tree _q51 = TREE_OPERAND (_p1, 1);
4384 30 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
4385 : {
4386 2 : {
4387 2 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
4388 2 : if (!TYPE_SATURATING (type)
4389 : )
4390 : {
4391 2 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
4392 4 : && !FIXED_POINT_TYPE_P (type)
4393 : )
4394 : {
4395 2 : {
4396 2 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
4397 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1392;
4398 2 : {
4399 2 : tree res_op0;
4400 2 : {
4401 2 : tree _o1[1], _r1;
4402 2 : {
4403 2 : tree _o2[1], _r2;
4404 2 : _o2[0] = captures[1];
4405 2 : if (TREE_TYPE (_o2[0]) != stype)
4406 : {
4407 2 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
4408 : }
4409 : else
4410 : _r2 = _o2[0];
4411 2 : _o1[0] = _r2;
4412 : }
4413 2 : if (TREE_TYPE (_o1[0]) != type)
4414 : {
4415 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4416 : }
4417 : else
4418 : _r1 = _o1[0];
4419 2 : res_op0 = _r1;
4420 : }
4421 2 : tree res_op1;
4422 2 : {
4423 2 : tree _o1[1], _r1;
4424 2 : {
4425 2 : tree _o2[1], _r2;
4426 2 : _o2[0] = captures[2];
4427 2 : if (TREE_TYPE (_o2[0]) != stype)
4428 : {
4429 2 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
4430 : }
4431 : else
4432 : _r2 = _o2[0];
4433 2 : _o1[0] = _r2;
4434 : }
4435 2 : if (TREE_TYPE (_o1[0]) != type)
4436 : {
4437 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4438 : }
4439 : else
4440 : _r1 = _o1[0];
4441 2 : res_op1 = _r1;
4442 : }
4443 2 : tree _r;
4444 2 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
4445 2 : if (TREE_SIDE_EFFECTS (captures[3]))
4446 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
4447 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 960, __FILE__, __LINE__, true);
4448 2 : return _r;
4449 : }
4450 0 : next_after_fail1392:;
4451 : }
4452 : }
4453 : }
4454 : }
4455 : }
4456 : break;
4457 : }
4458 : default:;
4459 : }
4460 : break;
4461 : }
4462 2604749 : default:;
4463 : }
4464 2604749 : if (integer_zerop (_p0))
4465 : {
4466 0 : {
4467 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
4468 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1393;
4469 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1393;
4470 0 : {
4471 0 : tree res_op0;
4472 0 : {
4473 0 : tree _o1[1], _r1;
4474 0 : _o1[0] = captures[0];
4475 0 : if (TREE_TYPE (_o1[0]) != type)
4476 : {
4477 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4478 : }
4479 : else
4480 : _r1 = _o1[0];
4481 0 : res_op0 = _r1;
4482 : }
4483 0 : tree _r;
4484 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
4485 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 961, __FILE__, __LINE__, true);
4486 0 : return _r;
4487 : }
4488 : next_after_fail1393:;
4489 : }
4490 : }
4491 : return NULL_TREE;
4492 : }
4493 :
4494 : tree
4495 2195490 : generic_simplify_FLOOR_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
4496 : {
4497 2195490 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4498 2195490 : if (integer_onep (_p1))
4499 : {
4500 768025 : {
4501 768025 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4502 768025 : tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4503 768025 : if (res) return res;
4504 : }
4505 : }
4506 1427465 : if (integer_zerop (_p0))
4507 : {
4508 4 : {
4509 4 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4510 4 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4511 4 : if (res) return res;
4512 : }
4513 : }
4514 1427461 : switch (TREE_CODE (_p1))
4515 : {
4516 975 : case SSA_NAME:
4517 975 : {
4518 975 : {
4519 975 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4520 975 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4521 975 : if (res) return res;
4522 : }
4523 975 : break;
4524 : }
4525 1427461 : default:;
4526 : }
4527 1427461 : if (integer_minus_onep (_p1))
4528 : {
4529 229 : {
4530 229 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4531 229 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4532 229 : if (res) return res;
4533 : }
4534 : }
4535 1427400 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4536 : {
4537 0 : {
4538 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4539 0 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4540 0 : if (res) return res;
4541 : }
4542 : }
4543 1427400 : switch (TREE_CODE (_p1))
4544 : {
4545 0 : case ABS_EXPR:
4546 0 : {
4547 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4548 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4549 : {
4550 0 : {
4551 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4552 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4553 0 : if (res) return res;
4554 : }
4555 : }
4556 : break;
4557 : }
4558 1427400 : default:;
4559 : }
4560 1427400 : switch (TREE_CODE (_p0))
4561 : {
4562 0 : case ABS_EXPR:
4563 0 : {
4564 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4565 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4566 : {
4567 0 : {
4568 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4569 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4570 0 : if (res) return res;
4571 : }
4572 : }
4573 : break;
4574 : }
4575 1427400 : default:;
4576 : }
4577 1427400 : switch (TREE_CODE (_p1))
4578 : {
4579 0 : case NEGATE_EXPR:
4580 0 : {
4581 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4582 0 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4583 : {
4584 0 : {
4585 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4586 0 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4587 0 : if (res) return res;
4588 : }
4589 : }
4590 : break;
4591 : }
4592 1427400 : default:;
4593 : }
4594 1427400 : switch (TREE_CODE (_p0))
4595 : {
4596 296 : case NEGATE_EXPR:
4597 296 : {
4598 296 : tree _q20 = TREE_OPERAND (_p0, 0);
4599 296 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4600 : {
4601 0 : {
4602 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4603 0 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4604 0 : if (res) return res;
4605 : }
4606 : }
4607 : break;
4608 : }
4609 1427400 : default:;
4610 : }
4611 1427400 : {
4612 1427400 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4613 1427400 : tree res = generic_simplify_325 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, TRUNC_DIV_EXPR);
4614 1427400 : if (res) return res;
4615 : }
4616 5568 : switch (TREE_CODE (_p0))
4617 : {
4618 388 : CASE_CONVERT:
4619 388 : {
4620 388 : tree _q20 = TREE_OPERAND (_p0, 0);
4621 388 : switch (TREE_CODE (_q20))
4622 : {
4623 0 : case BIT_AND_EXPR:
4624 0 : {
4625 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4626 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4627 0 : switch (TREE_CODE (_q31))
4628 : {
4629 0 : case INTEGER_CST:
4630 0 : {
4631 0 : switch (TREE_CODE (_p1))
4632 : {
4633 0 : case INTEGER_CST:
4634 0 : {
4635 0 : {
4636 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
4637 0 : tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4638 0 : if (res) return res;
4639 : }
4640 0 : break;
4641 : }
4642 : default:;
4643 : }
4644 : break;
4645 : }
4646 : default:;
4647 : }
4648 : break;
4649 : }
4650 : default:;
4651 : }
4652 : break;
4653 : }
4654 0 : case BIT_AND_EXPR:
4655 0 : {
4656 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4657 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4658 0 : switch (TREE_CODE (_q21))
4659 : {
4660 0 : case INTEGER_CST:
4661 0 : {
4662 0 : switch (TREE_CODE (_p1))
4663 : {
4664 0 : case INTEGER_CST:
4665 0 : {
4666 0 : {
4667 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4668 0 : tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4669 0 : if (res) return res;
4670 : }
4671 0 : break;
4672 : }
4673 : default:;
4674 : }
4675 : break;
4676 : }
4677 : default:;
4678 : }
4679 : break;
4680 : }
4681 0 : case MULT_EXPR:
4682 0 : {
4683 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4684 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4685 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4686 : {
4687 0 : {
4688 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4689 0 : tree res = generic_simplify_323 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4690 0 : if (res) return res;
4691 : }
4692 : }
4693 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4694 : {
4695 0 : {
4696 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
4697 0 : tree res = generic_simplify_323 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4698 0 : if (res) return res;
4699 : }
4700 : }
4701 0 : switch (TREE_CODE (_q21))
4702 : {
4703 0 : case INTEGER_CST:
4704 0 : {
4705 0 : switch (TREE_CODE (_p1))
4706 : {
4707 0 : case MULT_EXPR:
4708 0 : {
4709 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4710 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4711 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4712 : {
4713 0 : switch (TREE_CODE (_q51))
4714 : {
4715 0 : case INTEGER_CST:
4716 0 : {
4717 0 : {
4718 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
4719 0 : tree res = generic_simplify_324 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
4720 0 : if (res) return res;
4721 : }
4722 0 : break;
4723 : }
4724 : default:;
4725 : }
4726 : }
4727 : break;
4728 : }
4729 : default:;
4730 : }
4731 : break;
4732 : }
4733 : default:;
4734 : }
4735 : break;
4736 : }
4737 0 : case VEC_COND_EXPR:
4738 0 : {
4739 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4740 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4741 0 : tree _q22 = TREE_OPERAND (_p0, 2);
4742 0 : switch (TREE_CODE (_p1))
4743 : {
4744 0 : case VEC_COND_EXPR:
4745 0 : {
4746 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4747 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4748 0 : tree _q62 = TREE_OPERAND (_p1, 2);
4749 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4750 : {
4751 0 : {
4752 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
4753 0 : if (VECTOR_TYPE_P (type)
4754 0 : && (TREE_CODE_CLASS (FLOOR_DIV_EXPR) != tcc_comparison
4755 : || types_match (type, TREE_TYPE (captures[2]))
4756 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4757 : || (optimize_vectors_before_lowering_p ()
4758 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4759 : )
4760 : {
4761 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1585;
4762 0 : {
4763 0 : tree res_op0;
4764 0 : res_op0 = captures[1];
4765 0 : tree res_op1;
4766 0 : {
4767 0 : tree _o1[2], _r1;
4768 0 : _o1[0] = captures[2];
4769 0 : _o1[1] = captures[5];
4770 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4771 0 : if (EXPR_P (_r1))
4772 0 : goto next_after_fail1585;
4773 0 : res_op1 = _r1;
4774 : }
4775 0 : tree res_op2;
4776 0 : {
4777 0 : tree _o1[2], _r1;
4778 0 : _o1[0] = captures[3];
4779 0 : _o1[1] = captures[6];
4780 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4781 0 : if (EXPR_P (_r1))
4782 0 : goto next_after_fail1585;
4783 0 : res_op2 = _r1;
4784 : }
4785 0 : tree _r;
4786 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4787 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
4788 0 : return _r;
4789 : }
4790 0 : next_after_fail1585:;
4791 : }
4792 : }
4793 : }
4794 : break;
4795 : }
4796 0 : default:;
4797 : }
4798 0 : {
4799 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
4800 0 : if (VECTOR_TYPE_P (type)
4801 0 : && (TREE_CODE_CLASS (FLOOR_DIV_EXPR) != tcc_comparison
4802 : || types_match (type, TREE_TYPE (captures[2]))
4803 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
4804 : || (optimize_vectors_before_lowering_p ()
4805 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
4806 : )
4807 : {
4808 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1586;
4809 0 : {
4810 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1586;
4811 0 : tree res_op0;
4812 0 : res_op0 = captures[1];
4813 0 : tree res_op1;
4814 0 : {
4815 0 : tree _o1[2], _r1;
4816 0 : _o1[0] = captures[2];
4817 0 : _o1[1] = unshare_expr (captures[4]);
4818 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4819 0 : if (EXPR_P (_r1))
4820 0 : goto next_after_fail1586;
4821 0 : res_op1 = _r1;
4822 : }
4823 0 : tree res_op2;
4824 0 : {
4825 0 : tree _o1[2], _r1;
4826 0 : _o1[0] = captures[3];
4827 0 : _o1[1] = captures[4];
4828 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4829 0 : if (EXPR_P (_r1))
4830 0 : goto next_after_fail1586;
4831 0 : res_op2 = _r1;
4832 : }
4833 0 : tree _r;
4834 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4835 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
4836 0 : return _r;
4837 : }
4838 0 : next_after_fail1586:;
4839 : }
4840 : }
4841 0 : break;
4842 : }
4843 5568 : default:;
4844 : }
4845 5568 : switch (TREE_CODE (_p1))
4846 : {
4847 0 : case VEC_COND_EXPR:
4848 0 : {
4849 0 : tree _q30 = TREE_OPERAND (_p1, 0);
4850 0 : tree _q31 = TREE_OPERAND (_p1, 1);
4851 0 : tree _q32 = TREE_OPERAND (_p1, 2);
4852 0 : {
4853 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
4854 0 : if (VECTOR_TYPE_P (type)
4855 0 : && (TREE_CODE_CLASS (FLOOR_DIV_EXPR) != tcc_comparison
4856 : || types_match (type, TREE_TYPE (captures[3]))
4857 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
4858 : || (optimize_vectors_before_lowering_p ()
4859 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
4860 : )
4861 : {
4862 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1587;
4863 0 : {
4864 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1587;
4865 0 : tree res_op0;
4866 0 : res_op0 = captures[2];
4867 0 : tree res_op1;
4868 0 : {
4869 0 : tree _o1[2], _r1;
4870 0 : _o1[0] = unshare_expr (captures[0]);
4871 0 : _o1[1] = captures[3];
4872 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4873 0 : if (EXPR_P (_r1))
4874 0 : goto next_after_fail1587;
4875 0 : res_op1 = _r1;
4876 : }
4877 0 : tree res_op2;
4878 0 : {
4879 0 : tree _o1[2], _r1;
4880 0 : _o1[0] = captures[0];
4881 0 : _o1[1] = captures[4];
4882 0 : _r1 = fold_build2_loc (loc, FLOOR_DIV_EXPR, type, _o1[0], _o1[1]);
4883 0 : if (EXPR_P (_r1))
4884 0 : goto next_after_fail1587;
4885 0 : res_op2 = _r1;
4886 : }
4887 0 : tree _r;
4888 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
4889 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
4890 0 : return _r;
4891 : }
4892 0 : next_after_fail1587:;
4893 : }
4894 : }
4895 0 : break;
4896 : }
4897 : default:;
4898 : }
4899 : return NULL_TREE;
4900 : }
4901 :
4902 : tree
4903 855478 : generic_simplify_FLOOR_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
4904 : {
4905 855478 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4906 855478 : {
4907 855478 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4908 855478 : tree res = generic_simplify_325 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR, TRUNC_MOD_EXPR);
4909 855478 : if (res) return res;
4910 : }
4911 3561 : if (integer_zerop (_p0))
4912 : {
4913 0 : {
4914 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4915 0 : tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4916 0 : if (res) return res;
4917 : }
4918 : }
4919 3561 : if (integer_onep (_p1))
4920 : {
4921 0 : {
4922 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4923 0 : tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4924 0 : if (res) return res;
4925 : }
4926 : }
4927 3561 : if (integer_minus_onep (_p1))
4928 : {
4929 0 : {
4930 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4931 0 : tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4932 0 : if (res) return res;
4933 : }
4934 : }
4935 3561 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4936 : {
4937 0 : {
4938 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4939 0 : tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4940 0 : if (res) return res;
4941 : }
4942 : }
4943 3561 : switch (TREE_CODE (_p0))
4944 : {
4945 0 : case FLOOR_MOD_EXPR:
4946 0 : {
4947 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4948 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4949 0 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4950 : {
4951 0 : {
4952 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
4953 0 : tree res = generic_simplify_330 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4954 0 : if (res) return res;
4955 : }
4956 : }
4957 : break;
4958 : }
4959 4 : case MULT_EXPR:
4960 4 : {
4961 4 : tree _q20 = TREE_OPERAND (_p0, 0);
4962 4 : tree _q21 = TREE_OPERAND (_p0, 1);
4963 4 : switch (TREE_CODE (_q21))
4964 : {
4965 4 : case INTEGER_CST:
4966 4 : {
4967 4 : switch (TREE_CODE (_p1))
4968 : {
4969 4 : case INTEGER_CST:
4970 4 : {
4971 4 : {
4972 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4973 4 : tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
4974 4 : if (res) return res;
4975 : }
4976 4 : break;
4977 : }
4978 : default:;
4979 : }
4980 : break;
4981 : }
4982 : default:;
4983 : }
4984 : break;
4985 : }
4986 3561 : default:;
4987 : }
4988 3561 : switch (TREE_CODE (_p1))
4989 : {
4990 1 : CASE_CONVERT:
4991 1 : {
4992 1 : tree _q30 = TREE_OPERAND (_p1, 0);
4993 1 : {
4994 1 : tree _q30_pops[1];
4995 1 : if (tree_power_of_two_cand (_q30, _q30_pops))
4996 : {
4997 0 : tree _q40 = _q30_pops[0];
4998 0 : {
4999 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
5000 0 : tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
5001 0 : if (res) return res;
5002 : }
5003 : }
5004 : }
5005 1 : break;
5006 : }
5007 3561 : default:;
5008 : }
5009 3561 : {
5010 3561 : tree _p1_pops[1];
5011 3561 : if (tree_power_of_two_cand (_p1, _p1_pops))
5012 : {
5013 1778 : tree _q30 = _p1_pops[0];
5014 1778 : {
5015 1778 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
5016 1778 : tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
5017 1778 : if (res) return res;
5018 : }
5019 : }
5020 : }
5021 3521 : switch (TREE_CODE (_p0))
5022 : {
5023 0 : case VEC_COND_EXPR:
5024 0 : {
5025 0 : tree _q20 = TREE_OPERAND (_p0, 0);
5026 0 : tree _q21 = TREE_OPERAND (_p0, 1);
5027 0 : tree _q22 = TREE_OPERAND (_p0, 2);
5028 0 : switch (TREE_CODE (_p1))
5029 : {
5030 0 : case VEC_COND_EXPR:
5031 0 : {
5032 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5033 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5034 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5035 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5036 : {
5037 0 : {
5038 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
5039 0 : if (VECTOR_TYPE_P (type)
5040 0 : && (TREE_CODE_CLASS (FLOOR_MOD_EXPR) != tcc_comparison
5041 : || types_match (type, TREE_TYPE (captures[2]))
5042 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5043 : || (optimize_vectors_before_lowering_p ()
5044 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5045 : )
5046 : {
5047 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1594;
5048 0 : {
5049 0 : tree res_op0;
5050 0 : res_op0 = captures[1];
5051 0 : tree res_op1;
5052 0 : {
5053 0 : tree _o1[2], _r1;
5054 0 : _o1[0] = captures[2];
5055 0 : _o1[1] = captures[5];
5056 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5057 0 : if (EXPR_P (_r1))
5058 0 : goto next_after_fail1594;
5059 0 : res_op1 = _r1;
5060 : }
5061 0 : tree res_op2;
5062 0 : {
5063 0 : tree _o1[2], _r1;
5064 0 : _o1[0] = captures[3];
5065 0 : _o1[1] = captures[6];
5066 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5067 0 : if (EXPR_P (_r1))
5068 0 : goto next_after_fail1594;
5069 0 : res_op2 = _r1;
5070 : }
5071 0 : tree _r;
5072 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5073 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
5074 0 : return _r;
5075 : }
5076 0 : next_after_fail1594:;
5077 : }
5078 : }
5079 : }
5080 : break;
5081 : }
5082 0 : default:;
5083 : }
5084 0 : {
5085 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5086 0 : if (VECTOR_TYPE_P (type)
5087 0 : && (TREE_CODE_CLASS (FLOOR_MOD_EXPR) != tcc_comparison
5088 : || types_match (type, TREE_TYPE (captures[2]))
5089 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5090 : || (optimize_vectors_before_lowering_p ()
5091 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5092 : )
5093 : {
5094 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1595;
5095 0 : {
5096 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1595;
5097 0 : tree res_op0;
5098 0 : res_op0 = captures[1];
5099 0 : tree res_op1;
5100 0 : {
5101 0 : tree _o1[2], _r1;
5102 0 : _o1[0] = captures[2];
5103 0 : _o1[1] = unshare_expr (captures[4]);
5104 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5105 0 : if (EXPR_P (_r1))
5106 0 : goto next_after_fail1595;
5107 0 : res_op1 = _r1;
5108 : }
5109 0 : tree res_op2;
5110 0 : {
5111 0 : tree _o1[2], _r1;
5112 0 : _o1[0] = captures[3];
5113 0 : _o1[1] = captures[4];
5114 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5115 0 : if (EXPR_P (_r1))
5116 0 : goto next_after_fail1595;
5117 0 : res_op2 = _r1;
5118 : }
5119 0 : tree _r;
5120 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5121 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
5122 0 : return _r;
5123 : }
5124 0 : next_after_fail1595:;
5125 : }
5126 : }
5127 0 : break;
5128 : }
5129 3521 : default:;
5130 : }
5131 3521 : switch (TREE_CODE (_p1))
5132 : {
5133 0 : case VEC_COND_EXPR:
5134 0 : {
5135 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5136 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5137 0 : tree _q32 = TREE_OPERAND (_p1, 2);
5138 0 : {
5139 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
5140 0 : if (VECTOR_TYPE_P (type)
5141 0 : && (TREE_CODE_CLASS (FLOOR_MOD_EXPR) != tcc_comparison
5142 : || types_match (type, TREE_TYPE (captures[3]))
5143 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
5144 : || (optimize_vectors_before_lowering_p ()
5145 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
5146 : )
5147 : {
5148 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1596;
5149 0 : {
5150 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1596;
5151 0 : tree res_op0;
5152 0 : res_op0 = captures[2];
5153 0 : tree res_op1;
5154 0 : {
5155 0 : tree _o1[2], _r1;
5156 0 : _o1[0] = unshare_expr (captures[0]);
5157 0 : _o1[1] = captures[3];
5158 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5159 0 : if (EXPR_P (_r1))
5160 0 : goto next_after_fail1596;
5161 0 : res_op1 = _r1;
5162 : }
5163 0 : tree res_op2;
5164 0 : {
5165 0 : tree _o1[2], _r1;
5166 0 : _o1[0] = captures[0];
5167 0 : _o1[1] = captures[4];
5168 0 : _r1 = fold_build2_loc (loc, FLOOR_MOD_EXPR, type, _o1[0], _o1[1]);
5169 0 : if (EXPR_P (_r1))
5170 0 : goto next_after_fail1596;
5171 0 : res_op2 = _r1;
5172 : }
5173 0 : tree _r;
5174 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5175 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
5176 0 : return _r;
5177 : }
5178 0 : next_after_fail1596:;
5179 : }
5180 : }
5181 0 : break;
5182 : }
5183 : default:;
5184 : }
5185 : return NULL_TREE;
5186 : }
5187 :
5188 : tree
5189 17409668 : generic_simplify_LT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
5190 : {
5191 17409668 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
5192 17409668 : switch (TREE_CODE (_p0))
5193 : {
5194 2175 : case RDIV_EXPR:
5195 2175 : {
5196 2175 : tree _q20 = TREE_OPERAND (_p0, 0);
5197 2175 : tree _q21 = TREE_OPERAND (_p0, 1);
5198 2175 : switch (TREE_CODE (_q20))
5199 : {
5200 677 : case REAL_CST:
5201 677 : {
5202 677 : if (real_zerop (_p1))
5203 : {
5204 392 : {
5205 392 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5206 392 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
5207 392 : if (res) return res;
5208 : }
5209 : }
5210 : break;
5211 : }
5212 : default:;
5213 : }
5214 : break;
5215 : }
5216 2937 : case TRUNC_MOD_EXPR:
5217 2937 : {
5218 2937 : tree _q20 = TREE_OPERAND (_p0, 0);
5219 2937 : tree _q21 = TREE_OPERAND (_p0, 1);
5220 2937 : if (tree_expr_nonnegative_p (_q20))
5221 : {
5222 118 : if (tree_expr_nonnegative_p (_q21))
5223 : {
5224 68 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5225 : {
5226 1 : {
5227 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5228 1 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LT_EXPR);
5229 1 : if (res) return res;
5230 : }
5231 : }
5232 : }
5233 : }
5234 : break;
5235 : }
5236 140099 : case MULT_EXPR:
5237 140099 : {
5238 140099 : tree _q20 = TREE_OPERAND (_p0, 0);
5239 140099 : tree _q21 = TREE_OPERAND (_p0, 1);
5240 140099 : switch (TREE_CODE (_p1))
5241 : {
5242 50703 : case MULT_EXPR:
5243 50703 : {
5244 50703 : tree _q50 = TREE_OPERAND (_p1, 0);
5245 50703 : tree _q51 = TREE_OPERAND (_p1, 1);
5246 50703 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5247 : {
5248 10412 : {
5249 10412 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5250 10412 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LT_EXPR);
5251 10412 : if (res) return res;
5252 : }
5253 : }
5254 42329 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5255 : {
5256 0 : {
5257 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5258 0 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LT_EXPR);
5259 0 : if (res) return res;
5260 : }
5261 : }
5262 42329 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5263 : {
5264 0 : {
5265 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5266 0 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LT_EXPR);
5267 0 : if (res) return res;
5268 : }
5269 : }
5270 42329 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5271 : {
5272 1342 : {
5273 1342 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
5274 1342 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LT_EXPR);
5275 1342 : if (res) return res;
5276 : }
5277 : }
5278 : break;
5279 : }
5280 : default:;
5281 : }
5282 : break;
5283 : }
5284 3129477 : CASE_CONVERT:
5285 3129477 : {
5286 3129477 : tree _q20 = TREE_OPERAND (_p0, 0);
5287 3129477 : switch (TREE_CODE (_q20))
5288 : {
5289 107 : case EXACT_DIV_EXPR:
5290 107 : {
5291 107 : tree _q30 = TREE_OPERAND (_q20, 0);
5292 107 : tree _q31 = TREE_OPERAND (_q20, 1);
5293 107 : switch (TREE_CODE (_q31))
5294 : {
5295 107 : case INTEGER_CST:
5296 107 : {
5297 107 : switch (TREE_CODE (_p1))
5298 : {
5299 37 : CASE_CONVERT:
5300 37 : {
5301 37 : tree _q60 = TREE_OPERAND (_p1, 0);
5302 37 : switch (TREE_CODE (_q60))
5303 : {
5304 0 : case EXACT_DIV_EXPR:
5305 0 : {
5306 0 : tree _q70 = TREE_OPERAND (_q60, 0);
5307 0 : tree _q71 = TREE_OPERAND (_q60, 1);
5308 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
5309 : {
5310 0 : {
5311 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
5312 0 : tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, LT_EXPR);
5313 0 : if (res) return res;
5314 : }
5315 : }
5316 : break;
5317 : }
5318 : default:;
5319 : }
5320 : break;
5321 : }
5322 : default:;
5323 : }
5324 : break;
5325 : }
5326 : default:;
5327 : }
5328 : break;
5329 : }
5330 : default:;
5331 : }
5332 : break;
5333 : }
5334 1047 : case EXACT_DIV_EXPR:
5335 1047 : {
5336 1047 : tree _q20 = TREE_OPERAND (_p0, 0);
5337 1047 : tree _q21 = TREE_OPERAND (_p0, 1);
5338 1047 : switch (TREE_CODE (_q21))
5339 : {
5340 1047 : case INTEGER_CST:
5341 1047 : {
5342 1047 : switch (TREE_CODE (_p1))
5343 : {
5344 2 : case EXACT_DIV_EXPR:
5345 2 : {
5346 2 : tree _q50 = TREE_OPERAND (_p1, 0);
5347 2 : tree _q51 = TREE_OPERAND (_p1, 1);
5348 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5349 : {
5350 0 : {
5351 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
5352 0 : tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, LT_EXPR);
5353 0 : if (res) return res;
5354 : }
5355 : }
5356 : break;
5357 : }
5358 : default:;
5359 : }
5360 : break;
5361 : }
5362 : default:;
5363 : }
5364 : break;
5365 : }
5366 12589 : case TRUNC_DIV_EXPR:
5367 12589 : {
5368 12589 : tree _q20 = TREE_OPERAND (_p0, 0);
5369 12589 : tree _q21 = TREE_OPERAND (_p0, 1);
5370 12589 : switch (TREE_CODE (_q21))
5371 : {
5372 3490 : case INTEGER_CST:
5373 3490 : {
5374 3490 : switch (TREE_CODE (_p1))
5375 : {
5376 1457 : case INTEGER_CST:
5377 1457 : {
5378 1457 : {
5379 1457 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
5380 1457 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, LT_EXPR);
5381 1457 : if (res) return res;
5382 : }
5383 698 : break;
5384 : }
5385 : default:;
5386 : }
5387 : break;
5388 : }
5389 : default:;
5390 : }
5391 : break;
5392 : }
5393 2331593 : case PLUS_EXPR:
5394 2331593 : {
5395 2331593 : tree _q20 = TREE_OPERAND (_p0, 0);
5396 2331593 : tree _q21 = TREE_OPERAND (_p0, 1);
5397 2331593 : switch (TREE_CODE (_p1))
5398 : {
5399 345537 : case PLUS_EXPR:
5400 345537 : {
5401 345537 : tree _q50 = TREE_OPERAND (_p1, 0);
5402 345537 : tree _q51 = TREE_OPERAND (_p1, 1);
5403 345537 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5404 : {
5405 138499 : {
5406 138499 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5407 138499 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LT_EXPR);
5408 138499 : if (res) return res;
5409 : }
5410 : }
5411 285264 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5412 : {
5413 26 : {
5414 26 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5415 26 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LT_EXPR);
5416 26 : if (res) return res;
5417 : }
5418 : }
5419 285248 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5420 : {
5421 48 : {
5422 48 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5423 48 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LT_EXPR);
5424 48 : if (res) return res;
5425 : }
5426 : }
5427 285232 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5428 : {
5429 1790 : {
5430 1790 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
5431 1790 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LT_EXPR);
5432 1790 : if (res) return res;
5433 : }
5434 : }
5435 : break;
5436 : }
5437 2270911 : default:;
5438 : }
5439 2270911 : switch (TREE_CODE (_q21))
5440 : {
5441 1750002 : case INTEGER_CST:
5442 1750002 : {
5443 1750002 : switch (TREE_CODE (_p1))
5444 : {
5445 279608 : case PLUS_EXPR:
5446 279608 : {
5447 279608 : tree _q50 = TREE_OPERAND (_p1, 0);
5448 279608 : tree _q51 = TREE_OPERAND (_p1, 1);
5449 279608 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5450 : {
5451 78226 : {
5452 78226 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5453 78226 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, LT_EXPR);
5454 78226 : if (res) return res;
5455 : }
5456 : }
5457 : break;
5458 : }
5459 : default:;
5460 : }
5461 : break;
5462 : }
5463 2270906 : default:;
5464 : }
5465 2270906 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5466 : {
5467 202617 : {
5468 202617 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
5469 202617 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LT_EXPR);
5470 202617 : if (res) return res;
5471 : }
5472 : }
5473 2095252 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5474 : {
5475 55951 : {
5476 55951 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
5477 55951 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LT_EXPR);
5478 55951 : if (res) return res;
5479 : }
5480 : }
5481 : break;
5482 : }
5483 188249 : case MINUS_EXPR:
5484 188249 : {
5485 188249 : tree _q20 = TREE_OPERAND (_p0, 0);
5486 188249 : tree _q21 = TREE_OPERAND (_p0, 1);
5487 188249 : switch (TREE_CODE (_p1))
5488 : {
5489 5228 : case MINUS_EXPR:
5490 5228 : {
5491 5228 : tree _q50 = TREE_OPERAND (_p1, 0);
5492 5228 : tree _q51 = TREE_OPERAND (_p1, 1);
5493 5228 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5494 : {
5495 4 : {
5496 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5497 4 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LT_EXPR);
5498 4 : if (res) return res;
5499 : }
5500 : }
5501 5228 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5502 : {
5503 215 : {
5504 215 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5505 215 : tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, LT_EXPR);
5506 215 : if (res) return res;
5507 : }
5508 : }
5509 : break;
5510 : }
5511 : default:;
5512 : }
5513 : break;
5514 : }
5515 109101 : case POINTER_DIFF_EXPR:
5516 109101 : {
5517 109101 : tree _q20 = TREE_OPERAND (_p0, 0);
5518 109101 : tree _q21 = TREE_OPERAND (_p0, 1);
5519 109101 : switch (TREE_CODE (_p1))
5520 : {
5521 430 : case POINTER_DIFF_EXPR:
5522 430 : {
5523 430 : tree _q50 = TREE_OPERAND (_p1, 0);
5524 430 : tree _q51 = TREE_OPERAND (_p1, 1);
5525 430 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5526 : {
5527 0 : {
5528 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
5529 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LT_EXPR);
5530 0 : if (res) return res;
5531 : }
5532 : }
5533 430 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5534 : {
5535 0 : {
5536 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
5537 0 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, LT_EXPR);
5538 0 : if (res) return res;
5539 : }
5540 : }
5541 : break;
5542 : }
5543 : default:;
5544 : }
5545 : break;
5546 : }
5547 17163788 : default:;
5548 : }
5549 17163788 : switch (TREE_CODE (_p1))
5550 : {
5551 354478 : case PLUS_EXPR:
5552 354478 : {
5553 354478 : tree _q30 = TREE_OPERAND (_p1, 0);
5554 354478 : tree _q31 = TREE_OPERAND (_p1, 1);
5555 354478 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5556 : {
5557 120 : {
5558 120 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
5559 120 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GT_EXPR);
5560 120 : if (res) return res;
5561 : }
5562 : }
5563 354358 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5564 : {
5565 81 : {
5566 81 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
5567 81 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GT_EXPR);
5568 81 : if (res) return res;
5569 : }
5570 : }
5571 : break;
5572 : }
5573 23712 : case MINUS_EXPR:
5574 23712 : {
5575 23712 : tree _q30 = TREE_OPERAND (_p1, 0);
5576 23712 : tree _q31 = TREE_OPERAND (_p1, 1);
5577 23712 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5578 : {
5579 0 : {
5580 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
5581 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, LT_EXPR);
5582 0 : if (res) return res;
5583 : }
5584 : }
5585 : break;
5586 : }
5587 17163668 : default:;
5588 : }
5589 17163668 : switch (TREE_CODE (_p0))
5590 : {
5591 188249 : case MINUS_EXPR:
5592 188249 : {
5593 188249 : tree _q20 = TREE_OPERAND (_p0, 0);
5594 188249 : tree _q21 = TREE_OPERAND (_p0, 1);
5595 188249 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5596 : {
5597 3356 : {
5598 3356 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
5599 3356 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, GT_EXPR);
5600 3356 : if (res) return res;
5601 : }
5602 : }
5603 : break;
5604 : }
5605 1470 : case BIT_IOR_EXPR:
5606 1470 : {
5607 1470 : tree _q20 = TREE_OPERAND (_p0, 0);
5608 1470 : tree _q21 = TREE_OPERAND (_p0, 1);
5609 1470 : if (tree_expr_nonnegative_p (_q20))
5610 : {
5611 554 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5612 : {
5613 0 : {
5614 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5615 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
5616 0 : if (res) return res;
5617 : }
5618 : }
5619 : }
5620 1470 : if (tree_expr_nonnegative_p (_q21))
5621 : {
5622 812 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5623 : {
5624 0 : {
5625 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5626 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
5627 0 : if (res) return res;
5628 : }
5629 : }
5630 : }
5631 : break;
5632 : }
5633 17161244 : default:;
5634 : }
5635 17161244 : switch (TREE_CODE (_p1))
5636 : {
5637 458 : case BIT_AND_EXPR:
5638 458 : {
5639 458 : tree _q30 = TREE_OPERAND (_p1, 0);
5640 458 : tree _q31 = TREE_OPERAND (_p1, 1);
5641 458 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5642 : {
5643 0 : if (tree_expr_nonnegative_p (_q30))
5644 : {
5645 0 : {
5646 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
5647 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
5648 0 : if (res) return res;
5649 : }
5650 : }
5651 : }
5652 458 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5653 : {
5654 0 : if (tree_expr_nonnegative_p (_q31))
5655 : {
5656 0 : {
5657 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5658 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
5659 0 : if (res) return res;
5660 : }
5661 : }
5662 : }
5663 : break;
5664 : }
5665 17161244 : default:;
5666 : }
5667 17161244 : switch (TREE_CODE (_p0))
5668 : {
5669 10195 : case MAX_EXPR:
5670 10195 : {
5671 10195 : tree _q20 = TREE_OPERAND (_p0, 0);
5672 10195 : tree _q21 = TREE_OPERAND (_p0, 1);
5673 10195 : switch (TREE_CODE (_p1))
5674 : {
5675 8 : case MIN_EXPR:
5676 8 : {
5677 8 : tree _q50 = TREE_OPERAND (_p1, 0);
5678 8 : tree _q51 = TREE_OPERAND (_p1, 1);
5679 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5680 : {
5681 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5682 : {
5683 0 : {
5684 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5685 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, GT_EXPR);
5686 0 : if (res) return res;
5687 : }
5688 : }
5689 : }
5690 : break;
5691 : }
5692 : default:;
5693 : }
5694 : break;
5695 : }
5696 9775 : case MIN_EXPR:
5697 9775 : {
5698 9775 : tree _q20 = TREE_OPERAND (_p0, 0);
5699 9775 : tree _q21 = TREE_OPERAND (_p0, 1);
5700 9775 : switch (TREE_CODE (_p1))
5701 : {
5702 0 : case MAX_EXPR:
5703 0 : {
5704 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5705 0 : tree _q51 = TREE_OPERAND (_p1, 1);
5706 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5707 : {
5708 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5709 : {
5710 0 : {
5711 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5712 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
5713 0 : if (res) return res;
5714 : }
5715 : }
5716 : }
5717 : break;
5718 : }
5719 9775 : default:;
5720 : }
5721 9775 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5722 : {
5723 1 : {
5724 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5725 1 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
5726 1 : if (res) return res;
5727 : }
5728 : }
5729 9774 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5730 : {
5731 5 : {
5732 5 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5733 5 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
5734 5 : if (res) return res;
5735 : }
5736 : }
5737 : break;
5738 : }
5739 17161241 : default:;
5740 : }
5741 17161241 : switch (TREE_CODE (_p1))
5742 : {
5743 1372 : case MAX_EXPR:
5744 1372 : {
5745 1372 : tree _q30 = TREE_OPERAND (_p1, 0);
5746 1372 : tree _q31 = TREE_OPERAND (_p1, 1);
5747 1372 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5748 : {
5749 0 : {
5750 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
5751 0 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
5752 0 : if (res) return res;
5753 : }
5754 : }
5755 1372 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5756 : {
5757 0 : {
5758 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5759 0 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
5760 0 : if (res) return res;
5761 : }
5762 : }
5763 : break;
5764 : }
5765 892 : case MIN_EXPR:
5766 892 : {
5767 892 : tree _q30 = TREE_OPERAND (_p1, 0);
5768 892 : tree _q31 = TREE_OPERAND (_p1, 1);
5769 892 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5770 : {
5771 0 : {
5772 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
5773 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
5774 0 : if (res) return res;
5775 : }
5776 : }
5777 892 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5778 : {
5779 0 : {
5780 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
5781 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
5782 0 : if (res) return res;
5783 : }
5784 : }
5785 : break;
5786 : }
5787 17161241 : default:;
5788 : }
5789 17161241 : switch (TREE_CODE (_p0))
5790 : {
5791 10195 : case MAX_EXPR:
5792 10195 : {
5793 10195 : tree _q20 = TREE_OPERAND (_p0, 0);
5794 10195 : tree _q21 = TREE_OPERAND (_p0, 1);
5795 10195 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5796 : {
5797 1 : {
5798 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5799 1 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
5800 1 : if (res) return res;
5801 : }
5802 : }
5803 10194 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5804 : {
5805 1 : {
5806 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5807 1 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
5808 1 : if (res) return res;
5809 : }
5810 : }
5811 10193 : switch (TREE_CODE (_q21))
5812 : {
5813 9645 : case INTEGER_CST:
5814 9645 : {
5815 9645 : switch (TREE_CODE (_p1))
5816 : {
5817 1 : case INTEGER_CST:
5818 1 : {
5819 1 : {
5820 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5821 1 : tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, MAX_EXPR, LT_EXPR, BIT_AND_EXPR);
5822 1 : if (res) return res;
5823 : }
5824 0 : break;
5825 : }
5826 : default:;
5827 : }
5828 : break;
5829 : }
5830 : default:;
5831 : }
5832 : break;
5833 : }
5834 9772 : case MIN_EXPR:
5835 9772 : {
5836 9772 : tree _q20 = TREE_OPERAND (_p0, 0);
5837 9772 : tree _q21 = TREE_OPERAND (_p0, 1);
5838 9772 : switch (TREE_CODE (_q21))
5839 : {
5840 774 : case INTEGER_CST:
5841 774 : {
5842 774 : switch (TREE_CODE (_p1))
5843 : {
5844 2 : case INTEGER_CST:
5845 2 : {
5846 2 : {
5847 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5848 2 : tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, BIT_IOR_EXPR);
5849 2 : if (res) return res;
5850 : }
5851 0 : break;
5852 : }
5853 : default:;
5854 : }
5855 : break;
5856 : }
5857 : default:;
5858 : }
5859 : break;
5860 : }
5861 3129357 : CASE_CONVERT:
5862 3129357 : {
5863 3129357 : tree _q20 = TREE_OPERAND (_p0, 0);
5864 3129357 : switch (TREE_CODE (_q20))
5865 : {
5866 0 : case GE_EXPR:
5867 0 : {
5868 0 : tree _q30 = TREE_OPERAND (_q20, 0);
5869 0 : tree _q31 = TREE_OPERAND (_q20, 1);
5870 0 : if (tree_zero_one_valued_p (_q30))
5871 : {
5872 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
5873 : {
5874 0 : {
5875 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
5876 0 : tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, LT_EXPR);
5877 0 : if (res) return res;
5878 : }
5879 : }
5880 : }
5881 : break;
5882 : }
5883 : default:;
5884 : }
5885 : break;
5886 : }
5887 15 : case GE_EXPR:
5888 15 : {
5889 15 : tree _q20 = TREE_OPERAND (_p0, 0);
5890 15 : tree _q21 = TREE_OPERAND (_p0, 1);
5891 15 : if (tree_zero_one_valued_p (_q20))
5892 : {
5893 3 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5894 : {
5895 3 : {
5896 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5897 3 : tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, LT_EXPR);
5898 3 : if (res) return res;
5899 : }
5900 : }
5901 : }
5902 : break;
5903 : }
5904 904 : case VEC_COND_EXPR:
5905 904 : {
5906 904 : tree _q20 = TREE_OPERAND (_p0, 0);
5907 904 : tree _q21 = TREE_OPERAND (_p0, 1);
5908 904 : tree _q22 = TREE_OPERAND (_p0, 2);
5909 904 : switch (TREE_CODE (_p1))
5910 : {
5911 0 : case VEC_COND_EXPR:
5912 0 : {
5913 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5914 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5915 0 : tree _q62 = TREE_OPERAND (_p1, 2);
5916 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5917 : {
5918 0 : {
5919 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
5920 0 : if (VECTOR_TYPE_P (type)
5921 0 : && (TREE_CODE_CLASS (LT_EXPR) != tcc_comparison
5922 0 : || types_match (type, TREE_TYPE (captures[2]))
5923 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5924 : || (optimize_vectors_before_lowering_p ()
5925 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5926 : )
5927 : {
5928 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1635;
5929 0 : {
5930 0 : tree res_op0;
5931 0 : res_op0 = captures[1];
5932 0 : tree res_op1;
5933 0 : {
5934 0 : tree _o1[2], _r1;
5935 0 : _o1[0] = captures[2];
5936 0 : _o1[1] = captures[5];
5937 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
5938 0 : if (EXPR_P (_r1))
5939 0 : goto next_after_fail1635;
5940 0 : res_op1 = _r1;
5941 : }
5942 0 : tree res_op2;
5943 0 : {
5944 0 : tree _o1[2], _r1;
5945 0 : _o1[0] = captures[3];
5946 0 : _o1[1] = captures[6];
5947 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
5948 0 : if (EXPR_P (_r1))
5949 0 : goto next_after_fail1635;
5950 0 : res_op2 = _r1;
5951 : }
5952 0 : tree _r;
5953 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
5954 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
5955 0 : return _r;
5956 : }
5957 0 : next_after_fail1635:;
5958 : }
5959 : }
5960 : }
5961 : break;
5962 : }
5963 904 : default:;
5964 : }
5965 904 : {
5966 904 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
5967 904 : if (VECTOR_TYPE_P (type)
5968 904 : && (TREE_CODE_CLASS (LT_EXPR) != tcc_comparison
5969 904 : || types_match (type, TREE_TYPE (captures[2]))
5970 904 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
5971 : || (optimize_vectors_before_lowering_p ()
5972 1 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
5973 : )
5974 : {
5975 904 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1636;
5976 904 : {
5977 904 : if (! tree_invariant_p (captures[4])) goto next_after_fail1636;
5978 36 : tree res_op0;
5979 36 : res_op0 = captures[1];
5980 36 : tree res_op1;
5981 36 : {
5982 36 : tree _o1[2], _r1;
5983 36 : _o1[0] = captures[2];
5984 36 : _o1[1] = unshare_expr (captures[4]);
5985 36 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
5986 36 : if (EXPR_P (_r1))
5987 35 : goto next_after_fail1636;
5988 1 : res_op1 = _r1;
5989 : }
5990 1 : tree res_op2;
5991 1 : {
5992 1 : tree _o1[2], _r1;
5993 1 : _o1[0] = captures[3];
5994 1 : _o1[1] = captures[4];
5995 1 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
5996 1 : if (EXPR_P (_r1))
5997 0 : goto next_after_fail1636;
5998 1 : res_op2 = _r1;
5999 : }
6000 1 : tree _r;
6001 1 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
6002 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
6003 1 : return _r;
6004 : }
6005 903 : next_after_fail1636:;
6006 : }
6007 : }
6008 903 : break;
6009 : }
6010 17161232 : default:;
6011 : }
6012 17161232 : switch (TREE_CODE (_p1))
6013 : {
6014 68 : case VEC_COND_EXPR:
6015 68 : {
6016 68 : tree _q30 = TREE_OPERAND (_p1, 0);
6017 68 : tree _q31 = TREE_OPERAND (_p1, 1);
6018 68 : tree _q32 = TREE_OPERAND (_p1, 2);
6019 68 : {
6020 68 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
6021 68 : if (VECTOR_TYPE_P (type)
6022 68 : && (TREE_CODE_CLASS (LT_EXPR) != tcc_comparison
6023 68 : || types_match (type, TREE_TYPE (captures[3]))
6024 68 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
6025 : || (optimize_vectors_before_lowering_p ()
6026 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
6027 : )
6028 : {
6029 68 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1637;
6030 68 : {
6031 68 : if (! tree_invariant_p (captures[0])) goto next_after_fail1637;
6032 0 : tree res_op0;
6033 0 : res_op0 = captures[2];
6034 0 : tree res_op1;
6035 0 : {
6036 0 : tree _o1[2], _r1;
6037 0 : _o1[0] = unshare_expr (captures[0]);
6038 0 : _o1[1] = captures[3];
6039 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
6040 0 : if (EXPR_P (_r1))
6041 0 : goto next_after_fail1637;
6042 0 : res_op1 = _r1;
6043 : }
6044 0 : tree res_op2;
6045 0 : {
6046 0 : tree _o1[2], _r1;
6047 0 : _o1[0] = captures[0];
6048 0 : _o1[1] = captures[4];
6049 0 : _r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
6050 0 : if (EXPR_P (_r1))
6051 0 : goto next_after_fail1637;
6052 0 : res_op2 = _r1;
6053 : }
6054 0 : tree _r;
6055 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
6056 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
6057 0 : return _r;
6058 : }
6059 68 : next_after_fail1637:;
6060 : }
6061 : }
6062 68 : break;
6063 : }
6064 17161232 : default:;
6065 : }
6066 17161232 : if (uniform_integer_cst_p (_p1))
6067 : {
6068 6197931 : {
6069 6197931 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
6070 6197931 : tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
6071 6197931 : if (res) return res;
6072 : }
6073 : }
6074 14701786 : switch (TREE_CODE (_p0))
6075 : {
6076 124078 : case MULT_EXPR:
6077 124078 : {
6078 124078 : tree _q20 = TREE_OPERAND (_p0, 0);
6079 124078 : tree _q21 = TREE_OPERAND (_p0, 1);
6080 124078 : switch (TREE_CODE (_q21))
6081 : {
6082 67259 : case INTEGER_CST:
6083 67259 : {
6084 67259 : if (integer_zerop (_p1))
6085 : {
6086 3992 : {
6087 3992 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
6088 3992 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6089 3992 : if (res) return res;
6090 : }
6091 : }
6092 : break;
6093 : }
6094 : default:;
6095 : }
6096 : break;
6097 : }
6098 14699148 : default:;
6099 : }
6100 14699148 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
6101 : {
6102 3833 : {
6103 3833 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6104 3833 : tree res = generic_simplify_305 (loc, type, _p0, _p1, captures, LT_EXPR);
6105 3833 : if (res) return res;
6106 : }
6107 : }
6108 14695315 : switch (TREE_CODE (_p0))
6109 : {
6110 2488 : case BIT_NOT_EXPR:
6111 2488 : {
6112 2488 : tree _q20 = TREE_OPERAND (_p0, 0);
6113 2488 : switch (TREE_CODE (_p1))
6114 : {
6115 7 : case BIT_NOT_EXPR:
6116 7 : {
6117 7 : tree _q40 = TREE_OPERAND (_p1, 0);
6118 7 : {
6119 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
6120 7 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, LT_EXPR);
6121 7 : if (res) return res;
6122 : }
6123 0 : break;
6124 : }
6125 2481 : default:;
6126 : }
6127 2481 : {
6128 2481 : tree _p1_pops[1];
6129 2481 : if (tree_nop_convert (_p1, _p1_pops))
6130 : {
6131 24 : tree _q40 = _p1_pops[0];
6132 24 : switch (TREE_CODE (_q40))
6133 : {
6134 0 : case BIT_NOT_EXPR:
6135 0 : {
6136 0 : tree _q50 = TREE_OPERAND (_q40, 0);
6137 0 : {
6138 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
6139 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, LT_EXPR);
6140 0 : if (res) return res;
6141 : }
6142 0 : break;
6143 : }
6144 : default:;
6145 : }
6146 : }
6147 : }
6148 2481 : if (CONSTANT_CLASS_P (_p1))
6149 : {
6150 20 : {
6151 20 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6152 20 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6153 20 : if (res) return res;
6154 : }
6155 : }
6156 : break;
6157 : }
6158 14695288 : default:;
6159 : }
6160 14695288 : {
6161 14695288 : tree _p0_pops[1];
6162 14695288 : if (tree_nop_convert (_p0, _p0_pops))
6163 : {
6164 1734617 : tree _q20 = _p0_pops[0];
6165 1734617 : switch (TREE_CODE (_q20))
6166 : {
6167 0 : case BIT_NOT_EXPR:
6168 0 : {
6169 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6170 0 : switch (TREE_CODE (_p1))
6171 : {
6172 0 : case BIT_NOT_EXPR:
6173 0 : {
6174 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6175 0 : {
6176 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
6177 0 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, LT_EXPR);
6178 0 : if (res) return res;
6179 : }
6180 0 : break;
6181 : }
6182 0 : default:;
6183 : }
6184 0 : {
6185 0 : tree _p1_pops[1];
6186 0 : if (tree_nop_convert (_p1, _p1_pops))
6187 : {
6188 0 : tree _q50 = _p1_pops[0];
6189 0 : switch (TREE_CODE (_q50))
6190 : {
6191 0 : case BIT_NOT_EXPR:
6192 0 : {
6193 0 : tree _q60 = TREE_OPERAND (_q50, 0);
6194 0 : {
6195 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
6196 0 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, LT_EXPR);
6197 0 : if (res) return res;
6198 : }
6199 0 : break;
6200 : }
6201 : default:;
6202 : }
6203 : }
6204 : }
6205 0 : if (CONSTANT_CLASS_P (_p1))
6206 : {
6207 0 : {
6208 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
6209 0 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6210 0 : if (res) return res;
6211 : }
6212 : }
6213 : break;
6214 : }
6215 : default:;
6216 : }
6217 : }
6218 : }
6219 14695288 : switch (TREE_CODE (_p1))
6220 : {
6221 2929225 : case REAL_CST:
6222 2929225 : {
6223 2929225 : {
6224 2929225 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
6225 2929225 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, LT_EXPR);
6226 2929225 : if (res) return res;
6227 : }
6228 2929143 : break;
6229 : }
6230 14695206 : default:;
6231 : }
6232 14695206 : switch (TREE_CODE (_p0))
6233 : {
6234 1977839 : case PLUS_EXPR:
6235 1977839 : {
6236 1977839 : tree _q20 = TREE_OPERAND (_p0, 0);
6237 1977839 : tree _q21 = TREE_OPERAND (_p0, 1);
6238 1977839 : switch (TREE_CODE (_q21))
6239 : {
6240 567 : case REAL_CST:
6241 567 : {
6242 567 : switch (TREE_CODE (_p1))
6243 : {
6244 217 : case REAL_CST:
6245 217 : {
6246 217 : {
6247 217 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6248 217 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR);
6249 217 : if (res) return res;
6250 : }
6251 215 : break;
6252 : }
6253 : default:;
6254 : }
6255 : break;
6256 : }
6257 1465765 : case INTEGER_CST:
6258 1465765 : {
6259 1465765 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6260 : {
6261 18006 : {
6262 18006 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
6263 18006 : tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6264 18006 : if (res) return res;
6265 : }
6266 : }
6267 : break;
6268 : }
6269 : default:;
6270 : }
6271 : break;
6272 : }
6273 178620 : case MINUS_EXPR:
6274 178620 : {
6275 178620 : tree _q20 = TREE_OPERAND (_p0, 0);
6276 178620 : tree _q21 = TREE_OPERAND (_p0, 1);
6277 178620 : switch (TREE_CODE (_q21))
6278 : {
6279 210 : case REAL_CST:
6280 210 : {
6281 210 : switch (TREE_CODE (_p1))
6282 : {
6283 195 : case REAL_CST:
6284 195 : {
6285 195 : {
6286 195 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6287 195 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, MINUS_EXPR, LT_EXPR);
6288 195 : if (res) return res;
6289 : }
6290 195 : break;
6291 : }
6292 : default:;
6293 : }
6294 : break;
6295 : }
6296 178620 : default:;
6297 : }
6298 178620 : switch (TREE_CODE (_q20))
6299 : {
6300 18875 : case REAL_CST:
6301 18875 : {
6302 18875 : switch (TREE_CODE (_p1))
6303 : {
6304 18658 : case REAL_CST:
6305 18658 : {
6306 18658 : {
6307 18658 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6308 18658 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, LT_EXPR);
6309 18658 : if (res) return res;
6310 : }
6311 18648 : break;
6312 : }
6313 : default:;
6314 : }
6315 : break;
6316 : }
6317 : default:;
6318 : }
6319 : break;
6320 : }
6321 49116 : case FLOAT_EXPR:
6322 49116 : {
6323 49116 : tree _q20 = TREE_OPERAND (_p0, 0);
6324 49116 : switch (TREE_CODE (_p1))
6325 : {
6326 102 : case FLOAT_EXPR:
6327 102 : {
6328 102 : tree _q40 = TREE_OPERAND (_p1, 0);
6329 102 : {
6330 102 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
6331 102 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
6332 102 : if (res) return res;
6333 : }
6334 71 : break;
6335 : }
6336 656 : case REAL_CST:
6337 656 : {
6338 656 : {
6339 656 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6340 656 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
6341 656 : if (res) return res;
6342 : }
6343 552 : break;
6344 : }
6345 : default:;
6346 : }
6347 : break;
6348 : }
6349 698 : case EXACT_DIV_EXPR:
6350 698 : {
6351 698 : tree _q20 = TREE_OPERAND (_p0, 0);
6352 698 : tree _q21 = TREE_OPERAND (_p0, 1);
6353 698 : switch (TREE_CODE (_q21))
6354 : {
6355 698 : case INTEGER_CST:
6356 698 : {
6357 698 : switch (TREE_CODE (_p1))
6358 : {
6359 19 : case INTEGER_CST:
6360 19 : {
6361 19 : {
6362 19 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6363 19 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, LT_EXPR);
6364 19 : if (res) return res;
6365 : }
6366 0 : break;
6367 : }
6368 : default:;
6369 : }
6370 : break;
6371 : }
6372 : default:;
6373 : }
6374 : break;
6375 : }
6376 2690025 : CASE_CONVERT:
6377 2690025 : {
6378 2690025 : tree _q20 = TREE_OPERAND (_p0, 0);
6379 2690025 : switch (TREE_CODE (_q20))
6380 : {
6381 107 : case EXACT_DIV_EXPR:
6382 107 : {
6383 107 : tree _q30 = TREE_OPERAND (_q20, 0);
6384 107 : tree _q31 = TREE_OPERAND (_q20, 1);
6385 107 : switch (TREE_CODE (_q31))
6386 : {
6387 107 : case INTEGER_CST:
6388 107 : {
6389 107 : switch (TREE_CODE (_p1))
6390 : {
6391 0 : case INTEGER_CST:
6392 0 : {
6393 0 : {
6394 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
6395 0 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
6396 0 : if (res) return res;
6397 : }
6398 0 : break;
6399 : }
6400 : default:;
6401 : }
6402 : break;
6403 : }
6404 : default:;
6405 : }
6406 : break;
6407 : }
6408 2690025 : default:;
6409 : }
6410 2690025 : switch (TREE_CODE (_p1))
6411 : {
6412 1426647 : CASE_CONVERT:
6413 1426647 : {
6414 1426647 : tree _q40 = TREE_OPERAND (_p1, 0);
6415 1426647 : {
6416 1426647 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
6417 1426647 : tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, LT_EXPR);
6418 1426647 : if (res) return res;
6419 : }
6420 1167390 : break;
6421 : }
6422 2430768 : default:;
6423 : }
6424 2430768 : {
6425 2430768 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
6426 2430768 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, LT_EXPR);
6427 2430768 : if (res) return res;
6428 : }
6429 2050034 : switch (TREE_CODE (_q20))
6430 : {
6431 52210 : case ADDR_EXPR:
6432 52210 : {
6433 52210 : switch (TREE_CODE (_p1))
6434 : {
6435 51638 : CASE_CONVERT:
6436 51638 : {
6437 51638 : tree _q40 = TREE_OPERAND (_p1, 0);
6438 51638 : switch (TREE_CODE (_q40))
6439 : {
6440 51638 : case ADDR_EXPR:
6441 51638 : {
6442 51638 : {
6443 51638 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
6444 51638 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, LT_EXPR);
6445 51638 : if (res) return res;
6446 : }
6447 314 : break;
6448 : }
6449 : default:;
6450 : }
6451 : break;
6452 : }
6453 475 : case ADDR_EXPR:
6454 475 : {
6455 475 : {
6456 475 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6457 475 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, LT_EXPR);
6458 475 : if (res) return res;
6459 : }
6460 0 : break;
6461 : }
6462 : default:;
6463 : }
6464 : break;
6465 : }
6466 1998235 : default:;
6467 : }
6468 1998235 : if (uniform_integer_cst_p (_p1))
6469 : {
6470 296828 : {
6471 296828 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
6472 296828 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, LT_EXPR);
6473 296828 : if (res) return res;
6474 : }
6475 : }
6476 : break;
6477 : }
6478 2164 : case NEGATE_EXPR:
6479 2164 : {
6480 2164 : tree _q20 = TREE_OPERAND (_p0, 0);
6481 2164 : switch (TREE_CODE (_p1))
6482 : {
6483 0 : case NEGATE_EXPR:
6484 0 : {
6485 0 : tree _q40 = TREE_OPERAND (_p1, 0);
6486 0 : {
6487 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6488 0 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6489 0 : if (res) return res;
6490 : }
6491 0 : break;
6492 : }
6493 2164 : default:;
6494 : }
6495 2164 : if (CONSTANT_CLASS_P (_p1))
6496 : {
6497 187 : {
6498 187 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6499 187 : tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6500 187 : if (res) return res;
6501 : }
6502 : }
6503 : break;
6504 : }
6505 30186 : case ADDR_EXPR:
6506 30186 : {
6507 30186 : switch (TREE_CODE (_p1))
6508 : {
6509 0 : CASE_CONVERT:
6510 0 : {
6511 0 : tree _q30 = TREE_OPERAND (_p1, 0);
6512 0 : switch (TREE_CODE (_q30))
6513 : {
6514 0 : case ADDR_EXPR:
6515 0 : {
6516 0 : {
6517 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
6518 0 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, LT_EXPR);
6519 0 : if (res) return res;
6520 : }
6521 0 : break;
6522 : }
6523 : default:;
6524 : }
6525 : break;
6526 : }
6527 29721 : case ADDR_EXPR:
6528 29721 : {
6529 29721 : {
6530 29721 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
6531 29721 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, LT_EXPR);
6532 29721 : if (res) return res;
6533 : }
6534 628 : break;
6535 : }
6536 : default:;
6537 : }
6538 : break;
6539 : }
6540 1381551 : case CALL_EXPR:
6541 1381551 : switch (get_call_combined_fn (_p0))
6542 : {
6543 5 : case CFN_BUILT_IN_SQRTF:
6544 5 : if (call_expr_nargs (_p0) == 1)
6545 : {
6546 5 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6547 5 : switch (TREE_CODE (_p1))
6548 : {
6549 5 : case REAL_CST:
6550 5 : {
6551 5 : {
6552 5 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6553 5 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LT_EXPR);
6554 5 : if (res) return res;
6555 : }
6556 0 : break;
6557 : }
6558 0 : case CALL_EXPR:
6559 0 : switch (get_call_combined_fn (_p1))
6560 : {
6561 0 : case CFN_BUILT_IN_SQRTF:
6562 0 : if (call_expr_nargs (_p1) == 1)
6563 : {
6564 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6565 0 : {
6566 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6567 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LT_EXPR);
6568 0 : if (res) return res;
6569 : }
6570 : }
6571 : break;
6572 : default:;
6573 : }
6574 : break;
6575 : default:;
6576 : }
6577 : }
6578 : break;
6579 0 : case CFN_BUILT_IN_SQRTL:
6580 0 : if (call_expr_nargs (_p0) == 1)
6581 : {
6582 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6583 0 : switch (TREE_CODE (_p1))
6584 : {
6585 0 : case REAL_CST:
6586 0 : {
6587 0 : {
6588 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6589 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LT_EXPR);
6590 0 : if (res) return res;
6591 : }
6592 0 : break;
6593 : }
6594 0 : case CALL_EXPR:
6595 0 : switch (get_call_combined_fn (_p1))
6596 : {
6597 0 : case CFN_BUILT_IN_SQRTL:
6598 0 : if (call_expr_nargs (_p1) == 1)
6599 : {
6600 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6601 0 : {
6602 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6603 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LT_EXPR);
6604 0 : if (res) return res;
6605 : }
6606 : }
6607 : break;
6608 : default:;
6609 : }
6610 : break;
6611 : default:;
6612 : }
6613 : }
6614 : break;
6615 4 : case CFN_BUILT_IN_SQRT:
6616 4 : if (call_expr_nargs (_p0) == 1)
6617 : {
6618 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6619 4 : switch (TREE_CODE (_p1))
6620 : {
6621 4 : case REAL_CST:
6622 4 : {
6623 4 : {
6624 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6625 4 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LT_EXPR);
6626 4 : if (res) return res;
6627 : }
6628 1 : break;
6629 : }
6630 0 : case CALL_EXPR:
6631 0 : switch (get_call_combined_fn (_p1))
6632 : {
6633 0 : case CFN_BUILT_IN_SQRT:
6634 0 : if (call_expr_nargs (_p1) == 1)
6635 : {
6636 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6637 0 : {
6638 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6639 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LT_EXPR);
6640 0 : if (res) return res;
6641 : }
6642 : }
6643 : break;
6644 : default:;
6645 : }
6646 : break;
6647 : default:;
6648 : }
6649 : }
6650 : break;
6651 0 : case CFN_SQRT:
6652 0 : if (call_expr_nargs (_p0) == 1)
6653 : {
6654 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
6655 0 : switch (TREE_CODE (_p1))
6656 : {
6657 0 : case REAL_CST:
6658 0 : {
6659 0 : {
6660 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
6661 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_SQRT, LT_EXPR);
6662 0 : if (res) return res;
6663 : }
6664 0 : break;
6665 : }
6666 0 : case CALL_EXPR:
6667 0 : switch (get_call_combined_fn (_p1))
6668 : {
6669 0 : case CFN_SQRT:
6670 0 : if (call_expr_nargs (_p1) == 1)
6671 : {
6672 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
6673 0 : {
6674 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6675 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_SQRT, LT_EXPR);
6676 0 : if (res) return res;
6677 : }
6678 : }
6679 : break;
6680 : default:;
6681 : }
6682 : break;
6683 : default:;
6684 : }
6685 : }
6686 : break;
6687 : default:;
6688 : }
6689 : break;
6690 13953207 : default:;
6691 : }
6692 13953207 : switch (TREE_CODE (_p1))
6693 : {
6694 1916298 : CASE_CONVERT:
6695 1916298 : {
6696 1916298 : tree _q30 = TREE_OPERAND (_p1, 0);
6697 1916298 : switch (TREE_CODE (_q30))
6698 : {
6699 0 : case NE_EXPR:
6700 0 : {
6701 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6702 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6703 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
6704 : {
6705 0 : if (tree_expr_nonnegative_p (_q40))
6706 : {
6707 0 : if (integer_zerop (_q41))
6708 : {
6709 0 : {
6710 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6711 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1638;
6712 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1638;
6713 0 : {
6714 0 : tree _r;
6715 0 : _r = constant_boolean_node (false, type);
6716 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
6717 0 : return _r;
6718 : }
6719 0 : next_after_fail1638:;
6720 : }
6721 : }
6722 : }
6723 : }
6724 : break;
6725 : }
6726 : default:;
6727 : }
6728 : break;
6729 : }
6730 13953207 : default:;
6731 : }
6732 13953207 : if (uniform_integer_cst_p (_p1))
6733 : {
6734 3352617 : {
6735 3352617 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
6736 3352617 : tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, LT_EXPR);
6737 3352617 : if (res) return res;
6738 : }
6739 : }
6740 13499313 : switch (TREE_CODE (_p0))
6741 : {
6742 1994847 : CASE_CONVERT:
6743 1994847 : {
6744 1994847 : tree _q20 = TREE_OPERAND (_p0, 0);
6745 1994847 : switch (TREE_CODE (_q20))
6746 : {
6747 81966 : case PLUS_EXPR:
6748 81966 : {
6749 81966 : tree _q30 = TREE_OPERAND (_q20, 0);
6750 81966 : tree _q31 = TREE_OPERAND (_q20, 1);
6751 81966 : switch (TREE_CODE (_q30))
6752 : {
6753 56202 : CASE_CONVERT:
6754 56202 : {
6755 56202 : tree _q40 = TREE_OPERAND (_q30, 0);
6756 56202 : switch (TREE_CODE (_q31))
6757 : {
6758 56177 : case INTEGER_CST:
6759 56177 : {
6760 56177 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
6761 : {
6762 26 : {
6763 26 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
6764 26 : tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6765 26 : if (res) return res;
6766 : }
6767 : }
6768 : break;
6769 : }
6770 : default:;
6771 : }
6772 : break;
6773 : }
6774 : default:;
6775 : }
6776 : break;
6777 : }
6778 : default:;
6779 : }
6780 : break;
6781 : }
6782 13499287 : default:;
6783 : }
6784 13499287 : switch (TREE_CODE (_p1))
6785 : {
6786 1916298 : CASE_CONVERT:
6787 1916298 : {
6788 1916298 : tree _q30 = TREE_OPERAND (_p1, 0);
6789 1916298 : switch (TREE_CODE (_q30))
6790 : {
6791 22864 : case PLUS_EXPR:
6792 22864 : {
6793 22864 : tree _q40 = TREE_OPERAND (_q30, 0);
6794 22864 : tree _q41 = TREE_OPERAND (_q30, 1);
6795 22864 : switch (TREE_CODE (_q40))
6796 : {
6797 20684 : CASE_CONVERT:
6798 20684 : {
6799 20684 : tree _q50 = TREE_OPERAND (_q40, 0);
6800 20684 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
6801 : {
6802 0 : switch (TREE_CODE (_q41))
6803 : {
6804 0 : case INTEGER_CST:
6805 0 : {
6806 0 : {
6807 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
6808 0 : tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
6809 0 : if (res) return res;
6810 : }
6811 0 : break;
6812 : }
6813 : default:;
6814 : }
6815 : }
6816 : break;
6817 : }
6818 : default:;
6819 : }
6820 : break;
6821 : }
6822 : default:;
6823 : }
6824 : break;
6825 : }
6826 354358 : case PLUS_EXPR:
6827 354358 : {
6828 354358 : tree _q30 = TREE_OPERAND (_p1, 0);
6829 354358 : tree _q31 = TREE_OPERAND (_p1, 1);
6830 354358 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6831 : {
6832 81 : switch (TREE_CODE (_q31))
6833 : {
6834 65 : case INTEGER_CST:
6835 65 : {
6836 65 : {
6837 65 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
6838 65 : tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
6839 65 : if (res) return res;
6840 : }
6841 0 : break;
6842 : }
6843 : default:;
6844 : }
6845 : }
6846 : break;
6847 : }
6848 23712 : case MINUS_EXPR:
6849 23712 : {
6850 23712 : tree _q30 = TREE_OPERAND (_p1, 0);
6851 23712 : tree _q31 = TREE_OPERAND (_p1, 1);
6852 23712 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6853 : {
6854 0 : {
6855 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
6856 0 : tree res = generic_simplify_398 (loc, type, _p0, _p1, captures, GT_EXPR);
6857 0 : if (res) return res;
6858 : }
6859 : }
6860 : break;
6861 : }
6862 13499222 : default:;
6863 : }
6864 13499222 : switch (TREE_CODE (_p0))
6865 : {
6866 1938271 : case PLUS_EXPR:
6867 1938271 : {
6868 1938271 : tree _q20 = TREE_OPERAND (_p0, 0);
6869 1938271 : tree _q21 = TREE_OPERAND (_p0, 1);
6870 1938271 : switch (TREE_CODE (_q20))
6871 : {
6872 1347 : case MINUS_EXPR:
6873 1347 : {
6874 1347 : tree _q30 = TREE_OPERAND (_q20, 0);
6875 1347 : tree _q31 = TREE_OPERAND (_q20, 1);
6876 1347 : if (integer_minus_onep (_q21))
6877 : {
6878 49 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
6879 : {
6880 1 : {
6881 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
6882 1 : tree res = generic_simplify_399 (loc, type, _p0, _p1, captures, LT_EXPR);
6883 1 : if (res) return res;
6884 : }
6885 : }
6886 : }
6887 : break;
6888 : }
6889 : default:;
6890 : }
6891 : break;
6892 : }
6893 13499221 : default:;
6894 : }
6895 13499221 : switch (TREE_CODE (_p1))
6896 : {
6897 0 : case REALPART_EXPR:
6898 0 : {
6899 0 : tree _q30 = TREE_OPERAND (_p1, 0);
6900 0 : switch (TREE_CODE (_q30))
6901 : {
6902 0 : case CALL_EXPR:
6903 0 : switch (get_call_combined_fn (_q30))
6904 : {
6905 0 : case CFN_SUB_OVERFLOW:
6906 0 : if (call_expr_nargs (_q30) == 2)
6907 : {
6908 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
6909 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
6910 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
6911 : {
6912 0 : {
6913 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
6914 0 : tree res = generic_simplify_400 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
6915 0 : if (res) return res;
6916 : }
6917 : }
6918 : }
6919 : break;
6920 : default:;
6921 : }
6922 : break;
6923 : default:;
6924 : }
6925 : break;
6926 : }
6927 13499221 : default:;
6928 : }
6929 13499221 : switch (TREE_CODE (_p0))
6930 : {
6931 20 : case REALPART_EXPR:
6932 20 : {
6933 20 : tree _q20 = TREE_OPERAND (_p0, 0);
6934 20 : switch (TREE_CODE (_q20))
6935 : {
6936 0 : case CALL_EXPR:
6937 0 : switch (get_call_combined_fn (_q20))
6938 : {
6939 0 : case CFN_ADD_OVERFLOW:
6940 0 : if (call_expr_nargs (_q20) == 2)
6941 : {
6942 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
6943 0 : tree _q31 = CALL_EXPR_ARG (_q20, 1);
6944 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
6945 : {
6946 0 : {
6947 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
6948 0 : tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
6949 0 : if (res) return res;
6950 : }
6951 : }
6952 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
6953 : {
6954 0 : {
6955 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q31, _q30 };
6956 0 : tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
6957 0 : if (res) return res;
6958 : }
6959 : }
6960 : }
6961 : break;
6962 : default:;
6963 : }
6964 : break;
6965 : default:;
6966 : }
6967 : break;
6968 : }
6969 7353 : case TRUNC_DIV_EXPR:
6970 7353 : {
6971 7353 : tree _q20 = TREE_OPERAND (_p0, 0);
6972 7353 : tree _q21 = TREE_OPERAND (_p0, 1);
6973 7353 : if (integer_all_onesp (_q20))
6974 : {
6975 1058 : {
6976 1058 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _p1 };
6977 1058 : tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
6978 1058 : if (res) return res;
6979 : }
6980 : }
6981 : break;
6982 : }
6983 118094 : case MULT_EXPR:
6984 118094 : {
6985 118094 : tree _q20 = TREE_OPERAND (_p0, 0);
6986 118094 : tree _q21 = TREE_OPERAND (_p0, 1);
6987 118094 : switch (TREE_CODE (_q21))
6988 : {
6989 11641 : case REAL_CST:
6990 11641 : {
6991 11641 : switch (TREE_CODE (_p1))
6992 : {
6993 830 : case REAL_CST:
6994 830 : {
6995 830 : {
6996 830 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6997 830 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
6998 830 : if (res) return res;
6999 : }
7000 830 : break;
7001 : }
7002 : default:;
7003 : }
7004 : break;
7005 : }
7006 : default:;
7007 : }
7008 : break;
7009 : }
7010 1938270 : case PLUS_EXPR:
7011 1938270 : {
7012 1938270 : tree _q20 = TREE_OPERAND (_p0, 0);
7013 1938270 : tree _q21 = TREE_OPERAND (_p0, 1);
7014 1938270 : switch (TREE_CODE (_q21))
7015 : {
7016 1447414 : case INTEGER_CST:
7017 1447414 : {
7018 1447414 : switch (TREE_CODE (_p1))
7019 : {
7020 223826 : case INTEGER_CST:
7021 223826 : {
7022 223826 : {
7023 223826 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7024 223826 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, LT_EXPR, GT_EXPR);
7025 223826 : if (res) return res;
7026 : }
7027 15089 : break;
7028 : }
7029 : default:;
7030 : }
7031 : break;
7032 : }
7033 : default:;
7034 : }
7035 : break;
7036 : }
7037 178448 : case MINUS_EXPR:
7038 178448 : {
7039 178448 : tree _q20 = TREE_OPERAND (_p0, 0);
7040 178448 : tree _q21 = TREE_OPERAND (_p0, 1);
7041 178448 : switch (TREE_CODE (_q21))
7042 : {
7043 2 : case INTEGER_CST:
7044 2 : {
7045 2 : switch (TREE_CODE (_p1))
7046 : {
7047 0 : case INTEGER_CST:
7048 0 : {
7049 0 : {
7050 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7051 0 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, LT_EXPR, GT_EXPR);
7052 0 : if (res) return res;
7053 : }
7054 0 : break;
7055 : }
7056 : default:;
7057 : }
7058 : break;
7059 : }
7060 178448 : default:;
7061 : }
7062 178448 : switch (TREE_CODE (_q20))
7063 : {
7064 41173 : case INTEGER_CST:
7065 41173 : {
7066 41173 : switch (TREE_CODE (_p1))
7067 : {
7068 268 : case INTEGER_CST:
7069 268 : {
7070 268 : {
7071 268 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7072 268 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
7073 268 : if (res) return res;
7074 : }
7075 0 : break;
7076 : }
7077 : default:;
7078 : }
7079 : break;
7080 : }
7081 : default:;
7082 : }
7083 : break;
7084 : }
7085 1381528 : case CALL_EXPR:
7086 1381528 : switch (get_call_combined_fn (_p0))
7087 : {
7088 3 : case CFN_BUILT_IN_CTZ:
7089 3 : if (call_expr_nargs (_p0) == 1)
7090 : {
7091 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7092 3 : switch (TREE_CODE (_p1))
7093 : {
7094 3 : case INTEGER_CST:
7095 3 : {
7096 3 : {
7097 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7098 3 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZ);
7099 3 : if (res) return res;
7100 : }
7101 0 : break;
7102 : }
7103 : default:;
7104 : }
7105 : }
7106 : break;
7107 2 : case CFN_BUILT_IN_CTZL:
7108 2 : if (call_expr_nargs (_p0) == 1)
7109 : {
7110 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7111 2 : switch (TREE_CODE (_p1))
7112 : {
7113 2 : case INTEGER_CST:
7114 2 : {
7115 2 : {
7116 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7117 2 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZL);
7118 2 : if (res) return res;
7119 : }
7120 0 : break;
7121 : }
7122 : default:;
7123 : }
7124 : }
7125 : break;
7126 0 : case CFN_BUILT_IN_CTZIMAX:
7127 0 : if (call_expr_nargs (_p0) == 1)
7128 : {
7129 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7130 0 : switch (TREE_CODE (_p1))
7131 : {
7132 0 : case INTEGER_CST:
7133 0 : {
7134 0 : {
7135 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7136 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
7137 0 : if (res) return res;
7138 : }
7139 0 : break;
7140 : }
7141 : default:;
7142 : }
7143 : }
7144 : break;
7145 0 : case CFN_CTZ:
7146 0 : if (call_expr_nargs (_p0) == 1)
7147 : {
7148 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7149 0 : switch (TREE_CODE (_p1))
7150 : {
7151 0 : case INTEGER_CST:
7152 0 : {
7153 0 : {
7154 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7155 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_CTZ);
7156 0 : if (res) return res;
7157 : }
7158 0 : break;
7159 : }
7160 : default:;
7161 : }
7162 : }
7163 0 : if (call_expr_nargs (_p0) == 2)
7164 : {
7165 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7166 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
7167 0 : switch (TREE_CODE (_p1))
7168 : {
7169 0 : case INTEGER_CST:
7170 0 : {
7171 0 : {
7172 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7173 0 : tree res = generic_simplify_406 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
7174 0 : if (res) return res;
7175 : }
7176 0 : break;
7177 : }
7178 : default:;
7179 : }
7180 : }
7181 : break;
7182 2 : case CFN_BUILT_IN_CTZLL:
7183 2 : if (call_expr_nargs (_p0) == 1)
7184 : {
7185 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7186 2 : switch (TREE_CODE (_p1))
7187 : {
7188 2 : case INTEGER_CST:
7189 2 : {
7190 2 : {
7191 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
7192 2 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZLL);
7193 2 : if (res) return res;
7194 : }
7195 0 : break;
7196 : }
7197 : default:;
7198 : }
7199 : }
7200 : break;
7201 : default:;
7202 : }
7203 : break;
7204 : default:;
7205 : }
7206 : return NULL_TREE;
7207 : }
7208 :
7209 : tree
7210 20769690 : generic_simplify_GT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
7211 : {
7212 20769690 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
7213 20769690 : switch (TREE_CODE (_p0))
7214 : {
7215 1006 : case RDIV_EXPR:
7216 1006 : {
7217 1006 : tree _q20 = TREE_OPERAND (_p0, 0);
7218 1006 : tree _q21 = TREE_OPERAND (_p0, 1);
7219 1006 : switch (TREE_CODE (_q20))
7220 : {
7221 29 : case REAL_CST:
7222 29 : {
7223 29 : if (real_zerop (_p1))
7224 : {
7225 0 : {
7226 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7227 0 : tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
7228 0 : if (res) return res;
7229 : }
7230 : }
7231 : break;
7232 : }
7233 : default:;
7234 : }
7235 : break;
7236 : }
7237 20769690 : default:;
7238 : }
7239 20769690 : switch (TREE_CODE (_p1))
7240 : {
7241 94 : case TRUNC_MOD_EXPR:
7242 94 : {
7243 94 : tree _q30 = TREE_OPERAND (_p1, 0);
7244 94 : tree _q31 = TREE_OPERAND (_p1, 1);
7245 94 : if (tree_expr_nonnegative_p (_q30))
7246 : {
7247 10 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7248 : {
7249 0 : if (tree_expr_nonnegative_p (_q31))
7250 : {
7251 0 : {
7252 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
7253 0 : tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LT_EXPR);
7254 0 : if (res) return res;
7255 : }
7256 : }
7257 : }
7258 : }
7259 : break;
7260 : }
7261 20769690 : default:;
7262 : }
7263 20769690 : switch (TREE_CODE (_p0))
7264 : {
7265 224678 : case MULT_EXPR:
7266 224678 : {
7267 224678 : tree _q20 = TREE_OPERAND (_p0, 0);
7268 224678 : tree _q21 = TREE_OPERAND (_p0, 1);
7269 224678 : switch (TREE_CODE (_p1))
7270 : {
7271 7613 : case MULT_EXPR:
7272 7613 : {
7273 7613 : tree _q50 = TREE_OPERAND (_p1, 0);
7274 7613 : tree _q51 = TREE_OPERAND (_p1, 1);
7275 7613 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7276 : {
7277 590 : {
7278 590 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7279 590 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, GT_EXPR);
7280 590 : if (res) return res;
7281 : }
7282 : }
7283 7128 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7284 : {
7285 8 : {
7286 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7287 8 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, GT_EXPR);
7288 8 : if (res) return res;
7289 : }
7290 : }
7291 7128 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7292 : {
7293 0 : {
7294 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7295 0 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, GT_EXPR);
7296 0 : if (res) return res;
7297 : }
7298 : }
7299 7128 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7300 : {
7301 646 : {
7302 646 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7303 646 : tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, GT_EXPR);
7304 646 : if (res) return res;
7305 : }
7306 : }
7307 : break;
7308 : }
7309 : default:;
7310 : }
7311 : break;
7312 : }
7313 2161564 : case PLUS_EXPR:
7314 2161564 : {
7315 2161564 : tree _q20 = TREE_OPERAND (_p0, 0);
7316 2161564 : tree _q21 = TREE_OPERAND (_p0, 1);
7317 2161564 : if (integer_minus_onep (_q21))
7318 : {
7319 560087 : switch (TREE_CODE (_p1))
7320 : {
7321 422533 : case INTEGER_CST:
7322 422533 : {
7323 422533 : {
7324 422533 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7325 422533 : tree res = generic_simplify_407 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
7326 422533 : if (res) return res;
7327 : }
7328 417817 : break;
7329 : }
7330 : default:;
7331 : }
7332 : }
7333 2156848 : switch (TREE_CODE (_p1))
7334 : {
7335 60516 : case PLUS_EXPR:
7336 60516 : {
7337 60516 : tree _q50 = TREE_OPERAND (_p1, 0);
7338 60516 : tree _q51 = TREE_OPERAND (_p1, 1);
7339 60516 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7340 : {
7341 4031 : {
7342 4031 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7343 4031 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GT_EXPR);
7344 4031 : if (res) return res;
7345 : }
7346 : }
7347 57672 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7348 : {
7349 319 : {
7350 319 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7351 319 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GT_EXPR);
7352 319 : if (res) return res;
7353 : }
7354 : }
7355 57672 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7356 : {
7357 31 : {
7358 31 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
7359 31 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GT_EXPR);
7360 31 : if (res) return res;
7361 : }
7362 : }
7363 57672 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7364 : {
7365 293 : {
7366 293 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
7367 293 : tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GT_EXPR);
7368 293 : if (res) return res;
7369 : }
7370 : }
7371 : break;
7372 : }
7373 2154004 : default:;
7374 : }
7375 2154004 : switch (TREE_CODE (_q21))
7376 : {
7377 1955564 : case INTEGER_CST:
7378 1955564 : {
7379 1955564 : switch (TREE_CODE (_p1))
7380 : {
7381 34722 : case PLUS_EXPR:
7382 34722 : {
7383 34722 : tree _q50 = TREE_OPERAND (_p1, 0);
7384 34722 : tree _q51 = TREE_OPERAND (_p1, 1);
7385 34722 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7386 : {
7387 1161 : {
7388 1161 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7389 1161 : tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, GT_EXPR);
7390 1161 : if (res) return res;
7391 : }
7392 : }
7393 : break;
7394 : }
7395 : default:;
7396 : }
7397 : break;
7398 : }
7399 2154004 : default:;
7400 : }
7401 2154004 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7402 : {
7403 58260 : {
7404 58260 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7405 58260 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GT_EXPR);
7406 58260 : if (res) return res;
7407 : }
7408 : }
7409 2115961 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7410 : {
7411 6944 : {
7412 6944 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
7413 6944 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GT_EXPR);
7414 6944 : if (res) return res;
7415 : }
7416 : }
7417 : break;
7418 : }
7419 2349772 : CASE_CONVERT:
7420 2349772 : {
7421 2349772 : tree _q20 = TREE_OPERAND (_p0, 0);
7422 2349772 : switch (TREE_CODE (_q20))
7423 : {
7424 5 : case EXACT_DIV_EXPR:
7425 5 : {
7426 5 : tree _q30 = TREE_OPERAND (_q20, 0);
7427 5 : tree _q31 = TREE_OPERAND (_q20, 1);
7428 5 : switch (TREE_CODE (_q31))
7429 : {
7430 5 : case INTEGER_CST:
7431 5 : {
7432 5 : switch (TREE_CODE (_p1))
7433 : {
7434 2 : CASE_CONVERT:
7435 2 : {
7436 2 : tree _q60 = TREE_OPERAND (_p1, 0);
7437 2 : switch (TREE_CODE (_q60))
7438 : {
7439 0 : case EXACT_DIV_EXPR:
7440 0 : {
7441 0 : tree _q70 = TREE_OPERAND (_q60, 0);
7442 0 : tree _q71 = TREE_OPERAND (_q60, 1);
7443 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
7444 : {
7445 0 : {
7446 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
7447 0 : tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, GT_EXPR);
7448 0 : if (res) return res;
7449 : }
7450 : }
7451 : break;
7452 : }
7453 : default:;
7454 : }
7455 : break;
7456 : }
7457 : default:;
7458 : }
7459 : break;
7460 : }
7461 : default:;
7462 : }
7463 : break;
7464 : }
7465 : default:;
7466 : }
7467 : break;
7468 : }
7469 3666 : case EXACT_DIV_EXPR:
7470 3666 : {
7471 3666 : tree _q20 = TREE_OPERAND (_p0, 0);
7472 3666 : tree _q21 = TREE_OPERAND (_p0, 1);
7473 3666 : switch (TREE_CODE (_q21))
7474 : {
7475 3666 : case INTEGER_CST:
7476 3666 : {
7477 3666 : switch (TREE_CODE (_p1))
7478 : {
7479 6 : case EXACT_DIV_EXPR:
7480 6 : {
7481 6 : tree _q50 = TREE_OPERAND (_p1, 0);
7482 6 : tree _q51 = TREE_OPERAND (_p1, 1);
7483 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7484 : {
7485 0 : {
7486 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
7487 0 : tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, GT_EXPR);
7488 0 : if (res) return res;
7489 : }
7490 : }
7491 : break;
7492 : }
7493 : default:;
7494 : }
7495 : break;
7496 : }
7497 : default:;
7498 : }
7499 : break;
7500 : }
7501 1720781 : case TRUNC_DIV_EXPR:
7502 1720781 : {
7503 1720781 : tree _q20 = TREE_OPERAND (_p0, 0);
7504 1720781 : tree _q21 = TREE_OPERAND (_p0, 1);
7505 1720781 : switch (TREE_CODE (_q21))
7506 : {
7507 1712473 : case INTEGER_CST:
7508 1712473 : {
7509 1712473 : switch (TREE_CODE (_p1))
7510 : {
7511 1698903 : case INTEGER_CST:
7512 1698903 : {
7513 1698903 : {
7514 1698903 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7515 1698903 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, GT_EXPR);
7516 1698903 : if (res) return res;
7517 : }
7518 69 : break;
7519 : }
7520 : default:;
7521 : }
7522 : break;
7523 : }
7524 : default:;
7525 : }
7526 : break;
7527 : }
7528 760259 : case MINUS_EXPR:
7529 760259 : {
7530 760259 : tree _q20 = TREE_OPERAND (_p0, 0);
7531 760259 : tree _q21 = TREE_OPERAND (_p0, 1);
7532 760259 : switch (TREE_CODE (_p1))
7533 : {
7534 3476 : case MINUS_EXPR:
7535 3476 : {
7536 3476 : tree _q50 = TREE_OPERAND (_p1, 0);
7537 3476 : tree _q51 = TREE_OPERAND (_p1, 1);
7538 3476 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7539 : {
7540 872 : {
7541 872 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7542 872 : tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GT_EXPR);
7543 872 : if (res) return res;
7544 : }
7545 : }
7546 3476 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7547 : {
7548 170 : {
7549 170 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
7550 170 : tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, GT_EXPR);
7551 170 : if (res) return res;
7552 : }
7553 : }
7554 : break;
7555 : }
7556 : default:;
7557 : }
7558 : break;
7559 : }
7560 53366 : case POINTER_DIFF_EXPR:
7561 53366 : {
7562 53366 : tree _q20 = TREE_OPERAND (_p0, 0);
7563 53366 : tree _q21 = TREE_OPERAND (_p0, 1);
7564 53366 : switch (TREE_CODE (_p1))
7565 : {
7566 315 : case POINTER_DIFF_EXPR:
7567 315 : {
7568 315 : tree _q50 = TREE_OPERAND (_p1, 0);
7569 315 : tree _q51 = TREE_OPERAND (_p1, 1);
7570 315 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7571 : {
7572 43 : {
7573 43 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
7574 43 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, GT_EXPR);
7575 43 : if (res) return res;
7576 : }
7577 : }
7578 272 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7579 : {
7580 0 : {
7581 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
7582 0 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, GT_EXPR);
7583 0 : if (res) return res;
7584 : }
7585 : }
7586 : break;
7587 : }
7588 : default:;
7589 : }
7590 : break;
7591 : }
7592 19023161 : default:;
7593 : }
7594 19023161 : switch (TREE_CODE (_p1))
7595 : {
7596 111190 : case PLUS_EXPR:
7597 111190 : {
7598 111190 : tree _q30 = TREE_OPERAND (_p1, 0);
7599 111190 : tree _q31 = TREE_OPERAND (_p1, 1);
7600 111190 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7601 : {
7602 0 : {
7603 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
7604 0 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LT_EXPR);
7605 0 : if (res) return res;
7606 : }
7607 : }
7608 111190 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7609 : {
7610 4 : {
7611 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
7612 4 : tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LT_EXPR);
7613 4 : if (res) return res;
7614 : }
7615 : }
7616 : break;
7617 : }
7618 11820 : case MINUS_EXPR:
7619 11820 : {
7620 11820 : tree _q30 = TREE_OPERAND (_p1, 0);
7621 11820 : tree _q31 = TREE_OPERAND (_p1, 1);
7622 11820 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7623 : {
7624 0 : {
7625 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
7626 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, GT_EXPR);
7627 0 : if (res) return res;
7628 : }
7629 : }
7630 : break;
7631 : }
7632 19023161 : default:;
7633 : }
7634 19023161 : switch (TREE_CODE (_p0))
7635 : {
7636 760259 : case MINUS_EXPR:
7637 760259 : {
7638 760259 : tree _q20 = TREE_OPERAND (_p0, 0);
7639 760259 : tree _q21 = TREE_OPERAND (_p0, 1);
7640 760259 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7641 : {
7642 15128 : {
7643 15128 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
7644 15128 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, LT_EXPR);
7645 15128 : if (res) return res;
7646 : }
7647 : }
7648 : break;
7649 : }
7650 22935 : case BIT_AND_EXPR:
7651 22935 : {
7652 22935 : tree _q20 = TREE_OPERAND (_p0, 0);
7653 22935 : tree _q21 = TREE_OPERAND (_p0, 1);
7654 22935 : if (tree_expr_nonnegative_p (_q20))
7655 : {
7656 20740 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7657 : {
7658 0 : {
7659 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7660 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
7661 0 : if (res) return res;
7662 : }
7663 : }
7664 : }
7665 22935 : if (tree_expr_nonnegative_p (_q21))
7666 : {
7667 21927 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7668 : {
7669 5312 : {
7670 5312 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7671 5312 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, GT_EXPR, BIT_AND_EXPR);
7672 5312 : if (res) return res;
7673 : }
7674 : }
7675 : }
7676 : break;
7677 : }
7678 19017806 : default:;
7679 : }
7680 19017806 : switch (TREE_CODE (_p1))
7681 : {
7682 100 : case BIT_IOR_EXPR:
7683 100 : {
7684 100 : tree _q30 = TREE_OPERAND (_p1, 0);
7685 100 : tree _q31 = TREE_OPERAND (_p1, 1);
7686 100 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7687 : {
7688 0 : if (tree_expr_nonnegative_p (_q30))
7689 : {
7690 0 : {
7691 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7692 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
7693 0 : if (res) return res;
7694 : }
7695 : }
7696 : }
7697 100 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7698 : {
7699 0 : if (tree_expr_nonnegative_p (_q31))
7700 : {
7701 0 : {
7702 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7703 0 : tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, LT_EXPR, BIT_IOR_EXPR);
7704 0 : if (res) return res;
7705 : }
7706 : }
7707 : }
7708 : break;
7709 : }
7710 19017806 : default:;
7711 : }
7712 19017806 : switch (TREE_CODE (_p0))
7713 : {
7714 33296 : case MIN_EXPR:
7715 33296 : {
7716 33296 : tree _q20 = TREE_OPERAND (_p0, 0);
7717 33296 : tree _q21 = TREE_OPERAND (_p0, 1);
7718 33296 : switch (TREE_CODE (_p1))
7719 : {
7720 4 : case MAX_EXPR:
7721 4 : {
7722 4 : tree _q50 = TREE_OPERAND (_p1, 0);
7723 4 : tree _q51 = TREE_OPERAND (_p1, 1);
7724 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7725 : {
7726 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7727 : {
7728 0 : {
7729 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7730 0 : tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, GT_EXPR);
7731 0 : if (res) return res;
7732 : }
7733 : }
7734 : }
7735 : break;
7736 : }
7737 : default:;
7738 : }
7739 : break;
7740 : }
7741 13659 : case MAX_EXPR:
7742 13659 : {
7743 13659 : tree _q20 = TREE_OPERAND (_p0, 0);
7744 13659 : tree _q21 = TREE_OPERAND (_p0, 1);
7745 13659 : switch (TREE_CODE (_p1))
7746 : {
7747 16 : case MIN_EXPR:
7748 16 : {
7749 16 : tree _q50 = TREE_OPERAND (_p1, 0);
7750 16 : tree _q51 = TREE_OPERAND (_p1, 1);
7751 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7752 : {
7753 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7754 : {
7755 0 : {
7756 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7757 0 : tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
7758 0 : if (res) return res;
7759 : }
7760 : }
7761 : }
7762 : break;
7763 : }
7764 13659 : default:;
7765 : }
7766 13659 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7767 : {
7768 1 : {
7769 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7770 1 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
7771 1 : if (res) return res;
7772 : }
7773 : }
7774 13658 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7775 : {
7776 12 : {
7777 12 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7778 12 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, LT_EXPR);
7779 12 : if (res) return res;
7780 : }
7781 : }
7782 : break;
7783 : }
7784 19017796 : default:;
7785 : }
7786 19017796 : switch (TREE_CODE (_p1))
7787 : {
7788 117 : case MIN_EXPR:
7789 117 : {
7790 117 : tree _q30 = TREE_OPERAND (_p1, 0);
7791 117 : tree _q31 = TREE_OPERAND (_p1, 1);
7792 117 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7793 : {
7794 0 : {
7795 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7796 0 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
7797 0 : if (res) return res;
7798 : }
7799 : }
7800 117 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7801 : {
7802 0 : {
7803 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7804 0 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, GT_EXPR);
7805 0 : if (res) return res;
7806 : }
7807 : }
7808 : break;
7809 : }
7810 2457 : case MAX_EXPR:
7811 2457 : {
7812 2457 : tree _q30 = TREE_OPERAND (_p1, 0);
7813 2457 : tree _q31 = TREE_OPERAND (_p1, 1);
7814 2457 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7815 : {
7816 0 : {
7817 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7818 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
7819 0 : if (res) return res;
7820 : }
7821 : }
7822 2457 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7823 : {
7824 0 : {
7825 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7826 0 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
7827 0 : if (res) return res;
7828 : }
7829 : }
7830 : break;
7831 : }
7832 19017796 : default:;
7833 : }
7834 19017796 : switch (TREE_CODE (_p0))
7835 : {
7836 33296 : case MIN_EXPR:
7837 33296 : {
7838 33296 : tree _q20 = TREE_OPERAND (_p0, 0);
7839 33296 : tree _q21 = TREE_OPERAND (_p0, 1);
7840 33296 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7841 : {
7842 1 : {
7843 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7844 1 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
7845 1 : if (res) return res;
7846 : }
7847 : }
7848 33295 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7849 : {
7850 1 : {
7851 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7852 1 : tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
7853 1 : if (res) return res;
7854 : }
7855 : }
7856 33294 : switch (TREE_CODE (_q21))
7857 : {
7858 19947 : case INTEGER_CST:
7859 19947 : {
7860 19947 : switch (TREE_CODE (_p1))
7861 : {
7862 61 : case INTEGER_CST:
7863 61 : {
7864 61 : {
7865 61 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7866 61 : tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, MIN_EXPR, GT_EXPR, BIT_AND_EXPR);
7867 61 : if (res) return res;
7868 : }
7869 0 : break;
7870 : }
7871 : default:;
7872 : }
7873 : break;
7874 : }
7875 : default:;
7876 : }
7877 : break;
7878 : }
7879 13649 : case MAX_EXPR:
7880 13649 : {
7881 13649 : tree _q20 = TREE_OPERAND (_p0, 0);
7882 13649 : tree _q21 = TREE_OPERAND (_p0, 1);
7883 13649 : switch (TREE_CODE (_q21))
7884 : {
7885 13050 : case INTEGER_CST:
7886 13050 : {
7887 13050 : switch (TREE_CODE (_p1))
7888 : {
7889 0 : case INTEGER_CST:
7890 0 : {
7891 0 : {
7892 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7893 0 : tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, BIT_IOR_EXPR);
7894 0 : if (res) return res;
7895 : }
7896 0 : break;
7897 : }
7898 : default:;
7899 : }
7900 : break;
7901 : }
7902 : default:;
7903 : }
7904 : break;
7905 : }
7906 877 : case VEC_COND_EXPR:
7907 877 : {
7908 877 : tree _q20 = TREE_OPERAND (_p0, 0);
7909 877 : tree _q21 = TREE_OPERAND (_p0, 1);
7910 877 : tree _q22 = TREE_OPERAND (_p0, 2);
7911 877 : switch (TREE_CODE (_p1))
7912 : {
7913 14 : case VEC_COND_EXPR:
7914 14 : {
7915 14 : tree _q60 = TREE_OPERAND (_p1, 0);
7916 14 : tree _q61 = TREE_OPERAND (_p1, 1);
7917 14 : tree _q62 = TREE_OPERAND (_p1, 2);
7918 14 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7919 : {
7920 0 : {
7921 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
7922 0 : if (VECTOR_TYPE_P (type)
7923 0 : && (TREE_CODE_CLASS (GT_EXPR) != tcc_comparison
7924 0 : || types_match (type, TREE_TYPE (captures[2]))
7925 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7926 : || (optimize_vectors_before_lowering_p ()
7927 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7928 : )
7929 : {
7930 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1642;
7931 0 : {
7932 0 : tree res_op0;
7933 0 : res_op0 = captures[1];
7934 0 : tree res_op1;
7935 0 : {
7936 0 : tree _o1[2], _r1;
7937 0 : _o1[0] = captures[2];
7938 0 : _o1[1] = captures[5];
7939 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
7940 0 : if (EXPR_P (_r1))
7941 0 : goto next_after_fail1642;
7942 0 : res_op1 = _r1;
7943 : }
7944 0 : tree res_op2;
7945 0 : {
7946 0 : tree _o1[2], _r1;
7947 0 : _o1[0] = captures[3];
7948 0 : _o1[1] = captures[6];
7949 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
7950 0 : if (EXPR_P (_r1))
7951 0 : goto next_after_fail1642;
7952 0 : res_op2 = _r1;
7953 : }
7954 0 : tree _r;
7955 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7956 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
7957 0 : return _r;
7958 : }
7959 0 : next_after_fail1642:;
7960 : }
7961 : }
7962 : }
7963 : break;
7964 : }
7965 877 : default:;
7966 : }
7967 877 : {
7968 877 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
7969 877 : if (VECTOR_TYPE_P (type)
7970 877 : && (TREE_CODE_CLASS (GT_EXPR) != tcc_comparison
7971 877 : || types_match (type, TREE_TYPE (captures[2]))
7972 877 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7973 : || (optimize_vectors_before_lowering_p ()
7974 10 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7975 : )
7976 : {
7977 877 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1643;
7978 877 : {
7979 877 : if (! tree_invariant_p (captures[4])) goto next_after_fail1643;
7980 21 : tree res_op0;
7981 21 : res_op0 = captures[1];
7982 21 : tree res_op1;
7983 21 : {
7984 21 : tree _o1[2], _r1;
7985 21 : _o1[0] = captures[2];
7986 21 : _o1[1] = unshare_expr (captures[4]);
7987 21 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
7988 21 : if (EXPR_P (_r1))
7989 17 : goto next_after_fail1643;
7990 4 : res_op1 = _r1;
7991 : }
7992 4 : tree res_op2;
7993 4 : {
7994 4 : tree _o1[2], _r1;
7995 4 : _o1[0] = captures[3];
7996 4 : _o1[1] = captures[4];
7997 4 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
7998 4 : if (EXPR_P (_r1))
7999 4 : goto next_after_fail1643;
8000 0 : res_op2 = _r1;
8001 : }
8002 0 : tree _r;
8003 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8004 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
8005 0 : return _r;
8006 : }
8007 877 : next_after_fail1643:;
8008 : }
8009 : }
8010 877 : break;
8011 : }
8012 19017733 : default:;
8013 : }
8014 19017733 : switch (TREE_CODE (_p1))
8015 : {
8016 74 : case VEC_COND_EXPR:
8017 74 : {
8018 74 : tree _q30 = TREE_OPERAND (_p1, 0);
8019 74 : tree _q31 = TREE_OPERAND (_p1, 1);
8020 74 : tree _q32 = TREE_OPERAND (_p1, 2);
8021 74 : {
8022 74 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
8023 74 : if (VECTOR_TYPE_P (type)
8024 74 : && (TREE_CODE_CLASS (GT_EXPR) != tcc_comparison
8025 74 : || types_match (type, TREE_TYPE (captures[3]))
8026 74 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
8027 : || (optimize_vectors_before_lowering_p ()
8028 7 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
8029 : )
8030 : {
8031 74 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1644;
8032 74 : {
8033 74 : if (! tree_invariant_p (captures[0])) goto next_after_fail1644;
8034 0 : tree res_op0;
8035 0 : res_op0 = captures[2];
8036 0 : tree res_op1;
8037 0 : {
8038 0 : tree _o1[2], _r1;
8039 0 : _o1[0] = unshare_expr (captures[0]);
8040 0 : _o1[1] = captures[3];
8041 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
8042 0 : if (EXPR_P (_r1))
8043 0 : goto next_after_fail1644;
8044 0 : res_op1 = _r1;
8045 : }
8046 0 : tree res_op2;
8047 0 : {
8048 0 : tree _o1[2], _r1;
8049 0 : _o1[0] = captures[0];
8050 0 : _o1[1] = captures[4];
8051 0 : _r1 = fold_build2_loc (loc, GT_EXPR, type, _o1[0], _o1[1]);
8052 0 : if (EXPR_P (_r1))
8053 0 : goto next_after_fail1644;
8054 0 : res_op2 = _r1;
8055 : }
8056 0 : tree _r;
8057 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8058 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
8059 0 : return _r;
8060 : }
8061 74 : next_after_fail1644:;
8062 : }
8063 : }
8064 74 : break;
8065 : }
8066 19017733 : default:;
8067 : }
8068 19017733 : if (uniform_integer_cst_p (_p1))
8069 : {
8070 13453517 : {
8071 13453517 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8072 13453517 : tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
8073 13453517 : if (res) return res;
8074 : }
8075 : }
8076 18938011 : switch (TREE_CODE (_p0))
8077 : {
8078 223883 : case MULT_EXPR:
8079 223883 : {
8080 223883 : tree _q20 = TREE_OPERAND (_p0, 0);
8081 223883 : tree _q21 = TREE_OPERAND (_p0, 1);
8082 223883 : switch (TREE_CODE (_q21))
8083 : {
8084 185550 : case INTEGER_CST:
8085 185550 : {
8086 185550 : if (integer_zerop (_p1))
8087 : {
8088 7164 : {
8089 7164 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8090 7164 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8091 7164 : if (res) return res;
8092 : }
8093 : }
8094 : break;
8095 : }
8096 : default:;
8097 : }
8098 : break;
8099 : }
8100 18935634 : default:;
8101 : }
8102 18935634 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
8103 : {
8104 1332 : {
8105 1332 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8106 1332 : tree res = generic_simplify_305 (loc, type, _p0, _p1, captures, GT_EXPR);
8107 1332 : if (res) return res;
8108 : }
8109 : }
8110 18934302 : switch (TREE_CODE (_p0))
8111 : {
8112 908777 : case BIT_NOT_EXPR:
8113 908777 : {
8114 908777 : tree _q20 = TREE_OPERAND (_p0, 0);
8115 908777 : switch (TREE_CODE (_p1))
8116 : {
8117 10 : case BIT_NOT_EXPR:
8118 10 : {
8119 10 : tree _q40 = TREE_OPERAND (_p1, 0);
8120 10 : {
8121 10 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
8122 10 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, GT_EXPR);
8123 10 : if (res) return res;
8124 : }
8125 0 : break;
8126 : }
8127 908767 : default:;
8128 : }
8129 908767 : {
8130 908767 : tree _p1_pops[1];
8131 908767 : if (tree_nop_convert (_p1, _p1_pops))
8132 : {
8133 2 : tree _q40 = _p1_pops[0];
8134 2 : switch (TREE_CODE (_q40))
8135 : {
8136 0 : case BIT_NOT_EXPR:
8137 0 : {
8138 0 : tree _q50 = TREE_OPERAND (_q40, 0);
8139 0 : {
8140 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
8141 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, GT_EXPR);
8142 0 : if (res) return res;
8143 : }
8144 0 : break;
8145 : }
8146 : default:;
8147 : }
8148 : }
8149 : }
8150 908767 : if (CONSTANT_CLASS_P (_p1))
8151 : {
8152 906454 : {
8153 906454 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8154 906454 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8155 906454 : if (res) return res;
8156 : }
8157 : }
8158 : break;
8159 : }
8160 18027838 : default:;
8161 : }
8162 18027838 : {
8163 18027838 : tree _p0_pops[1];
8164 18027838 : if (tree_nop_convert (_p0, _p0_pops))
8165 : {
8166 952493 : tree _q20 = _p0_pops[0];
8167 952493 : switch (TREE_CODE (_q20))
8168 : {
8169 0 : case BIT_NOT_EXPR:
8170 0 : {
8171 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8172 0 : switch (TREE_CODE (_p1))
8173 : {
8174 0 : case BIT_NOT_EXPR:
8175 0 : {
8176 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8177 0 : {
8178 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
8179 0 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, GT_EXPR);
8180 0 : if (res) return res;
8181 : }
8182 0 : break;
8183 : }
8184 0 : default:;
8185 : }
8186 0 : {
8187 0 : tree _p1_pops[1];
8188 0 : if (tree_nop_convert (_p1, _p1_pops))
8189 : {
8190 0 : tree _q50 = _p1_pops[0];
8191 0 : switch (TREE_CODE (_q50))
8192 : {
8193 0 : case BIT_NOT_EXPR:
8194 0 : {
8195 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8196 0 : {
8197 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
8198 0 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, GT_EXPR);
8199 0 : if (res) return res;
8200 : }
8201 0 : break;
8202 : }
8203 : default:;
8204 : }
8205 : }
8206 : }
8207 0 : if (CONSTANT_CLASS_P (_p1))
8208 : {
8209 0 : {
8210 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
8211 0 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8212 0 : if (res) return res;
8213 : }
8214 : }
8215 : break;
8216 : }
8217 : default:;
8218 : }
8219 : }
8220 : }
8221 18027838 : switch (TREE_CODE (_p1))
8222 : {
8223 828240 : case REAL_CST:
8224 828240 : {
8225 828240 : {
8226 828240 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8227 828240 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, GT_EXPR);
8228 828240 : if (res) return res;
8229 : }
8230 828192 : break;
8231 : }
8232 18027790 : default:;
8233 : }
8234 18027790 : switch (TREE_CODE (_p0))
8235 : {
8236 2113824 : case PLUS_EXPR:
8237 2113824 : {
8238 2113824 : tree _q20 = TREE_OPERAND (_p0, 0);
8239 2113824 : tree _q21 = TREE_OPERAND (_p0, 1);
8240 2113824 : switch (TREE_CODE (_q21))
8241 : {
8242 479 : case REAL_CST:
8243 479 : {
8244 479 : switch (TREE_CODE (_p1))
8245 : {
8246 199 : case REAL_CST:
8247 199 : {
8248 199 : {
8249 199 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8250 199 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR);
8251 199 : if (res) return res;
8252 : }
8253 199 : break;
8254 : }
8255 : default:;
8256 : }
8257 : break;
8258 : }
8259 1916698 : case INTEGER_CST:
8260 1916698 : {
8261 1916698 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8262 : {
8263 1196 : {
8264 1196 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
8265 1196 : tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
8266 1196 : if (res) return res;
8267 : }
8268 : }
8269 : break;
8270 : }
8271 : default:;
8272 : }
8273 : break;
8274 : }
8275 749917 : case MINUS_EXPR:
8276 749917 : {
8277 749917 : tree _q20 = TREE_OPERAND (_p0, 0);
8278 749917 : tree _q21 = TREE_OPERAND (_p0, 1);
8279 749917 : switch (TREE_CODE (_q21))
8280 : {
8281 751 : case REAL_CST:
8282 751 : {
8283 751 : switch (TREE_CODE (_p1))
8284 : {
8285 537 : case REAL_CST:
8286 537 : {
8287 537 : {
8288 537 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8289 537 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, MINUS_EXPR, GT_EXPR);
8290 537 : if (res) return res;
8291 : }
8292 535 : break;
8293 : }
8294 : default:;
8295 : }
8296 : break;
8297 : }
8298 749915 : default:;
8299 : }
8300 749915 : switch (TREE_CODE (_q20))
8301 : {
8302 43 : case REAL_CST:
8303 43 : {
8304 43 : switch (TREE_CODE (_p1))
8305 : {
8306 37 : case REAL_CST:
8307 37 : {
8308 37 : {
8309 37 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8310 37 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, GT_EXPR);
8311 37 : if (res) return res;
8312 : }
8313 35 : break;
8314 : }
8315 : default:;
8316 : }
8317 : break;
8318 : }
8319 : default:;
8320 : }
8321 : break;
8322 : }
8323 39721 : case FLOAT_EXPR:
8324 39721 : {
8325 39721 : tree _q20 = TREE_OPERAND (_p0, 0);
8326 39721 : switch (TREE_CODE (_p1))
8327 : {
8328 30 : case FLOAT_EXPR:
8329 30 : {
8330 30 : tree _q40 = TREE_OPERAND (_p1, 0);
8331 30 : {
8332 30 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8333 30 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
8334 30 : if (res) return res;
8335 : }
8336 30 : break;
8337 : }
8338 38006 : case REAL_CST:
8339 38006 : {
8340 38006 : {
8341 38006 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8342 38006 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
8343 38006 : if (res) return res;
8344 : }
8345 19179 : break;
8346 : }
8347 : default:;
8348 : }
8349 : break;
8350 : }
8351 3666 : case EXACT_DIV_EXPR:
8352 3666 : {
8353 3666 : tree _q20 = TREE_OPERAND (_p0, 0);
8354 3666 : tree _q21 = TREE_OPERAND (_p0, 1);
8355 3666 : switch (TREE_CODE (_q21))
8356 : {
8357 3666 : case INTEGER_CST:
8358 3666 : {
8359 3666 : switch (TREE_CODE (_p1))
8360 : {
8361 181 : case INTEGER_CST:
8362 181 : {
8363 181 : {
8364 181 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8365 181 : tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, GT_EXPR);
8366 181 : if (res) return res;
8367 : }
8368 0 : break;
8369 : }
8370 : default:;
8371 : }
8372 : break;
8373 : }
8374 : default:;
8375 : }
8376 : break;
8377 : }
8378 2346209 : CASE_CONVERT:
8379 2346209 : {
8380 2346209 : tree _q20 = TREE_OPERAND (_p0, 0);
8381 2346209 : switch (TREE_CODE (_q20))
8382 : {
8383 5 : case EXACT_DIV_EXPR:
8384 5 : {
8385 5 : tree _q30 = TREE_OPERAND (_q20, 0);
8386 5 : tree _q31 = TREE_OPERAND (_q20, 1);
8387 5 : switch (TREE_CODE (_q31))
8388 : {
8389 5 : case INTEGER_CST:
8390 5 : {
8391 5 : switch (TREE_CODE (_p1))
8392 : {
8393 0 : case INTEGER_CST:
8394 0 : {
8395 0 : {
8396 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
8397 0 : tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8398 0 : if (res) return res;
8399 : }
8400 0 : break;
8401 : }
8402 : default:;
8403 : }
8404 : break;
8405 : }
8406 : default:;
8407 : }
8408 : break;
8409 : }
8410 2346209 : default:;
8411 : }
8412 2346209 : switch (TREE_CODE (_p1))
8413 : {
8414 173828 : CASE_CONVERT:
8415 173828 : {
8416 173828 : tree _q40 = TREE_OPERAND (_p1, 0);
8417 173828 : {
8418 173828 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8419 173828 : tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, GT_EXPR);
8420 173828 : if (res) return res;
8421 : }
8422 146067 : break;
8423 : }
8424 2318448 : default:;
8425 : }
8426 2318448 : {
8427 2318448 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
8428 2318448 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, GT_EXPR);
8429 2318448 : if (res) return res;
8430 : }
8431 1175276 : switch (TREE_CODE (_q20))
8432 : {
8433 1009 : case ADDR_EXPR:
8434 1009 : {
8435 1009 : switch (TREE_CODE (_p1))
8436 : {
8437 735 : CASE_CONVERT:
8438 735 : {
8439 735 : tree _q40 = TREE_OPERAND (_p1, 0);
8440 735 : switch (TREE_CODE (_q40))
8441 : {
8442 735 : case ADDR_EXPR:
8443 735 : {
8444 735 : {
8445 735 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8446 735 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, GT_EXPR);
8447 735 : if (res) return res;
8448 : }
8449 242 : break;
8450 : }
8451 : default:;
8452 : }
8453 : break;
8454 : }
8455 7 : case ADDR_EXPR:
8456 7 : {
8457 7 : {
8458 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8459 7 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, GT_EXPR);
8460 7 : if (res) return res;
8461 : }
8462 0 : break;
8463 : }
8464 : default:;
8465 : }
8466 : break;
8467 : }
8468 1174776 : default:;
8469 : }
8470 1174776 : if (uniform_integer_cst_p (_p1))
8471 : {
8472 319756 : {
8473 319756 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8474 319756 : tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GT_EXPR);
8475 319756 : if (res) return res;
8476 : }
8477 : }
8478 : break;
8479 : }
8480 17620 : case BIT_AND_EXPR:
8481 17620 : {
8482 17620 : tree _q20 = TREE_OPERAND (_p0, 0);
8483 17620 : tree _q21 = TREE_OPERAND (_p0, 1);
8484 17620 : switch (TREE_CODE (_q21))
8485 : {
8486 16507 : case INTEGER_CST:
8487 16507 : {
8488 16507 : switch (TREE_CODE (_p1))
8489 : {
8490 10510 : case INTEGER_CST:
8491 10510 : {
8492 10510 : {
8493 10510 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8494 10510 : tree res = generic_simplify_409 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
8495 10510 : if (res) return res;
8496 : }
8497 9712 : break;
8498 : }
8499 : default:;
8500 : }
8501 : break;
8502 : }
8503 : default:;
8504 : }
8505 : break;
8506 : }
8507 10909 : case NEGATE_EXPR:
8508 10909 : {
8509 10909 : tree _q20 = TREE_OPERAND (_p0, 0);
8510 10909 : switch (TREE_CODE (_p1))
8511 : {
8512 4 : case NEGATE_EXPR:
8513 4 : {
8514 4 : tree _q40 = TREE_OPERAND (_p1, 0);
8515 4 : {
8516 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8517 4 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8518 4 : if (res) return res;
8519 : }
8520 4 : break;
8521 : }
8522 10909 : default:;
8523 : }
8524 10909 : if (CONSTANT_CLASS_P (_p1))
8525 : {
8526 690 : {
8527 690 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8528 690 : tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
8529 690 : if (res) return res;
8530 : }
8531 : }
8532 : break;
8533 : }
8534 4606 : case ADDR_EXPR:
8535 4606 : {
8536 4606 : switch (TREE_CODE (_p1))
8537 : {
8538 0 : CASE_CONVERT:
8539 0 : {
8540 0 : tree _q30 = TREE_OPERAND (_p1, 0);
8541 0 : switch (TREE_CODE (_q30))
8542 : {
8543 0 : case ADDR_EXPR:
8544 0 : {
8545 0 : {
8546 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
8547 0 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, GT_EXPR);
8548 0 : if (res) return res;
8549 : }
8550 0 : break;
8551 : }
8552 : default:;
8553 : }
8554 : break;
8555 : }
8556 4289 : case ADDR_EXPR:
8557 4289 : {
8558 4289 : {
8559 4289 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
8560 4289 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, GT_EXPR);
8561 4289 : if (res) return res;
8562 : }
8563 722 : break;
8564 : }
8565 : default:;
8566 : }
8567 : break;
8568 : }
8569 294903 : case CALL_EXPR:
8570 294903 : switch (get_call_combined_fn (_p0))
8571 : {
8572 1 : case CFN_BUILT_IN_SQRTF:
8573 1 : if (call_expr_nargs (_p0) == 1)
8574 : {
8575 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8576 1 : switch (TREE_CODE (_p1))
8577 : {
8578 1 : case REAL_CST:
8579 1 : {
8580 1 : {
8581 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8582 1 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GT_EXPR);
8583 1 : if (res) return res;
8584 : }
8585 0 : break;
8586 : }
8587 0 : case CALL_EXPR:
8588 0 : switch (get_call_combined_fn (_p1))
8589 : {
8590 0 : case CFN_BUILT_IN_SQRTF:
8591 0 : if (call_expr_nargs (_p1) == 1)
8592 : {
8593 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8594 0 : {
8595 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8596 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GT_EXPR);
8597 0 : if (res) return res;
8598 : }
8599 : }
8600 : break;
8601 : default:;
8602 : }
8603 : break;
8604 : default:;
8605 : }
8606 : }
8607 : break;
8608 0 : case CFN_BUILT_IN_SQRTL:
8609 0 : if (call_expr_nargs (_p0) == 1)
8610 : {
8611 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8612 0 : switch (TREE_CODE (_p1))
8613 : {
8614 0 : case REAL_CST:
8615 0 : {
8616 0 : {
8617 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8618 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GT_EXPR);
8619 0 : if (res) return res;
8620 : }
8621 0 : break;
8622 : }
8623 0 : case CALL_EXPR:
8624 0 : switch (get_call_combined_fn (_p1))
8625 : {
8626 0 : case CFN_BUILT_IN_SQRTL:
8627 0 : if (call_expr_nargs (_p1) == 1)
8628 : {
8629 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8630 0 : {
8631 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8632 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GT_EXPR);
8633 0 : if (res) return res;
8634 : }
8635 : }
8636 : break;
8637 : default:;
8638 : }
8639 : break;
8640 : default:;
8641 : }
8642 : }
8643 : break;
8644 3 : case CFN_BUILT_IN_SQRT:
8645 3 : if (call_expr_nargs (_p0) == 1)
8646 : {
8647 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8648 3 : switch (TREE_CODE (_p1))
8649 : {
8650 3 : case REAL_CST:
8651 3 : {
8652 3 : {
8653 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8654 3 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GT_EXPR);
8655 3 : if (res) return res;
8656 : }
8657 0 : break;
8658 : }
8659 0 : case CALL_EXPR:
8660 0 : switch (get_call_combined_fn (_p1))
8661 : {
8662 0 : case CFN_BUILT_IN_SQRT:
8663 0 : if (call_expr_nargs (_p1) == 1)
8664 : {
8665 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8666 0 : {
8667 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8668 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GT_EXPR);
8669 0 : if (res) return res;
8670 : }
8671 : }
8672 : break;
8673 : default:;
8674 : }
8675 : break;
8676 : default:;
8677 : }
8678 : }
8679 : break;
8680 0 : case CFN_SQRT:
8681 0 : if (call_expr_nargs (_p0) == 1)
8682 : {
8683 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8684 0 : switch (TREE_CODE (_p1))
8685 : {
8686 0 : case REAL_CST:
8687 0 : {
8688 0 : {
8689 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8690 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_SQRT, GT_EXPR);
8691 0 : if (res) return res;
8692 : }
8693 0 : break;
8694 : }
8695 0 : case CALL_EXPR:
8696 0 : switch (get_call_combined_fn (_p1))
8697 : {
8698 0 : case CFN_SQRT:
8699 0 : if (call_expr_nargs (_p1) == 1)
8700 : {
8701 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8702 0 : {
8703 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8704 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_SQRT, GT_EXPR);
8705 0 : if (res) return res;
8706 : }
8707 : }
8708 : break;
8709 : default:;
8710 : }
8711 : break;
8712 : default:;
8713 : }
8714 : }
8715 : break;
8716 : default:;
8717 : }
8718 : break;
8719 16804988 : default:;
8720 : }
8721 16804988 : if (uniform_integer_cst_p (_p1))
8722 : {
8723 11294577 : {
8724 11294577 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
8725 11294577 : tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, GT_EXPR);
8726 11294577 : if (res) return res;
8727 : }
8728 : }
8729 15825143 : switch (TREE_CODE (_p0))
8730 : {
8731 1104652 : CASE_CONVERT:
8732 1104652 : {
8733 1104652 : tree _q20 = TREE_OPERAND (_p0, 0);
8734 1104652 : switch (TREE_CODE (_q20))
8735 : {
8736 1 : case NE_EXPR:
8737 1 : {
8738 1 : tree _q30 = TREE_OPERAND (_q20, 0);
8739 1 : tree _q31 = TREE_OPERAND (_q20, 1);
8740 1 : if (tree_expr_nonnegative_p (_q30))
8741 : {
8742 1 : if (integer_zerop (_q31))
8743 : {
8744 1 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
8745 : {
8746 1 : {
8747 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
8748 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1645;
8749 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1645;
8750 1 : {
8751 1 : tree _r;
8752 1 : _r = constant_boolean_node (false, type);
8753 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
8754 1 : return _r;
8755 : }
8756 0 : next_after_fail1645:;
8757 : }
8758 : }
8759 : }
8760 : }
8761 : break;
8762 : }
8763 50663 : case PLUS_EXPR:
8764 50663 : {
8765 50663 : tree _q30 = TREE_OPERAND (_q20, 0);
8766 50663 : tree _q31 = TREE_OPERAND (_q20, 1);
8767 50663 : switch (TREE_CODE (_q30))
8768 : {
8769 34634 : CASE_CONVERT:
8770 34634 : {
8771 34634 : tree _q40 = TREE_OPERAND (_q30, 0);
8772 34634 : switch (TREE_CODE (_q31))
8773 : {
8774 34632 : case INTEGER_CST:
8775 34632 : {
8776 34632 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
8777 : {
8778 2 : {
8779 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
8780 2 : tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
8781 2 : if (res) return res;
8782 : }
8783 : }
8784 : break;
8785 : }
8786 : default:;
8787 : }
8788 : break;
8789 : }
8790 : default:;
8791 : }
8792 : break;
8793 : }
8794 : default:;
8795 : }
8796 : break;
8797 : }
8798 15825140 : default:;
8799 : }
8800 15825140 : switch (TREE_CODE (_p1))
8801 : {
8802 621142 : CASE_CONVERT:
8803 621142 : {
8804 621142 : tree _q30 = TREE_OPERAND (_p1, 0);
8805 621142 : switch (TREE_CODE (_q30))
8806 : {
8807 3327 : case PLUS_EXPR:
8808 3327 : {
8809 3327 : tree _q40 = TREE_OPERAND (_q30, 0);
8810 3327 : tree _q41 = TREE_OPERAND (_q30, 1);
8811 3327 : switch (TREE_CODE (_q40))
8812 : {
8813 3288 : CASE_CONVERT:
8814 3288 : {
8815 3288 : tree _q50 = TREE_OPERAND (_q40, 0);
8816 3288 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
8817 : {
8818 0 : switch (TREE_CODE (_q41))
8819 : {
8820 0 : case INTEGER_CST:
8821 0 : {
8822 0 : {
8823 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
8824 0 : tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
8825 0 : if (res) return res;
8826 : }
8827 0 : break;
8828 : }
8829 : default:;
8830 : }
8831 : }
8832 : break;
8833 : }
8834 : default:;
8835 : }
8836 : break;
8837 : }
8838 : default:;
8839 : }
8840 : break;
8841 : }
8842 111190 : case PLUS_EXPR:
8843 111190 : {
8844 111190 : tree _q30 = TREE_OPERAND (_p1, 0);
8845 111190 : tree _q31 = TREE_OPERAND (_p1, 1);
8846 111190 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8847 : {
8848 4 : switch (TREE_CODE (_q31))
8849 : {
8850 4 : case INTEGER_CST:
8851 4 : {
8852 4 : {
8853 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
8854 4 : tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
8855 4 : if (res) return res;
8856 : }
8857 0 : break;
8858 : }
8859 : default:;
8860 : }
8861 : }
8862 : break;
8863 : }
8864 15825136 : default:;
8865 : }
8866 15825136 : switch (TREE_CODE (_p0))
8867 : {
8868 657832 : case MINUS_EXPR:
8869 657832 : {
8870 657832 : tree _q20 = TREE_OPERAND (_p0, 0);
8871 657832 : tree _q21 = TREE_OPERAND (_p0, 1);
8872 657832 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8873 : {
8874 6587 : {
8875 6587 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8876 6587 : tree res = generic_simplify_398 (loc, type, _p0, _p1, captures, GT_EXPR);
8877 6587 : if (res) return res;
8878 : }
8879 : }
8880 : break;
8881 : }
8882 15818561 : default:;
8883 : }
8884 15818561 : switch (TREE_CODE (_p1))
8885 : {
8886 111186 : case PLUS_EXPR:
8887 111186 : {
8888 111186 : tree _q30 = TREE_OPERAND (_p1, 0);
8889 111186 : tree _q31 = TREE_OPERAND (_p1, 1);
8890 111186 : switch (TREE_CODE (_q30))
8891 : {
8892 3 : case MINUS_EXPR:
8893 3 : {
8894 3 : tree _q40 = TREE_OPERAND (_q30, 0);
8895 3 : tree _q41 = TREE_OPERAND (_q30, 1);
8896 3 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
8897 : {
8898 0 : if (integer_minus_onep (_q31))
8899 : {
8900 0 : {
8901 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
8902 0 : tree res = generic_simplify_410 (loc, type, _p0, _p1, captures, LT_EXPR);
8903 0 : if (res) return res;
8904 : }
8905 : }
8906 : }
8907 : break;
8908 : }
8909 : default:;
8910 : }
8911 : break;
8912 : }
8913 15818561 : default:;
8914 : }
8915 15818561 : switch (TREE_CODE (_p0))
8916 : {
8917 83 : case REALPART_EXPR:
8918 83 : {
8919 83 : tree _q20 = TREE_OPERAND (_p0, 0);
8920 83 : switch (TREE_CODE (_q20))
8921 : {
8922 0 : case CALL_EXPR:
8923 0 : switch (get_call_combined_fn (_q20))
8924 : {
8925 0 : case CFN_SUB_OVERFLOW:
8926 0 : if (call_expr_nargs (_q20) == 2)
8927 : {
8928 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
8929 0 : tree _q31 = CALL_EXPR_ARG (_q20, 1);
8930 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
8931 : {
8932 0 : {
8933 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8934 0 : tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
8935 0 : if (res) return res;
8936 : }
8937 : }
8938 : }
8939 : break;
8940 : default:;
8941 : }
8942 : break;
8943 : default:;
8944 : }
8945 : break;
8946 : }
8947 15818561 : default:;
8948 : }
8949 15818561 : switch (TREE_CODE (_p1))
8950 : {
8951 20 : case REALPART_EXPR:
8952 20 : {
8953 20 : tree _q30 = TREE_OPERAND (_p1, 0);
8954 20 : switch (TREE_CODE (_q30))
8955 : {
8956 0 : case CALL_EXPR:
8957 0 : switch (get_call_combined_fn (_q30))
8958 : {
8959 0 : case CFN_ADD_OVERFLOW:
8960 0 : if (call_expr_nargs (_q30) == 2)
8961 : {
8962 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
8963 0 : tree _q41 = CALL_EXPR_ARG (_q30, 1);
8964 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
8965 : {
8966 0 : {
8967 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
8968 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
8969 0 : if (res) return res;
8970 : }
8971 : }
8972 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
8973 : {
8974 0 : {
8975 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q40 };
8976 0 : tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
8977 0 : if (res) return res;
8978 : }
8979 : }
8980 : }
8981 : break;
8982 : default:;
8983 : }
8984 : break;
8985 : default:;
8986 : }
8987 : break;
8988 : }
8989 1033 : case TRUNC_DIV_EXPR:
8990 1033 : {
8991 1033 : tree _q30 = TREE_OPERAND (_p1, 0);
8992 1033 : tree _q31 = TREE_OPERAND (_p1, 1);
8993 1033 : if (integer_all_onesp (_q30))
8994 : {
8995 0 : {
8996 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
8997 0 : tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
8998 0 : if (res) return res;
8999 : }
9000 : }
9001 : break;
9002 : }
9003 15818561 : default:;
9004 : }
9005 15818561 : switch (TREE_CODE (_p0))
9006 : {
9007 214285 : case MULT_EXPR:
9008 214285 : {
9009 214285 : tree _q20 = TREE_OPERAND (_p0, 0);
9010 214285 : tree _q21 = TREE_OPERAND (_p0, 1);
9011 214285 : switch (TREE_CODE (_q21))
9012 : {
9013 22153 : case REAL_CST:
9014 22153 : {
9015 22153 : switch (TREE_CODE (_p1))
9016 : {
9017 58 : case REAL_CST:
9018 58 : {
9019 58 : {
9020 58 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9021 58 : tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
9022 58 : if (res) return res;
9023 : }
9024 57 : break;
9025 : }
9026 : default:;
9027 : }
9028 : break;
9029 : }
9030 : default:;
9031 : }
9032 : break;
9033 : }
9034 2007582 : case PLUS_EXPR:
9035 2007582 : {
9036 2007582 : tree _q20 = TREE_OPERAND (_p0, 0);
9037 2007582 : tree _q21 = TREE_OPERAND (_p0, 1);
9038 2007582 : switch (TREE_CODE (_q21))
9039 : {
9040 1810537 : case INTEGER_CST:
9041 1810537 : {
9042 1810537 : switch (TREE_CODE (_p1))
9043 : {
9044 1257016 : case INTEGER_CST:
9045 1257016 : {
9046 1257016 : {
9047 1257016 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9048 1257016 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, GT_EXPR, LT_EXPR);
9049 1257016 : if (res) return res;
9050 : }
9051 809548 : break;
9052 : }
9053 : default:;
9054 : }
9055 : break;
9056 : }
9057 : default:;
9058 : }
9059 : break;
9060 : }
9061 651257 : case MINUS_EXPR:
9062 651257 : {
9063 651257 : tree _q20 = TREE_OPERAND (_p0, 0);
9064 651257 : tree _q21 = TREE_OPERAND (_p0, 1);
9065 651257 : switch (TREE_CODE (_q21))
9066 : {
9067 2196 : case INTEGER_CST:
9068 2196 : {
9069 2196 : switch (TREE_CODE (_p1))
9070 : {
9071 2048 : case INTEGER_CST:
9072 2048 : {
9073 2048 : {
9074 2048 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9075 2048 : tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, GT_EXPR, LT_EXPR);
9076 2048 : if (res) return res;
9077 : }
9078 1923 : break;
9079 : }
9080 : default:;
9081 : }
9082 : break;
9083 : }
9084 651132 : default:;
9085 : }
9086 651132 : switch (TREE_CODE (_q20))
9087 : {
9088 556479 : case INTEGER_CST:
9089 556479 : {
9090 556479 : switch (TREE_CODE (_p1))
9091 : {
9092 553674 : case INTEGER_CST:
9093 553674 : {
9094 553674 : {
9095 553674 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9096 553674 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
9097 553674 : if (res) return res;
9098 : }
9099 0 : break;
9100 : }
9101 : default:;
9102 : }
9103 : break;
9104 : }
9105 : default:;
9106 : }
9107 : break;
9108 : }
9109 266256 : case CALL_EXPR:
9110 266256 : switch (get_call_combined_fn (_p0))
9111 : {
9112 4 : case CFN_BUILT_IN_CTZ:
9113 4 : if (call_expr_nargs (_p0) == 1)
9114 : {
9115 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9116 4 : switch (TREE_CODE (_p1))
9117 : {
9118 4 : case INTEGER_CST:
9119 4 : {
9120 4 : {
9121 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9122 4 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZ);
9123 4 : if (res) return res;
9124 : }
9125 0 : break;
9126 : }
9127 : default:;
9128 : }
9129 : }
9130 : break;
9131 12 : case CFN_BUILT_IN_FFS:
9132 12 : if (call_expr_nargs (_p0) == 1)
9133 : {
9134 12 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9135 12 : switch (TREE_CODE (_p1))
9136 : {
9137 12 : case INTEGER_CST:
9138 12 : {
9139 12 : {
9140 12 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9141 12 : tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFS);
9142 12 : if (res) return res;
9143 : }
9144 6 : break;
9145 : }
9146 : default:;
9147 : }
9148 : }
9149 : break;
9150 0 : case CFN_BUILT_IN_FFSIMAX:
9151 0 : if (call_expr_nargs (_p0) == 1)
9152 : {
9153 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9154 0 : switch (TREE_CODE (_p1))
9155 : {
9156 0 : case INTEGER_CST:
9157 0 : {
9158 0 : {
9159 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9160 0 : tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSIMAX);
9161 0 : if (res) return res;
9162 : }
9163 0 : break;
9164 : }
9165 : default:;
9166 : }
9167 : }
9168 : break;
9169 75 : case CFN_BUILT_IN_POPCOUNT:
9170 75 : if (call_expr_nargs (_p0) == 1)
9171 : {
9172 75 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9173 75 : if (integer_zerop (_p1))
9174 : {
9175 36 : {
9176 36 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9177 36 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT);
9178 36 : if (res) return res;
9179 : }
9180 : }
9181 : }
9182 : break;
9183 2 : case CFN_BUILT_IN_CTZL:
9184 2 : if (call_expr_nargs (_p0) == 1)
9185 : {
9186 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9187 2 : switch (TREE_CODE (_p1))
9188 : {
9189 2 : case INTEGER_CST:
9190 2 : {
9191 2 : {
9192 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9193 2 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZL);
9194 2 : if (res) return res;
9195 : }
9196 0 : break;
9197 : }
9198 : default:;
9199 : }
9200 : }
9201 : break;
9202 8 : case CFN_BUILT_IN_FFSL:
9203 8 : if (call_expr_nargs (_p0) == 1)
9204 : {
9205 8 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9206 8 : switch (TREE_CODE (_p1))
9207 : {
9208 8 : case INTEGER_CST:
9209 8 : {
9210 8 : {
9211 8 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9212 8 : tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSL);
9213 8 : if (res) return res;
9214 : }
9215 4 : break;
9216 : }
9217 : default:;
9218 : }
9219 : }
9220 : break;
9221 3 : case CFN_BUILT_IN_POPCOUNTLL:
9222 3 : if (call_expr_nargs (_p0) == 1)
9223 : {
9224 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9225 3 : if (integer_zerop (_p1))
9226 : {
9227 0 : {
9228 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9229 0 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL);
9230 0 : if (res) return res;
9231 : }
9232 : }
9233 : }
9234 : break;
9235 0 : case CFN_BUILT_IN_CTZIMAX:
9236 0 : if (call_expr_nargs (_p0) == 1)
9237 : {
9238 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9239 0 : switch (TREE_CODE (_p1))
9240 : {
9241 0 : case INTEGER_CST:
9242 0 : {
9243 0 : {
9244 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9245 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
9246 0 : if (res) return res;
9247 : }
9248 0 : break;
9249 : }
9250 : default:;
9251 : }
9252 : }
9253 : break;
9254 0 : case CFN_POPCOUNT:
9255 0 : if (call_expr_nargs (_p0) == 1)
9256 : {
9257 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9258 0 : if (integer_zerop (_p1))
9259 : {
9260 0 : {
9261 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9262 0 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_POPCOUNT);
9263 0 : if (res) return res;
9264 : }
9265 : }
9266 : }
9267 : break;
9268 0 : case CFN_CTZ:
9269 0 : if (call_expr_nargs (_p0) == 2)
9270 : {
9271 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9272 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
9273 0 : switch (TREE_CODE (_p1))
9274 : {
9275 0 : case INTEGER_CST:
9276 0 : {
9277 0 : {
9278 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9279 0 : tree res = generic_simplify_406 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
9280 0 : if (res) return res;
9281 : }
9282 0 : break;
9283 : }
9284 : default:;
9285 : }
9286 : }
9287 0 : if (call_expr_nargs (_p0) == 1)
9288 : {
9289 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9290 0 : switch (TREE_CODE (_p1))
9291 : {
9292 0 : case INTEGER_CST:
9293 0 : {
9294 0 : {
9295 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9296 0 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_CTZ);
9297 0 : if (res) return res;
9298 : }
9299 0 : break;
9300 : }
9301 : default:;
9302 : }
9303 : }
9304 : break;
9305 0 : case CFN_FFS:
9306 0 : if (call_expr_nargs (_p0) == 1)
9307 : {
9308 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9309 0 : switch (TREE_CODE (_p1))
9310 : {
9311 0 : case INTEGER_CST:
9312 0 : {
9313 0 : {
9314 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9315 0 : tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_FFS);
9316 0 : if (res) return res;
9317 : }
9318 0 : break;
9319 : }
9320 : default:;
9321 : }
9322 : }
9323 : break;
9324 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
9325 0 : if (call_expr_nargs (_p0) == 1)
9326 : {
9327 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9328 0 : if (integer_zerop (_p1))
9329 : {
9330 0 : {
9331 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9332 0 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
9333 0 : if (res) return res;
9334 : }
9335 : }
9336 : }
9337 : break;
9338 3 : case CFN_BUILT_IN_POPCOUNTL:
9339 3 : if (call_expr_nargs (_p0) == 1)
9340 : {
9341 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9342 3 : if (integer_zerop (_p1))
9343 : {
9344 0 : {
9345 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9346 0 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL);
9347 0 : if (res) return res;
9348 : }
9349 : }
9350 : }
9351 : break;
9352 18 : case CFN_BUILT_IN_CTZLL:
9353 18 : if (call_expr_nargs (_p0) == 1)
9354 : {
9355 18 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9356 18 : switch (TREE_CODE (_p1))
9357 : {
9358 18 : case INTEGER_CST:
9359 18 : {
9360 18 : {
9361 18 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9362 18 : tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZLL);
9363 18 : if (res) return res;
9364 : }
9365 16 : break;
9366 : }
9367 : default:;
9368 : }
9369 : }
9370 : break;
9371 9 : case CFN_BUILT_IN_FFSLL:
9372 9 : if (call_expr_nargs (_p0) == 1)
9373 : {
9374 9 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9375 9 : switch (TREE_CODE (_p1))
9376 : {
9377 9 : case INTEGER_CST:
9378 9 : {
9379 9 : {
9380 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9381 9 : tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSLL);
9382 9 : if (res) return res;
9383 : }
9384 4 : break;
9385 : }
9386 : default:;
9387 : }
9388 : }
9389 : break;
9390 : default:;
9391 : }
9392 : break;
9393 : default:;
9394 : }
9395 : return NULL_TREE;
9396 : }
9397 :
9398 : tree
9399 6805420 : generic_simplify_BIT_AND_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
9400 : {
9401 6805420 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
9402 6805420 : switch (TREE_CODE (_p0))
9403 : {
9404 34892 : case LSHIFT_EXPR:
9405 34892 : {
9406 34892 : tree _q20 = TREE_OPERAND (_p0, 0);
9407 34892 : tree _q21 = TREE_OPERAND (_p0, 1);
9408 34892 : switch (TREE_CODE (_p1))
9409 : {
9410 1 : case LSHIFT_EXPR:
9411 1 : {
9412 1 : tree _q50 = TREE_OPERAND (_p1, 0);
9413 1 : tree _q51 = TREE_OPERAND (_p1, 1);
9414 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9415 : {
9416 1 : {
9417 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
9418 1 : tree res = generic_simplify_3 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
9419 1 : if (res) return res;
9420 : }
9421 : }
9422 : break;
9423 : }
9424 : default:;
9425 : }
9426 : break;
9427 : }
9428 82337 : case RSHIFT_EXPR:
9429 82337 : {
9430 82337 : tree _q20 = TREE_OPERAND (_p0, 0);
9431 82337 : tree _q21 = TREE_OPERAND (_p0, 1);
9432 82337 : switch (TREE_CODE (_p1))
9433 : {
9434 2 : case RSHIFT_EXPR:
9435 2 : {
9436 2 : tree _q50 = TREE_OPERAND (_p1, 0);
9437 2 : tree _q51 = TREE_OPERAND (_p1, 1);
9438 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9439 : {
9440 2 : {
9441 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
9442 2 : tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
9443 2 : if (res) return res;
9444 : }
9445 : }
9446 : break;
9447 : }
9448 : default:;
9449 : }
9450 : break;
9451 : }
9452 2012177 : CASE_CONVERT:
9453 2012177 : {
9454 2012177 : tree _q20 = TREE_OPERAND (_p0, 0);
9455 2012177 : switch (TREE_CODE (_p1))
9456 : {
9457 807955 : CASE_CONVERT:
9458 807955 : {
9459 807955 : tree _q40 = TREE_OPERAND (_p1, 0);
9460 807955 : {
9461 807955 : tree _q40_pops[1];
9462 807955 : if (tree_maybe_bit_not (_q40, _q40_pops))
9463 : {
9464 250 : tree _q50 = _q40_pops[0];
9465 250 : {
9466 250 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
9467 250 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures);
9468 250 : if (res) return res;
9469 : }
9470 : }
9471 : }
9472 807955 : break;
9473 : }
9474 2012177 : default:;
9475 : }
9476 2012177 : {
9477 2012177 : tree _q20_pops[1];
9478 2012177 : if (tree_maybe_bit_not (_q20, _q20_pops))
9479 : {
9480 427 : tree _q30 = _q20_pops[0];
9481 427 : switch (TREE_CODE (_p1))
9482 : {
9483 254 : CASE_CONVERT:
9484 254 : {
9485 254 : tree _q50 = TREE_OPERAND (_p1, 0);
9486 254 : {
9487 254 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
9488 254 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures);
9489 254 : if (res) return res;
9490 : }
9491 254 : break;
9492 : }
9493 : default:;
9494 : }
9495 : }
9496 : }
9497 2012177 : break;
9498 : }
9499 6805417 : default:;
9500 : }
9501 6805417 : {
9502 6805417 : tree _p1_pops[1];
9503 6805417 : if (tree_maybe_bit_not (_p1, _p1_pops))
9504 : {
9505 4861345 : tree _q30 = _p1_pops[0];
9506 4861345 : {
9507 4861345 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
9508 4861345 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures);
9509 4861345 : if (res) return res;
9510 : }
9511 : }
9512 : }
9513 6805401 : {
9514 6805401 : tree _p0_pops[1];
9515 6805401 : if (tree_maybe_bit_not (_p0, _p0_pops))
9516 : {
9517 70875 : tree _q20 = _p0_pops[0];
9518 70875 : {
9519 70875 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
9520 70875 : tree res = generic_simplify_452 (loc, type, _p0, _p1, captures);
9521 70875 : if (res) return res;
9522 : }
9523 : }
9524 : }
9525 6805302 : switch (TREE_CODE (_p1))
9526 : {
9527 21312 : case PLUS_EXPR:
9528 21312 : {
9529 21312 : tree _q30 = TREE_OPERAND (_p1, 0);
9530 21312 : tree _q31 = TREE_OPERAND (_p1, 1);
9531 21312 : switch (TREE_CODE (_q30))
9532 : {
9533 163 : case LSHIFT_EXPR:
9534 163 : {
9535 163 : tree _q40 = TREE_OPERAND (_q30, 0);
9536 163 : tree _q41 = TREE_OPERAND (_q30, 1);
9537 163 : if (integer_onep (_q40))
9538 : {
9539 163 : if (integer_minus_onep (_q31))
9540 : {
9541 163 : {
9542 163 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q41 };
9543 163 : if (TYPE_UNSIGNED (type)
9544 : )
9545 : {
9546 163 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1678;
9547 163 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1678;
9548 163 : {
9549 163 : tree res_op0;
9550 163 : res_op0 = captures[0];
9551 163 : tree res_op1;
9552 163 : {
9553 163 : tree _o1[1], _r1;
9554 163 : {
9555 163 : tree _o2[2], _r2;
9556 163 : _o2[0] = build_all_ones_cst (type);
9557 163 : _o2[1] = captures[3];
9558 163 : _r2 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
9559 163 : _o1[0] = _r2;
9560 : }
9561 163 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
9562 163 : res_op1 = _r1;
9563 : }
9564 163 : tree _r;
9565 163 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
9566 163 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1017, __FILE__, __LINE__, true);
9567 163 : return _r;
9568 : }
9569 0 : next_after_fail1678:;
9570 : }
9571 : }
9572 : }
9573 : }
9574 : break;
9575 : }
9576 : default:;
9577 : }
9578 : break;
9579 : }
9580 6805139 : default:;
9581 : }
9582 6805139 : switch (TREE_CODE (_p0))
9583 : {
9584 320705 : case PLUS_EXPR:
9585 320705 : {
9586 320705 : tree _q20 = TREE_OPERAND (_p0, 0);
9587 320705 : tree _q21 = TREE_OPERAND (_p0, 1);
9588 320705 : switch (TREE_CODE (_q20))
9589 : {
9590 169 : case LSHIFT_EXPR:
9591 169 : {
9592 169 : tree _q30 = TREE_OPERAND (_q20, 0);
9593 169 : tree _q31 = TREE_OPERAND (_q20, 1);
9594 169 : if (integer_onep (_q30))
9595 : {
9596 162 : if (integer_minus_onep (_q21))
9597 : {
9598 162 : {
9599 162 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p0, _q20, _q31 };
9600 162 : if (TYPE_UNSIGNED (type)
9601 : )
9602 : {
9603 134 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1679;
9604 134 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1679;
9605 134 : {
9606 134 : tree res_op0;
9607 134 : res_op0 = captures[0];
9608 134 : tree res_op1;
9609 134 : {
9610 134 : tree _o1[1], _r1;
9611 134 : {
9612 134 : tree _o2[2], _r2;
9613 134 : _o2[0] = build_all_ones_cst (type);
9614 134 : _o2[1] = captures[3];
9615 134 : _r2 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
9616 134 : _o1[0] = _r2;
9617 : }
9618 134 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
9619 134 : res_op1 = _r1;
9620 : }
9621 134 : tree _r;
9622 134 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
9623 134 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1017, __FILE__, __LINE__, true);
9624 134 : return _r;
9625 : }
9626 28 : next_after_fail1679:;
9627 : }
9628 : }
9629 : }
9630 : }
9631 : break;
9632 : }
9633 : default:;
9634 : }
9635 : break;
9636 : }
9637 1871 : case EQ_EXPR:
9638 1871 : {
9639 1871 : tree _q20 = TREE_OPERAND (_p0, 0);
9640 1871 : tree _q21 = TREE_OPERAND (_p0, 1);
9641 1871 : if (integer_zerop (_q21))
9642 : {
9643 753 : switch (TREE_CODE (_p1))
9644 : {
9645 68 : case EQ_EXPR:
9646 68 : {
9647 68 : tree _q50 = TREE_OPERAND (_p1, 0);
9648 68 : tree _q51 = TREE_OPERAND (_p1, 1);
9649 68 : if (integer_zerop (_q51))
9650 : {
9651 29 : {
9652 29 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9653 29 : tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, EQ_EXPR);
9654 29 : if (res) return res;
9655 : }
9656 : }
9657 : break;
9658 : }
9659 : default:;
9660 : }
9661 : }
9662 1842 : if (integer_all_onesp (_q21))
9663 : {
9664 0 : switch (TREE_CODE (_p1))
9665 : {
9666 0 : case EQ_EXPR:
9667 0 : {
9668 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9669 0 : tree _q51 = TREE_OPERAND (_p1, 1);
9670 0 : if (integer_all_onesp (_q51))
9671 : {
9672 0 : {
9673 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9674 0 : tree res = generic_simplify_113 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, EQ_EXPR);
9675 0 : if (res) return res;
9676 : }
9677 : }
9678 : break;
9679 : }
9680 : default:;
9681 : }
9682 : }
9683 1842 : switch (TREE_CODE (_p1))
9684 : {
9685 8 : case BIT_IOR_EXPR:
9686 8 : {
9687 8 : tree _q50 = TREE_OPERAND (_p1, 0);
9688 8 : tree _q51 = TREE_OPERAND (_p1, 1);
9689 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9690 : {
9691 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9692 : {
9693 0 : {
9694 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9695 0 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
9696 0 : if (res) return res;
9697 : }
9698 : }
9699 : }
9700 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9701 : {
9702 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9703 : {
9704 0 : {
9705 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9706 0 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
9707 0 : if (res) return res;
9708 : }
9709 : }
9710 : }
9711 : break;
9712 : }
9713 1842 : default:;
9714 : }
9715 1842 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9716 : {
9717 12 : {
9718 12 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9719 12 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
9720 12 : if (res) return res;
9721 : }
9722 : }
9723 1842 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9724 : {
9725 8 : {
9726 8 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9727 8 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
9728 8 : if (res) return res;
9729 : }
9730 : }
9731 : break;
9732 : }
9733 1615 : case BIT_IOR_EXPR:
9734 1615 : {
9735 1615 : tree _q20 = TREE_OPERAND (_p0, 0);
9736 1615 : tree _q21 = TREE_OPERAND (_p0, 1);
9737 1615 : switch (TREE_CODE (_p1))
9738 : {
9739 169 : case BIT_NOT_EXPR:
9740 169 : {
9741 169 : tree _q50 = TREE_OPERAND (_p1, 0);
9742 169 : switch (TREE_CODE (_q50))
9743 : {
9744 6 : case BIT_XOR_EXPR:
9745 6 : {
9746 6 : tree _q60 = TREE_OPERAND (_q50, 0);
9747 6 : tree _q61 = TREE_OPERAND (_q50, 1);
9748 6 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9749 : {
9750 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
9751 : {
9752 0 : {
9753 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9754 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
9755 0 : if (res) return res;
9756 : }
9757 : }
9758 : }
9759 6 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
9760 : {
9761 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
9762 : {
9763 0 : {
9764 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9765 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
9766 0 : if (res) return res;
9767 : }
9768 : }
9769 : }
9770 : break;
9771 : }
9772 : default:;
9773 : }
9774 : break;
9775 : }
9776 24 : case EQ_EXPR:
9777 24 : {
9778 24 : tree _q50 = TREE_OPERAND (_p1, 0);
9779 24 : tree _q51 = TREE_OPERAND (_p1, 1);
9780 24 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9781 : {
9782 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9783 : {
9784 8 : {
9785 8 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9786 8 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
9787 8 : if (res) return res;
9788 : }
9789 : }
9790 : }
9791 24 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9792 : {
9793 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9794 : {
9795 0 : {
9796 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9797 0 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
9798 0 : if (res) return res;
9799 : }
9800 : }
9801 : }
9802 : break;
9803 : }
9804 1615 : default:;
9805 : }
9806 1615 : {
9807 1615 : tree _p1_pops[1];
9808 1615 : if (tree_nop_convert (_p1, _p1_pops))
9809 : {
9810 139 : tree _q50 = _p1_pops[0];
9811 139 : switch (TREE_CODE (_q50))
9812 : {
9813 0 : case EQ_EXPR:
9814 0 : {
9815 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9816 0 : tree _q61 = TREE_OPERAND (_q50, 1);
9817 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9818 : {
9819 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
9820 : {
9821 0 : {
9822 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9823 0 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
9824 0 : if (res) return res;
9825 : }
9826 : }
9827 : }
9828 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
9829 : {
9830 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
9831 : {
9832 0 : {
9833 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9834 0 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
9835 0 : if (res) return res;
9836 : }
9837 : }
9838 : }
9839 : break;
9840 : }
9841 : default:;
9842 : }
9843 : }
9844 : }
9845 1615 : break;
9846 : }
9847 66953 : case BIT_NOT_EXPR:
9848 66953 : {
9849 66953 : tree _q20 = TREE_OPERAND (_p0, 0);
9850 66953 : switch (TREE_CODE (_q20))
9851 : {
9852 140 : case BIT_XOR_EXPR:
9853 140 : {
9854 140 : tree _q30 = TREE_OPERAND (_q20, 0);
9855 140 : tree _q31 = TREE_OPERAND (_q20, 1);
9856 140 : switch (TREE_CODE (_p1))
9857 : {
9858 48 : case BIT_IOR_EXPR:
9859 48 : {
9860 48 : tree _q60 = TREE_OPERAND (_p1, 0);
9861 48 : tree _q61 = TREE_OPERAND (_p1, 1);
9862 48 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
9863 : {
9864 6 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
9865 : {
9866 0 : {
9867 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9868 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
9869 0 : if (res) return res;
9870 : }
9871 : }
9872 : }
9873 48 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
9874 : {
9875 3 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9876 : {
9877 0 : {
9878 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9879 0 : tree res = generic_simplify_455 (loc, type, _p0, _p1, captures);
9880 0 : if (res) return res;
9881 : }
9882 : }
9883 : }
9884 : break;
9885 : }
9886 140 : default:;
9887 : }
9888 140 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9889 : {
9890 1 : {
9891 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9892 1 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
9893 1 : if (res) return res;
9894 : }
9895 : }
9896 139 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
9897 : {
9898 0 : {
9899 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9900 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
9901 0 : if (res) return res;
9902 : }
9903 : }
9904 : break;
9905 : }
9906 : default:;
9907 : }
9908 : break;
9909 : }
9910 6804975 : default:;
9911 : }
9912 6804975 : {
9913 6804975 : tree _p0_pops[1];
9914 6804975 : if (tree_nop_convert (_p0, _p0_pops))
9915 : {
9916 1415262 : tree _q20 = _p0_pops[0];
9917 1415262 : switch (TREE_CODE (_q20))
9918 : {
9919 0 : case EQ_EXPR:
9920 0 : {
9921 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9922 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9923 0 : switch (TREE_CODE (_p1))
9924 : {
9925 0 : case BIT_IOR_EXPR:
9926 0 : {
9927 0 : tree _q60 = TREE_OPERAND (_p1, 0);
9928 0 : tree _q61 = TREE_OPERAND (_p1, 1);
9929 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
9930 : {
9931 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
9932 : {
9933 0 : {
9934 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9935 0 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
9936 0 : if (res) return res;
9937 : }
9938 : }
9939 : }
9940 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
9941 : {
9942 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
9943 : {
9944 0 : {
9945 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9946 0 : tree res = generic_simplify_453 (loc, type, _p0, _p1, captures);
9947 0 : if (res) return res;
9948 : }
9949 : }
9950 : }
9951 : break;
9952 : }
9953 0 : default:;
9954 : }
9955 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9956 : {
9957 0 : {
9958 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9959 0 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
9960 0 : if (res) return res;
9961 : }
9962 : }
9963 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
9964 : {
9965 0 : {
9966 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
9967 0 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
9968 0 : if (res) return res;
9969 : }
9970 : }
9971 : break;
9972 : }
9973 : default:;
9974 : }
9975 : }
9976 : }
9977 6804975 : switch (TREE_CODE (_p1))
9978 : {
9979 53712 : case BIT_NOT_EXPR:
9980 53712 : {
9981 53712 : tree _q30 = TREE_OPERAND (_p1, 0);
9982 53712 : switch (TREE_CODE (_q30))
9983 : {
9984 6 : case BIT_XOR_EXPR:
9985 6 : {
9986 6 : tree _q40 = TREE_OPERAND (_q30, 0);
9987 6 : tree _q41 = TREE_OPERAND (_q30, 1);
9988 6 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
9989 : {
9990 0 : {
9991 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
9992 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
9993 0 : if (res) return res;
9994 : }
9995 : }
9996 6 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
9997 : {
9998 0 : {
9999 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
10000 0 : tree res = generic_simplify_456 (loc, type, _p0, _p1, captures);
10001 0 : if (res) return res;
10002 : }
10003 : }
10004 : break;
10005 : }
10006 : default:;
10007 : }
10008 : break;
10009 : }
10010 6804975 : default:;
10011 : }
10012 6804975 : switch (TREE_CODE (_p0))
10013 : {
10014 320571 : case PLUS_EXPR:
10015 320571 : {
10016 320571 : tree _q20 = TREE_OPERAND (_p0, 0);
10017 320571 : tree _q21 = TREE_OPERAND (_p0, 1);
10018 320571 : if (integer_minus_onep (_q21))
10019 : {
10020 116426 : switch (TREE_CODE (_p1))
10021 : {
10022 10469 : case NEGATE_EXPR:
10023 10469 : {
10024 10469 : tree _q50 = TREE_OPERAND (_p1, 0);
10025 10469 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10026 : {
10027 9 : {
10028 9 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10029 9 : tree res = generic_simplify_8 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10030 9 : if (res) return res;
10031 : }
10032 : }
10033 : break;
10034 : }
10035 : default:;
10036 : }
10037 : }
10038 : break;
10039 : }
10040 47173 : case NEGATE_EXPR:
10041 47173 : {
10042 47173 : tree _q20 = TREE_OPERAND (_p0, 0);
10043 47173 : switch (TREE_CODE (_p1))
10044 : {
10045 26 : case PLUS_EXPR:
10046 26 : {
10047 26 : tree _q40 = TREE_OPERAND (_p1, 0);
10048 26 : tree _q41 = TREE_OPERAND (_p1, 1);
10049 26 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
10050 : {
10051 0 : if (integer_minus_onep (_q41))
10052 : {
10053 0 : {
10054 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10055 0 : tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10056 0 : if (res) return res;
10057 : }
10058 : }
10059 : }
10060 : break;
10061 : }
10062 0 : case MINUS_EXPR:
10063 0 : {
10064 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10065 0 : tree _q41 = TREE_OPERAND (_p1, 1);
10066 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
10067 : {
10068 0 : if (integer_onep (_q41))
10069 : {
10070 0 : {
10071 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10072 0 : tree res = generic_simplify_10 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10073 0 : if (res) return res;
10074 : }
10075 : }
10076 : }
10077 : break;
10078 : }
10079 : default:;
10080 : }
10081 : break;
10082 : }
10083 679834 : case MINUS_EXPR:
10084 679834 : {
10085 679834 : tree _q20 = TREE_OPERAND (_p0, 0);
10086 679834 : tree _q21 = TREE_OPERAND (_p0, 1);
10087 679834 : if (integer_onep (_q21))
10088 : {
10089 805 : switch (TREE_CODE (_p1))
10090 : {
10091 0 : case NEGATE_EXPR:
10092 0 : {
10093 0 : tree _q50 = TREE_OPERAND (_p1, 0);
10094 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10095 : {
10096 0 : {
10097 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10098 0 : tree res = generic_simplify_11 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10099 0 : if (res) return res;
10100 : }
10101 : }
10102 : break;
10103 : }
10104 : default:;
10105 : }
10106 : }
10107 : break;
10108 : }
10109 6804966 : default:;
10110 : }
10111 6804966 : switch (TREE_CODE (_p1))
10112 : {
10113 1780 : case EQ_EXPR:
10114 1780 : {
10115 1780 : tree _q30 = TREE_OPERAND (_p1, 0);
10116 1780 : tree _q31 = TREE_OPERAND (_p1, 1);
10117 1780 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10118 : {
10119 1 : {
10120 1 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
10121 1 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10122 1 : if (res) return res;
10123 : }
10124 : }
10125 1780 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
10126 : {
10127 0 : {
10128 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
10129 0 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10130 0 : if (res) return res;
10131 : }
10132 : }
10133 : break;
10134 : }
10135 257 : case BIT_XOR_EXPR:
10136 257 : {
10137 257 : tree _q30 = TREE_OPERAND (_p1, 0);
10138 257 : tree _q31 = TREE_OPERAND (_p1, 1);
10139 257 : {
10140 257 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
10141 257 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures);
10142 257 : if (res) return res;
10143 : }
10144 256 : {
10145 256 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
10146 256 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures);
10147 256 : if (res) return res;
10148 : }
10149 256 : break;
10150 : }
10151 6804965 : default:;
10152 : }
10153 6804965 : {
10154 6804965 : tree _p1_pops[1];
10155 6804965 : if (tree_nop_convert (_p1, _p1_pops))
10156 : {
10157 964974 : tree _q30 = _p1_pops[0];
10158 964974 : switch (TREE_CODE (_q30))
10159 : {
10160 0 : case EQ_EXPR:
10161 0 : {
10162 0 : tree _q40 = TREE_OPERAND (_q30, 0);
10163 0 : tree _q41 = TREE_OPERAND (_q30, 1);
10164 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
10165 : {
10166 0 : {
10167 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
10168 0 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10169 0 : if (res) return res;
10170 : }
10171 : }
10172 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
10173 : {
10174 0 : {
10175 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
10176 0 : tree res = generic_simplify_454 (loc, type, _p0, _p1, captures);
10177 0 : if (res) return res;
10178 : }
10179 : }
10180 : break;
10181 : }
10182 : default:;
10183 : }
10184 : }
10185 : }
10186 6804965 : switch (TREE_CODE (_p0))
10187 : {
10188 61143 : case BIT_XOR_EXPR:
10189 61143 : {
10190 61143 : tree _q20 = TREE_OPERAND (_p0, 0);
10191 61143 : tree _q21 = TREE_OPERAND (_p0, 1);
10192 61143 : {
10193 61143 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
10194 61143 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures);
10195 61143 : if (res) return res;
10196 : }
10197 61143 : {
10198 61143 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q21, _q20 };
10199 61143 : tree res = generic_simplify_457 (loc, type, _p0, _p1, captures);
10200 61143 : if (res) return res;
10201 : }
10202 61143 : switch (TREE_CODE (_p1))
10203 : {
10204 152 : case BIT_XOR_EXPR:
10205 152 : {
10206 152 : tree _q50 = TREE_OPERAND (_p1, 0);
10207 152 : tree _q51 = TREE_OPERAND (_p1, 1);
10208 152 : switch (TREE_CODE (_q50))
10209 : {
10210 3 : case BIT_XOR_EXPR:
10211 3 : {
10212 3 : tree _q60 = TREE_OPERAND (_q50, 0);
10213 3 : tree _q61 = TREE_OPERAND (_q50, 1);
10214 3 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
10215 : {
10216 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
10217 : {
10218 1 : {
10219 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q61 };
10220 1 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures);
10221 1 : if (res) return res;
10222 : }
10223 : }
10224 : }
10225 2 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
10226 : {
10227 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
10228 : {
10229 0 : {
10230 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q60 };
10231 0 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures);
10232 0 : if (res) return res;
10233 : }
10234 : }
10235 : }
10236 2 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10237 : {
10238 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10239 : {
10240 1 : {
10241 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q61 };
10242 1 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures);
10243 1 : if (res) return res;
10244 : }
10245 : }
10246 : }
10247 1 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
10248 : {
10249 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10250 : {
10251 0 : {
10252 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q60 };
10253 0 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures);
10254 0 : if (res) return res;
10255 : }
10256 : }
10257 : }
10258 : break;
10259 : }
10260 150 : default:;
10261 : }
10262 150 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10263 : {
10264 47 : switch (TREE_CODE (_q51))
10265 : {
10266 0 : case BIT_XOR_EXPR:
10267 0 : {
10268 0 : tree _q70 = TREE_OPERAND (_q51, 0);
10269 0 : tree _q71 = TREE_OPERAND (_q51, 1);
10270 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
10271 : {
10272 0 : {
10273 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q71 };
10274 0 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures);
10275 0 : if (res) return res;
10276 : }
10277 : }
10278 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
10279 : {
10280 0 : {
10281 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q70 };
10282 0 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures);
10283 0 : if (res) return res;
10284 : }
10285 : }
10286 : break;
10287 : }
10288 : default:;
10289 : }
10290 : }
10291 150 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
10292 : {
10293 0 : switch (TREE_CODE (_q51))
10294 : {
10295 0 : case BIT_XOR_EXPR:
10296 0 : {
10297 0 : tree _q70 = TREE_OPERAND (_q51, 0);
10298 0 : tree _q71 = TREE_OPERAND (_q51, 1);
10299 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
10300 : {
10301 0 : {
10302 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q71 };
10303 0 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures);
10304 0 : if (res) return res;
10305 : }
10306 : }
10307 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
10308 : {
10309 0 : {
10310 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q70 };
10311 0 : tree res = generic_simplify_458 (loc, type, _p0, _p1, captures);
10312 0 : if (res) return res;
10313 : }
10314 : }
10315 : break;
10316 : }
10317 : default:;
10318 : }
10319 : }
10320 : break;
10321 : }
10322 61141 : default:;
10323 : }
10324 61141 : switch (TREE_CODE (_q20))
10325 : {
10326 11 : case BIT_XOR_EXPR:
10327 11 : {
10328 11 : tree _q30 = TREE_OPERAND (_q20, 0);
10329 11 : tree _q31 = TREE_OPERAND (_q20, 1);
10330 11 : switch (TREE_CODE (_p1))
10331 : {
10332 0 : case BIT_XOR_EXPR:
10333 0 : {
10334 0 : tree _q70 = TREE_OPERAND (_p1, 0);
10335 0 : tree _q71 = TREE_OPERAND (_p1, 1);
10336 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
10337 : {
10338 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
10339 : {
10340 0 : {
10341 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q30, _p0, _q20, _q31 };
10342 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures);
10343 0 : if (res) return res;
10344 : }
10345 : }
10346 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
10347 : {
10348 0 : {
10349 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q31, _p0, _q20, _q30 };
10350 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures);
10351 0 : if (res) return res;
10352 : }
10353 : }
10354 : }
10355 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
10356 : {
10357 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
10358 : {
10359 0 : {
10360 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q30, _p0, _q20, _q31 };
10361 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures);
10362 0 : if (res) return res;
10363 : }
10364 : }
10365 : }
10366 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
10367 : {
10368 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
10369 : {
10370 0 : {
10371 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q31, _p0, _q20, _q30 };
10372 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures);
10373 0 : if (res) return res;
10374 : }
10375 : }
10376 : }
10377 : break;
10378 : }
10379 : default:;
10380 : }
10381 : break;
10382 : }
10383 61141 : default:;
10384 : }
10385 61141 : switch (TREE_CODE (_q21))
10386 : {
10387 0 : case BIT_XOR_EXPR:
10388 0 : {
10389 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10390 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10391 0 : switch (TREE_CODE (_p1))
10392 : {
10393 0 : case BIT_XOR_EXPR:
10394 0 : {
10395 0 : tree _q70 = TREE_OPERAND (_p1, 0);
10396 0 : tree _q71 = TREE_OPERAND (_p1, 1);
10397 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
10398 : {
10399 0 : if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
10400 : {
10401 0 : {
10402 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q40, _p0, _q21, _q41 };
10403 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures);
10404 0 : if (res) return res;
10405 : }
10406 : }
10407 0 : if ((_q71 == _q41 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q41, 0) && types_match (_q71, _q41)))
10408 : {
10409 0 : {
10410 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q41, _p0, _q21, _q40 };
10411 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures);
10412 0 : if (res) return res;
10413 : }
10414 : }
10415 : }
10416 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
10417 : {
10418 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
10419 : {
10420 0 : {
10421 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q40, _p0, _q21, _q41 };
10422 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures);
10423 0 : if (res) return res;
10424 : }
10425 : }
10426 : }
10427 0 : if ((_q70 == _q41 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q41, 0) && types_match (_q70, _q41)))
10428 : {
10429 0 : if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
10430 : {
10431 0 : {
10432 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q41, _p0, _q21, _q40 };
10433 0 : tree res = generic_simplify_459 (loc, type, _p0, _p1, captures);
10434 0 : if (res) return res;
10435 : }
10436 : }
10437 : }
10438 : break;
10439 : }
10440 : default:;
10441 : }
10442 : break;
10443 : }
10444 : default:;
10445 : }
10446 : break;
10447 : }
10448 66951 : case BIT_NOT_EXPR:
10449 66951 : {
10450 66951 : tree _q20 = TREE_OPERAND (_p0, 0);
10451 66951 : switch (TREE_CODE (_q20))
10452 : {
10453 212 : case SSA_NAME:
10454 212 : {
10455 212 : switch (TREE_CODE (_p1))
10456 : {
10457 212 : case INTEGER_CST:
10458 212 : {
10459 212 : {
10460 212 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10461 424 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
10462 636 : && wi::bit_and_not (get_nonzero_bits (captures[0]), wi::to_wide (captures[1])) == 0
10463 : )
10464 : {
10465 15 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1680;
10466 15 : {
10467 15 : tree res_op0;
10468 15 : res_op0 = captures[0];
10469 15 : tree res_op1;
10470 15 : res_op1 = captures[1];
10471 15 : tree _r;
10472 15 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
10473 15 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1018, __FILE__, __LINE__, true);
10474 15 : return _r;
10475 : }
10476 0 : next_after_fail1680:;
10477 : }
10478 : }
10479 197 : break;
10480 : }
10481 : default:;
10482 : }
10483 : break;
10484 : }
10485 : default:;
10486 : }
10487 : break;
10488 : }
10489 320562 : case PLUS_EXPR:
10490 320562 : {
10491 320562 : tree _q20 = TREE_OPERAND (_p0, 0);
10492 320562 : tree _q21 = TREE_OPERAND (_p0, 1);
10493 320562 : switch (TREE_CODE (_q20))
10494 : {
10495 24 : case BIT_AND_EXPR:
10496 24 : {
10497 24 : tree _q30 = TREE_OPERAND (_q20, 0);
10498 24 : tree _q31 = TREE_OPERAND (_q20, 1);
10499 24 : switch (TREE_CODE (_q31))
10500 : {
10501 20 : case INTEGER_CST:
10502 20 : {
10503 20 : switch (TREE_CODE (_p1))
10504 : {
10505 20 : case INTEGER_CST:
10506 20 : {
10507 20 : {
10508 20 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10509 20 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, PLUS_EXPR);
10510 20 : if (res) return res;
10511 : }
10512 12 : break;
10513 : }
10514 : default:;
10515 : }
10516 : break;
10517 : }
10518 : default:;
10519 : }
10520 : break;
10521 : }
10522 64 : case BIT_IOR_EXPR:
10523 64 : {
10524 64 : tree _q30 = TREE_OPERAND (_q20, 0);
10525 64 : tree _q31 = TREE_OPERAND (_q20, 1);
10526 64 : switch (TREE_CODE (_q31))
10527 : {
10528 52 : case INTEGER_CST:
10529 52 : {
10530 52 : switch (TREE_CODE (_p1))
10531 : {
10532 52 : case INTEGER_CST:
10533 52 : {
10534 52 : {
10535 52 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10536 52 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, PLUS_EXPR);
10537 52 : if (res) return res;
10538 : }
10539 48 : break;
10540 : }
10541 : default:;
10542 : }
10543 : break;
10544 : }
10545 : default:;
10546 : }
10547 : break;
10548 : }
10549 24 : case BIT_XOR_EXPR:
10550 24 : {
10551 24 : tree _q30 = TREE_OPERAND (_q20, 0);
10552 24 : tree _q31 = TREE_OPERAND (_q20, 1);
10553 24 : switch (TREE_CODE (_q31))
10554 : {
10555 4 : case INTEGER_CST:
10556 4 : {
10557 4 : switch (TREE_CODE (_p1))
10558 : {
10559 4 : case INTEGER_CST:
10560 4 : {
10561 4 : {
10562 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10563 4 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, PLUS_EXPR);
10564 4 : if (res) return res;
10565 : }
10566 0 : break;
10567 : }
10568 : default:;
10569 : }
10570 : break;
10571 : }
10572 : default:;
10573 : }
10574 : break;
10575 : }
10576 320546 : default:;
10577 : }
10578 320546 : switch (TREE_CODE (_q21))
10579 : {
10580 0 : case BIT_AND_EXPR:
10581 0 : {
10582 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10583 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10584 0 : switch (TREE_CODE (_q41))
10585 : {
10586 0 : case INTEGER_CST:
10587 0 : {
10588 0 : switch (TREE_CODE (_p1))
10589 : {
10590 0 : case INTEGER_CST:
10591 0 : {
10592 0 : {
10593 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10594 0 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, PLUS_EXPR);
10595 0 : if (res) return res;
10596 : }
10597 0 : break;
10598 : }
10599 : default:;
10600 : }
10601 : break;
10602 : }
10603 : default:;
10604 : }
10605 : break;
10606 : }
10607 0 : case BIT_IOR_EXPR:
10608 0 : {
10609 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10610 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10611 0 : switch (TREE_CODE (_q41))
10612 : {
10613 0 : case INTEGER_CST:
10614 0 : {
10615 0 : switch (TREE_CODE (_p1))
10616 : {
10617 0 : case INTEGER_CST:
10618 0 : {
10619 0 : {
10620 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10621 0 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, PLUS_EXPR);
10622 0 : if (res) return res;
10623 : }
10624 0 : break;
10625 : }
10626 : default:;
10627 : }
10628 : break;
10629 : }
10630 : default:;
10631 : }
10632 : break;
10633 : }
10634 0 : case BIT_XOR_EXPR:
10635 0 : {
10636 0 : tree _q40 = TREE_OPERAND (_q21, 0);
10637 0 : tree _q41 = TREE_OPERAND (_q21, 1);
10638 0 : switch (TREE_CODE (_q41))
10639 : {
10640 0 : case INTEGER_CST:
10641 0 : {
10642 0 : switch (TREE_CODE (_p1))
10643 : {
10644 0 : case INTEGER_CST:
10645 0 : {
10646 0 : {
10647 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10648 0 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, PLUS_EXPR);
10649 0 : if (res) return res;
10650 : }
10651 0 : break;
10652 : }
10653 : default:;
10654 : }
10655 : break;
10656 : }
10657 : default:;
10658 : }
10659 : break;
10660 : }
10661 320546 : default:;
10662 : }
10663 320546 : switch (TREE_CODE (_p1))
10664 : {
10665 236346 : case INTEGER_CST:
10666 236346 : {
10667 236346 : {
10668 236346 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10669 236346 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures, PLUS_EXPR);
10670 236346 : if (res) return res;
10671 : }
10672 105757 : break;
10673 : }
10674 : default:;
10675 : }
10676 : break;
10677 : }
10678 679834 : case MINUS_EXPR:
10679 679834 : {
10680 679834 : tree _q20 = TREE_OPERAND (_p0, 0);
10681 679834 : tree _q21 = TREE_OPERAND (_p0, 1);
10682 679834 : switch (TREE_CODE (_q20))
10683 : {
10684 4 : case BIT_AND_EXPR:
10685 4 : {
10686 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10687 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10688 4 : switch (TREE_CODE (_q31))
10689 : {
10690 2 : case INTEGER_CST:
10691 2 : {
10692 2 : switch (TREE_CODE (_p1))
10693 : {
10694 2 : case INTEGER_CST:
10695 2 : {
10696 2 : {
10697 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10698 2 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MINUS_EXPR);
10699 2 : if (res) return res;
10700 : }
10701 0 : break;
10702 : }
10703 : default:;
10704 : }
10705 : break;
10706 : }
10707 : default:;
10708 : }
10709 : break;
10710 : }
10711 4 : case BIT_IOR_EXPR:
10712 4 : {
10713 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10714 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10715 4 : switch (TREE_CODE (_q31))
10716 : {
10717 2 : case INTEGER_CST:
10718 2 : {
10719 2 : switch (TREE_CODE (_p1))
10720 : {
10721 2 : case INTEGER_CST:
10722 2 : {
10723 2 : {
10724 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10725 2 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, MINUS_EXPR);
10726 2 : if (res) return res;
10727 : }
10728 0 : break;
10729 : }
10730 : default:;
10731 : }
10732 : break;
10733 : }
10734 : default:;
10735 : }
10736 : break;
10737 : }
10738 4 : case BIT_XOR_EXPR:
10739 4 : {
10740 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10741 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10742 4 : switch (TREE_CODE (_q31))
10743 : {
10744 2 : case INTEGER_CST:
10745 2 : {
10746 2 : switch (TREE_CODE (_p1))
10747 : {
10748 2 : case INTEGER_CST:
10749 2 : {
10750 2 : {
10751 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
10752 2 : tree res = generic_simplify_460 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, MINUS_EXPR);
10753 2 : if (res) return res;
10754 : }
10755 0 : break;
10756 : }
10757 : default:;
10758 : }
10759 : break;
10760 : }
10761 : default:;
10762 : }
10763 : break;
10764 : }
10765 679828 : default:;
10766 : }
10767 679828 : switch (TREE_CODE (_q21))
10768 : {
10769 352 : case BIT_AND_EXPR:
10770 352 : {
10771 352 : tree _q40 = TREE_OPERAND (_q21, 0);
10772 352 : tree _q41 = TREE_OPERAND (_q21, 1);
10773 352 : switch (TREE_CODE (_q41))
10774 : {
10775 350 : case INTEGER_CST:
10776 350 : {
10777 350 : switch (TREE_CODE (_p1))
10778 : {
10779 350 : case INTEGER_CST:
10780 350 : {
10781 350 : {
10782 350 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10783 350 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MINUS_EXPR);
10784 350 : if (res) return res;
10785 : }
10786 1 : break;
10787 : }
10788 : default:;
10789 : }
10790 : break;
10791 : }
10792 : default:;
10793 : }
10794 : break;
10795 : }
10796 4 : case BIT_IOR_EXPR:
10797 4 : {
10798 4 : tree _q40 = TREE_OPERAND (_q21, 0);
10799 4 : tree _q41 = TREE_OPERAND (_q21, 1);
10800 4 : switch (TREE_CODE (_q41))
10801 : {
10802 2 : case INTEGER_CST:
10803 2 : {
10804 2 : switch (TREE_CODE (_p1))
10805 : {
10806 2 : case INTEGER_CST:
10807 2 : {
10808 2 : {
10809 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10810 2 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, MINUS_EXPR);
10811 2 : if (res) return res;
10812 : }
10813 0 : break;
10814 : }
10815 : default:;
10816 : }
10817 : break;
10818 : }
10819 : default:;
10820 : }
10821 : break;
10822 : }
10823 4 : case BIT_XOR_EXPR:
10824 4 : {
10825 4 : tree _q40 = TREE_OPERAND (_q21, 0);
10826 4 : tree _q41 = TREE_OPERAND (_q21, 1);
10827 4 : switch (TREE_CODE (_q41))
10828 : {
10829 2 : case INTEGER_CST:
10830 2 : {
10831 2 : switch (TREE_CODE (_p1))
10832 : {
10833 2 : case INTEGER_CST:
10834 2 : {
10835 2 : {
10836 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
10837 2 : tree res = generic_simplify_461 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, MINUS_EXPR);
10838 2 : if (res) return res;
10839 : }
10840 0 : break;
10841 : }
10842 : default:;
10843 : }
10844 : break;
10845 : }
10846 : default:;
10847 : }
10848 : break;
10849 : }
10850 679475 : default:;
10851 : }
10852 679475 : switch (TREE_CODE (_p1))
10853 : {
10854 679273 : case INTEGER_CST:
10855 679273 : {
10856 679273 : {
10857 679273 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10858 679273 : tree res = generic_simplify_462 (loc, type, _p0, _p1, captures, MINUS_EXPR);
10859 679273 : if (res) return res;
10860 : }
10861 488020 : break;
10862 : }
10863 : default:;
10864 : }
10865 : break;
10866 : }
10867 47173 : case NEGATE_EXPR:
10868 47173 : {
10869 47173 : tree _q20 = TREE_OPERAND (_p0, 0);
10870 47173 : switch (TREE_CODE (_q20))
10871 : {
10872 25 : case BIT_AND_EXPR:
10873 25 : {
10874 25 : tree _q30 = TREE_OPERAND (_q20, 0);
10875 25 : tree _q31 = TREE_OPERAND (_q20, 1);
10876 25 : switch (TREE_CODE (_q31))
10877 : {
10878 21 : case INTEGER_CST:
10879 21 : {
10880 21 : switch (TREE_CODE (_p1))
10881 : {
10882 11 : case INTEGER_CST:
10883 11 : {
10884 11 : {
10885 11 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10886 11 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
10887 11 : if (res) return res;
10888 : }
10889 8 : break;
10890 : }
10891 : default:;
10892 : }
10893 : break;
10894 : }
10895 : default:;
10896 : }
10897 : break;
10898 : }
10899 44 : case BIT_IOR_EXPR:
10900 44 : {
10901 44 : tree _q30 = TREE_OPERAND (_q20, 0);
10902 44 : tree _q31 = TREE_OPERAND (_q20, 1);
10903 44 : switch (TREE_CODE (_q31))
10904 : {
10905 2 : case INTEGER_CST:
10906 2 : {
10907 2 : switch (TREE_CODE (_p1))
10908 : {
10909 2 : case INTEGER_CST:
10910 2 : {
10911 2 : {
10912 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10913 2 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
10914 2 : if (res) return res;
10915 : }
10916 0 : break;
10917 : }
10918 : default:;
10919 : }
10920 : break;
10921 : }
10922 : default:;
10923 : }
10924 : break;
10925 : }
10926 4 : case BIT_XOR_EXPR:
10927 4 : {
10928 4 : tree _q30 = TREE_OPERAND (_q20, 0);
10929 4 : tree _q31 = TREE_OPERAND (_q20, 1);
10930 4 : switch (TREE_CODE (_q31))
10931 : {
10932 2 : case INTEGER_CST:
10933 2 : {
10934 2 : switch (TREE_CODE (_p1))
10935 : {
10936 2 : case INTEGER_CST:
10937 2 : {
10938 2 : {
10939 2 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
10940 2 : tree res = generic_simplify_463 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
10941 2 : if (res) return res;
10942 : }
10943 0 : break;
10944 : }
10945 : default:;
10946 : }
10947 : break;
10948 : }
10949 : default:;
10950 : }
10951 : break;
10952 : }
10953 47166 : default:;
10954 : }
10955 47166 : if (tree_zero_one_valued_p (_q20))
10956 : {
10957 21 : {
10958 21 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10959 21 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures);
10960 21 : if (res) return res;
10961 : }
10962 : }
10963 : break;
10964 : }
10965 6482703 : default:;
10966 : }
10967 6482703 : if (integer_zerop (_p1))
10968 : {
10969 3896 : {
10970 3896 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10971 3896 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1681;
10972 3896 : {
10973 3896 : tree _r;
10974 3896 : _r = captures[1];
10975 3896 : if (TREE_SIDE_EFFECTS (captures[0]))
10976 51 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
10977 3896 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1019, __FILE__, __LINE__, true);
10978 3896 : return _r;
10979 : }
10980 0 : next_after_fail1681:;
10981 : }
10982 : }
10983 6478807 : if (integer_all_onesp (_p1))
10984 : {
10985 45300 : {
10986 45300 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10987 45300 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1682;
10988 45300 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1682;
10989 45300 : {
10990 45300 : tree res_op0;
10991 45300 : res_op0 = captures[0];
10992 45300 : tree _r;
10993 45300 : _r = non_lvalue_loc (loc, res_op0);
10994 45300 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1020, __FILE__, __LINE__, true);
10995 45300 : return _r;
10996 : }
10997 : next_after_fail1682:;
10998 : }
10999 : }
11000 6433507 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
11001 : {
11002 131 : {
11003 131 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11004 131 : tree res = generic_simplify_129 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11005 131 : if (res) return res;
11006 : }
11007 : }
11008 6433376 : switch (TREE_CODE (_p1))
11009 : {
11010 53712 : case BIT_NOT_EXPR:
11011 53712 : {
11012 53712 : tree _q30 = TREE_OPERAND (_p1, 0);
11013 53712 : switch (TREE_CODE (_q30))
11014 : {
11015 13 : case BIT_AND_EXPR:
11016 13 : {
11017 13 : tree _q40 = TREE_OPERAND (_q30, 0);
11018 13 : tree _q41 = TREE_OPERAND (_q30, 1);
11019 13 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
11020 : {
11021 0 : {
11022 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q41 };
11023 0 : tree res = generic_simplify_130 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11024 0 : if (res) return res;
11025 : }
11026 : }
11027 13 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
11028 : {
11029 0 : {
11030 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
11031 0 : tree res = generic_simplify_130 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11032 0 : if (res) return res;
11033 : }
11034 : }
11035 : break;
11036 : }
11037 : default:;
11038 : }
11039 : break;
11040 : }
11041 6433376 : default:;
11042 : }
11043 6433376 : switch (TREE_CODE (_p0))
11044 : {
11045 66920 : case BIT_NOT_EXPR:
11046 66920 : {
11047 66920 : tree _q20 = TREE_OPERAND (_p0, 0);
11048 66920 : switch (TREE_CODE (_q20))
11049 : {
11050 28 : case BIT_AND_EXPR:
11051 28 : {
11052 28 : tree _q30 = TREE_OPERAND (_q20, 0);
11053 28 : tree _q31 = TREE_OPERAND (_q20, 1);
11054 28 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
11055 : {
11056 4 : {
11057 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q20, _q31 };
11058 4 : tree res = generic_simplify_130 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11059 4 : if (res) return res;
11060 : }
11061 : }
11062 24 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
11063 : {
11064 3 : {
11065 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q20, _q30 };
11066 3 : tree res = generic_simplify_130 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11067 3 : if (res) return res;
11068 : }
11069 : }
11070 21 : switch (TREE_CODE (_p1))
11071 : {
11072 0 : case BIT_IOR_EXPR:
11073 0 : {
11074 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11075 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11076 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11077 : {
11078 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
11079 : {
11080 0 : {
11081 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
11082 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures);
11083 0 : if (res) return res;
11084 : }
11085 : }
11086 : }
11087 : break;
11088 : }
11089 : default:;
11090 : }
11091 : break;
11092 : }
11093 66913 : default:;
11094 : }
11095 66913 : switch (TREE_CODE (_p1))
11096 : {
11097 27507 : CASE_CONVERT:
11098 27507 : {
11099 27507 : tree _q40 = TREE_OPERAND (_p1, 0);
11100 27507 : switch (TREE_CODE (_q40))
11101 : {
11102 0 : case BIT_NOT_EXPR:
11103 0 : {
11104 0 : tree _q50 = TREE_OPERAND (_q40, 0);
11105 0 : {
11106 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
11107 0 : tree res = generic_simplify_134 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11108 0 : if (res) return res;
11109 : }
11110 0 : break;
11111 : }
11112 : default:;
11113 : }
11114 : break;
11115 : }
11116 44 : case BIT_NOT_EXPR:
11117 44 : {
11118 44 : tree _q40 = TREE_OPERAND (_p1, 0);
11119 44 : {
11120 44 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
11121 44 : tree res = generic_simplify_134 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11122 44 : if (res) return res;
11123 : }
11124 0 : break;
11125 : }
11126 : default:;
11127 : }
11128 : break;
11129 : }
11130 1585 : case BIT_IOR_EXPR:
11131 1585 : {
11132 1585 : tree _q20 = TREE_OPERAND (_p0, 0);
11133 1585 : tree _q21 = TREE_OPERAND (_p0, 1);
11134 1585 : switch (TREE_CODE (_p1))
11135 : {
11136 169 : case BIT_NOT_EXPR:
11137 169 : {
11138 169 : tree _q50 = TREE_OPERAND (_p1, 0);
11139 169 : switch (TREE_CODE (_q50))
11140 : {
11141 0 : case BIT_AND_EXPR:
11142 0 : {
11143 0 : tree _q60 = TREE_OPERAND (_q50, 0);
11144 0 : tree _q61 = TREE_OPERAND (_q50, 1);
11145 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11146 : {
11147 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
11148 : {
11149 0 : {
11150 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
11151 0 : tree res = generic_simplify_465 (loc, type, _p0, _p1, captures);
11152 0 : if (res) return res;
11153 : }
11154 : }
11155 : }
11156 : break;
11157 : }
11158 : default:;
11159 : }
11160 : break;
11161 : }
11162 2 : case BIT_XOR_EXPR:
11163 2 : {
11164 2 : tree _q50 = TREE_OPERAND (_p1, 0);
11165 2 : tree _q51 = TREE_OPERAND (_p1, 1);
11166 2 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11167 : {
11168 0 : {
11169 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
11170 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures);
11171 0 : if (res) return res;
11172 : }
11173 : }
11174 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11175 : {
11176 2 : {
11177 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
11178 2 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures);
11179 2 : if (res) return res;
11180 : }
11181 : }
11182 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11183 : {
11184 0 : {
11185 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
11186 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures);
11187 0 : if (res) return res;
11188 : }
11189 : }
11190 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11191 : {
11192 0 : {
11193 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
11194 0 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures);
11195 0 : if (res) return res;
11196 : }
11197 : }
11198 : break;
11199 : }
11200 1585 : default:;
11201 : }
11202 1585 : switch (TREE_CODE (_q20))
11203 : {
11204 127 : case BIT_NOT_EXPR:
11205 127 : {
11206 127 : tree _q30 = TREE_OPERAND (_q20, 0);
11207 127 : switch (TREE_CODE (_p1))
11208 : {
11209 2 : case BIT_IOR_EXPR:
11210 2 : {
11211 2 : tree _q60 = TREE_OPERAND (_p1, 0);
11212 2 : tree _q61 = TREE_OPERAND (_p1, 1);
11213 2 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11214 : {
11215 0 : switch (TREE_CODE (_q61))
11216 : {
11217 0 : case BIT_NOT_EXPR:
11218 0 : {
11219 0 : tree _q80 = TREE_OPERAND (_q61, 0);
11220 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
11221 : {
11222 0 : {
11223 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
11224 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures);
11225 0 : if (res) return res;
11226 : }
11227 : }
11228 : break;
11229 : }
11230 : default:;
11231 : }
11232 : }
11233 2 : switch (TREE_CODE (_q60))
11234 : {
11235 2 : case BIT_NOT_EXPR:
11236 2 : {
11237 2 : tree _q70 = TREE_OPERAND (_q60, 0);
11238 2 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
11239 : {
11240 2 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
11241 : {
11242 2 : {
11243 2 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
11244 2 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures);
11245 2 : if (res) return res;
11246 : }
11247 : }
11248 : }
11249 : break;
11250 : }
11251 : default:;
11252 : }
11253 : break;
11254 : }
11255 : default:;
11256 : }
11257 : break;
11258 : }
11259 1583 : default:;
11260 : }
11261 1583 : switch (TREE_CODE (_q21))
11262 : {
11263 0 : case BIT_NOT_EXPR:
11264 0 : {
11265 0 : tree _q40 = TREE_OPERAND (_q21, 0);
11266 0 : switch (TREE_CODE (_p1))
11267 : {
11268 0 : case BIT_IOR_EXPR:
11269 0 : {
11270 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11271 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11272 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
11273 : {
11274 0 : switch (TREE_CODE (_q61))
11275 : {
11276 0 : case BIT_NOT_EXPR:
11277 0 : {
11278 0 : tree _q80 = TREE_OPERAND (_q61, 0);
11279 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
11280 : {
11281 0 : {
11282 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
11283 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures);
11284 0 : if (res) return res;
11285 : }
11286 : }
11287 : break;
11288 : }
11289 : default:;
11290 : }
11291 : }
11292 0 : switch (TREE_CODE (_q60))
11293 : {
11294 0 : case BIT_NOT_EXPR:
11295 0 : {
11296 0 : tree _q70 = TREE_OPERAND (_q60, 0);
11297 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
11298 : {
11299 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
11300 : {
11301 0 : {
11302 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
11303 0 : tree res = generic_simplify_467 (loc, type, _p0, _p1, captures);
11304 0 : if (res) return res;
11305 : }
11306 : }
11307 : }
11308 : break;
11309 : }
11310 : default:;
11311 : }
11312 : break;
11313 : }
11314 : default:;
11315 : }
11316 : break;
11317 : }
11318 : default:;
11319 : }
11320 : break;
11321 : }
11322 61085 : case BIT_XOR_EXPR:
11323 61085 : {
11324 61085 : tree _q20 = TREE_OPERAND (_p0, 0);
11325 61085 : tree _q21 = TREE_OPERAND (_p0, 1);
11326 61085 : switch (TREE_CODE (_p1))
11327 : {
11328 133 : case BIT_IOR_EXPR:
11329 133 : {
11330 133 : tree _q50 = TREE_OPERAND (_p1, 0);
11331 133 : tree _q51 = TREE_OPERAND (_p1, 1);
11332 133 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11333 : {
11334 18 : {
11335 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q20, _q21 };
11336 18 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures);
11337 18 : if (res) return res;
11338 : }
11339 : }
11340 133 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11341 : {
11342 33 : {
11343 33 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q21, _q20 };
11344 33 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures);
11345 33 : if (res) return res;
11346 : }
11347 : }
11348 133 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11349 : {
11350 30 : {
11351 30 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q20, _q21 };
11352 30 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures);
11353 30 : if (res) return res;
11354 : }
11355 : }
11356 133 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11357 : {
11358 21 : {
11359 21 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q21, _q20 };
11360 21 : tree res = generic_simplify_466 (loc, type, _p0, _p1, captures);
11361 21 : if (res) return res;
11362 : }
11363 : }
11364 : break;
11365 : }
11366 61085 : default:;
11367 : }
11368 61085 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
11369 : {
11370 31 : {
11371 31 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
11372 31 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11373 31 : if (res) return res;
11374 : }
11375 : }
11376 61054 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
11377 : {
11378 2 : {
11379 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
11380 2 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11381 2 : if (res) return res;
11382 : }
11383 : }
11384 : break;
11385 : }
11386 1974305 : CASE_CONVERT:
11387 1974305 : {
11388 1974305 : tree _q20 = TREE_OPERAND (_p0, 0);
11389 1974305 : switch (TREE_CODE (_q20))
11390 : {
11391 164 : case BIT_NOT_EXPR:
11392 164 : {
11393 164 : tree _q30 = TREE_OPERAND (_q20, 0);
11394 164 : switch (TREE_CODE (_p1))
11395 : {
11396 34 : CASE_CONVERT:
11397 34 : {
11398 34 : tree _q50 = TREE_OPERAND (_p1, 0);
11399 34 : switch (TREE_CODE (_q50))
11400 : {
11401 0 : case BIT_NOT_EXPR:
11402 0 : {
11403 0 : tree _q60 = TREE_OPERAND (_q50, 0);
11404 0 : {
11405 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 };
11406 0 : tree res = generic_simplify_134 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11407 0 : if (res) return res;
11408 : }
11409 0 : break;
11410 : }
11411 : default:;
11412 : }
11413 : break;
11414 : }
11415 1 : case BIT_NOT_EXPR:
11416 1 : {
11417 1 : tree _q50 = TREE_OPERAND (_p1, 0);
11418 1 : {
11419 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
11420 1 : tree res = generic_simplify_134 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11421 1 : if (res) return res;
11422 : }
11423 0 : break;
11424 : }
11425 : default:;
11426 : }
11427 : break;
11428 : }
11429 : default:;
11430 : }
11431 : break;
11432 : }
11433 6433289 : default:;
11434 : }
11435 6433289 : switch (TREE_CODE (_p1))
11436 : {
11437 254 : case BIT_XOR_EXPR:
11438 254 : {
11439 254 : tree _q30 = TREE_OPERAND (_p1, 0);
11440 254 : tree _q31 = TREE_OPERAND (_p1, 1);
11441 254 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
11442 : {
11443 0 : {
11444 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
11445 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11446 0 : if (res) return res;
11447 : }
11448 : }
11449 254 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
11450 : {
11451 1 : {
11452 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
11453 1 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
11454 1 : if (res) return res;
11455 : }
11456 : }
11457 : break;
11458 : }
11459 6433288 : default:;
11460 : }
11461 6433288 : switch (TREE_CODE (_p0))
11462 : {
11463 1974304 : CASE_CONVERT:
11464 1974304 : {
11465 1974304 : tree _q20 = TREE_OPERAND (_p0, 0);
11466 1974304 : switch (TREE_CODE (_q20))
11467 : {
11468 171 : case BIT_IOR_EXPR:
11469 171 : {
11470 171 : tree _q30 = TREE_OPERAND (_q20, 0);
11471 171 : tree _q31 = TREE_OPERAND (_q20, 1);
11472 171 : switch (TREE_CODE (_p1))
11473 : {
11474 12 : CASE_CONVERT:
11475 12 : {
11476 12 : tree _q60 = TREE_OPERAND (_p1, 0);
11477 12 : switch (TREE_CODE (_q60))
11478 : {
11479 0 : case BIT_IOR_EXPR:
11480 0 : {
11481 0 : tree _q70 = TREE_OPERAND (_q60, 0);
11482 0 : tree _q71 = TREE_OPERAND (_q60, 1);
11483 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
11484 : {
11485 0 : {
11486 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
11487 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11488 0 : if (res) return res;
11489 : }
11490 : }
11491 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
11492 : {
11493 0 : {
11494 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
11495 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11496 0 : if (res) return res;
11497 : }
11498 : }
11499 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
11500 : {
11501 0 : {
11502 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
11503 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11504 0 : if (res) return res;
11505 : }
11506 : }
11507 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
11508 : {
11509 0 : {
11510 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
11511 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11512 0 : if (res) return res;
11513 : }
11514 : }
11515 : break;
11516 : }
11517 : default:;
11518 : }
11519 : break;
11520 : }
11521 : default:;
11522 : }
11523 : break;
11524 : }
11525 40 : case BIT_AND_EXPR:
11526 40 : {
11527 40 : tree _q30 = TREE_OPERAND (_q20, 0);
11528 40 : tree _q31 = TREE_OPERAND (_q20, 1);
11529 40 : switch (TREE_CODE (_p1))
11530 : {
11531 0 : CASE_CONVERT:
11532 0 : {
11533 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11534 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
11535 : {
11536 0 : {
11537 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q31 };
11538 0 : tree res = generic_simplify_121 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11539 0 : if (res) return res;
11540 : }
11541 : }
11542 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
11543 : {
11544 0 : {
11545 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q30, _q30 };
11546 0 : tree res = generic_simplify_121 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11547 0 : if (res) return res;
11548 : }
11549 : }
11550 : break;
11551 : }
11552 40 : default:;
11553 : }
11554 40 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
11555 : {
11556 0 : {
11557 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q31 };
11558 0 : tree res = generic_simplify_121 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11559 0 : if (res) return res;
11560 : }
11561 : }
11562 40 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
11563 : {
11564 0 : {
11565 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q30, _q30 };
11566 0 : tree res = generic_simplify_121 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11567 0 : if (res) return res;
11568 : }
11569 : }
11570 : break;
11571 : }
11572 1974304 : default:;
11573 : }
11574 1974304 : switch (TREE_CODE (_p1))
11575 : {
11576 807955 : CASE_CONVERT:
11577 807955 : {
11578 807955 : tree _q40 = TREE_OPERAND (_p1, 0);
11579 807955 : switch (TREE_CODE (_q40))
11580 : {
11581 0 : case BIT_AND_EXPR:
11582 0 : {
11583 0 : tree _q50 = TREE_OPERAND (_q40, 0);
11584 0 : tree _q51 = TREE_OPERAND (_q40, 1);
11585 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
11586 : {
11587 0 : {
11588 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q51, _q20 };
11589 0 : tree res = generic_simplify_136 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11590 0 : if (res) return res;
11591 : }
11592 : }
11593 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
11594 : {
11595 0 : {
11596 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q51, _q50, _q20 };
11597 0 : tree res = generic_simplify_136 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11598 0 : if (res) return res;
11599 : }
11600 : }
11601 : break;
11602 : }
11603 : default:;
11604 : }
11605 : break;
11606 : }
11607 47 : case BIT_AND_EXPR:
11608 47 : {
11609 47 : tree _q40 = TREE_OPERAND (_p1, 0);
11610 47 : tree _q41 = TREE_OPERAND (_p1, 1);
11611 47 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
11612 : {
11613 0 : {
11614 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _q20 };
11615 0 : tree res = generic_simplify_136 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11616 0 : if (res) return res;
11617 : }
11618 : }
11619 47 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
11620 : {
11621 0 : {
11622 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q41, _q40, _q20 };
11623 0 : tree res = generic_simplify_136 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11624 0 : if (res) return res;
11625 : }
11626 : }
11627 : break;
11628 : }
11629 : default:;
11630 : }
11631 : break;
11632 : }
11633 1583 : case BIT_IOR_EXPR:
11634 1583 : {
11635 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
11636 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
11637 1583 : switch (TREE_CODE (_p1))
11638 : {
11639 9 : case BIT_IOR_EXPR:
11640 9 : {
11641 9 : tree _q50 = TREE_OPERAND (_p1, 0);
11642 9 : tree _q51 = TREE_OPERAND (_p1, 1);
11643 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
11644 : {
11645 0 : {
11646 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
11647 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11648 0 : if (res) return res;
11649 : }
11650 : }
11651 9 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
11652 : {
11653 0 : {
11654 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q20 };
11655 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11656 0 : if (res) return res;
11657 : }
11658 : }
11659 9 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
11660 : {
11661 0 : {
11662 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q21 };
11663 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11664 0 : if (res) return res;
11665 : }
11666 : }
11667 9 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q21, 0))
11668 : {
11669 0 : {
11670 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q21 };
11671 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
11672 0 : if (res) return res;
11673 : }
11674 : }
11675 : break;
11676 : }
11677 : default:;
11678 : }
11679 : break;
11680 : }
11681 6433288 : default:;
11682 : }
11683 6433288 : switch (TREE_CODE (_p1))
11684 : {
11685 956946 : CASE_CONVERT:
11686 956946 : {
11687 956946 : tree _q30 = TREE_OPERAND (_p1, 0);
11688 956946 : switch (TREE_CODE (_q30))
11689 : {
11690 8 : case BIT_AND_EXPR:
11691 8 : {
11692 8 : tree _q40 = TREE_OPERAND (_q30, 0);
11693 8 : tree _q41 = TREE_OPERAND (_q30, 1);
11694 8 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
11695 : {
11696 0 : {
11697 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0 };
11698 0 : tree res = generic_simplify_136 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11699 0 : if (res) return res;
11700 : }
11701 : }
11702 8 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
11703 : {
11704 0 : {
11705 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q41, _q40, _p0 };
11706 0 : tree res = generic_simplify_136 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11707 0 : if (res) return res;
11708 : }
11709 : }
11710 : break;
11711 : }
11712 : default:;
11713 : }
11714 : break;
11715 : }
11716 6433288 : default:;
11717 : }
11718 6433288 : switch (TREE_CODE (_p0))
11719 : {
11720 1591 : case BIT_AND_EXPR:
11721 1591 : {
11722 1591 : tree _q20 = TREE_OPERAND (_p0, 0);
11723 1591 : tree _q21 = TREE_OPERAND (_p0, 1);
11724 1591 : switch (TREE_CODE (_p1))
11725 : {
11726 82 : CASE_CONVERT:
11727 82 : {
11728 82 : tree _q50 = TREE_OPERAND (_p1, 0);
11729 82 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
11730 : {
11731 0 : {
11732 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q21 };
11733 0 : tree res = generic_simplify_121 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11734 0 : if (res) return res;
11735 : }
11736 : }
11737 82 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
11738 : {
11739 0 : {
11740 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q20 };
11741 0 : tree res = generic_simplify_121 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11742 0 : if (res) return res;
11743 : }
11744 : }
11745 : break;
11746 : }
11747 1591 : default:;
11748 : }
11749 1591 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
11750 : {
11751 0 : {
11752 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q21 };
11753 0 : tree res = generic_simplify_121 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11754 0 : if (res) return res;
11755 : }
11756 : }
11757 1591 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
11758 : {
11759 0 : {
11760 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q20 };
11761 0 : tree res = generic_simplify_121 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11762 0 : if (res) return res;
11763 : }
11764 : }
11765 1591 : {
11766 1591 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11767 1591 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures);
11768 1591 : if (res) return res;
11769 : }
11770 1583 : switch (TREE_CODE (_p1))
11771 : {
11772 82 : CASE_CONVERT:
11773 82 : {
11774 82 : tree _q50 = TREE_OPERAND (_p1, 0);
11775 82 : switch (TREE_CODE (_q50))
11776 : {
11777 8 : case BIT_AND_EXPR:
11778 8 : {
11779 8 : tree _q60 = TREE_OPERAND (_q50, 0);
11780 8 : tree _q61 = TREE_OPERAND (_q50, 1);
11781 8 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
11782 : {
11783 0 : {
11784 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q50, _q61 };
11785 0 : tree res = generic_simplify_138 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11786 0 : if (res) return res;
11787 : }
11788 : }
11789 8 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
11790 : {
11791 0 : {
11792 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q50, _q60 };
11793 0 : tree res = generic_simplify_138 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11794 0 : if (res) return res;
11795 : }
11796 : }
11797 8 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
11798 : {
11799 0 : {
11800 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _q50, _q61 };
11801 0 : tree res = generic_simplify_138 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11802 0 : if (res) return res;
11803 : }
11804 : }
11805 8 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
11806 : {
11807 0 : {
11808 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _q50, _q60 };
11809 0 : tree res = generic_simplify_138 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11810 0 : if (res) return res;
11811 : }
11812 : }
11813 : break;
11814 : }
11815 : default:;
11816 : }
11817 : break;
11818 : }
11819 12 : case BIT_AND_EXPR:
11820 12 : {
11821 12 : tree _q50 = TREE_OPERAND (_p1, 0);
11822 12 : tree _q51 = TREE_OPERAND (_p1, 1);
11823 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11824 : {
11825 0 : {
11826 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q51 };
11827 0 : tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11828 0 : if (res) return res;
11829 : }
11830 : }
11831 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11832 : {
11833 0 : {
11834 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q50 };
11835 0 : tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11836 0 : if (res) return res;
11837 : }
11838 : }
11839 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11840 : {
11841 0 : {
11842 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _p1, _q51 };
11843 0 : tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11844 0 : if (res) return res;
11845 : }
11846 : }
11847 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11848 : {
11849 0 : {
11850 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _p1, _q50 };
11851 0 : tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11852 0 : if (res) return res;
11853 : }
11854 : }
11855 : break;
11856 : }
11857 : default:;
11858 : }
11859 : break;
11860 : }
11861 6433280 : default:;
11862 : }
11863 6433280 : switch (TREE_CODE (_p1))
11864 : {
11865 76 : case BIT_AND_EXPR:
11866 76 : {
11867 76 : tree _q30 = TREE_OPERAND (_p1, 0);
11868 76 : tree _q31 = TREE_OPERAND (_p1, 1);
11869 76 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
11870 : {
11871 0 : {
11872 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
11873 0 : tree res = generic_simplify_136 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11874 0 : if (res) return res;
11875 : }
11876 : }
11877 76 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
11878 : {
11879 0 : {
11880 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q31, _q30, _p0 };
11881 0 : tree res = generic_simplify_136 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11882 0 : if (res) return res;
11883 : }
11884 : }
11885 76 : {
11886 76 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
11887 76 : tree res = generic_simplify_468 (loc, type, _p0, _p1, captures);
11888 76 : if (res) return res;
11889 : }
11890 76 : break;
11891 : }
11892 6433280 : default:;
11893 : }
11894 6433280 : switch (TREE_CODE (_p0))
11895 : {
11896 1974304 : CASE_CONVERT:
11897 1974304 : {
11898 1974304 : tree _q20 = TREE_OPERAND (_p0, 0);
11899 1974304 : switch (TREE_CODE (_q20))
11900 : {
11901 40 : case BIT_AND_EXPR:
11902 40 : {
11903 40 : tree _q30 = TREE_OPERAND (_q20, 0);
11904 40 : tree _q31 = TREE_OPERAND (_q20, 1);
11905 40 : switch (TREE_CODE (_p1))
11906 : {
11907 0 : CASE_CONVERT:
11908 0 : {
11909 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11910 0 : switch (TREE_CODE (_q60))
11911 : {
11912 0 : case BIT_AND_EXPR:
11913 0 : {
11914 0 : tree _q70 = TREE_OPERAND (_q60, 0);
11915 0 : tree _q71 = TREE_OPERAND (_q60, 1);
11916 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
11917 : {
11918 0 : {
11919 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60, _q71 };
11920 0 : tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11921 0 : if (res) return res;
11922 : }
11923 : }
11924 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
11925 : {
11926 0 : {
11927 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60, _q70 };
11928 0 : tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11929 0 : if (res) return res;
11930 : }
11931 : }
11932 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
11933 : {
11934 0 : {
11935 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _q60, _q71 };
11936 0 : tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11937 0 : if (res) return res;
11938 : }
11939 : }
11940 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
11941 : {
11942 0 : {
11943 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _q60, _q70 };
11944 0 : tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11945 0 : if (res) return res;
11946 : }
11947 : }
11948 : break;
11949 : }
11950 : default:;
11951 : }
11952 : break;
11953 : }
11954 0 : case BIT_AND_EXPR:
11955 0 : {
11956 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11957 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11958 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11959 : {
11960 0 : {
11961 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _p1, _q61 };
11962 0 : tree res = generic_simplify_141 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11963 0 : if (res) return res;
11964 : }
11965 : }
11966 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
11967 : {
11968 0 : {
11969 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _p1, _q60 };
11970 0 : tree res = generic_simplify_141 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11971 0 : if (res) return res;
11972 : }
11973 : }
11974 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
11975 : {
11976 0 : {
11977 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _p1, _q61 };
11978 0 : tree res = generic_simplify_141 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11979 0 : if (res) return res;
11980 : }
11981 : }
11982 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
11983 : {
11984 0 : {
11985 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _p1, _q60 };
11986 0 : tree res = generic_simplify_141 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
11987 0 : if (res) return res;
11988 : }
11989 : }
11990 : break;
11991 : }
11992 : default:;
11993 : }
11994 : break;
11995 : }
11996 1974304 : default:;
11997 : }
11998 1974304 : switch (TREE_CODE (_p1))
11999 : {
12000 807955 : CASE_CONVERT:
12001 807955 : {
12002 807955 : tree _q40 = TREE_OPERAND (_p1, 0);
12003 807955 : {
12004 807955 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
12005 807955 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12006 807955 : if (res) return res;
12007 : }
12008 807955 : break;
12009 : }
12010 1974304 : default:;
12011 : }
12012 1974304 : {
12013 1974304 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
12014 1974304 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12015 1974304 : if (res) return res;
12016 : }
12017 1974304 : break;
12018 : }
12019 1583 : case BIT_IOR_EXPR:
12020 1583 : {
12021 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
12022 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
12023 1583 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12024 : {
12025 2 : {
12026 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
12027 2 : tree res = generic_simplify_142 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12028 2 : if (res) return res;
12029 : }
12030 : }
12031 1581 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
12032 : {
12033 4 : {
12034 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
12035 4 : tree res = generic_simplify_142 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12036 4 : if (res) return res;
12037 : }
12038 : }
12039 1577 : switch (TREE_CODE (_p1))
12040 : {
12041 1 : case BIT_AND_EXPR:
12042 1 : {
12043 1 : tree _q50 = TREE_OPERAND (_p1, 0);
12044 1 : tree _q51 = TREE_OPERAND (_p1, 1);
12045 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12046 : {
12047 1 : {
12048 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51 };
12049 1 : tree res = generic_simplify_143 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12050 1 : if (res) return res;
12051 : }
12052 : }
12053 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12054 : {
12055 0 : {
12056 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50 };
12057 0 : tree res = generic_simplify_143 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12058 0 : if (res) return res;
12059 : }
12060 : }
12061 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12062 : {
12063 0 : {
12064 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51 };
12065 0 : tree res = generic_simplify_143 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12066 0 : if (res) return res;
12067 : }
12068 : }
12069 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12070 : {
12071 0 : {
12072 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50 };
12073 0 : tree res = generic_simplify_143 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12074 0 : if (res) return res;
12075 : }
12076 : }
12077 : break;
12078 : }
12079 169 : case BIT_NOT_EXPR:
12080 169 : {
12081 169 : tree _q50 = TREE_OPERAND (_p1, 0);
12082 169 : switch (TREE_CODE (_q50))
12083 : {
12084 9 : case BIT_IOR_EXPR:
12085 9 : {
12086 9 : tree _q60 = TREE_OPERAND (_q50, 0);
12087 9 : tree _q61 = TREE_OPERAND (_q50, 1);
12088 9 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
12089 : {
12090 0 : {
12091 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q61 };
12092 0 : tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12093 0 : if (res) return res;
12094 : }
12095 : }
12096 9 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
12097 : {
12098 1 : {
12099 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q60 };
12100 1 : tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12101 1 : if (res) return res;
12102 : }
12103 : }
12104 8 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
12105 : {
12106 0 : {
12107 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q61 };
12108 0 : tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12109 0 : if (res) return res;
12110 : }
12111 : }
12112 8 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
12113 : {
12114 0 : {
12115 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q60 };
12116 0 : tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12117 0 : if (res) return res;
12118 : }
12119 : }
12120 : break;
12121 : }
12122 : default:;
12123 : }
12124 : break;
12125 : }
12126 : default:;
12127 : }
12128 : break;
12129 : }
12130 6433272 : default:;
12131 : }
12132 6433272 : switch (TREE_CODE (_p1))
12133 : {
12134 476 : case BIT_IOR_EXPR:
12135 476 : {
12136 476 : tree _q30 = TREE_OPERAND (_p1, 0);
12137 476 : tree _q31 = TREE_OPERAND (_p1, 1);
12138 476 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
12139 : {
12140 0 : {
12141 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
12142 0 : tree res = generic_simplify_142 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12143 0 : if (res) return res;
12144 : }
12145 : }
12146 476 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
12147 : {
12148 0 : {
12149 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
12150 0 : tree res = generic_simplify_142 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12151 0 : if (res) return res;
12152 : }
12153 : }
12154 : break;
12155 : }
12156 6433272 : default:;
12157 : }
12158 6433272 : switch (TREE_CODE (_p0))
12159 : {
12160 1583 : case BIT_AND_EXPR:
12161 1583 : {
12162 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
12163 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
12164 1583 : switch (TREE_CODE (_p1))
12165 : {
12166 16 : case BIT_IOR_EXPR:
12167 16 : {
12168 16 : tree _q50 = TREE_OPERAND (_p1, 0);
12169 16 : tree _q51 = TREE_OPERAND (_p1, 1);
12170 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12171 : {
12172 0 : {
12173 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q51, _p0, _q21 };
12174 0 : tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12175 0 : if (res) return res;
12176 : }
12177 : }
12178 16 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12179 : {
12180 0 : {
12181 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q51, _p0, _q20 };
12182 0 : tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12183 0 : if (res) return res;
12184 : }
12185 : }
12186 16 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12187 : {
12188 0 : {
12189 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q50, _p0, _q21 };
12190 0 : tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12191 0 : if (res) return res;
12192 : }
12193 : }
12194 16 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12195 : {
12196 0 : {
12197 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20 };
12198 0 : tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12199 0 : if (res) return res;
12200 : }
12201 : }
12202 : break;
12203 : }
12204 : default:;
12205 : }
12206 : break;
12207 : }
12208 66869 : case BIT_NOT_EXPR:
12209 66869 : {
12210 66869 : tree _q20 = TREE_OPERAND (_p0, 0);
12211 66869 : switch (TREE_CODE (_q20))
12212 : {
12213 11 : case BIT_IOR_EXPR:
12214 11 : {
12215 11 : tree _q30 = TREE_OPERAND (_q20, 0);
12216 11 : tree _q31 = TREE_OPERAND (_q20, 1);
12217 11 : switch (TREE_CODE (_p1))
12218 : {
12219 0 : case BIT_IOR_EXPR:
12220 0 : {
12221 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12222 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12223 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
12224 : {
12225 0 : {
12226 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q30, _p0, _q31 };
12227 0 : tree res = generic_simplify_146 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12228 0 : if (res) return res;
12229 : }
12230 : }
12231 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
12232 : {
12233 0 : {
12234 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q31, _p0, _q30 };
12235 0 : tree res = generic_simplify_146 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12236 0 : if (res) return res;
12237 : }
12238 : }
12239 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12240 : {
12241 0 : {
12242 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q61, _q30, _p0, _q31 };
12243 0 : tree res = generic_simplify_146 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12244 0 : if (res) return res;
12245 : }
12246 : }
12247 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
12248 : {
12249 0 : {
12250 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q61, _q31, _p0, _q30 };
12251 0 : tree res = generic_simplify_146 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12252 0 : if (res) return res;
12253 : }
12254 : }
12255 : break;
12256 : }
12257 11 : default:;
12258 : }
12259 11 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
12260 : {
12261 0 : {
12262 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
12263 0 : tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12264 0 : if (res) return res;
12265 : }
12266 : }
12267 11 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
12268 : {
12269 1 : {
12270 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
12271 1 : tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12272 1 : if (res) return res;
12273 : }
12274 : }
12275 : break;
12276 : }
12277 88 : case RSHIFT_EXPR:
12278 88 : {
12279 88 : tree _q30 = TREE_OPERAND (_q20, 0);
12280 88 : tree _q31 = TREE_OPERAND (_q20, 1);
12281 88 : switch (TREE_CODE (_q31))
12282 : {
12283 76 : case INTEGER_CST:
12284 76 : {
12285 76 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
12286 : {
12287 0 : {
12288 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
12289 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MIN_EXPR, MAX_EXPR);
12290 0 : if (res) return res;
12291 : }
12292 : }
12293 : break;
12294 : }
12295 : default:;
12296 : }
12297 : break;
12298 : }
12299 : default:;
12300 : }
12301 : break;
12302 : }
12303 6433271 : default:;
12304 : }
12305 6433271 : switch (TREE_CODE (_p1))
12306 : {
12307 53666 : case BIT_NOT_EXPR:
12308 53666 : {
12309 53666 : tree _q30 = TREE_OPERAND (_p1, 0);
12310 53666 : switch (TREE_CODE (_q30))
12311 : {
12312 8 : case BIT_IOR_EXPR:
12313 8 : {
12314 8 : tree _q40 = TREE_OPERAND (_q30, 0);
12315 8 : tree _q41 = TREE_OPERAND (_q30, 1);
12316 8 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
12317 : {
12318 0 : {
12319 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
12320 0 : tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12321 0 : if (res) return res;
12322 : }
12323 : }
12324 8 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
12325 : {
12326 0 : {
12327 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
12328 0 : tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
12329 0 : if (res) return res;
12330 : }
12331 : }
12332 : break;
12333 : }
12334 : default:;
12335 : }
12336 : break;
12337 : }
12338 6433271 : default:;
12339 : }
12340 6433271 : switch (TREE_CODE (_p0))
12341 : {
12342 1575 : case BIT_IOR_EXPR:
12343 1575 : {
12344 1575 : tree _q20 = TREE_OPERAND (_p0, 0);
12345 1575 : tree _q21 = TREE_OPERAND (_p0, 1);
12346 1575 : {
12347 1575 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12348 1575 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, BIT_AND_EXPR);
12349 1575 : if (res) return res;
12350 : }
12351 1570 : {
12352 1570 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
12353 1570 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, BIT_AND_EXPR);
12354 1570 : if (res) return res;
12355 : }
12356 1570 : if (CONSTANT_CLASS_P (_q21))
12357 : {
12358 459 : if (CONSTANT_CLASS_P (_p1))
12359 : {
12360 25 : {
12361 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12362 25 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1683;
12363 25 : {
12364 25 : if (! tree_invariant_p (captures[2])) goto next_after_fail1683;
12365 25 : tree res_op0;
12366 25 : {
12367 25 : tree _o1[2], _r1;
12368 25 : _o1[0] = captures[0];
12369 25 : _o1[1] = unshare_expr (captures[2]);
12370 25 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
12371 25 : res_op0 = _r1;
12372 : }
12373 25 : tree res_op1;
12374 25 : {
12375 25 : tree _o1[2], _r1;
12376 25 : _o1[0] = captures[1];
12377 25 : _o1[1] = captures[2];
12378 25 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
12379 25 : if (EXPR_P (_r1))
12380 0 : goto next_after_fail1683;
12381 25 : res_op1 = _r1;
12382 : }
12383 25 : tree _r;
12384 25 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
12385 25 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
12386 25 : return _r;
12387 : }
12388 0 : next_after_fail1683:;
12389 : }
12390 : }
12391 : }
12392 : break;
12393 : }
12394 6433241 : default:;
12395 : }
12396 6433241 : switch (TREE_CODE (_p1))
12397 : {
12398 476 : case BIT_IOR_EXPR:
12399 476 : {
12400 476 : tree _q30 = TREE_OPERAND (_p1, 0);
12401 476 : tree _q31 = TREE_OPERAND (_p1, 1);
12402 476 : {
12403 476 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
12404 476 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, BIT_AND_EXPR);
12405 476 : if (res) return res;
12406 : }
12407 476 : {
12408 476 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
12409 476 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, BIT_AND_EXPR);
12410 476 : if (res) return res;
12411 : }
12412 475 : break;
12413 : }
12414 6433240 : default:;
12415 : }
12416 6433240 : switch (TREE_CODE (_p0))
12417 : {
12418 1583 : case BIT_AND_EXPR:
12419 1583 : {
12420 1583 : tree _q20 = TREE_OPERAND (_p0, 0);
12421 1583 : tree _q21 = TREE_OPERAND (_p0, 1);
12422 1583 : if (CONSTANT_CLASS_P (_q21))
12423 : {
12424 508 : if (CONSTANT_CLASS_P (_p1))
12425 : {
12426 441 : {
12427 441 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
12428 441 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
12429 441 : if (res) return res;
12430 : }
12431 : }
12432 : }
12433 : break;
12434 : }
12435 6432799 : default:;
12436 : }
12437 6432799 : {
12438 6432799 : tree _p1_pops[1];
12439 6432799 : if (tree_logical_inverted_value (_p1, _p1_pops))
12440 : {
12441 897 : tree _q30 = _p1_pops[0];
12442 897 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
12443 : {
12444 1 : {
12445 1 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
12446 1 : tree res = generic_simplify_469 (loc, type, _p0, _p1, captures);
12447 1 : if (res) return res;
12448 : }
12449 : }
12450 : }
12451 : }
12452 6432798 : switch (TREE_CODE (_p0))
12453 : {
12454 1974304 : CASE_CONVERT:
12455 1974304 : {
12456 1974304 : tree _q20 = TREE_OPERAND (_p0, 0);
12457 1974304 : switch (TREE_CODE (_q20))
12458 : {
12459 6051 : case NEGATE_EXPR:
12460 6051 : {
12461 6051 : tree _q30 = TREE_OPERAND (_q20, 0);
12462 6051 : if (tree_zero_one_valued_p (_q30))
12463 : {
12464 2 : {
12465 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 };
12466 2 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures);
12467 2 : if (res) return res;
12468 : }
12469 : }
12470 : break;
12471 : }
12472 : default:;
12473 : }
12474 : break;
12475 : }
12476 6432796 : default:;
12477 : }
12478 6432796 : {
12479 6432796 : tree _p0_pops[1];
12480 6432796 : if (tree_logical_inverted_value (_p0, _p0_pops))
12481 : {
12482 526 : tree _q20 = _p0_pops[0];
12483 526 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12484 : {
12485 12 : {
12486 12 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
12487 12 : tree res = generic_simplify_469 (loc, type, _p0, _p1, captures);
12488 12 : if (res) return res;
12489 : }
12490 : }
12491 : }
12492 : }
12493 6432784 : switch (TREE_CODE (_p1))
12494 : {
12495 956946 : CASE_CONVERT:
12496 956946 : {
12497 956946 : tree _q30 = TREE_OPERAND (_p1, 0);
12498 956946 : switch (TREE_CODE (_q30))
12499 : {
12500 108 : case NEGATE_EXPR:
12501 108 : {
12502 108 : tree _q40 = TREE_OPERAND (_q30, 0);
12503 108 : if (tree_zero_one_valued_p (_q40))
12504 : {
12505 18 : {
12506 18 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
12507 18 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures);
12508 18 : if (res) return res;
12509 : }
12510 : }
12511 : break;
12512 : }
12513 : default:;
12514 : }
12515 : break;
12516 : }
12517 10638 : case NEGATE_EXPR:
12518 10638 : {
12519 10638 : tree _q30 = TREE_OPERAND (_p1, 0);
12520 10638 : if (tree_zero_one_valued_p (_q30))
12521 : {
12522 24 : {
12523 24 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
12524 24 : tree res = generic_simplify_464 (loc, type, _p0, _p1, captures);
12525 24 : if (res) return res;
12526 : }
12527 : }
12528 : break;
12529 : }
12530 6432742 : default:;
12531 : }
12532 6432742 : switch (TREE_CODE (_p0))
12533 : {
12534 47132 : case NEGATE_EXPR:
12535 47132 : {
12536 47132 : tree _q20 = TREE_OPERAND (_p0, 0);
12537 47132 : switch (TREE_CODE (_q20))
12538 : {
12539 5532 : CASE_CONVERT:
12540 5532 : {
12541 5532 : tree _q30 = TREE_OPERAND (_q20, 0);
12542 5532 : switch (TREE_CODE (_q30))
12543 : {
12544 0 : case LT_EXPR:
12545 0 : {
12546 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12547 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12548 0 : {
12549 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12550 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, LT_EXPR);
12551 0 : if (res) return res;
12552 : }
12553 0 : break;
12554 : }
12555 0 : case LE_EXPR:
12556 0 : {
12557 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12558 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12559 0 : {
12560 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12561 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, LE_EXPR);
12562 0 : if (res) return res;
12563 : }
12564 0 : break;
12565 : }
12566 0 : case EQ_EXPR:
12567 0 : {
12568 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12569 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12570 0 : {
12571 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12572 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, EQ_EXPR);
12573 0 : if (res) return res;
12574 : }
12575 0 : break;
12576 : }
12577 0 : case NE_EXPR:
12578 0 : {
12579 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12580 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12581 0 : {
12582 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12583 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, NE_EXPR);
12584 0 : if (res) return res;
12585 : }
12586 0 : break;
12587 : }
12588 0 : case GE_EXPR:
12589 0 : {
12590 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12591 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12592 0 : {
12593 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12594 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, GE_EXPR);
12595 0 : if (res) return res;
12596 : }
12597 0 : break;
12598 : }
12599 0 : case GT_EXPR:
12600 0 : {
12601 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12602 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12603 0 : {
12604 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12605 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, GT_EXPR);
12606 0 : if (res) return res;
12607 : }
12608 0 : break;
12609 : }
12610 0 : case UNORDERED_EXPR:
12611 0 : {
12612 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12613 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12614 0 : {
12615 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12616 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
12617 0 : if (res) return res;
12618 : }
12619 0 : break;
12620 : }
12621 0 : case ORDERED_EXPR:
12622 0 : {
12623 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12624 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12625 0 : {
12626 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12627 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
12628 0 : if (res) return res;
12629 : }
12630 0 : break;
12631 : }
12632 0 : case UNLT_EXPR:
12633 0 : {
12634 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12635 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12636 0 : {
12637 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12638 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, UNLT_EXPR);
12639 0 : if (res) return res;
12640 : }
12641 0 : break;
12642 : }
12643 0 : case UNLE_EXPR:
12644 0 : {
12645 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12646 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12647 0 : {
12648 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12649 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, UNLE_EXPR);
12650 0 : if (res) return res;
12651 : }
12652 0 : break;
12653 : }
12654 0 : case UNGT_EXPR:
12655 0 : {
12656 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12657 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12658 0 : {
12659 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12660 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, UNGT_EXPR);
12661 0 : if (res) return res;
12662 : }
12663 0 : break;
12664 : }
12665 0 : case UNGE_EXPR:
12666 0 : {
12667 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12668 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12669 0 : {
12670 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12671 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, UNGE_EXPR);
12672 0 : if (res) return res;
12673 : }
12674 0 : break;
12675 : }
12676 0 : case UNEQ_EXPR:
12677 0 : {
12678 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12679 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12680 0 : {
12681 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12682 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
12683 0 : if (res) return res;
12684 : }
12685 0 : break;
12686 : }
12687 0 : case LTGT_EXPR:
12688 0 : {
12689 0 : tree _q40 = TREE_OPERAND (_q30, 0);
12690 0 : tree _q41 = TREE_OPERAND (_q30, 1);
12691 0 : {
12692 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p1 };
12693 0 : tree res = generic_simplify_470 (loc, type, _p0, _p1, captures, LTGT_EXPR);
12694 0 : if (res) return res;
12695 : }
12696 0 : break;
12697 : }
12698 : default:;
12699 : }
12700 : break;
12701 : }
12702 : default:;
12703 : }
12704 : break;
12705 : }
12706 6432742 : default:;
12707 : }
12708 6432742 : switch (TREE_CODE (_p1))
12709 : {
12710 10614 : case NEGATE_EXPR:
12711 10614 : {
12712 10614 : tree _q30 = TREE_OPERAND (_p1, 0);
12713 10614 : switch (TREE_CODE (_q30))
12714 : {
12715 65 : CASE_CONVERT:
12716 65 : {
12717 65 : tree _q40 = TREE_OPERAND (_q30, 0);
12718 65 : switch (TREE_CODE (_q40))
12719 : {
12720 0 : case LT_EXPR:
12721 0 : {
12722 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12723 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12724 0 : {
12725 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12726 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LT_EXPR);
12727 0 : if (res) return res;
12728 : }
12729 0 : break;
12730 : }
12731 0 : case LE_EXPR:
12732 0 : {
12733 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12734 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12735 0 : {
12736 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12737 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LE_EXPR);
12738 0 : if (res) return res;
12739 : }
12740 0 : break;
12741 : }
12742 0 : case EQ_EXPR:
12743 0 : {
12744 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12745 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12746 0 : {
12747 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12748 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, EQ_EXPR);
12749 0 : if (res) return res;
12750 : }
12751 0 : break;
12752 : }
12753 0 : case NE_EXPR:
12754 0 : {
12755 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12756 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12757 0 : {
12758 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12759 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, NE_EXPR);
12760 0 : if (res) return res;
12761 : }
12762 0 : break;
12763 : }
12764 0 : case GE_EXPR:
12765 0 : {
12766 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12767 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12768 0 : {
12769 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12770 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GE_EXPR);
12771 0 : if (res) return res;
12772 : }
12773 0 : break;
12774 : }
12775 0 : case GT_EXPR:
12776 0 : {
12777 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12778 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12779 0 : {
12780 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12781 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, GT_EXPR);
12782 0 : if (res) return res;
12783 : }
12784 0 : break;
12785 : }
12786 0 : case UNORDERED_EXPR:
12787 0 : {
12788 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12789 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12790 0 : {
12791 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12792 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
12793 0 : if (res) return res;
12794 : }
12795 0 : break;
12796 : }
12797 0 : case ORDERED_EXPR:
12798 0 : {
12799 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12800 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12801 0 : {
12802 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12803 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
12804 0 : if (res) return res;
12805 : }
12806 0 : break;
12807 : }
12808 0 : case UNLT_EXPR:
12809 0 : {
12810 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12811 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12812 0 : {
12813 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12814 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, UNLT_EXPR);
12815 0 : if (res) return res;
12816 : }
12817 0 : break;
12818 : }
12819 0 : case UNLE_EXPR:
12820 0 : {
12821 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12822 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12823 0 : {
12824 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12825 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, UNLE_EXPR);
12826 0 : if (res) return res;
12827 : }
12828 0 : break;
12829 : }
12830 0 : case UNGT_EXPR:
12831 0 : {
12832 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12833 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12834 0 : {
12835 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12836 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, UNGT_EXPR);
12837 0 : if (res) return res;
12838 : }
12839 0 : break;
12840 : }
12841 0 : case UNGE_EXPR:
12842 0 : {
12843 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12844 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12845 0 : {
12846 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12847 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, UNGE_EXPR);
12848 0 : if (res) return res;
12849 : }
12850 0 : break;
12851 : }
12852 0 : case UNEQ_EXPR:
12853 0 : {
12854 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12855 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12856 0 : {
12857 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12858 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
12859 0 : if (res) return res;
12860 : }
12861 0 : break;
12862 : }
12863 0 : case LTGT_EXPR:
12864 0 : {
12865 0 : tree _q50 = TREE_OPERAND (_q40, 0);
12866 0 : tree _q51 = TREE_OPERAND (_q40, 1);
12867 0 : {
12868 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q50, _q51, _p0 };
12869 0 : tree res = generic_simplify_471 (loc, type, _p0, _p1, captures, LTGT_EXPR);
12870 0 : if (res) return res;
12871 : }
12872 0 : break;
12873 : }
12874 : default:;
12875 : }
12876 : break;
12877 : }
12878 : default:;
12879 : }
12880 : break;
12881 : }
12882 6432742 : default:;
12883 : }
12884 6432742 : switch (TREE_CODE (_p0))
12885 : {
12886 1974300 : CASE_CONVERT:
12887 1974300 : {
12888 1974300 : tree _q20 = TREE_OPERAND (_p0, 0);
12889 1974300 : switch (TREE_CODE (_p1))
12890 : {
12891 912894 : case INTEGER_CST:
12892 912894 : {
12893 912894 : {
12894 912894 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12895 912894 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures);
12896 912894 : if (res) return res;
12897 : }
12898 907423 : break;
12899 : }
12900 : default:;
12901 : }
12902 : break;
12903 : }
12904 6427271 : default:;
12905 : }
12906 6427271 : switch (TREE_CODE (_p1))
12907 : {
12908 4426438 : case INTEGER_CST:
12909 4426438 : {
12910 4426438 : {
12911 4426438 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
12912 4426438 : tree res = generic_simplify_472 (loc, type, _p0, _p1, captures);
12913 4426438 : if (res) return res;
12914 : }
12915 4426438 : break;
12916 : }
12917 6427271 : default:;
12918 : }
12919 6427271 : switch (TREE_CODE (_p0))
12920 : {
12921 404 : case GT_EXPR:
12922 404 : {
12923 404 : tree _q20 = TREE_OPERAND (_p0, 0);
12924 404 : tree _q21 = TREE_OPERAND (_p0, 1);
12925 404 : switch (TREE_CODE (_p1))
12926 : {
12927 59 : case EQ_EXPR:
12928 59 : {
12929 59 : tree _q50 = TREE_OPERAND (_p1, 0);
12930 59 : tree _q51 = TREE_OPERAND (_p1, 1);
12931 59 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12932 : {
12933 8 : if (tree_min_value (_q51))
12934 : {
12935 4 : {
12936 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
12937 4 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, EQ_EXPR);
12938 4 : if (res) return res;
12939 : }
12940 : }
12941 : }
12942 55 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12943 : {
12944 0 : if (tree_max_value (_q51))
12945 : {
12946 0 : {
12947 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
12948 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, EQ_EXPR);
12949 0 : if (res) return res;
12950 : }
12951 : }
12952 : }
12953 : break;
12954 : }
12955 4 : case NE_EXPR:
12956 4 : {
12957 4 : tree _q50 = TREE_OPERAND (_p1, 0);
12958 4 : tree _q51 = TREE_OPERAND (_p1, 1);
12959 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12960 : {
12961 4 : if (tree_min_value (_q51))
12962 : {
12963 4 : {
12964 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
12965 4 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, NE_EXPR);
12966 4 : if (res) return res;
12967 : }
12968 : }
12969 : }
12970 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12971 : {
12972 0 : if (tree_max_value (_q51))
12973 : {
12974 0 : {
12975 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
12976 0 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, NE_EXPR);
12977 0 : if (res) return res;
12978 : }
12979 : }
12980 : }
12981 : break;
12982 : }
12983 396 : default:;
12984 : }
12985 396 : switch (TREE_CODE (_q20))
12986 : {
12987 0 : CASE_CONVERT:
12988 0 : {
12989 0 : tree _q30 = TREE_OPERAND (_q20, 0);
12990 0 : switch (TREE_CODE (_p1))
12991 : {
12992 0 : case EQ_EXPR:
12993 0 : {
12994 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12995 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12996 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12997 : {
12998 0 : {
12999 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13000 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13001 0 : if (res) return res;
13002 : }
13003 : }
13004 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13005 : {
13006 0 : {
13007 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13008 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13009 0 : if (res) return res;
13010 : }
13011 : }
13012 : break;
13013 : }
13014 0 : case NE_EXPR:
13015 0 : {
13016 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13017 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13018 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13019 : {
13020 0 : {
13021 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13022 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13023 0 : if (res) return res;
13024 : }
13025 : }
13026 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13027 : {
13028 0 : {
13029 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13030 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13031 0 : if (res) return res;
13032 : }
13033 : }
13034 : break;
13035 : }
13036 : default:;
13037 : }
13038 : break;
13039 : }
13040 396 : default:;
13041 : }
13042 396 : switch (TREE_CODE (_q21))
13043 : {
13044 0 : CASE_CONVERT:
13045 0 : {
13046 0 : tree _q40 = TREE_OPERAND (_q21, 0);
13047 0 : switch (TREE_CODE (_p1))
13048 : {
13049 0 : case EQ_EXPR:
13050 0 : {
13051 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13052 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13053 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13054 : {
13055 0 : {
13056 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13057 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13058 0 : if (res) return res;
13059 : }
13060 : }
13061 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13062 : {
13063 0 : {
13064 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13065 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13066 0 : if (res) return res;
13067 : }
13068 : }
13069 : break;
13070 : }
13071 0 : case NE_EXPR:
13072 0 : {
13073 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13074 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13075 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13076 : {
13077 0 : {
13078 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13079 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13080 0 : if (res) return res;
13081 : }
13082 : }
13083 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13084 : {
13085 0 : {
13086 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13087 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13088 0 : if (res) return res;
13089 : }
13090 : }
13091 : break;
13092 : }
13093 : default:;
13094 : }
13095 : break;
13096 : }
13097 396 : default:;
13098 : }
13099 396 : switch (TREE_CODE (_p1))
13100 : {
13101 55 : case EQ_EXPR:
13102 55 : {
13103 55 : tree _q50 = TREE_OPERAND (_p1, 0);
13104 55 : tree _q51 = TREE_OPERAND (_p1, 1);
13105 55 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13106 : {
13107 4 : {
13108 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13109 4 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13110 4 : if (res) return res;
13111 : }
13112 : }
13113 55 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13114 : {
13115 0 : {
13116 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13117 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13118 0 : if (res) return res;
13119 : }
13120 : }
13121 55 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13122 : {
13123 0 : {
13124 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13125 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13126 0 : if (res) return res;
13127 : }
13128 : }
13129 55 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13130 : {
13131 0 : {
13132 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13133 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13134 0 : if (res) return res;
13135 : }
13136 : }
13137 : break;
13138 : }
13139 0 : case NE_EXPR:
13140 0 : {
13141 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13142 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13143 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13144 : {
13145 0 : {
13146 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13147 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13148 0 : if (res) return res;
13149 : }
13150 : }
13151 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13152 : {
13153 0 : {
13154 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13155 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13156 0 : if (res) return res;
13157 : }
13158 : }
13159 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13160 : {
13161 0 : {
13162 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13163 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13164 0 : if (res) return res;
13165 : }
13166 : }
13167 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13168 : {
13169 0 : {
13170 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13171 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13172 0 : if (res) return res;
13173 : }
13174 : }
13175 : break;
13176 : }
13177 67 : case LT_EXPR:
13178 67 : {
13179 67 : tree _q50 = TREE_OPERAND (_p1, 0);
13180 67 : tree _q51 = TREE_OPERAND (_p1, 1);
13181 67 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13182 : {
13183 4 : {
13184 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13185 4 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13186 4 : if (res) return res;
13187 : }
13188 : }
13189 67 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13190 : {
13191 0 : {
13192 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13193 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13194 0 : if (res) return res;
13195 : }
13196 : }
13197 67 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13198 : {
13199 0 : {
13200 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13201 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13202 0 : if (res) return res;
13203 : }
13204 : }
13205 67 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13206 : {
13207 4 : {
13208 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13209 4 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13210 4 : if (res) return res;
13211 : }
13212 : }
13213 : break;
13214 : }
13215 72 : case LE_EXPR:
13216 72 : {
13217 72 : tree _q50 = TREE_OPERAND (_p1, 0);
13218 72 : tree _q51 = TREE_OPERAND (_p1, 1);
13219 72 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13220 : {
13221 23 : {
13222 23 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13223 23 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13224 23 : if (res) return res;
13225 : }
13226 : }
13227 72 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13228 : {
13229 0 : {
13230 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13231 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13232 0 : if (res) return res;
13233 : }
13234 : }
13235 72 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13236 : {
13237 0 : {
13238 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13239 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13240 0 : if (res) return res;
13241 : }
13242 : }
13243 72 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13244 : {
13245 0 : {
13246 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13247 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13248 0 : if (res) return res;
13249 : }
13250 : }
13251 : break;
13252 : }
13253 133 : case GT_EXPR:
13254 133 : {
13255 133 : tree _q50 = TREE_OPERAND (_p1, 0);
13256 133 : tree _q51 = TREE_OPERAND (_p1, 1);
13257 133 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13258 : {
13259 0 : {
13260 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13261 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13262 0 : if (res) return res;
13263 : }
13264 : }
13265 133 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13266 : {
13267 0 : {
13268 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13269 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13270 0 : if (res) return res;
13271 : }
13272 : }
13273 133 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13274 : {
13275 0 : {
13276 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13277 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13278 0 : if (res) return res;
13279 : }
13280 : }
13281 133 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13282 : {
13283 83 : {
13284 83 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13285 83 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13286 83 : if (res) return res;
13287 : }
13288 : }
13289 : break;
13290 : }
13291 0 : case GE_EXPR:
13292 0 : {
13293 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13294 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13295 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13296 : {
13297 0 : {
13298 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13299 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13300 0 : if (res) return res;
13301 : }
13302 : }
13303 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13304 : {
13305 0 : {
13306 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13307 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13308 0 : if (res) return res;
13309 : }
13310 : }
13311 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13312 : {
13313 0 : {
13314 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13315 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13316 0 : if (res) return res;
13317 : }
13318 : }
13319 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13320 : {
13321 0 : {
13322 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13323 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13324 0 : if (res) return res;
13325 : }
13326 : }
13327 : break;
13328 : }
13329 : default:;
13330 : }
13331 : break;
13332 : }
13333 92 : case LT_EXPR:
13334 92 : {
13335 92 : tree _q20 = TREE_OPERAND (_p0, 0);
13336 92 : tree _q21 = TREE_OPERAND (_p0, 1);
13337 92 : switch (TREE_CODE (_p1))
13338 : {
13339 35 : case EQ_EXPR:
13340 35 : {
13341 35 : tree _q50 = TREE_OPERAND (_p1, 0);
13342 35 : tree _q51 = TREE_OPERAND (_p1, 1);
13343 35 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13344 : {
13345 0 : if (tree_min_value (_q51))
13346 : {
13347 0 : {
13348 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
13349 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, EQ_EXPR);
13350 0 : if (res) return res;
13351 : }
13352 : }
13353 : }
13354 35 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13355 : {
13356 4 : if (tree_max_value (_q51))
13357 : {
13358 4 : {
13359 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
13360 4 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, EQ_EXPR);
13361 4 : if (res) return res;
13362 : }
13363 : }
13364 : }
13365 : break;
13366 : }
13367 6 : case NE_EXPR:
13368 6 : {
13369 6 : tree _q50 = TREE_OPERAND (_p1, 0);
13370 6 : tree _q51 = TREE_OPERAND (_p1, 1);
13371 6 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13372 : {
13373 0 : if (tree_min_value (_q51))
13374 : {
13375 0 : {
13376 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
13377 0 : tree res = generic_simplify_473 (loc, type, _p0, _p1, captures, NE_EXPR);
13378 0 : if (res) return res;
13379 : }
13380 : }
13381 : }
13382 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13383 : {
13384 4 : if (tree_max_value (_q51))
13385 : {
13386 4 : {
13387 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
13388 4 : tree res = generic_simplify_474 (loc, type, _p0, _p1, captures, NE_EXPR);
13389 4 : if (res) return res;
13390 : }
13391 : }
13392 : }
13393 : break;
13394 : }
13395 84 : default:;
13396 : }
13397 84 : switch (TREE_CODE (_q20))
13398 : {
13399 8 : CASE_CONVERT:
13400 8 : {
13401 8 : tree _q30 = TREE_OPERAND (_q20, 0);
13402 8 : switch (TREE_CODE (_p1))
13403 : {
13404 0 : case EQ_EXPR:
13405 0 : {
13406 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13407 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13408 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13409 : {
13410 0 : {
13411 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13412 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13413 0 : if (res) return res;
13414 : }
13415 : }
13416 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13417 : {
13418 0 : {
13419 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13420 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13421 0 : if (res) return res;
13422 : }
13423 : }
13424 : break;
13425 : }
13426 0 : case NE_EXPR:
13427 0 : {
13428 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13429 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13430 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13431 : {
13432 0 : {
13433 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
13434 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13435 0 : if (res) return res;
13436 : }
13437 : }
13438 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
13439 : {
13440 0 : {
13441 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
13442 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13443 0 : if (res) return res;
13444 : }
13445 : }
13446 : break;
13447 : }
13448 : default:;
13449 : }
13450 : break;
13451 : }
13452 84 : default:;
13453 : }
13454 84 : switch (TREE_CODE (_q21))
13455 : {
13456 5 : CASE_CONVERT:
13457 5 : {
13458 5 : tree _q40 = TREE_OPERAND (_q21, 0);
13459 5 : switch (TREE_CODE (_p1))
13460 : {
13461 0 : case EQ_EXPR:
13462 0 : {
13463 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13464 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13465 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13466 : {
13467 0 : {
13468 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13469 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13470 0 : if (res) return res;
13471 : }
13472 : }
13473 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13474 : {
13475 0 : {
13476 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13477 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13478 0 : if (res) return res;
13479 : }
13480 : }
13481 : break;
13482 : }
13483 0 : case NE_EXPR:
13484 0 : {
13485 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13486 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13487 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
13488 : {
13489 0 : {
13490 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
13491 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13492 0 : if (res) return res;
13493 : }
13494 : }
13495 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
13496 : {
13497 0 : {
13498 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
13499 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13500 0 : if (res) return res;
13501 : }
13502 : }
13503 : break;
13504 : }
13505 : default:;
13506 : }
13507 : break;
13508 : }
13509 84 : default:;
13510 : }
13511 84 : switch (TREE_CODE (_p1))
13512 : {
13513 31 : case EQ_EXPR:
13514 31 : {
13515 31 : tree _q50 = TREE_OPERAND (_p1, 0);
13516 31 : tree _q51 = TREE_OPERAND (_p1, 1);
13517 31 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13518 : {
13519 0 : {
13520 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13521 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13522 0 : if (res) return res;
13523 : }
13524 : }
13525 31 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13526 : {
13527 0 : {
13528 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13529 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13530 0 : if (res) return res;
13531 : }
13532 : }
13533 31 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13534 : {
13535 0 : {
13536 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13537 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
13538 0 : if (res) return res;
13539 : }
13540 : }
13541 31 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13542 : {
13543 0 : {
13544 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13545 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
13546 0 : if (res) return res;
13547 : }
13548 : }
13549 : break;
13550 : }
13551 2 : case NE_EXPR:
13552 2 : {
13553 2 : tree _q50 = TREE_OPERAND (_p1, 0);
13554 2 : tree _q51 = TREE_OPERAND (_p1, 1);
13555 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13556 : {
13557 0 : {
13558 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
13559 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13560 0 : if (res) return res;
13561 : }
13562 : }
13563 2 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13564 : {
13565 0 : {
13566 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
13567 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13568 0 : if (res) return res;
13569 : }
13570 : }
13571 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13572 : {
13573 0 : {
13574 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
13575 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
13576 0 : if (res) return res;
13577 : }
13578 : }
13579 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13580 : {
13581 2 : {
13582 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
13583 2 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
13584 2 : if (res) return res;
13585 : }
13586 : }
13587 : break;
13588 : }
13589 8 : case LT_EXPR:
13590 8 : {
13591 8 : tree _q50 = TREE_OPERAND (_p1, 0);
13592 8 : tree _q51 = TREE_OPERAND (_p1, 1);
13593 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13594 : {
13595 0 : {
13596 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13597 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13598 0 : if (res) return res;
13599 : }
13600 : }
13601 8 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13602 : {
13603 0 : {
13604 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13605 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13606 0 : if (res) return res;
13607 : }
13608 : }
13609 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13610 : {
13611 0 : {
13612 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13613 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13614 0 : if (res) return res;
13615 : }
13616 : }
13617 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13618 : {
13619 0 : {
13620 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13621 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13622 0 : if (res) return res;
13623 : }
13624 : }
13625 : break;
13626 : }
13627 0 : case LE_EXPR:
13628 0 : {
13629 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13630 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13631 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13632 : {
13633 0 : {
13634 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13635 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13636 0 : if (res) return res;
13637 : }
13638 : }
13639 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13640 : {
13641 0 : {
13642 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13643 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13644 0 : if (res) return res;
13645 : }
13646 : }
13647 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13648 : {
13649 0 : {
13650 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13651 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13652 0 : if (res) return res;
13653 : }
13654 : }
13655 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13656 : {
13657 0 : {
13658 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13659 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13660 0 : if (res) return res;
13661 : }
13662 : }
13663 : break;
13664 : }
13665 5 : case GT_EXPR:
13666 5 : {
13667 5 : tree _q50 = TREE_OPERAND (_p1, 0);
13668 5 : tree _q51 = TREE_OPERAND (_p1, 1);
13669 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13670 : {
13671 4 : {
13672 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13673 4 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
13674 4 : if (res) return res;
13675 : }
13676 : }
13677 1 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13678 : {
13679 0 : {
13680 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13681 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
13682 0 : if (res) return res;
13683 : }
13684 : }
13685 1 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13686 : {
13687 0 : {
13688 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13689 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
13690 0 : if (res) return res;
13691 : }
13692 : }
13693 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13694 : {
13695 0 : {
13696 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13697 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
13698 0 : if (res) return res;
13699 : }
13700 : }
13701 : break;
13702 : }
13703 0 : case GE_EXPR:
13704 0 : {
13705 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13706 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13707 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13708 : {
13709 0 : {
13710 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
13711 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
13712 0 : if (res) return res;
13713 : }
13714 : }
13715 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13716 : {
13717 0 : {
13718 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
13719 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
13720 0 : if (res) return res;
13721 : }
13722 : }
13723 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13724 : {
13725 0 : {
13726 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
13727 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
13728 0 : if (res) return res;
13729 : }
13730 : }
13731 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13732 : {
13733 0 : {
13734 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
13735 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
13736 0 : if (res) return res;
13737 : }
13738 : }
13739 : break;
13740 : }
13741 : default:;
13742 : }
13743 : break;
13744 : }
13745 1072 : case EQ_EXPR:
13746 1072 : {
13747 1072 : tree _q20 = TREE_OPERAND (_p0, 0);
13748 1072 : tree _q21 = TREE_OPERAND (_p0, 1);
13749 1072 : if (tree_min_value (_q21))
13750 : {
13751 40 : switch (TREE_CODE (_p1))
13752 : {
13753 0 : case GT_EXPR:
13754 0 : {
13755 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13756 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13757 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13758 : {
13759 0 : {
13760 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
13761 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, EQ_EXPR);
13762 0 : if (res) return res;
13763 : }
13764 : }
13765 : break;
13766 : }
13767 14 : case LT_EXPR:
13768 14 : {
13769 14 : tree _q50 = TREE_OPERAND (_p1, 0);
13770 14 : tree _q51 = TREE_OPERAND (_p1, 1);
13771 14 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13772 : {
13773 0 : {
13774 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
13775 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, EQ_EXPR);
13776 0 : if (res) return res;
13777 : }
13778 : }
13779 : break;
13780 : }
13781 0 : case LE_EXPR:
13782 0 : {
13783 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13784 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13785 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13786 : {
13787 0 : {
13788 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _p0 };
13789 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures);
13790 0 : if (res) return res;
13791 : }
13792 : }
13793 : break;
13794 : }
13795 0 : case GE_EXPR:
13796 0 : {
13797 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13798 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13799 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13800 : {
13801 0 : {
13802 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _p0 };
13803 0 : tree res = generic_simplify_479 (loc, type, _p0, _p1, captures);
13804 0 : if (res) return res;
13805 : }
13806 : }
13807 : break;
13808 : }
13809 : default:;
13810 : }
13811 : }
13812 1072 : if (tree_max_value (_q21))
13813 : {
13814 0 : switch (TREE_CODE (_p1))
13815 : {
13816 0 : case LT_EXPR:
13817 0 : {
13818 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13819 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13820 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13821 : {
13822 0 : {
13823 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
13824 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, EQ_EXPR);
13825 0 : if (res) return res;
13826 : }
13827 : }
13828 : break;
13829 : }
13830 0 : case GT_EXPR:
13831 0 : {
13832 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13833 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13834 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13835 : {
13836 0 : {
13837 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
13838 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, EQ_EXPR);
13839 0 : if (res) return res;
13840 : }
13841 : }
13842 : break;
13843 : }
13844 0 : case GE_EXPR:
13845 0 : {
13846 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13847 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13848 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13849 : {
13850 0 : {
13851 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _p0 };
13852 0 : tree res = generic_simplify_481 (loc, type, _p0, _p1, captures);
13853 0 : if (res) return res;
13854 : }
13855 : }
13856 : break;
13857 : }
13858 0 : case LE_EXPR:
13859 0 : {
13860 0 : tree _q50 = TREE_OPERAND (_p1, 0);
13861 0 : tree _q51 = TREE_OPERAND (_p1, 1);
13862 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13863 : {
13864 0 : {
13865 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _p0 };
13866 0 : tree res = generic_simplify_481 (loc, type, _p0, _p1, captures);
13867 0 : if (res) return res;
13868 : }
13869 : }
13870 : break;
13871 : }
13872 : default:;
13873 : }
13874 : }
13875 1072 : switch (TREE_CODE (_p1))
13876 : {
13877 537 : case EQ_EXPR:
13878 537 : {
13879 537 : tree _q50 = TREE_OPERAND (_p1, 0);
13880 537 : tree _q51 = TREE_OPERAND (_p1, 1);
13881 537 : switch (TREE_CODE (_q50))
13882 : {
13883 0 : CASE_CONVERT:
13884 0 : {
13885 0 : tree _q60 = TREE_OPERAND (_q50, 0);
13886 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13887 : {
13888 0 : {
13889 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
13890 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13891 0 : if (res) return res;
13892 : }
13893 : }
13894 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
13895 : {
13896 0 : {
13897 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
13898 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13899 0 : if (res) return res;
13900 : }
13901 : }
13902 : break;
13903 : }
13904 537 : default:;
13905 : }
13906 537 : switch (TREE_CODE (_q51))
13907 : {
13908 0 : CASE_CONVERT:
13909 0 : {
13910 0 : tree _q70 = TREE_OPERAND (_q51, 0);
13911 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
13912 : {
13913 0 : {
13914 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
13915 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13916 0 : if (res) return res;
13917 : }
13918 : }
13919 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
13920 : {
13921 0 : {
13922 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
13923 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
13924 0 : if (res) return res;
13925 : }
13926 : }
13927 : break;
13928 : }
13929 : default:;
13930 : }
13931 : break;
13932 : }
13933 33 : case NE_EXPR:
13934 33 : {
13935 33 : tree _q50 = TREE_OPERAND (_p1, 0);
13936 33 : tree _q51 = TREE_OPERAND (_p1, 1);
13937 33 : switch (TREE_CODE (_q50))
13938 : {
13939 0 : CASE_CONVERT:
13940 0 : {
13941 0 : tree _q60 = TREE_OPERAND (_q50, 0);
13942 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13943 : {
13944 0 : {
13945 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
13946 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
13947 0 : if (res) return res;
13948 : }
13949 : }
13950 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
13951 : {
13952 0 : {
13953 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
13954 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
13955 0 : if (res) return res;
13956 : }
13957 : }
13958 : break;
13959 : }
13960 33 : default:;
13961 : }
13962 33 : switch (TREE_CODE (_q51))
13963 : {
13964 0 : CASE_CONVERT:
13965 0 : {
13966 0 : tree _q70 = TREE_OPERAND (_q51, 0);
13967 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
13968 : {
13969 0 : {
13970 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
13971 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
13972 0 : if (res) return res;
13973 : }
13974 : }
13975 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
13976 : {
13977 0 : {
13978 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
13979 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
13980 0 : if (res) return res;
13981 : }
13982 : }
13983 : break;
13984 : }
13985 : default:;
13986 : }
13987 : break;
13988 : }
13989 19 : case LT_EXPR:
13990 19 : {
13991 19 : tree _q50 = TREE_OPERAND (_p1, 0);
13992 19 : tree _q51 = TREE_OPERAND (_p1, 1);
13993 19 : switch (TREE_CODE (_q50))
13994 : {
13995 0 : CASE_CONVERT:
13996 0 : {
13997 0 : tree _q60 = TREE_OPERAND (_q50, 0);
13998 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13999 : {
14000 0 : {
14001 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14002 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14003 0 : if (res) return res;
14004 : }
14005 : }
14006 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14007 : {
14008 0 : {
14009 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14010 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14011 0 : if (res) return res;
14012 : }
14013 : }
14014 : break;
14015 : }
14016 19 : default:;
14017 : }
14018 19 : switch (TREE_CODE (_q51))
14019 : {
14020 0 : CASE_CONVERT:
14021 0 : {
14022 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14023 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14024 : {
14025 0 : {
14026 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14027 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14028 0 : if (res) return res;
14029 : }
14030 : }
14031 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14032 : {
14033 0 : {
14034 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14035 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14036 0 : if (res) return res;
14037 : }
14038 : }
14039 : break;
14040 : }
14041 : default:;
14042 : }
14043 : break;
14044 : }
14045 12 : case GT_EXPR:
14046 12 : {
14047 12 : tree _q50 = TREE_OPERAND (_p1, 0);
14048 12 : tree _q51 = TREE_OPERAND (_p1, 1);
14049 12 : switch (TREE_CODE (_q50))
14050 : {
14051 0 : CASE_CONVERT:
14052 0 : {
14053 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14054 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14055 : {
14056 0 : {
14057 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14058 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14059 0 : if (res) return res;
14060 : }
14061 : }
14062 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14063 : {
14064 0 : {
14065 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14066 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14067 0 : if (res) return res;
14068 : }
14069 : }
14070 : break;
14071 : }
14072 12 : default:;
14073 : }
14074 12 : switch (TREE_CODE (_q51))
14075 : {
14076 0 : CASE_CONVERT:
14077 0 : {
14078 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14079 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14080 : {
14081 0 : {
14082 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14083 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14084 0 : if (res) return res;
14085 : }
14086 : }
14087 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14088 : {
14089 0 : {
14090 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14091 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14092 0 : if (res) return res;
14093 : }
14094 : }
14095 : break;
14096 : }
14097 : default:;
14098 : }
14099 : break;
14100 : }
14101 36 : case LE_EXPR:
14102 36 : {
14103 36 : tree _q50 = TREE_OPERAND (_p1, 0);
14104 36 : tree _q51 = TREE_OPERAND (_p1, 1);
14105 36 : switch (TREE_CODE (_q50))
14106 : {
14107 12 : CASE_CONVERT:
14108 12 : {
14109 12 : tree _q60 = TREE_OPERAND (_q50, 0);
14110 12 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14111 : {
14112 0 : {
14113 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14114 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14115 0 : if (res) return res;
14116 : }
14117 : }
14118 12 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14119 : {
14120 0 : {
14121 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14122 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14123 0 : if (res) return res;
14124 : }
14125 : }
14126 : break;
14127 : }
14128 36 : default:;
14129 : }
14130 36 : switch (TREE_CODE (_q51))
14131 : {
14132 0 : CASE_CONVERT:
14133 0 : {
14134 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14135 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14136 : {
14137 0 : {
14138 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14139 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14140 0 : if (res) return res;
14141 : }
14142 : }
14143 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14144 : {
14145 0 : {
14146 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14147 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14148 0 : if (res) return res;
14149 : }
14150 : }
14151 : break;
14152 : }
14153 : default:;
14154 : }
14155 : break;
14156 : }
14157 4 : case GE_EXPR:
14158 4 : {
14159 4 : tree _q50 = TREE_OPERAND (_p1, 0);
14160 4 : tree _q51 = TREE_OPERAND (_p1, 1);
14161 4 : switch (TREE_CODE (_q50))
14162 : {
14163 0 : CASE_CONVERT:
14164 0 : {
14165 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14166 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14167 : {
14168 0 : {
14169 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14170 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14171 0 : if (res) return res;
14172 : }
14173 : }
14174 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14175 : {
14176 0 : {
14177 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14178 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14179 0 : if (res) return res;
14180 : }
14181 : }
14182 : break;
14183 : }
14184 4 : default:;
14185 : }
14186 4 : switch (TREE_CODE (_q51))
14187 : {
14188 0 : CASE_CONVERT:
14189 0 : {
14190 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14191 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14192 : {
14193 0 : {
14194 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14195 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14196 0 : if (res) return res;
14197 : }
14198 : }
14199 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14200 : {
14201 0 : {
14202 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14203 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14204 0 : if (res) return res;
14205 : }
14206 : }
14207 : break;
14208 : }
14209 : default:;
14210 : }
14211 : break;
14212 : }
14213 1072 : default:;
14214 : }
14215 1072 : switch (TREE_CODE (_q20))
14216 : {
14217 0 : CASE_CONVERT:
14218 0 : {
14219 0 : tree _q30 = TREE_OPERAND (_q20, 0);
14220 0 : switch (TREE_CODE (_p1))
14221 : {
14222 0 : case EQ_EXPR:
14223 0 : {
14224 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14225 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14226 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14227 : {
14228 0 : {
14229 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
14230 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14231 0 : if (res) return res;
14232 : }
14233 : }
14234 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
14235 : {
14236 0 : {
14237 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
14238 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14239 0 : if (res) return res;
14240 : }
14241 : }
14242 : break;
14243 : }
14244 0 : case NE_EXPR:
14245 0 : {
14246 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14247 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14248 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14249 : {
14250 0 : {
14251 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
14252 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14253 0 : if (res) return res;
14254 : }
14255 : }
14256 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
14257 : {
14258 0 : {
14259 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
14260 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14261 0 : if (res) return res;
14262 : }
14263 : }
14264 : break;
14265 : }
14266 : default:;
14267 : }
14268 : break;
14269 : }
14270 1072 : default:;
14271 : }
14272 1072 : switch (TREE_CODE (_q21))
14273 : {
14274 0 : CASE_CONVERT:
14275 0 : {
14276 0 : tree _q40 = TREE_OPERAND (_q21, 0);
14277 0 : switch (TREE_CODE (_p1))
14278 : {
14279 0 : case EQ_EXPR:
14280 0 : {
14281 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14282 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14283 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
14284 : {
14285 0 : {
14286 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
14287 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14288 0 : if (res) return res;
14289 : }
14290 : }
14291 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
14292 : {
14293 0 : {
14294 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
14295 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14296 0 : if (res) return res;
14297 : }
14298 : }
14299 : break;
14300 : }
14301 0 : case NE_EXPR:
14302 0 : {
14303 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14304 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14305 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
14306 : {
14307 0 : {
14308 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
14309 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14310 0 : if (res) return res;
14311 : }
14312 : }
14313 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
14314 : {
14315 0 : {
14316 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
14317 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14318 0 : if (res) return res;
14319 : }
14320 : }
14321 : break;
14322 : }
14323 : default:;
14324 : }
14325 : break;
14326 : }
14327 1072 : default:;
14328 : }
14329 1072 : switch (TREE_CODE (_p1))
14330 : {
14331 537 : case EQ_EXPR:
14332 537 : {
14333 537 : tree _q50 = TREE_OPERAND (_p1, 0);
14334 537 : tree _q51 = TREE_OPERAND (_p1, 1);
14335 537 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14336 : {
14337 0 : {
14338 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14339 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14340 0 : if (res) return res;
14341 : }
14342 0 : {
14343 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
14344 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14345 0 : if (res) return res;
14346 : }
14347 : }
14348 537 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14349 : {
14350 0 : {
14351 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14352 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14353 0 : if (res) return res;
14354 : }
14355 : }
14356 537 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14357 : {
14358 0 : {
14359 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14360 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14361 0 : if (res) return res;
14362 : }
14363 0 : {
14364 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
14365 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14366 0 : if (res) return res;
14367 : }
14368 : }
14369 537 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14370 : {
14371 178 : {
14372 178 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14373 178 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14374 178 : if (res) return res;
14375 : }
14376 178 : {
14377 178 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
14378 178 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14379 178 : if (res) return res;
14380 : }
14381 : }
14382 537 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14383 : {
14384 0 : {
14385 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
14386 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
14387 0 : if (res) return res;
14388 : }
14389 : }
14390 : break;
14391 : }
14392 33 : case NE_EXPR:
14393 33 : {
14394 33 : tree _q50 = TREE_OPERAND (_p1, 0);
14395 33 : tree _q51 = TREE_OPERAND (_p1, 1);
14396 33 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14397 : {
14398 0 : {
14399 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14400 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14401 0 : if (res) return res;
14402 : }
14403 0 : {
14404 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
14405 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14406 0 : if (res) return res;
14407 : }
14408 : }
14409 33 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14410 : {
14411 0 : {
14412 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14413 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14414 0 : if (res) return res;
14415 : }
14416 : }
14417 33 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14418 : {
14419 0 : {
14420 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14421 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14422 0 : if (res) return res;
14423 : }
14424 0 : {
14425 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
14426 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14427 0 : if (res) return res;
14428 : }
14429 : }
14430 33 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14431 : {
14432 11 : {
14433 11 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14434 11 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
14435 11 : if (res) return res;
14436 : }
14437 11 : {
14438 11 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
14439 11 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14440 11 : if (res) return res;
14441 : }
14442 : }
14443 33 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14444 : {
14445 0 : {
14446 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
14447 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14448 0 : if (res) return res;
14449 : }
14450 : }
14451 : break;
14452 : }
14453 19 : case LT_EXPR:
14454 19 : {
14455 19 : tree _q50 = TREE_OPERAND (_p1, 0);
14456 19 : tree _q51 = TREE_OPERAND (_p1, 1);
14457 19 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14458 : {
14459 0 : {
14460 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14461 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14462 0 : if (res) return res;
14463 : }
14464 : }
14465 19 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14466 : {
14467 0 : {
14468 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14469 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14470 0 : if (res) return res;
14471 : }
14472 : }
14473 19 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14474 : {
14475 0 : {
14476 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14477 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14478 0 : if (res) return res;
14479 : }
14480 : }
14481 19 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14482 : {
14483 0 : {
14484 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14485 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14486 0 : if (res) return res;
14487 : }
14488 : }
14489 : break;
14490 : }
14491 12 : case GT_EXPR:
14492 12 : {
14493 12 : tree _q50 = TREE_OPERAND (_p1, 0);
14494 12 : tree _q51 = TREE_OPERAND (_p1, 1);
14495 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14496 : {
14497 0 : {
14498 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14499 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14500 0 : if (res) return res;
14501 : }
14502 : }
14503 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14504 : {
14505 0 : {
14506 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14507 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14508 0 : if (res) return res;
14509 : }
14510 : }
14511 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14512 : {
14513 0 : {
14514 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14515 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
14516 0 : if (res) return res;
14517 : }
14518 : }
14519 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14520 : {
14521 0 : {
14522 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14523 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
14524 0 : if (res) return res;
14525 : }
14526 : }
14527 : break;
14528 : }
14529 36 : case LE_EXPR:
14530 36 : {
14531 36 : tree _q50 = TREE_OPERAND (_p1, 0);
14532 36 : tree _q51 = TREE_OPERAND (_p1, 1);
14533 36 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14534 : {
14535 0 : {
14536 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14537 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14538 0 : if (res) return res;
14539 : }
14540 : }
14541 36 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14542 : {
14543 0 : {
14544 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14545 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14546 0 : if (res) return res;
14547 : }
14548 : }
14549 36 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14550 : {
14551 0 : {
14552 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14553 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14554 0 : if (res) return res;
14555 : }
14556 : }
14557 36 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14558 : {
14559 0 : {
14560 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14561 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14562 0 : if (res) return res;
14563 : }
14564 : }
14565 : break;
14566 : }
14567 4 : case GE_EXPR:
14568 4 : {
14569 4 : tree _q50 = TREE_OPERAND (_p1, 0);
14570 4 : tree _q51 = TREE_OPERAND (_p1, 1);
14571 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14572 : {
14573 0 : {
14574 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14575 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14576 0 : if (res) return res;
14577 : }
14578 : }
14579 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14580 : {
14581 0 : {
14582 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14583 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14584 0 : if (res) return res;
14585 : }
14586 : }
14587 4 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14588 : {
14589 0 : {
14590 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14591 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
14592 0 : if (res) return res;
14593 : }
14594 : }
14595 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14596 : {
14597 0 : {
14598 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14599 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
14600 0 : if (res) return res;
14601 : }
14602 : }
14603 : break;
14604 : }
14605 : default:;
14606 : }
14607 : break;
14608 : }
14609 140 : case NE_EXPR:
14610 140 : {
14611 140 : tree _q20 = TREE_OPERAND (_p0, 0);
14612 140 : tree _q21 = TREE_OPERAND (_p0, 1);
14613 140 : if (tree_min_value (_q21))
14614 : {
14615 16 : switch (TREE_CODE (_p1))
14616 : {
14617 0 : case GT_EXPR:
14618 0 : {
14619 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14620 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14621 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14622 : {
14623 0 : {
14624 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
14625 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, NE_EXPR);
14626 0 : if (res) return res;
14627 : }
14628 : }
14629 : break;
14630 : }
14631 0 : case LT_EXPR:
14632 0 : {
14633 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14634 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14635 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14636 : {
14637 0 : {
14638 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
14639 0 : tree res = generic_simplify_478 (loc, type, _p0, _p1, captures, NE_EXPR);
14640 0 : if (res) return res;
14641 : }
14642 : }
14643 : break;
14644 : }
14645 3 : case GE_EXPR:
14646 3 : {
14647 3 : tree _q50 = TREE_OPERAND (_p1, 0);
14648 3 : tree _q51 = TREE_OPERAND (_p1, 1);
14649 3 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14650 : {
14651 3 : {
14652 3 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
14653 3 : tree res = generic_simplify_484 (loc, type, _p0, _p1, captures);
14654 3 : if (res) return res;
14655 : }
14656 : }
14657 : break;
14658 : }
14659 0 : case LE_EXPR:
14660 0 : {
14661 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14662 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14663 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14664 : {
14665 0 : {
14666 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q51 };
14667 0 : tree res = generic_simplify_484 (loc, type, _p0, _p1, captures);
14668 0 : if (res) return res;
14669 : }
14670 : }
14671 : break;
14672 : }
14673 : default:;
14674 : }
14675 : }
14676 137 : if (tree_max_value (_q21))
14677 : {
14678 0 : switch (TREE_CODE (_p1))
14679 : {
14680 0 : case LT_EXPR:
14681 0 : {
14682 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14683 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14684 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14685 : {
14686 0 : {
14687 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
14688 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, NE_EXPR);
14689 0 : if (res) return res;
14690 : }
14691 : }
14692 : break;
14693 : }
14694 0 : case GT_EXPR:
14695 0 : {
14696 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14697 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14698 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14699 : {
14700 0 : {
14701 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
14702 0 : tree res = generic_simplify_480 (loc, type, _p0, _p1, captures, NE_EXPR);
14703 0 : if (res) return res;
14704 : }
14705 : }
14706 : break;
14707 : }
14708 : default:;
14709 : }
14710 : }
14711 137 : switch (TREE_CODE (_p1))
14712 : {
14713 20 : case EQ_EXPR:
14714 20 : {
14715 20 : tree _q50 = TREE_OPERAND (_p1, 0);
14716 20 : tree _q51 = TREE_OPERAND (_p1, 1);
14717 20 : switch (TREE_CODE (_q50))
14718 : {
14719 0 : CASE_CONVERT:
14720 0 : {
14721 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14722 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14723 : {
14724 0 : {
14725 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14726 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14727 0 : if (res) return res;
14728 : }
14729 : }
14730 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14731 : {
14732 0 : {
14733 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14734 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14735 0 : if (res) return res;
14736 : }
14737 : }
14738 : break;
14739 : }
14740 20 : default:;
14741 : }
14742 20 : switch (TREE_CODE (_q51))
14743 : {
14744 0 : CASE_CONVERT:
14745 0 : {
14746 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14747 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14748 : {
14749 0 : {
14750 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14751 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14752 0 : if (res) return res;
14753 : }
14754 : }
14755 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14756 : {
14757 0 : {
14758 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14759 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
14760 0 : if (res) return res;
14761 : }
14762 : }
14763 : break;
14764 : }
14765 : default:;
14766 : }
14767 : break;
14768 : }
14769 4 : case NE_EXPR:
14770 4 : {
14771 4 : tree _q50 = TREE_OPERAND (_p1, 0);
14772 4 : tree _q51 = TREE_OPERAND (_p1, 1);
14773 4 : switch (TREE_CODE (_q50))
14774 : {
14775 0 : CASE_CONVERT:
14776 0 : {
14777 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14778 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14779 : {
14780 0 : {
14781 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14782 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14783 0 : if (res) return res;
14784 : }
14785 : }
14786 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14787 : {
14788 0 : {
14789 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14790 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14791 0 : if (res) return res;
14792 : }
14793 : }
14794 : break;
14795 : }
14796 4 : default:;
14797 : }
14798 4 : switch (TREE_CODE (_q51))
14799 : {
14800 0 : CASE_CONVERT:
14801 0 : {
14802 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14803 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14804 : {
14805 0 : {
14806 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14807 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14808 0 : if (res) return res;
14809 : }
14810 : }
14811 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14812 : {
14813 0 : {
14814 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14815 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
14816 0 : if (res) return res;
14817 : }
14818 : }
14819 : break;
14820 : }
14821 : default:;
14822 : }
14823 : break;
14824 : }
14825 0 : case LT_EXPR:
14826 0 : {
14827 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14828 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14829 0 : switch (TREE_CODE (_q50))
14830 : {
14831 0 : CASE_CONVERT:
14832 0 : {
14833 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14834 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14835 : {
14836 0 : {
14837 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14838 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14839 0 : if (res) return res;
14840 : }
14841 : }
14842 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14843 : {
14844 0 : {
14845 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14846 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14847 0 : if (res) return res;
14848 : }
14849 : }
14850 : break;
14851 : }
14852 0 : default:;
14853 : }
14854 0 : switch (TREE_CODE (_q51))
14855 : {
14856 0 : CASE_CONVERT:
14857 0 : {
14858 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14859 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14860 : {
14861 0 : {
14862 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14863 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14864 0 : if (res) return res;
14865 : }
14866 : }
14867 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14868 : {
14869 0 : {
14870 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14871 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14872 0 : if (res) return res;
14873 : }
14874 : }
14875 : break;
14876 : }
14877 : default:;
14878 : }
14879 : break;
14880 : }
14881 4 : case GT_EXPR:
14882 4 : {
14883 4 : tree _q50 = TREE_OPERAND (_p1, 0);
14884 4 : tree _q51 = TREE_OPERAND (_p1, 1);
14885 4 : switch (TREE_CODE (_q50))
14886 : {
14887 0 : CASE_CONVERT:
14888 0 : {
14889 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14890 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14891 : {
14892 0 : {
14893 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14894 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14895 0 : if (res) return res;
14896 : }
14897 : }
14898 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14899 : {
14900 0 : {
14901 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14902 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
14903 0 : if (res) return res;
14904 : }
14905 : }
14906 : break;
14907 : }
14908 4 : default:;
14909 : }
14910 4 : switch (TREE_CODE (_q51))
14911 : {
14912 0 : CASE_CONVERT:
14913 0 : {
14914 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14915 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14916 : {
14917 0 : {
14918 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14919 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14920 0 : if (res) return res;
14921 : }
14922 : }
14923 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14924 : {
14925 0 : {
14926 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14927 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
14928 0 : if (res) return res;
14929 : }
14930 : }
14931 : break;
14932 : }
14933 : default:;
14934 : }
14935 : break;
14936 : }
14937 0 : case LE_EXPR:
14938 0 : {
14939 0 : tree _q50 = TREE_OPERAND (_p1, 0);
14940 0 : tree _q51 = TREE_OPERAND (_p1, 1);
14941 0 : switch (TREE_CODE (_q50))
14942 : {
14943 0 : CASE_CONVERT:
14944 0 : {
14945 0 : tree _q60 = TREE_OPERAND (_q50, 0);
14946 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14947 : {
14948 0 : {
14949 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
14950 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
14951 0 : if (res) return res;
14952 : }
14953 : }
14954 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
14955 : {
14956 0 : {
14957 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
14958 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
14959 0 : if (res) return res;
14960 : }
14961 : }
14962 : break;
14963 : }
14964 0 : default:;
14965 : }
14966 0 : switch (TREE_CODE (_q51))
14967 : {
14968 0 : CASE_CONVERT:
14969 0 : {
14970 0 : tree _q70 = TREE_OPERAND (_q51, 0);
14971 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
14972 : {
14973 0 : {
14974 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
14975 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
14976 0 : if (res) return res;
14977 : }
14978 : }
14979 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
14980 : {
14981 0 : {
14982 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
14983 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
14984 0 : if (res) return res;
14985 : }
14986 : }
14987 : break;
14988 : }
14989 : default:;
14990 : }
14991 : break;
14992 : }
14993 14 : case GE_EXPR:
14994 14 : {
14995 14 : tree _q50 = TREE_OPERAND (_p1, 0);
14996 14 : tree _q51 = TREE_OPERAND (_p1, 1);
14997 14 : switch (TREE_CODE (_q50))
14998 : {
14999 0 : CASE_CONVERT:
15000 0 : {
15001 0 : tree _q60 = TREE_OPERAND (_q50, 0);
15002 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
15003 : {
15004 0 : {
15005 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15006 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15007 0 : if (res) return res;
15008 : }
15009 : }
15010 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
15011 : {
15012 0 : {
15013 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15014 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15015 0 : if (res) return res;
15016 : }
15017 : }
15018 : break;
15019 : }
15020 14 : default:;
15021 : }
15022 14 : switch (TREE_CODE (_q51))
15023 : {
15024 0 : CASE_CONVERT:
15025 0 : {
15026 0 : tree _q70 = TREE_OPERAND (_q51, 0);
15027 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
15028 : {
15029 0 : {
15030 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15031 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15032 0 : if (res) return res;
15033 : }
15034 : }
15035 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
15036 : {
15037 0 : {
15038 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15039 0 : tree res = generic_simplify_482 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15040 0 : if (res) return res;
15041 : }
15042 : }
15043 : break;
15044 : }
15045 : default:;
15046 : }
15047 : break;
15048 : }
15049 137 : default:;
15050 : }
15051 137 : switch (TREE_CODE (_q20))
15052 : {
15053 0 : CASE_CONVERT:
15054 0 : {
15055 0 : tree _q30 = TREE_OPERAND (_q20, 0);
15056 0 : switch (TREE_CODE (_p1))
15057 : {
15058 0 : case EQ_EXPR:
15059 0 : {
15060 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15061 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15062 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15063 : {
15064 0 : {
15065 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15066 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15067 0 : if (res) return res;
15068 : }
15069 : }
15070 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15071 : {
15072 0 : {
15073 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15074 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15075 0 : if (res) return res;
15076 : }
15077 : }
15078 : break;
15079 : }
15080 0 : case NE_EXPR:
15081 0 : {
15082 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15083 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15084 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15085 : {
15086 0 : {
15087 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15088 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15089 0 : if (res) return res;
15090 : }
15091 : }
15092 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15093 : {
15094 0 : {
15095 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15096 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15097 0 : if (res) return res;
15098 : }
15099 : }
15100 : break;
15101 : }
15102 : default:;
15103 : }
15104 : break;
15105 : }
15106 137 : default:;
15107 : }
15108 137 : switch (TREE_CODE (_q21))
15109 : {
15110 0 : CASE_CONVERT:
15111 0 : {
15112 0 : tree _q40 = TREE_OPERAND (_q21, 0);
15113 0 : switch (TREE_CODE (_p1))
15114 : {
15115 0 : case EQ_EXPR:
15116 0 : {
15117 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15118 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15119 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15120 : {
15121 0 : {
15122 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15123 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15124 0 : if (res) return res;
15125 : }
15126 : }
15127 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15128 : {
15129 0 : {
15130 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15131 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15132 0 : if (res) return res;
15133 : }
15134 : }
15135 : break;
15136 : }
15137 0 : case NE_EXPR:
15138 0 : {
15139 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15140 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15141 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15142 : {
15143 0 : {
15144 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15145 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15146 0 : if (res) return res;
15147 : }
15148 : }
15149 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15150 : {
15151 0 : {
15152 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15153 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15154 0 : if (res) return res;
15155 : }
15156 : }
15157 : break;
15158 : }
15159 : default:;
15160 : }
15161 : break;
15162 : }
15163 137 : default:;
15164 : }
15165 137 : switch (TREE_CODE (_p1))
15166 : {
15167 20 : case EQ_EXPR:
15168 20 : {
15169 20 : tree _q50 = TREE_OPERAND (_p1, 0);
15170 20 : tree _q51 = TREE_OPERAND (_p1, 1);
15171 20 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15172 : {
15173 0 : {
15174 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15175 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
15176 0 : if (res) return res;
15177 : }
15178 0 : {
15179 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15180 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15181 0 : if (res) return res;
15182 : }
15183 : }
15184 20 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15185 : {
15186 0 : {
15187 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15188 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
15189 0 : if (res) return res;
15190 : }
15191 : }
15192 20 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15193 : {
15194 0 : {
15195 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15196 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
15197 0 : if (res) return res;
15198 : }
15199 0 : {
15200 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15201 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15202 0 : if (res) return res;
15203 : }
15204 : }
15205 20 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15206 : {
15207 4 : {
15208 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15209 4 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
15210 4 : if (res) return res;
15211 : }
15212 4 : {
15213 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15214 4 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15215 4 : if (res) return res;
15216 : }
15217 : }
15218 20 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15219 : {
15220 0 : {
15221 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15222 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
15223 0 : if (res) return res;
15224 : }
15225 : }
15226 : break;
15227 : }
15228 4 : case NE_EXPR:
15229 4 : {
15230 4 : tree _q50 = TREE_OPERAND (_p1, 0);
15231 4 : tree _q51 = TREE_OPERAND (_p1, 1);
15232 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15233 : {
15234 2 : {
15235 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15236 2 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15237 2 : if (res) return res;
15238 : }
15239 2 : {
15240 2 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15241 2 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15242 2 : if (res) return res;
15243 : }
15244 : }
15245 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15246 : {
15247 0 : {
15248 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15249 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15250 0 : if (res) return res;
15251 : }
15252 : }
15253 4 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15254 : {
15255 0 : {
15256 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15257 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15258 0 : if (res) return res;
15259 : }
15260 0 : {
15261 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15262 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15263 0 : if (res) return res;
15264 : }
15265 : }
15266 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15267 : {
15268 1 : {
15269 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15270 1 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15271 1 : if (res) return res;
15272 : }
15273 1 : {
15274 1 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15275 1 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15276 1 : if (res) return res;
15277 : }
15278 : }
15279 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15280 : {
15281 0 : {
15282 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15283 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
15284 0 : if (res) return res;
15285 : }
15286 : }
15287 : break;
15288 : }
15289 0 : case LT_EXPR:
15290 0 : {
15291 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15292 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15293 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15294 : {
15295 0 : {
15296 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15297 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15298 0 : if (res) return res;
15299 : }
15300 : }
15301 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15302 : {
15303 0 : {
15304 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15305 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15306 0 : if (res) return res;
15307 : }
15308 : }
15309 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15310 : {
15311 0 : {
15312 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15313 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15314 0 : if (res) return res;
15315 : }
15316 : }
15317 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15318 : {
15319 0 : {
15320 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15321 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15322 0 : if (res) return res;
15323 : }
15324 : }
15325 : break;
15326 : }
15327 4 : case GT_EXPR:
15328 4 : {
15329 4 : tree _q50 = TREE_OPERAND (_p1, 0);
15330 4 : tree _q51 = TREE_OPERAND (_p1, 1);
15331 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15332 : {
15333 4 : {
15334 4 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15335 4 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15336 4 : if (res) return res;
15337 : }
15338 : }
15339 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15340 : {
15341 0 : {
15342 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15343 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15344 0 : if (res) return res;
15345 : }
15346 : }
15347 4 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15348 : {
15349 0 : {
15350 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15351 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
15352 0 : if (res) return res;
15353 : }
15354 : }
15355 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15356 : {
15357 0 : {
15358 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15359 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
15360 0 : if (res) return res;
15361 : }
15362 : }
15363 : break;
15364 : }
15365 0 : case LE_EXPR:
15366 0 : {
15367 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15368 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15369 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15370 : {
15371 0 : {
15372 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15373 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15374 0 : if (res) return res;
15375 : }
15376 : }
15377 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15378 : {
15379 0 : {
15380 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15381 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15382 0 : if (res) return res;
15383 : }
15384 : }
15385 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15386 : {
15387 0 : {
15388 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15389 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15390 0 : if (res) return res;
15391 : }
15392 : }
15393 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15394 : {
15395 0 : {
15396 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15397 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15398 0 : if (res) return res;
15399 : }
15400 : }
15401 : break;
15402 : }
15403 14 : case GE_EXPR:
15404 14 : {
15405 14 : tree _q50 = TREE_OPERAND (_p1, 0);
15406 14 : tree _q51 = TREE_OPERAND (_p1, 1);
15407 14 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15408 : {
15409 0 : {
15410 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
15411 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15412 0 : if (res) return res;
15413 : }
15414 : }
15415 14 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15416 : {
15417 0 : {
15418 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q50 };
15419 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15420 0 : if (res) return res;
15421 : }
15422 : }
15423 14 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15424 : {
15425 0 : {
15426 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q51 };
15427 0 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15428 0 : if (res) return res;
15429 : }
15430 : }
15431 14 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15432 : {
15433 14 : {
15434 14 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q50 };
15435 14 : tree res = generic_simplify_483 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15436 14 : if (res) return res;
15437 : }
15438 : }
15439 : break;
15440 : }
15441 : default:;
15442 : }
15443 : break;
15444 : }
15445 36 : case LE_EXPR:
15446 36 : {
15447 36 : tree _q20 = TREE_OPERAND (_p0, 0);
15448 36 : tree _q21 = TREE_OPERAND (_p0, 1);
15449 36 : switch (TREE_CODE (_p1))
15450 : {
15451 16 : case EQ_EXPR:
15452 16 : {
15453 16 : tree _q50 = TREE_OPERAND (_p1, 0);
15454 16 : tree _q51 = TREE_OPERAND (_p1, 1);
15455 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15456 : {
15457 4 : if (tree_min_value (_q51))
15458 : {
15459 4 : {
15460 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15461 4 : tree res = generic_simplify_485 (loc, type, _p0, _p1, captures);
15462 4 : if (res) return res;
15463 : }
15464 : }
15465 : }
15466 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15467 : {
15468 0 : if (tree_max_value (_q51))
15469 : {
15470 0 : {
15471 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15472 0 : tree res = generic_simplify_486 (loc, type, _p0, _p1, captures);
15473 0 : if (res) return res;
15474 : }
15475 : }
15476 : }
15477 : break;
15478 : }
15479 0 : case NE_EXPR:
15480 0 : {
15481 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15482 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15483 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15484 : {
15485 0 : if (tree_min_value (_q51))
15486 : {
15487 0 : {
15488 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _p0, _q21 };
15489 0 : tree res = generic_simplify_487 (loc, type, _p0, _p1, captures);
15490 0 : if (res) return res;
15491 : }
15492 : }
15493 : }
15494 : break;
15495 : }
15496 32 : default:;
15497 : }
15498 32 : switch (TREE_CODE (_q20))
15499 : {
15500 0 : CASE_CONVERT:
15501 0 : {
15502 0 : tree _q30 = TREE_OPERAND (_q20, 0);
15503 0 : switch (TREE_CODE (_p1))
15504 : {
15505 0 : case EQ_EXPR:
15506 0 : {
15507 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15508 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15509 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15510 : {
15511 0 : {
15512 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15513 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15514 0 : if (res) return res;
15515 : }
15516 : }
15517 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15518 : {
15519 0 : {
15520 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15521 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15522 0 : if (res) return res;
15523 : }
15524 : }
15525 : break;
15526 : }
15527 0 : case NE_EXPR:
15528 0 : {
15529 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15530 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15531 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15532 : {
15533 0 : {
15534 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15535 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15536 0 : if (res) return res;
15537 : }
15538 : }
15539 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15540 : {
15541 0 : {
15542 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15543 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15544 0 : if (res) return res;
15545 : }
15546 : }
15547 : break;
15548 : }
15549 : default:;
15550 : }
15551 : break;
15552 : }
15553 32 : default:;
15554 : }
15555 32 : switch (TREE_CODE (_q21))
15556 : {
15557 0 : CASE_CONVERT:
15558 0 : {
15559 0 : tree _q40 = TREE_OPERAND (_q21, 0);
15560 0 : switch (TREE_CODE (_p1))
15561 : {
15562 0 : case EQ_EXPR:
15563 0 : {
15564 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15565 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15566 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15567 : {
15568 0 : {
15569 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15570 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15571 0 : if (res) return res;
15572 : }
15573 : }
15574 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15575 : {
15576 0 : {
15577 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15578 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15579 0 : if (res) return res;
15580 : }
15581 : }
15582 : break;
15583 : }
15584 0 : case NE_EXPR:
15585 0 : {
15586 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15587 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15588 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15589 : {
15590 0 : {
15591 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15592 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15593 0 : if (res) return res;
15594 : }
15595 : }
15596 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15597 : {
15598 0 : {
15599 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15600 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15601 0 : if (res) return res;
15602 : }
15603 : }
15604 : break;
15605 : }
15606 : default:;
15607 : }
15608 : break;
15609 : }
15610 32 : default:;
15611 : }
15612 32 : switch (TREE_CODE (_p1))
15613 : {
15614 12 : case EQ_EXPR:
15615 12 : {
15616 12 : tree _q50 = TREE_OPERAND (_p1, 0);
15617 12 : tree _q51 = TREE_OPERAND (_p1, 1);
15618 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15619 : {
15620 0 : {
15621 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15622 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15623 0 : if (res) return res;
15624 : }
15625 : }
15626 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15627 : {
15628 0 : {
15629 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15630 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15631 0 : if (res) return res;
15632 : }
15633 : }
15634 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15635 : {
15636 0 : {
15637 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15638 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15639 0 : if (res) return res;
15640 : }
15641 : }
15642 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15643 : {
15644 0 : {
15645 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15646 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15647 0 : if (res) return res;
15648 : }
15649 : }
15650 : break;
15651 : }
15652 0 : case NE_EXPR:
15653 0 : {
15654 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15655 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15656 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15657 : {
15658 0 : {
15659 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
15660 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15661 0 : if (res) return res;
15662 : }
15663 : }
15664 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15665 : {
15666 0 : {
15667 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
15668 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15669 0 : if (res) return res;
15670 : }
15671 : }
15672 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15673 : {
15674 0 : {
15675 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
15676 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15677 0 : if (res) return res;
15678 : }
15679 : }
15680 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15681 : {
15682 0 : {
15683 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
15684 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15685 0 : if (res) return res;
15686 : }
15687 : }
15688 : break;
15689 : }
15690 0 : case LT_EXPR:
15691 0 : {
15692 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15693 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15694 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15695 : {
15696 0 : {
15697 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15698 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
15699 0 : if (res) return res;
15700 : }
15701 : }
15702 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15703 : {
15704 0 : {
15705 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15706 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
15707 0 : if (res) return res;
15708 : }
15709 : }
15710 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15711 : {
15712 0 : {
15713 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15714 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
15715 0 : if (res) return res;
15716 : }
15717 : }
15718 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15719 : {
15720 0 : {
15721 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15722 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
15723 0 : if (res) return res;
15724 : }
15725 : }
15726 : break;
15727 : }
15728 5 : case LE_EXPR:
15729 5 : {
15730 5 : tree _q50 = TREE_OPERAND (_p1, 0);
15731 5 : tree _q51 = TREE_OPERAND (_p1, 1);
15732 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15733 : {
15734 0 : {
15735 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15736 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
15737 0 : if (res) return res;
15738 : }
15739 : }
15740 5 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15741 : {
15742 0 : {
15743 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15744 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
15745 0 : if (res) return res;
15746 : }
15747 : }
15748 5 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15749 : {
15750 0 : {
15751 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15752 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
15753 0 : if (res) return res;
15754 : }
15755 : }
15756 5 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15757 : {
15758 4 : {
15759 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15760 4 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
15761 4 : if (res) return res;
15762 : }
15763 : }
15764 : break;
15765 : }
15766 4 : case GT_EXPR:
15767 4 : {
15768 4 : tree _q50 = TREE_OPERAND (_p1, 0);
15769 4 : tree _q51 = TREE_OPERAND (_p1, 1);
15770 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15771 : {
15772 0 : {
15773 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15774 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
15775 0 : if (res) return res;
15776 : }
15777 : }
15778 4 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15779 : {
15780 0 : {
15781 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15782 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
15783 0 : if (res) return res;
15784 : }
15785 : }
15786 4 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15787 : {
15788 0 : {
15789 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15790 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
15791 0 : if (res) return res;
15792 : }
15793 : }
15794 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15795 : {
15796 0 : {
15797 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15798 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
15799 0 : if (res) return res;
15800 : }
15801 : }
15802 : break;
15803 : }
15804 0 : case GE_EXPR:
15805 0 : {
15806 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15807 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15808 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15809 : {
15810 0 : {
15811 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
15812 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
15813 0 : if (res) return res;
15814 : }
15815 : }
15816 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15817 : {
15818 0 : {
15819 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
15820 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
15821 0 : if (res) return res;
15822 : }
15823 : }
15824 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15825 : {
15826 0 : {
15827 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
15828 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
15829 0 : if (res) return res;
15830 : }
15831 : }
15832 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15833 : {
15834 0 : {
15835 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
15836 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
15837 0 : if (res) return res;
15838 : }
15839 : }
15840 : break;
15841 : }
15842 : default:;
15843 : }
15844 : break;
15845 : }
15846 78 : case GE_EXPR:
15847 78 : {
15848 78 : tree _q20 = TREE_OPERAND (_p0, 0);
15849 78 : tree _q21 = TREE_OPERAND (_p0, 1);
15850 78 : switch (TREE_CODE (_p1))
15851 : {
15852 10 : case EQ_EXPR:
15853 10 : {
15854 10 : tree _q50 = TREE_OPERAND (_p1, 0);
15855 10 : tree _q51 = TREE_OPERAND (_p1, 1);
15856 10 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15857 : {
15858 0 : if (tree_min_value (_q51))
15859 : {
15860 0 : {
15861 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15862 0 : tree res = generic_simplify_485 (loc, type, _p0, _p1, captures);
15863 0 : if (res) return res;
15864 : }
15865 : }
15866 : }
15867 10 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15868 : {
15869 4 : if (tree_max_value (_q51))
15870 : {
15871 4 : {
15872 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15873 4 : tree res = generic_simplify_486 (loc, type, _p0, _p1, captures);
15874 4 : if (res) return res;
15875 : }
15876 : }
15877 : }
15878 : break;
15879 : }
15880 0 : case NE_EXPR:
15881 0 : {
15882 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15883 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15884 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15885 : {
15886 0 : if (tree_min_value (_q51))
15887 : {
15888 0 : {
15889 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q21, _p0, _q20 };
15890 0 : tree res = generic_simplify_487 (loc, type, _p0, _p1, captures);
15891 0 : if (res) return res;
15892 : }
15893 : }
15894 : }
15895 : break;
15896 : }
15897 74 : default:;
15898 : }
15899 74 : switch (TREE_CODE (_q20))
15900 : {
15901 4 : CASE_CONVERT:
15902 4 : {
15903 4 : tree _q30 = TREE_OPERAND (_q20, 0);
15904 4 : switch (TREE_CODE (_p1))
15905 : {
15906 0 : case EQ_EXPR:
15907 0 : {
15908 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15909 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15910 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15911 : {
15912 0 : {
15913 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15914 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15915 0 : if (res) return res;
15916 : }
15917 : }
15918 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15919 : {
15920 0 : {
15921 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15922 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
15923 0 : if (res) return res;
15924 : }
15925 : }
15926 : break;
15927 : }
15928 0 : case NE_EXPR:
15929 0 : {
15930 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15931 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15932 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15933 : {
15934 0 : {
15935 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q61, _p0, _q20, _q21 };
15936 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15937 0 : if (res) return res;
15938 : }
15939 : }
15940 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
15941 : {
15942 0 : {
15943 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q60, _p0, _q20, _q21 };
15944 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
15945 0 : if (res) return res;
15946 : }
15947 : }
15948 : break;
15949 : }
15950 : default:;
15951 : }
15952 : break;
15953 : }
15954 74 : default:;
15955 : }
15956 74 : switch (TREE_CODE (_q21))
15957 : {
15958 0 : CASE_CONVERT:
15959 0 : {
15960 0 : tree _q40 = TREE_OPERAND (_q21, 0);
15961 0 : switch (TREE_CODE (_p1))
15962 : {
15963 0 : case EQ_EXPR:
15964 0 : {
15965 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15966 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15967 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15968 : {
15969 0 : {
15970 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15971 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15972 0 : if (res) return res;
15973 : }
15974 : }
15975 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15976 : {
15977 0 : {
15978 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
15979 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
15980 0 : if (res) return res;
15981 : }
15982 : }
15983 : break;
15984 : }
15985 0 : case NE_EXPR:
15986 0 : {
15987 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15988 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15989 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15990 : {
15991 0 : {
15992 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q61, _p0, _q21, _q20 };
15993 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
15994 0 : if (res) return res;
15995 : }
15996 : }
15997 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
15998 : {
15999 0 : {
16000 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q40, _q60, _p0, _q21, _q20 };
16001 0 : tree res = generic_simplify_475 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
16002 0 : if (res) return res;
16003 : }
16004 : }
16005 : break;
16006 : }
16007 : default:;
16008 : }
16009 : break;
16010 : }
16011 74 : default:;
16012 : }
16013 74 : switch (TREE_CODE (_p1))
16014 : {
16015 6 : case EQ_EXPR:
16016 6 : {
16017 6 : tree _q50 = TREE_OPERAND (_p1, 0);
16018 6 : tree _q51 = TREE_OPERAND (_p1, 1);
16019 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16020 : {
16021 0 : {
16022 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
16023 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
16024 0 : if (res) return res;
16025 : }
16026 : }
16027 6 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16028 : {
16029 0 : {
16030 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
16031 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
16032 0 : if (res) return res;
16033 : }
16034 : }
16035 6 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16036 : {
16037 0 : {
16038 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
16039 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
16040 0 : if (res) return res;
16041 : }
16042 : }
16043 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16044 : {
16045 0 : {
16046 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
16047 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
16048 0 : if (res) return res;
16049 : }
16050 : }
16051 : break;
16052 : }
16053 0 : case NE_EXPR:
16054 0 : {
16055 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16056 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16057 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16058 : {
16059 0 : {
16060 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q20, _q21 };
16061 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
16062 0 : if (res) return res;
16063 : }
16064 : }
16065 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16066 : {
16067 0 : {
16068 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q51, _p0, _q21, _q20 };
16069 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
16070 0 : if (res) return res;
16071 : }
16072 : }
16073 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16074 : {
16075 0 : {
16076 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q50, _p0, _q20, _q21 };
16077 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
16078 0 : if (res) return res;
16079 : }
16080 : }
16081 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16082 : {
16083 0 : {
16084 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q50, _p0, _q21, _q20 };
16085 0 : tree res = generic_simplify_476 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
16086 0 : if (res) return res;
16087 : }
16088 : }
16089 : break;
16090 : }
16091 12 : case LT_EXPR:
16092 12 : {
16093 12 : tree _q50 = TREE_OPERAND (_p1, 0);
16094 12 : tree _q51 = TREE_OPERAND (_p1, 1);
16095 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16096 : {
16097 12 : {
16098 12 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
16099 12 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
16100 12 : if (res) return res;
16101 : }
16102 : }
16103 11 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16104 : {
16105 0 : {
16106 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
16107 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
16108 0 : if (res) return res;
16109 : }
16110 : }
16111 11 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16112 : {
16113 0 : {
16114 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
16115 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
16116 0 : if (res) return res;
16117 : }
16118 : }
16119 11 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16120 : {
16121 0 : {
16122 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
16123 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
16124 0 : if (res) return res;
16125 : }
16126 : }
16127 : break;
16128 : }
16129 17 : case LE_EXPR:
16130 17 : {
16131 17 : tree _q50 = TREE_OPERAND (_p1, 0);
16132 17 : tree _q51 = TREE_OPERAND (_p1, 1);
16133 17 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16134 : {
16135 14 : {
16136 14 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
16137 14 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
16138 14 : if (res) return res;
16139 : }
16140 : }
16141 17 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16142 : {
16143 0 : {
16144 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
16145 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
16146 0 : if (res) return res;
16147 : }
16148 : }
16149 17 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16150 : {
16151 0 : {
16152 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
16153 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
16154 0 : if (res) return res;
16155 : }
16156 : }
16157 17 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16158 : {
16159 0 : {
16160 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
16161 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
16162 0 : if (res) return res;
16163 : }
16164 : }
16165 : break;
16166 : }
16167 0 : case GT_EXPR:
16168 0 : {
16169 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16170 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16171 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16172 : {
16173 0 : {
16174 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
16175 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
16176 0 : if (res) return res;
16177 : }
16178 : }
16179 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16180 : {
16181 0 : {
16182 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
16183 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
16184 0 : if (res) return res;
16185 : }
16186 : }
16187 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16188 : {
16189 0 : {
16190 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
16191 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
16192 0 : if (res) return res;
16193 : }
16194 : }
16195 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16196 : {
16197 0 : {
16198 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
16199 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
16200 0 : if (res) return res;
16201 : }
16202 : }
16203 : break;
16204 : }
16205 11 : case GE_EXPR:
16206 11 : {
16207 11 : tree _q50 = TREE_OPERAND (_p1, 0);
16208 11 : tree _q51 = TREE_OPERAND (_p1, 1);
16209 11 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16210 : {
16211 7 : {
16212 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
16213 7 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
16214 7 : if (res) return res;
16215 : }
16216 : }
16217 11 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16218 : {
16219 0 : {
16220 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
16221 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
16222 0 : if (res) return res;
16223 : }
16224 : }
16225 11 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16226 : {
16227 4 : {
16228 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
16229 4 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
16230 4 : if (res) return res;
16231 : }
16232 : }
16233 11 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16234 : {
16235 0 : {
16236 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
16237 0 : tree res = generic_simplify_477 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
16238 0 : if (res) return res;
16239 : }
16240 : }
16241 : break;
16242 : }
16243 : default:;
16244 : }
16245 : break;
16246 : }
16247 0 : case MIN_EXPR:
16248 0 : {
16249 0 : tree _q20 = TREE_OPERAND (_p0, 0);
16250 0 : tree _q21 = TREE_OPERAND (_p0, 1);
16251 0 : switch (TREE_CODE (_p1))
16252 : {
16253 0 : case MAX_EXPR:
16254 0 : {
16255 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16256 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16257 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16258 : {
16259 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16260 : {
16261 0 : {
16262 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16263 0 : if (!HONOR_NANS (captures[0])
16264 : )
16265 : {
16266 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1684;
16267 0 : {
16268 0 : tree res_op0;
16269 0 : res_op0 = captures[0];
16270 0 : tree res_op1;
16271 0 : res_op1 = captures[1];
16272 0 : tree _r;
16273 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16274 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
16275 0 : return _r;
16276 : }
16277 0 : next_after_fail1684:;
16278 : }
16279 : }
16280 : }
16281 : }
16282 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16283 : {
16284 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16285 : {
16286 0 : {
16287 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
16288 0 : if (!HONOR_NANS (captures[0])
16289 : )
16290 : {
16291 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1685;
16292 0 : {
16293 0 : tree res_op0;
16294 0 : res_op0 = captures[0];
16295 0 : tree res_op1;
16296 0 : res_op1 = captures[1];
16297 0 : tree _r;
16298 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16299 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
16300 0 : return _r;
16301 : }
16302 0 : next_after_fail1685:;
16303 : }
16304 : }
16305 : }
16306 : }
16307 : break;
16308 : }
16309 : default:;
16310 : }
16311 : break;
16312 : }
16313 80 : case MAX_EXPR:
16314 80 : {
16315 80 : tree _q20 = TREE_OPERAND (_p0, 0);
16316 80 : tree _q21 = TREE_OPERAND (_p0, 1);
16317 80 : switch (TREE_CODE (_p1))
16318 : {
16319 0 : case MIN_EXPR:
16320 0 : {
16321 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16322 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16323 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16324 : {
16325 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16326 : {
16327 0 : {
16328 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16329 0 : if (!HONOR_NANS (captures[0])
16330 : )
16331 : {
16332 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1686;
16333 0 : {
16334 0 : tree res_op0;
16335 0 : res_op0 = captures[0];
16336 0 : tree res_op1;
16337 0 : res_op1 = captures[1];
16338 0 : tree _r;
16339 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16340 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
16341 0 : return _r;
16342 : }
16343 0 : next_after_fail1686:;
16344 : }
16345 : }
16346 : }
16347 : }
16348 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16349 : {
16350 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16351 : {
16352 0 : {
16353 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16354 0 : if (!HONOR_NANS (captures[0])
16355 : )
16356 : {
16357 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1687;
16358 0 : {
16359 0 : tree res_op0;
16360 0 : res_op0 = captures[0];
16361 0 : tree res_op1;
16362 0 : res_op1 = captures[1];
16363 0 : tree _r;
16364 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
16365 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
16366 0 : return _r;
16367 : }
16368 0 : next_after_fail1687:;
16369 : }
16370 : }
16371 : }
16372 : }
16373 : break;
16374 : }
16375 : default:;
16376 : }
16377 : break;
16378 : }
16379 120895 : case MULT_EXPR:
16380 120895 : {
16381 120895 : tree _q20 = TREE_OPERAND (_p0, 0);
16382 120895 : tree _q21 = TREE_OPERAND (_p0, 1);
16383 120895 : if (tree_zero_one_valued_p (_q20))
16384 : {
16385 4 : {
16386 4 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
16387 4 : tree res = generic_simplify_488 (loc, type, _p0, _p1, captures);
16388 4 : if (res) return res;
16389 : }
16390 : }
16391 120893 : if (tree_zero_one_valued_p (_q21))
16392 : {
16393 0 : {
16394 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
16395 0 : tree res = generic_simplify_488 (loc, type, _p0, _p1, captures);
16396 0 : if (res) return res;
16397 : }
16398 : }
16399 : break;
16400 : }
16401 6427237 : default:;
16402 : }
16403 6427237 : switch (TREE_CODE (_p1))
16404 : {
16405 26 : case MULT_EXPR:
16406 26 : {
16407 26 : tree _q30 = TREE_OPERAND (_p1, 0);
16408 26 : tree _q31 = TREE_OPERAND (_p1, 1);
16409 26 : if (tree_zero_one_valued_p (_q30))
16410 : {
16411 0 : {
16412 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
16413 0 : tree res = generic_simplify_488 (loc, type, _p0, _p1, captures);
16414 0 : if (res) return res;
16415 : }
16416 : }
16417 26 : if (tree_zero_one_valued_p (_q31))
16418 : {
16419 0 : {
16420 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q31, _q30, _p0 };
16421 0 : tree res = generic_simplify_488 (loc, type, _p0, _p1, captures);
16422 0 : if (res) return res;
16423 : }
16424 : }
16425 : break;
16426 : }
16427 99 : case RSHIFT_EXPR:
16428 99 : {
16429 99 : tree _q30 = TREE_OPERAND (_p1, 0);
16430 99 : tree _q31 = TREE_OPERAND (_p1, 1);
16431 99 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
16432 : {
16433 0 : switch (TREE_CODE (_q31))
16434 : {
16435 0 : case INTEGER_CST:
16436 0 : {
16437 0 : {
16438 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
16439 0 : tree res = generic_simplify_111 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MIN_EXPR, MAX_EXPR);
16440 0 : if (res) return res;
16441 : }
16442 0 : break;
16443 : }
16444 : default:;
16445 : }
16446 : }
16447 : break;
16448 : }
16449 6427237 : default:;
16450 : }
16451 6427237 : switch (TREE_CODE (_p0))
16452 : {
16453 80463 : case RSHIFT_EXPR:
16454 80463 : {
16455 80463 : tree _q20 = TREE_OPERAND (_p0, 0);
16456 80463 : tree _q21 = TREE_OPERAND (_p0, 1);
16457 80463 : switch (TREE_CODE (_q21))
16458 : {
16459 35112 : case INTEGER_CST:
16460 35112 : {
16461 35112 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
16462 : {
16463 0 : {
16464 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16465 0 : tree res = generic_simplify_111 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MIN_EXPR, MAX_EXPR);
16466 0 : if (res) return res;
16467 : }
16468 : }
16469 : break;
16470 : }
16471 : default:;
16472 : }
16473 : break;
16474 : }
16475 6427237 : default:;
16476 : }
16477 6427237 : switch (TREE_CODE (_p1))
16478 : {
16479 53663 : case BIT_NOT_EXPR:
16480 53663 : {
16481 53663 : tree _q30 = TREE_OPERAND (_p1, 0);
16482 53663 : switch (TREE_CODE (_q30))
16483 : {
16484 8 : case RSHIFT_EXPR:
16485 8 : {
16486 8 : tree _q40 = TREE_OPERAND (_q30, 0);
16487 8 : tree _q41 = TREE_OPERAND (_q30, 1);
16488 8 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
16489 : {
16490 0 : switch (TREE_CODE (_q41))
16491 : {
16492 0 : case INTEGER_CST:
16493 0 : {
16494 0 : {
16495 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
16496 0 : tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MIN_EXPR, MAX_EXPR);
16497 0 : if (res) return res;
16498 : }
16499 0 : break;
16500 : }
16501 : default:;
16502 : }
16503 : }
16504 : break;
16505 : }
16506 : default:;
16507 : }
16508 : break;
16509 : }
16510 6427237 : default:;
16511 : }
16512 6427237 : switch (TREE_CODE (_p0))
16513 : {
16514 34206 : case LSHIFT_EXPR:
16515 34206 : {
16516 34206 : tree _q20 = TREE_OPERAND (_p0, 0);
16517 34206 : tree _q21 = TREE_OPERAND (_p0, 1);
16518 34206 : switch (TREE_CODE (_q20))
16519 : {
16520 5301 : case INTEGER_CST:
16521 5301 : {
16522 5301 : if (integer_onep (_p1))
16523 : {
16524 44 : {
16525 44 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
16526 44 : if ((wi::to_wide (captures[0]) & 1) != 0
16527 : )
16528 : {
16529 40 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1688;
16530 40 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1688;
16531 40 : {
16532 40 : tree res_op0;
16533 40 : {
16534 40 : tree _o1[2], _r1;
16535 40 : _o1[0] = captures[1];
16536 40 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
16537 40 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
16538 40 : res_op0 = _r1;
16539 : }
16540 40 : tree _r;
16541 40 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
16542 40 : if (TREE_SIDE_EFFECTS (captures[0]))
16543 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
16544 40 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
16545 40 : return _r;
16546 : }
16547 0 : next_after_fail1688:;
16548 : }
16549 : else
16550 : {
16551 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1689;
16552 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1689;
16553 4 : {
16554 4 : tree _r;
16555 4 : _r = build_zero_cst (type);
16556 4 : if (TREE_SIDE_EFFECTS (captures[0]))
16557 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
16558 4 : if (TREE_SIDE_EFFECTS (captures[1]))
16559 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16560 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
16561 4 : return _r;
16562 : }
16563 0 : next_after_fail1689:;
16564 : }
16565 : }
16566 : }
16567 : break;
16568 : }
16569 5195 : CASE_CONVERT:
16570 5195 : {
16571 5195 : tree _q30 = TREE_OPERAND (_q20, 0);
16572 5195 : switch (TREE_CODE (_q21))
16573 : {
16574 5091 : case INTEGER_CST:
16575 5091 : {
16576 5091 : switch (TREE_CODE (_p1))
16577 : {
16578 5091 : case INTEGER_CST:
16579 5091 : {
16580 5091 : {
16581 5091 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21, _p1 };
16582 5091 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16583 5091 : if (res) return res;
16584 : }
16585 4435 : break;
16586 : }
16587 : default:;
16588 : }
16589 : break;
16590 : }
16591 : default:;
16592 : }
16593 : break;
16594 : }
16595 33506 : default:;
16596 : }
16597 33506 : switch (TREE_CODE (_q21))
16598 : {
16599 27844 : case INTEGER_CST:
16600 27844 : {
16601 27844 : switch (TREE_CODE (_p1))
16602 : {
16603 27807 : case INTEGER_CST:
16604 27807 : {
16605 27807 : {
16606 27807 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21, _p1 };
16607 27807 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16608 27807 : if (res) return res;
16609 : }
16610 16991 : break;
16611 : }
16612 : default:;
16613 : }
16614 : break;
16615 : }
16616 : default:;
16617 : }
16618 : break;
16619 : }
16620 1968829 : CASE_CONVERT:
16621 1968829 : {
16622 1968829 : tree _q20 = TREE_OPERAND (_p0, 0);
16623 1968829 : switch (TREE_CODE (_q20))
16624 : {
16625 74787 : case LSHIFT_EXPR:
16626 74787 : {
16627 74787 : tree _q30 = TREE_OPERAND (_q20, 0);
16628 74787 : tree _q31 = TREE_OPERAND (_q20, 1);
16629 74787 : switch (TREE_CODE (_q30))
16630 : {
16631 147 : CASE_CONVERT:
16632 147 : {
16633 147 : tree _q40 = TREE_OPERAND (_q30, 0);
16634 147 : switch (TREE_CODE (_q31))
16635 : {
16636 79 : case INTEGER_CST:
16637 79 : {
16638 79 : switch (TREE_CODE (_p1))
16639 : {
16640 79 : case INTEGER_CST:
16641 79 : {
16642 79 : {
16643 79 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31, _p1 };
16644 79 : tree res = generic_simplify_491 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16645 79 : if (res) return res;
16646 : }
16647 79 : break;
16648 : }
16649 : default:;
16650 : }
16651 : break;
16652 : }
16653 : default:;
16654 : }
16655 : break;
16656 : }
16657 74787 : default:;
16658 : }
16659 74787 : switch (TREE_CODE (_q31))
16660 : {
16661 79 : case INTEGER_CST:
16662 79 : {
16663 79 : switch (TREE_CODE (_p1))
16664 : {
16665 79 : case INTEGER_CST:
16666 79 : {
16667 79 : {
16668 79 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q30, _q31, _p1 };
16669 79 : tree res = generic_simplify_492 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
16670 79 : if (res) return res;
16671 : }
16672 79 : break;
16673 : }
16674 : default:;
16675 : }
16676 : break;
16677 : }
16678 : default:;
16679 : }
16680 : break;
16681 : }
16682 113387 : case RSHIFT_EXPR:
16683 113387 : {
16684 113387 : tree _q30 = TREE_OPERAND (_q20, 0);
16685 113387 : tree _q31 = TREE_OPERAND (_q20, 1);
16686 113387 : switch (TREE_CODE (_q30))
16687 : {
16688 32730 : CASE_CONVERT:
16689 32730 : {
16690 32730 : tree _q40 = TREE_OPERAND (_q30, 0);
16691 32730 : switch (TREE_CODE (_q31))
16692 : {
16693 32603 : case INTEGER_CST:
16694 32603 : {
16695 32603 : switch (TREE_CODE (_p1))
16696 : {
16697 32603 : case INTEGER_CST:
16698 32603 : {
16699 32603 : {
16700 32603 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31, _p1 };
16701 32603 : tree res = generic_simplify_491 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
16702 32603 : if (res) return res;
16703 : }
16704 32546 : break;
16705 : }
16706 : default:;
16707 : }
16708 : break;
16709 : }
16710 32673 : default:;
16711 : }
16712 32673 : switch (TREE_CODE (_q40))
16713 : {
16714 2 : case CALL_EXPR:
16715 2 : switch (get_call_combined_fn (_q40))
16716 : {
16717 0 : case CFN_BSWAP:
16718 0 : if (call_expr_nargs (_q40) == 1)
16719 : {
16720 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16721 0 : switch (TREE_CODE (_q31))
16722 : {
16723 0 : case INTEGER_CST:
16724 0 : {
16725 0 : switch (TREE_CODE (_p1))
16726 : {
16727 0 : case INTEGER_CST:
16728 0 : {
16729 0 : {
16730 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16731 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BSWAP);
16732 0 : if (res) return res;
16733 : }
16734 0 : break;
16735 : }
16736 : default:;
16737 : }
16738 : break;
16739 : }
16740 : default:;
16741 : }
16742 : }
16743 : break;
16744 0 : case CFN_BUILT_IN_BSWAP128:
16745 0 : if (call_expr_nargs (_q40) == 1)
16746 : {
16747 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16748 0 : switch (TREE_CODE (_q31))
16749 : {
16750 0 : case INTEGER_CST:
16751 0 : {
16752 0 : switch (TREE_CODE (_p1))
16753 : {
16754 0 : case INTEGER_CST:
16755 0 : {
16756 0 : {
16757 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16758 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
16759 0 : if (res) return res;
16760 : }
16761 0 : break;
16762 : }
16763 : default:;
16764 : }
16765 : break;
16766 : }
16767 : default:;
16768 : }
16769 : }
16770 : break;
16771 2 : case CFN_BUILT_IN_BSWAP16:
16772 2 : if (call_expr_nargs (_q40) == 1)
16773 : {
16774 2 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16775 2 : switch (TREE_CODE (_q31))
16776 : {
16777 2 : case INTEGER_CST:
16778 2 : {
16779 2 : switch (TREE_CODE (_p1))
16780 : {
16781 2 : case INTEGER_CST:
16782 2 : {
16783 2 : {
16784 2 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16785 2 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
16786 2 : if (res) return res;
16787 : }
16788 0 : break;
16789 : }
16790 : default:;
16791 : }
16792 : break;
16793 : }
16794 : default:;
16795 : }
16796 : }
16797 : break;
16798 0 : case CFN_BUILT_IN_BSWAP32:
16799 0 : if (call_expr_nargs (_q40) == 1)
16800 : {
16801 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16802 0 : switch (TREE_CODE (_q31))
16803 : {
16804 0 : case INTEGER_CST:
16805 0 : {
16806 0 : switch (TREE_CODE (_p1))
16807 : {
16808 0 : case INTEGER_CST:
16809 0 : {
16810 0 : {
16811 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16812 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
16813 0 : if (res) return res;
16814 : }
16815 0 : break;
16816 : }
16817 : default:;
16818 : }
16819 : break;
16820 : }
16821 : default:;
16822 : }
16823 : }
16824 : break;
16825 0 : case CFN_BUILT_IN_BSWAP64:
16826 0 : if (call_expr_nargs (_q40) == 1)
16827 : {
16828 0 : tree _q50 = CALL_EXPR_ARG (_q40, 0);
16829 0 : switch (TREE_CODE (_q31))
16830 : {
16831 0 : case INTEGER_CST:
16832 0 : {
16833 0 : switch (TREE_CODE (_p1))
16834 : {
16835 0 : case INTEGER_CST:
16836 0 : {
16837 0 : {
16838 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
16839 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
16840 0 : if (res) return res;
16841 : }
16842 0 : break;
16843 : }
16844 : default:;
16845 : }
16846 : break;
16847 : }
16848 : default:;
16849 : }
16850 : }
16851 : break;
16852 : default:;
16853 : }
16854 : break;
16855 : default:;
16856 : }
16857 : break;
16858 : }
16859 113328 : default:;
16860 : }
16861 113328 : switch (TREE_CODE (_q31))
16862 : {
16863 39025 : case INTEGER_CST:
16864 39025 : {
16865 39025 : switch (TREE_CODE (_p1))
16866 : {
16867 38953 : case INTEGER_CST:
16868 38953 : {
16869 38953 : {
16870 38953 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q30, _q31, _p1 };
16871 38953 : tree res = generic_simplify_492 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
16872 38953 : if (res) return res;
16873 : }
16874 38881 : break;
16875 : }
16876 : default:;
16877 : }
16878 : break;
16879 : }
16880 113256 : default:;
16881 : }
16882 113256 : switch (TREE_CODE (_q30))
16883 : {
16884 80 : case CALL_EXPR:
16885 80 : switch (get_call_combined_fn (_q30))
16886 : {
16887 0 : case CFN_BSWAP:
16888 0 : if (call_expr_nargs (_q30) == 1)
16889 : {
16890 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16891 0 : switch (TREE_CODE (_q31))
16892 : {
16893 0 : case INTEGER_CST:
16894 0 : {
16895 0 : switch (TREE_CODE (_p1))
16896 : {
16897 0 : case INTEGER_CST:
16898 0 : {
16899 0 : {
16900 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16901 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BSWAP);
16902 0 : if (res) return res;
16903 : }
16904 0 : break;
16905 : }
16906 : default:;
16907 : }
16908 : break;
16909 : }
16910 : default:;
16911 : }
16912 : }
16913 : break;
16914 0 : case CFN_BUILT_IN_BSWAP128:
16915 0 : if (call_expr_nargs (_q30) == 1)
16916 : {
16917 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16918 0 : switch (TREE_CODE (_q31))
16919 : {
16920 0 : case INTEGER_CST:
16921 0 : {
16922 0 : switch (TREE_CODE (_p1))
16923 : {
16924 0 : case INTEGER_CST:
16925 0 : {
16926 0 : {
16927 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16928 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
16929 0 : if (res) return res;
16930 : }
16931 0 : break;
16932 : }
16933 : default:;
16934 : }
16935 : break;
16936 : }
16937 : default:;
16938 : }
16939 : }
16940 : break;
16941 9 : case CFN_BUILT_IN_BSWAP16:
16942 9 : if (call_expr_nargs (_q30) == 1)
16943 : {
16944 9 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16945 9 : switch (TREE_CODE (_q31))
16946 : {
16947 9 : case INTEGER_CST:
16948 9 : {
16949 9 : switch (TREE_CODE (_p1))
16950 : {
16951 9 : case INTEGER_CST:
16952 9 : {
16953 9 : {
16954 9 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16955 9 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
16956 9 : if (res) return res;
16957 : }
16958 0 : break;
16959 : }
16960 : default:;
16961 : }
16962 : break;
16963 : }
16964 : default:;
16965 : }
16966 : }
16967 : break;
16968 0 : case CFN_BUILT_IN_BSWAP32:
16969 0 : if (call_expr_nargs (_q30) == 1)
16970 : {
16971 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16972 0 : switch (TREE_CODE (_q31))
16973 : {
16974 0 : case INTEGER_CST:
16975 0 : {
16976 0 : switch (TREE_CODE (_p1))
16977 : {
16978 0 : case INTEGER_CST:
16979 0 : {
16980 0 : {
16981 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
16982 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
16983 0 : if (res) return res;
16984 : }
16985 0 : break;
16986 : }
16987 : default:;
16988 : }
16989 : break;
16990 : }
16991 : default:;
16992 : }
16993 : }
16994 : break;
16995 71 : case CFN_BUILT_IN_BSWAP64:
16996 71 : if (call_expr_nargs (_q30) == 1)
16997 : {
16998 71 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
16999 71 : switch (TREE_CODE (_q31))
17000 : {
17001 70 : case INTEGER_CST:
17002 70 : {
17003 70 : switch (TREE_CODE (_p1))
17004 : {
17005 70 : case INTEGER_CST:
17006 70 : {
17007 70 : {
17008 70 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
17009 70 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
17010 70 : if (res) return res;
17011 : }
17012 0 : break;
17013 : }
17014 : default:;
17015 : }
17016 : break;
17017 : }
17018 : default:;
17019 : }
17020 : }
17021 : break;
17022 : default:;
17023 : }
17024 : break;
17025 : default:;
17026 : }
17027 : break;
17028 : }
17029 29624 : case CALL_EXPR:
17030 29624 : switch (get_call_combined_fn (_q20))
17031 : {
17032 0 : case CFN_BSWAP:
17033 0 : if (call_expr_nargs (_q20) == 1)
17034 : {
17035 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17036 0 : switch (TREE_CODE (_p1))
17037 : {
17038 0 : case INTEGER_CST:
17039 0 : {
17040 0 : {
17041 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
17042 0 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures, CFN_BSWAP);
17043 0 : if (res) return res;
17044 : }
17045 0 : break;
17046 : }
17047 : default:;
17048 : }
17049 : }
17050 : break;
17051 0 : case CFN_BUILT_IN_BSWAP128:
17052 0 : if (call_expr_nargs (_q20) == 1)
17053 : {
17054 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17055 0 : switch (TREE_CODE (_p1))
17056 : {
17057 0 : case INTEGER_CST:
17058 0 : {
17059 0 : {
17060 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
17061 0 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
17062 0 : if (res) return res;
17063 : }
17064 0 : break;
17065 : }
17066 : default:;
17067 : }
17068 : }
17069 : break;
17070 10 : case CFN_BUILT_IN_BSWAP16:
17071 10 : if (call_expr_nargs (_q20) == 1)
17072 : {
17073 10 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17074 10 : switch (TREE_CODE (_p1))
17075 : {
17076 10 : case INTEGER_CST:
17077 10 : {
17078 10 : {
17079 10 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
17080 10 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
17081 10 : if (res) return res;
17082 : }
17083 0 : break;
17084 : }
17085 : default:;
17086 : }
17087 : }
17088 : break;
17089 4 : case CFN_BUILT_IN_BSWAP32:
17090 4 : if (call_expr_nargs (_q20) == 1)
17091 : {
17092 4 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17093 4 : switch (TREE_CODE (_p1))
17094 : {
17095 4 : case INTEGER_CST:
17096 4 : {
17097 4 : {
17098 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
17099 4 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
17100 4 : if (res) return res;
17101 : }
17102 0 : break;
17103 : }
17104 : default:;
17105 : }
17106 : }
17107 : break;
17108 4 : case CFN_BUILT_IN_BSWAP64:
17109 4 : if (call_expr_nargs (_q20) == 1)
17110 : {
17111 4 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17112 4 : switch (TREE_CODE (_p1))
17113 : {
17114 4 : case INTEGER_CST:
17115 4 : {
17116 4 : {
17117 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
17118 4 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
17119 4 : if (res) return res;
17120 : }
17121 0 : break;
17122 : }
17123 : default:;
17124 : }
17125 : }
17126 : break;
17127 : default:;
17128 : }
17129 : break;
17130 : default:;
17131 : }
17132 : break;
17133 : }
17134 80463 : case RSHIFT_EXPR:
17135 80463 : {
17136 80463 : tree _q20 = TREE_OPERAND (_p0, 0);
17137 80463 : tree _q21 = TREE_OPERAND (_p0, 1);
17138 80463 : switch (TREE_CODE (_q20))
17139 : {
17140 29063 : CASE_CONVERT:
17141 29063 : {
17142 29063 : tree _q30 = TREE_OPERAND (_q20, 0);
17143 29063 : switch (TREE_CODE (_q21))
17144 : {
17145 25782 : case INTEGER_CST:
17146 25782 : {
17147 25782 : switch (TREE_CODE (_p1))
17148 : {
17149 25782 : case INTEGER_CST:
17150 25782 : {
17151 25782 : {
17152 25782 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21, _p1 };
17153 25782 : tree res = generic_simplify_489 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
17154 25782 : if (res) return res;
17155 : }
17156 25458 : break;
17157 : }
17158 : default:;
17159 : }
17160 : break;
17161 : }
17162 28739 : default:;
17163 : }
17164 28739 : switch (TREE_CODE (_q30))
17165 : {
17166 22 : case CALL_EXPR:
17167 22 : switch (get_call_combined_fn (_q30))
17168 : {
17169 0 : case CFN_BSWAP:
17170 0 : if (call_expr_nargs (_q30) == 1)
17171 : {
17172 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17173 0 : switch (TREE_CODE (_q21))
17174 : {
17175 0 : case INTEGER_CST:
17176 0 : {
17177 0 : switch (TREE_CODE (_p1))
17178 : {
17179 0 : case INTEGER_CST:
17180 0 : {
17181 0 : {
17182 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
17183 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BSWAP);
17184 0 : if (res) return res;
17185 : }
17186 0 : break;
17187 : }
17188 : default:;
17189 : }
17190 : break;
17191 : }
17192 : default:;
17193 : }
17194 : }
17195 : break;
17196 0 : case CFN_BUILT_IN_BSWAP128:
17197 0 : if (call_expr_nargs (_q30) == 1)
17198 : {
17199 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17200 0 : switch (TREE_CODE (_q21))
17201 : {
17202 0 : case INTEGER_CST:
17203 0 : {
17204 0 : switch (TREE_CODE (_p1))
17205 : {
17206 0 : case INTEGER_CST:
17207 0 : {
17208 0 : {
17209 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
17210 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
17211 0 : if (res) return res;
17212 : }
17213 0 : break;
17214 : }
17215 : default:;
17216 : }
17217 : break;
17218 : }
17219 : default:;
17220 : }
17221 : }
17222 : break;
17223 1 : case CFN_BUILT_IN_BSWAP16:
17224 1 : if (call_expr_nargs (_q30) == 1)
17225 : {
17226 1 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17227 1 : switch (TREE_CODE (_q21))
17228 : {
17229 0 : case INTEGER_CST:
17230 0 : {
17231 0 : switch (TREE_CODE (_p1))
17232 : {
17233 0 : case INTEGER_CST:
17234 0 : {
17235 0 : {
17236 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
17237 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
17238 0 : if (res) return res;
17239 : }
17240 0 : break;
17241 : }
17242 : default:;
17243 : }
17244 : break;
17245 : }
17246 : default:;
17247 : }
17248 : }
17249 : break;
17250 9 : case CFN_BUILT_IN_BSWAP32:
17251 9 : if (call_expr_nargs (_q30) == 1)
17252 : {
17253 9 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17254 9 : switch (TREE_CODE (_q21))
17255 : {
17256 9 : case INTEGER_CST:
17257 9 : {
17258 9 : switch (TREE_CODE (_p1))
17259 : {
17260 9 : case INTEGER_CST:
17261 9 : {
17262 9 : {
17263 9 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
17264 9 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
17265 9 : if (res) return res;
17266 : }
17267 0 : break;
17268 : }
17269 : default:;
17270 : }
17271 : break;
17272 : }
17273 : default:;
17274 : }
17275 : }
17276 : break;
17277 12 : case CFN_BUILT_IN_BSWAP64:
17278 12 : if (call_expr_nargs (_q30) == 1)
17279 : {
17280 12 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
17281 12 : switch (TREE_CODE (_q21))
17282 : {
17283 12 : case INTEGER_CST:
17284 12 : {
17285 12 : switch (TREE_CODE (_p1))
17286 : {
17287 12 : case INTEGER_CST:
17288 12 : {
17289 12 : {
17290 12 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
17291 12 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
17292 12 : if (res) return res;
17293 : }
17294 0 : break;
17295 : }
17296 : default:;
17297 : }
17298 : break;
17299 : }
17300 : default:;
17301 : }
17302 : }
17303 : break;
17304 : default:;
17305 : }
17306 : break;
17307 : default:;
17308 : }
17309 : break;
17310 : }
17311 80118 : default:;
17312 : }
17313 80118 : switch (TREE_CODE (_q21))
17314 : {
17315 34767 : case INTEGER_CST:
17316 34767 : {
17317 34767 : switch (TREE_CODE (_p1))
17318 : {
17319 34622 : case INTEGER_CST:
17320 34622 : {
17321 34622 : {
17322 34622 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21, _p1 };
17323 34622 : tree res = generic_simplify_490 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
17324 34622 : if (res) return res;
17325 : }
17326 32923 : break;
17327 : }
17328 : default:;
17329 : }
17330 : break;
17331 : }
17332 78419 : default:;
17333 : }
17334 78419 : switch (TREE_CODE (_q20))
17335 : {
17336 140 : case CALL_EXPR:
17337 140 : switch (get_call_combined_fn (_q20))
17338 : {
17339 0 : case CFN_BSWAP:
17340 0 : if (call_expr_nargs (_q20) == 1)
17341 : {
17342 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17343 0 : switch (TREE_CODE (_q21))
17344 : {
17345 0 : case INTEGER_CST:
17346 0 : {
17347 0 : switch (TREE_CODE (_p1))
17348 : {
17349 0 : case INTEGER_CST:
17350 0 : {
17351 0 : {
17352 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
17353 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BSWAP);
17354 0 : if (res) return res;
17355 : }
17356 0 : break;
17357 : }
17358 : default:;
17359 : }
17360 : break;
17361 : }
17362 : default:;
17363 : }
17364 : }
17365 : break;
17366 0 : case CFN_BUILT_IN_BSWAP128:
17367 0 : if (call_expr_nargs (_q20) == 1)
17368 : {
17369 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17370 0 : switch (TREE_CODE (_q21))
17371 : {
17372 0 : case INTEGER_CST:
17373 0 : {
17374 0 : switch (TREE_CODE (_p1))
17375 : {
17376 0 : case INTEGER_CST:
17377 0 : {
17378 0 : {
17379 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
17380 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
17381 0 : if (res) return res;
17382 : }
17383 0 : break;
17384 : }
17385 : default:;
17386 : }
17387 : break;
17388 : }
17389 : default:;
17390 : }
17391 : }
17392 : break;
17393 0 : case CFN_BUILT_IN_BSWAP16:
17394 0 : if (call_expr_nargs (_q20) == 1)
17395 : {
17396 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17397 0 : switch (TREE_CODE (_q21))
17398 : {
17399 0 : case INTEGER_CST:
17400 0 : {
17401 0 : switch (TREE_CODE (_p1))
17402 : {
17403 0 : case INTEGER_CST:
17404 0 : {
17405 0 : {
17406 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
17407 0 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
17408 0 : if (res) return res;
17409 : }
17410 0 : break;
17411 : }
17412 : default:;
17413 : }
17414 : break;
17415 : }
17416 : default:;
17417 : }
17418 : }
17419 : break;
17420 60 : case CFN_BUILT_IN_BSWAP32:
17421 60 : if (call_expr_nargs (_q20) == 1)
17422 : {
17423 60 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17424 60 : switch (TREE_CODE (_q21))
17425 : {
17426 59 : case INTEGER_CST:
17427 59 : {
17428 59 : switch (TREE_CODE (_p1))
17429 : {
17430 59 : case INTEGER_CST:
17431 59 : {
17432 59 : {
17433 59 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
17434 59 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
17435 59 : if (res) return res;
17436 : }
17437 0 : break;
17438 : }
17439 : default:;
17440 : }
17441 : break;
17442 : }
17443 : default:;
17444 : }
17445 : }
17446 : break;
17447 73 : case CFN_BUILT_IN_BSWAP64:
17448 73 : if (call_expr_nargs (_q20) == 1)
17449 : {
17450 73 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17451 73 : switch (TREE_CODE (_q21))
17452 : {
17453 73 : case INTEGER_CST:
17454 73 : {
17455 73 : switch (TREE_CODE (_p1))
17456 : {
17457 73 : case INTEGER_CST:
17458 73 : {
17459 73 : {
17460 73 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
17461 73 : tree res = generic_simplify_493 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
17462 73 : if (res) return res;
17463 : }
17464 0 : break;
17465 : }
17466 : default:;
17467 : }
17468 : break;
17469 : }
17470 : default:;
17471 : }
17472 : }
17473 : break;
17474 : default:;
17475 : }
17476 : break;
17477 : default:;
17478 : }
17479 : break;
17480 : }
17481 65 : case VEC_COND_EXPR:
17482 65 : {
17483 65 : tree _q20 = TREE_OPERAND (_p0, 0);
17484 65 : tree _q21 = TREE_OPERAND (_p0, 1);
17485 65 : tree _q22 = TREE_OPERAND (_p0, 2);
17486 65 : switch (TREE_CODE (_p1))
17487 : {
17488 47 : case VEC_COND_EXPR:
17489 47 : {
17490 47 : tree _q60 = TREE_OPERAND (_p1, 0);
17491 47 : tree _q61 = TREE_OPERAND (_p1, 1);
17492 47 : tree _q62 = TREE_OPERAND (_p1, 2);
17493 47 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17494 : {
17495 0 : {
17496 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
17497 0 : if (VECTOR_TYPE_P (type)
17498 0 : && (TREE_CODE_CLASS (BIT_AND_EXPR) != tcc_comparison
17499 : || types_match (type, TREE_TYPE (captures[2]))
17500 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
17501 : || (optimize_vectors_before_lowering_p ()
17502 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
17503 : )
17504 : {
17505 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1690;
17506 0 : {
17507 0 : tree res_op0;
17508 0 : res_op0 = captures[1];
17509 0 : tree res_op1;
17510 0 : {
17511 0 : tree _o1[2], _r1;
17512 0 : _o1[0] = captures[2];
17513 0 : _o1[1] = captures[5];
17514 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
17515 0 : if (EXPR_P (_r1))
17516 0 : goto next_after_fail1690;
17517 0 : res_op1 = _r1;
17518 : }
17519 0 : tree res_op2;
17520 0 : {
17521 0 : tree _o1[2], _r1;
17522 0 : _o1[0] = captures[3];
17523 0 : _o1[1] = captures[6];
17524 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
17525 0 : if (EXPR_P (_r1))
17526 0 : goto next_after_fail1690;
17527 0 : res_op2 = _r1;
17528 : }
17529 0 : tree _r;
17530 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17531 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
17532 0 : return _r;
17533 : }
17534 0 : next_after_fail1690:;
17535 : }
17536 : }
17537 : }
17538 : break;
17539 : }
17540 65 : default:;
17541 : }
17542 65 : if (integer_minus_onep (_q21))
17543 : {
17544 65 : if (integer_zerop (_q22))
17545 : {
17546 65 : switch (TREE_CODE (_p1))
17547 : {
17548 47 : case VEC_COND_EXPR:
17549 47 : {
17550 47 : tree _q60 = TREE_OPERAND (_p1, 0);
17551 47 : tree _q61 = TREE_OPERAND (_p1, 1);
17552 47 : tree _q62 = TREE_OPERAND (_p1, 2);
17553 47 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
17554 : {
17555 47 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
17556 : {
17557 47 : {
17558 47 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17559 47 : const enum tree_code lop = BIT_AND_EXPR;
17560 47 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17561 : )
17562 : {
17563 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1691;
17564 47 : {
17565 47 : tree res_op0;
17566 47 : {
17567 47 : tree _o1[2], _r1;
17568 47 : _o1[0] = captures[0];
17569 47 : _o1[1] = captures[3];
17570 47 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17571 47 : res_op0 = _r1;
17572 : }
17573 47 : tree res_op1;
17574 47 : res_op1 = captures[1];
17575 47 : tree res_op2;
17576 47 : res_op2 = captures[2];
17577 47 : tree _r;
17578 47 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17579 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17580 47 : return _r;
17581 : }
17582 0 : next_after_fail1691:;
17583 : }
17584 : }
17585 0 : {
17586 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17587 0 : const enum tree_code lop = BIT_AND_EXPR;
17588 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17589 : )
17590 : {
17591 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1692;
17592 0 : {
17593 0 : tree res_op0;
17594 0 : {
17595 0 : tree _o1[2], _r1;
17596 0 : _o1[0] = captures[0];
17597 0 : _o1[1] = captures[3];
17598 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17599 0 : res_op0 = _r1;
17600 : }
17601 0 : tree res_op1;
17602 0 : res_op1 = captures[1];
17603 0 : tree res_op2;
17604 0 : res_op2 = captures[2];
17605 0 : tree _r;
17606 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17607 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17608 0 : return _r;
17609 : }
17610 0 : next_after_fail1692:;
17611 : }
17612 : }
17613 0 : {
17614 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17615 0 : const enum tree_code lop = BIT_AND_EXPR;
17616 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17617 : )
17618 : {
17619 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1693;
17620 0 : {
17621 0 : tree res_op0;
17622 0 : {
17623 0 : tree _o1[2], _r1;
17624 0 : _o1[0] = captures[0];
17625 0 : _o1[1] = captures[3];
17626 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17627 0 : res_op0 = _r1;
17628 : }
17629 0 : tree res_op1;
17630 0 : res_op1 = captures[1];
17631 0 : tree res_op2;
17632 0 : res_op2 = captures[2];
17633 0 : tree _r;
17634 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17635 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17636 0 : return _r;
17637 : }
17638 0 : next_after_fail1693:;
17639 : }
17640 : }
17641 0 : {
17642 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17643 0 : const enum tree_code lop = BIT_AND_EXPR;
17644 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17645 : )
17646 : {
17647 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1694;
17648 0 : {
17649 0 : tree res_op0;
17650 0 : {
17651 0 : tree _o1[2], _r1;
17652 0 : _o1[0] = captures[0];
17653 0 : _o1[1] = captures[3];
17654 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17655 0 : res_op0 = _r1;
17656 : }
17657 0 : tree res_op1;
17658 0 : res_op1 = captures[1];
17659 0 : tree res_op2;
17660 0 : res_op2 = captures[2];
17661 0 : tree _r;
17662 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17663 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17664 0 : return _r;
17665 : }
17666 0 : next_after_fail1694:;
17667 : }
17668 : }
17669 0 : {
17670 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17671 0 : const enum tree_code lop = BIT_AND_EXPR;
17672 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17673 : )
17674 : {
17675 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1695;
17676 0 : {
17677 0 : tree res_op0;
17678 0 : {
17679 0 : tree _o1[2], _r1;
17680 0 : _o1[0] = captures[0];
17681 0 : _o1[1] = captures[3];
17682 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17683 0 : res_op0 = _r1;
17684 : }
17685 0 : tree res_op1;
17686 0 : res_op1 = captures[1];
17687 0 : tree res_op2;
17688 0 : res_op2 = captures[2];
17689 0 : tree _r;
17690 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17691 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17692 0 : return _r;
17693 : }
17694 0 : next_after_fail1695:;
17695 : }
17696 : }
17697 0 : {
17698 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17699 0 : const enum tree_code lop = BIT_AND_EXPR;
17700 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17701 : )
17702 : {
17703 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1696;
17704 0 : {
17705 0 : tree res_op0;
17706 0 : {
17707 0 : tree _o1[2], _r1;
17708 0 : _o1[0] = captures[0];
17709 0 : _o1[1] = captures[3];
17710 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17711 0 : res_op0 = _r1;
17712 : }
17713 0 : tree res_op1;
17714 0 : res_op1 = captures[1];
17715 0 : tree res_op2;
17716 0 : res_op2 = captures[2];
17717 0 : tree _r;
17718 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17719 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17720 0 : return _r;
17721 : }
17722 0 : next_after_fail1696:;
17723 : }
17724 : }
17725 0 : {
17726 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17727 0 : const enum tree_code lop = BIT_AND_EXPR;
17728 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17729 : )
17730 : {
17731 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1697;
17732 0 : {
17733 0 : tree res_op0;
17734 0 : {
17735 0 : tree _o1[2], _r1;
17736 0 : _o1[0] = captures[0];
17737 0 : _o1[1] = captures[3];
17738 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17739 0 : res_op0 = _r1;
17740 : }
17741 0 : tree res_op1;
17742 0 : res_op1 = captures[1];
17743 0 : tree res_op2;
17744 0 : res_op2 = captures[2];
17745 0 : tree _r;
17746 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17747 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17748 0 : return _r;
17749 : }
17750 0 : next_after_fail1697:;
17751 : }
17752 : }
17753 0 : {
17754 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17755 0 : const enum tree_code lop = BIT_AND_EXPR;
17756 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17757 : )
17758 : {
17759 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1698;
17760 0 : {
17761 0 : tree res_op0;
17762 0 : {
17763 0 : tree _o1[2], _r1;
17764 0 : _o1[0] = captures[0];
17765 0 : _o1[1] = captures[3];
17766 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17767 0 : res_op0 = _r1;
17768 : }
17769 0 : tree res_op1;
17770 0 : res_op1 = captures[1];
17771 0 : tree res_op2;
17772 0 : res_op2 = captures[2];
17773 0 : tree _r;
17774 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17775 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17776 0 : return _r;
17777 : }
17778 0 : next_after_fail1698:;
17779 : }
17780 : }
17781 0 : {
17782 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17783 0 : const enum tree_code lop = BIT_AND_EXPR;
17784 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17785 : )
17786 : {
17787 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1699;
17788 0 : {
17789 0 : tree res_op0;
17790 0 : {
17791 0 : tree _o1[2], _r1;
17792 0 : _o1[0] = captures[0];
17793 0 : _o1[1] = captures[3];
17794 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17795 0 : res_op0 = _r1;
17796 : }
17797 0 : tree res_op1;
17798 0 : res_op1 = captures[1];
17799 0 : tree res_op2;
17800 0 : res_op2 = captures[2];
17801 0 : tree _r;
17802 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17803 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17804 0 : return _r;
17805 : }
17806 0 : next_after_fail1699:;
17807 : }
17808 : }
17809 0 : {
17810 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17811 0 : const enum tree_code lop = BIT_AND_EXPR;
17812 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17813 : )
17814 : {
17815 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1700;
17816 0 : {
17817 0 : tree res_op0;
17818 0 : {
17819 0 : tree _o1[2], _r1;
17820 0 : _o1[0] = captures[0];
17821 0 : _o1[1] = captures[3];
17822 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17823 0 : res_op0 = _r1;
17824 : }
17825 0 : tree res_op1;
17826 0 : res_op1 = captures[1];
17827 0 : tree res_op2;
17828 0 : res_op2 = captures[2];
17829 0 : tree _r;
17830 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17831 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17832 0 : return _r;
17833 : }
17834 0 : next_after_fail1700:;
17835 : }
17836 : }
17837 0 : {
17838 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17839 0 : const enum tree_code lop = BIT_AND_EXPR;
17840 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17841 : )
17842 : {
17843 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1701;
17844 0 : {
17845 0 : tree res_op0;
17846 0 : {
17847 0 : tree _o1[2], _r1;
17848 0 : _o1[0] = captures[0];
17849 0 : _o1[1] = captures[3];
17850 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17851 0 : res_op0 = _r1;
17852 : }
17853 0 : tree res_op1;
17854 0 : res_op1 = captures[1];
17855 0 : tree res_op2;
17856 0 : res_op2 = captures[2];
17857 0 : tree _r;
17858 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17859 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17860 0 : return _r;
17861 : }
17862 0 : next_after_fail1701:;
17863 : }
17864 : }
17865 0 : {
17866 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17867 0 : const enum tree_code lop = BIT_AND_EXPR;
17868 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17869 : )
17870 : {
17871 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1702;
17872 0 : {
17873 0 : tree res_op0;
17874 0 : {
17875 0 : tree _o1[2], _r1;
17876 0 : _o1[0] = captures[0];
17877 0 : _o1[1] = captures[3];
17878 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17879 0 : res_op0 = _r1;
17880 : }
17881 0 : tree res_op1;
17882 0 : res_op1 = captures[1];
17883 0 : tree res_op2;
17884 0 : res_op2 = captures[2];
17885 0 : tree _r;
17886 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17887 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17888 0 : return _r;
17889 : }
17890 0 : next_after_fail1702:;
17891 : }
17892 : }
17893 0 : {
17894 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17895 0 : const enum tree_code lop = BIT_AND_EXPR;
17896 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17897 : )
17898 : {
17899 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1703;
17900 0 : {
17901 0 : tree res_op0;
17902 0 : {
17903 0 : tree _o1[2], _r1;
17904 0 : _o1[0] = captures[0];
17905 0 : _o1[1] = captures[3];
17906 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17907 0 : res_op0 = _r1;
17908 : }
17909 0 : tree res_op1;
17910 0 : res_op1 = captures[1];
17911 0 : tree res_op2;
17912 0 : res_op2 = captures[2];
17913 0 : tree _r;
17914 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17915 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17916 0 : return _r;
17917 : }
17918 0 : next_after_fail1703:;
17919 : }
17920 : }
17921 0 : {
17922 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17923 0 : const enum tree_code lop = BIT_AND_EXPR;
17924 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17925 : )
17926 : {
17927 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1704;
17928 0 : {
17929 0 : tree res_op0;
17930 0 : {
17931 0 : tree _o1[2], _r1;
17932 0 : _o1[0] = captures[0];
17933 0 : _o1[1] = captures[3];
17934 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17935 0 : res_op0 = _r1;
17936 : }
17937 0 : tree res_op1;
17938 0 : res_op1 = captures[1];
17939 0 : tree res_op2;
17940 0 : res_op2 = captures[2];
17941 0 : tree _r;
17942 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17943 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17944 0 : return _r;
17945 : }
17946 0 : next_after_fail1704:;
17947 : }
17948 : }
17949 0 : {
17950 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17951 0 : const enum tree_code lop = BIT_AND_EXPR;
17952 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17953 : )
17954 : {
17955 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1705;
17956 0 : {
17957 0 : tree res_op0;
17958 0 : {
17959 0 : tree _o1[2], _r1;
17960 0 : _o1[0] = captures[0];
17961 0 : _o1[1] = captures[3];
17962 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17963 0 : res_op0 = _r1;
17964 : }
17965 0 : tree res_op1;
17966 0 : res_op1 = captures[1];
17967 0 : tree res_op2;
17968 0 : res_op2 = captures[2];
17969 0 : tree _r;
17970 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17971 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
17972 0 : return _r;
17973 : }
17974 0 : next_after_fail1705:;
17975 : }
17976 : }
17977 0 : {
17978 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
17979 0 : const enum tree_code lop = BIT_AND_EXPR;
17980 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
17981 : )
17982 : {
17983 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1706;
17984 0 : {
17985 0 : tree res_op0;
17986 0 : {
17987 0 : tree _o1[2], _r1;
17988 0 : _o1[0] = captures[0];
17989 0 : _o1[1] = captures[3];
17990 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
17991 0 : res_op0 = _r1;
17992 : }
17993 0 : tree res_op1;
17994 0 : res_op1 = captures[1];
17995 0 : tree res_op2;
17996 0 : res_op2 = captures[2];
17997 0 : tree _r;
17998 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
17999 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18000 0 : return _r;
18001 : }
18002 0 : next_after_fail1706:;
18003 : }
18004 : }
18005 0 : {
18006 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18007 0 : const enum tree_code lop = BIT_AND_EXPR;
18008 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18009 : )
18010 : {
18011 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1707;
18012 0 : {
18013 0 : tree res_op0;
18014 0 : {
18015 0 : tree _o1[2], _r1;
18016 0 : _o1[0] = captures[0];
18017 0 : _o1[1] = captures[3];
18018 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18019 0 : res_op0 = _r1;
18020 : }
18021 0 : tree res_op1;
18022 0 : res_op1 = captures[1];
18023 0 : tree res_op2;
18024 0 : res_op2 = captures[2];
18025 0 : tree _r;
18026 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18027 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18028 0 : return _r;
18029 : }
18030 0 : next_after_fail1707:;
18031 : }
18032 : }
18033 0 : {
18034 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18035 0 : const enum tree_code lop = BIT_AND_EXPR;
18036 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18037 : )
18038 : {
18039 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1708;
18040 0 : {
18041 0 : tree res_op0;
18042 0 : {
18043 0 : tree _o1[2], _r1;
18044 0 : _o1[0] = captures[0];
18045 0 : _o1[1] = captures[3];
18046 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18047 0 : res_op0 = _r1;
18048 : }
18049 0 : tree res_op1;
18050 0 : res_op1 = captures[1];
18051 0 : tree res_op2;
18052 0 : res_op2 = captures[2];
18053 0 : tree _r;
18054 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18055 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18056 0 : return _r;
18057 : }
18058 0 : next_after_fail1708:;
18059 : }
18060 : }
18061 0 : {
18062 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18063 0 : const enum tree_code lop = BIT_AND_EXPR;
18064 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18065 : )
18066 : {
18067 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1709;
18068 0 : {
18069 0 : tree res_op0;
18070 0 : {
18071 0 : tree _o1[2], _r1;
18072 0 : _o1[0] = captures[0];
18073 0 : _o1[1] = captures[3];
18074 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18075 0 : res_op0 = _r1;
18076 : }
18077 0 : tree res_op1;
18078 0 : res_op1 = captures[1];
18079 0 : tree res_op2;
18080 0 : res_op2 = captures[2];
18081 0 : tree _r;
18082 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18083 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18084 0 : return _r;
18085 : }
18086 0 : next_after_fail1709:;
18087 : }
18088 : }
18089 0 : {
18090 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18091 0 : const enum tree_code lop = BIT_AND_EXPR;
18092 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18093 : )
18094 : {
18095 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1710;
18096 0 : {
18097 0 : tree res_op0;
18098 0 : {
18099 0 : tree _o1[2], _r1;
18100 0 : _o1[0] = captures[0];
18101 0 : _o1[1] = captures[3];
18102 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18103 0 : res_op0 = _r1;
18104 : }
18105 0 : tree res_op1;
18106 0 : res_op1 = captures[1];
18107 0 : tree res_op2;
18108 0 : res_op2 = captures[2];
18109 0 : tree _r;
18110 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18111 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18112 0 : return _r;
18113 : }
18114 0 : next_after_fail1710:;
18115 : }
18116 : }
18117 0 : {
18118 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18119 0 : const enum tree_code lop = BIT_AND_EXPR;
18120 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18121 : )
18122 : {
18123 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1711;
18124 0 : {
18125 0 : tree res_op0;
18126 0 : {
18127 0 : tree _o1[2], _r1;
18128 0 : _o1[0] = captures[0];
18129 0 : _o1[1] = captures[3];
18130 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18131 0 : res_op0 = _r1;
18132 : }
18133 0 : tree res_op1;
18134 0 : res_op1 = captures[1];
18135 0 : tree res_op2;
18136 0 : res_op2 = captures[2];
18137 0 : tree _r;
18138 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18139 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18140 0 : return _r;
18141 : }
18142 0 : next_after_fail1711:;
18143 : }
18144 : }
18145 0 : {
18146 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18147 0 : const enum tree_code lop = BIT_AND_EXPR;
18148 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18149 : )
18150 : {
18151 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1712;
18152 0 : {
18153 0 : tree res_op0;
18154 0 : {
18155 0 : tree _o1[2], _r1;
18156 0 : _o1[0] = captures[0];
18157 0 : _o1[1] = captures[3];
18158 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18159 0 : res_op0 = _r1;
18160 : }
18161 0 : tree res_op1;
18162 0 : res_op1 = captures[1];
18163 0 : tree res_op2;
18164 0 : res_op2 = captures[2];
18165 0 : tree _r;
18166 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18167 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18168 0 : return _r;
18169 : }
18170 0 : next_after_fail1712:;
18171 : }
18172 : }
18173 0 : {
18174 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18175 0 : const enum tree_code lop = BIT_AND_EXPR;
18176 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18177 : )
18178 : {
18179 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1713;
18180 0 : {
18181 0 : tree res_op0;
18182 0 : {
18183 0 : tree _o1[2], _r1;
18184 0 : _o1[0] = captures[0];
18185 0 : _o1[1] = captures[3];
18186 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18187 0 : res_op0 = _r1;
18188 : }
18189 0 : tree res_op1;
18190 0 : res_op1 = captures[1];
18191 0 : tree res_op2;
18192 0 : res_op2 = captures[2];
18193 0 : tree _r;
18194 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18195 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18196 0 : return _r;
18197 : }
18198 0 : next_after_fail1713:;
18199 : }
18200 : }
18201 0 : {
18202 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18203 0 : const enum tree_code lop = BIT_AND_EXPR;
18204 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18205 : )
18206 : {
18207 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1714;
18208 0 : {
18209 0 : tree res_op0;
18210 0 : {
18211 0 : tree _o1[2], _r1;
18212 0 : _o1[0] = captures[0];
18213 0 : _o1[1] = captures[3];
18214 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18215 0 : res_op0 = _r1;
18216 : }
18217 0 : tree res_op1;
18218 0 : res_op1 = captures[1];
18219 0 : tree res_op2;
18220 0 : res_op2 = captures[2];
18221 0 : tree _r;
18222 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18223 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18224 0 : return _r;
18225 : }
18226 0 : next_after_fail1714:;
18227 : }
18228 : }
18229 0 : {
18230 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18231 0 : const enum tree_code lop = BIT_AND_EXPR;
18232 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18233 : )
18234 : {
18235 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1715;
18236 0 : {
18237 0 : tree res_op0;
18238 0 : {
18239 0 : tree _o1[2], _r1;
18240 0 : _o1[0] = captures[0];
18241 0 : _o1[1] = captures[3];
18242 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18243 0 : res_op0 = _r1;
18244 : }
18245 0 : tree res_op1;
18246 0 : res_op1 = captures[1];
18247 0 : tree res_op2;
18248 0 : res_op2 = captures[2];
18249 0 : tree _r;
18250 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18251 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18252 0 : return _r;
18253 : }
18254 0 : next_after_fail1715:;
18255 : }
18256 : }
18257 0 : {
18258 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18259 0 : const enum tree_code lop = BIT_AND_EXPR;
18260 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18261 : )
18262 : {
18263 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1716;
18264 0 : {
18265 0 : tree res_op0;
18266 0 : {
18267 0 : tree _o1[2], _r1;
18268 0 : _o1[0] = captures[0];
18269 0 : _o1[1] = captures[3];
18270 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18271 0 : res_op0 = _r1;
18272 : }
18273 0 : tree res_op1;
18274 0 : res_op1 = captures[1];
18275 0 : tree res_op2;
18276 0 : res_op2 = captures[2];
18277 0 : tree _r;
18278 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18279 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18280 0 : return _r;
18281 : }
18282 0 : next_after_fail1716:;
18283 : }
18284 : }
18285 0 : {
18286 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18287 0 : const enum tree_code lop = BIT_AND_EXPR;
18288 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18289 : )
18290 : {
18291 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1717;
18292 0 : {
18293 0 : tree res_op0;
18294 0 : {
18295 0 : tree _o1[2], _r1;
18296 0 : _o1[0] = captures[0];
18297 0 : _o1[1] = captures[3];
18298 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18299 0 : res_op0 = _r1;
18300 : }
18301 0 : tree res_op1;
18302 0 : res_op1 = captures[1];
18303 0 : tree res_op2;
18304 0 : res_op2 = captures[2];
18305 0 : tree _r;
18306 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18307 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18308 0 : return _r;
18309 : }
18310 0 : next_after_fail1717:;
18311 : }
18312 : }
18313 0 : {
18314 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18315 0 : const enum tree_code lop = BIT_AND_EXPR;
18316 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18317 : )
18318 : {
18319 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1718;
18320 0 : {
18321 0 : tree res_op0;
18322 0 : {
18323 0 : tree _o1[2], _r1;
18324 0 : _o1[0] = captures[0];
18325 0 : _o1[1] = captures[3];
18326 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18327 0 : res_op0 = _r1;
18328 : }
18329 0 : tree res_op1;
18330 0 : res_op1 = captures[1];
18331 0 : tree res_op2;
18332 0 : res_op2 = captures[2];
18333 0 : tree _r;
18334 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18335 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18336 0 : return _r;
18337 : }
18338 0 : next_after_fail1718:;
18339 : }
18340 : }
18341 0 : {
18342 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18343 0 : const enum tree_code lop = BIT_AND_EXPR;
18344 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18345 : )
18346 : {
18347 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1719;
18348 0 : {
18349 0 : tree res_op0;
18350 0 : {
18351 0 : tree _o1[2], _r1;
18352 0 : _o1[0] = captures[0];
18353 0 : _o1[1] = captures[3];
18354 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18355 0 : res_op0 = _r1;
18356 : }
18357 0 : tree res_op1;
18358 0 : res_op1 = captures[1];
18359 0 : tree res_op2;
18360 0 : res_op2 = captures[2];
18361 0 : tree _r;
18362 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18363 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18364 0 : return _r;
18365 : }
18366 0 : next_after_fail1719:;
18367 : }
18368 : }
18369 0 : {
18370 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18371 0 : const enum tree_code lop = BIT_AND_EXPR;
18372 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18373 : )
18374 : {
18375 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1720;
18376 0 : {
18377 0 : tree res_op0;
18378 0 : {
18379 0 : tree _o1[2], _r1;
18380 0 : _o1[0] = captures[0];
18381 0 : _o1[1] = captures[3];
18382 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18383 0 : res_op0 = _r1;
18384 : }
18385 0 : tree res_op1;
18386 0 : res_op1 = captures[1];
18387 0 : tree res_op2;
18388 0 : res_op2 = captures[2];
18389 0 : tree _r;
18390 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18391 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18392 0 : return _r;
18393 : }
18394 0 : next_after_fail1720:;
18395 : }
18396 : }
18397 0 : {
18398 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18399 0 : const enum tree_code lop = BIT_AND_EXPR;
18400 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18401 : )
18402 : {
18403 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1721;
18404 0 : {
18405 0 : tree res_op0;
18406 0 : {
18407 0 : tree _o1[2], _r1;
18408 0 : _o1[0] = captures[0];
18409 0 : _o1[1] = captures[3];
18410 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18411 0 : res_op0 = _r1;
18412 : }
18413 0 : tree res_op1;
18414 0 : res_op1 = captures[1];
18415 0 : tree res_op2;
18416 0 : res_op2 = captures[2];
18417 0 : tree _r;
18418 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18419 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18420 0 : return _r;
18421 : }
18422 0 : next_after_fail1721:;
18423 : }
18424 : }
18425 0 : {
18426 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18427 0 : const enum tree_code lop = BIT_AND_EXPR;
18428 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18429 : )
18430 : {
18431 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1722;
18432 0 : {
18433 0 : tree res_op0;
18434 0 : {
18435 0 : tree _o1[2], _r1;
18436 0 : _o1[0] = captures[0];
18437 0 : _o1[1] = captures[3];
18438 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18439 0 : res_op0 = _r1;
18440 : }
18441 0 : tree res_op1;
18442 0 : res_op1 = captures[1];
18443 0 : tree res_op2;
18444 0 : res_op2 = captures[2];
18445 0 : tree _r;
18446 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18447 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18448 0 : return _r;
18449 : }
18450 0 : next_after_fail1722:;
18451 : }
18452 : }
18453 0 : {
18454 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18455 0 : const enum tree_code lop = BIT_AND_EXPR;
18456 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18457 : )
18458 : {
18459 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1723;
18460 0 : {
18461 0 : tree res_op0;
18462 0 : {
18463 0 : tree _o1[2], _r1;
18464 0 : _o1[0] = captures[0];
18465 0 : _o1[1] = captures[3];
18466 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18467 0 : res_op0 = _r1;
18468 : }
18469 0 : tree res_op1;
18470 0 : res_op1 = captures[1];
18471 0 : tree res_op2;
18472 0 : res_op2 = captures[2];
18473 0 : tree _r;
18474 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18475 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18476 0 : return _r;
18477 : }
18478 0 : next_after_fail1723:;
18479 : }
18480 : }
18481 0 : {
18482 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
18483 0 : const enum tree_code lop = BIT_AND_EXPR;
18484 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
18485 : )
18486 : {
18487 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1724;
18488 0 : {
18489 0 : tree res_op0;
18490 0 : {
18491 0 : tree _o1[2], _r1;
18492 0 : _o1[0] = captures[0];
18493 0 : _o1[1] = captures[3];
18494 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18495 0 : res_op0 = _r1;
18496 : }
18497 0 : tree res_op1;
18498 0 : res_op1 = captures[1];
18499 0 : tree res_op2;
18500 0 : res_op2 = captures[2];
18501 0 : tree _r;
18502 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18503 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
18504 0 : return _r;
18505 : }
18506 0 : next_after_fail1724:;
18507 : }
18508 : }
18509 : }
18510 : }
18511 : break;
18512 : }
18513 : default:;
18514 : }
18515 : }
18516 : }
18517 18 : {
18518 18 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
18519 18 : if (VECTOR_TYPE_P (type)
18520 18 : && (TREE_CODE_CLASS (BIT_AND_EXPR) != tcc_comparison
18521 : || types_match (type, TREE_TYPE (captures[2]))
18522 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
18523 : || (optimize_vectors_before_lowering_p ()
18524 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
18525 : )
18526 : {
18527 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1725;
18528 18 : {
18529 18 : if (! tree_invariant_p (captures[4])) goto next_after_fail1725;
18530 14 : tree res_op0;
18531 14 : res_op0 = captures[1];
18532 14 : tree res_op1;
18533 14 : {
18534 14 : tree _o1[2], _r1;
18535 14 : _o1[0] = captures[2];
18536 14 : _o1[1] = unshare_expr (captures[4]);
18537 14 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18538 14 : if (EXPR_P (_r1))
18539 0 : goto next_after_fail1725;
18540 14 : res_op1 = _r1;
18541 : }
18542 14 : tree res_op2;
18543 14 : {
18544 14 : tree _o1[2], _r1;
18545 14 : _o1[0] = captures[3];
18546 14 : _o1[1] = captures[4];
18547 14 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18548 14 : if (EXPR_P (_r1))
18549 0 : goto next_after_fail1725;
18550 14 : res_op2 = _r1;
18551 : }
18552 14 : tree _r;
18553 14 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18554 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
18555 14 : return _r;
18556 : }
18557 4 : next_after_fail1725:;
18558 : }
18559 : }
18560 4 : break;
18561 : }
18562 199532 : case CALL_EXPR:
18563 199532 : switch (get_call_combined_fn (_p0))
18564 : {
18565 0 : case CFN_BSWAP:
18566 0 : if (call_expr_nargs (_p0) == 1)
18567 : {
18568 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18569 0 : switch (TREE_CODE (_p1))
18570 : {
18571 0 : case INTEGER_CST:
18572 0 : {
18573 0 : {
18574 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18575 0 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures, CFN_BSWAP);
18576 0 : if (res) return res;
18577 : }
18578 0 : break;
18579 : }
18580 : default:;
18581 : }
18582 : }
18583 : break;
18584 0 : case CFN_BUILT_IN_BSWAP128:
18585 0 : if (call_expr_nargs (_p0) == 1)
18586 : {
18587 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18588 0 : switch (TREE_CODE (_p1))
18589 : {
18590 0 : case INTEGER_CST:
18591 0 : {
18592 0 : {
18593 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18594 0 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
18595 0 : if (res) return res;
18596 : }
18597 0 : break;
18598 : }
18599 : default:;
18600 : }
18601 : }
18602 : break;
18603 0 : case CFN_BUILT_IN_BSWAP16:
18604 0 : if (call_expr_nargs (_p0) == 1)
18605 : {
18606 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18607 0 : switch (TREE_CODE (_p1))
18608 : {
18609 0 : case INTEGER_CST:
18610 0 : {
18611 0 : {
18612 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18613 0 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
18614 0 : if (res) return res;
18615 : }
18616 0 : break;
18617 : }
18618 : default:;
18619 : }
18620 : }
18621 : break;
18622 10 : case CFN_BUILT_IN_BSWAP32:
18623 10 : if (call_expr_nargs (_p0) == 1)
18624 : {
18625 10 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18626 10 : switch (TREE_CODE (_p1))
18627 : {
18628 9 : case INTEGER_CST:
18629 9 : {
18630 9 : {
18631 9 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18632 9 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
18633 9 : if (res) return res;
18634 : }
18635 1 : break;
18636 : }
18637 : default:;
18638 : }
18639 : }
18640 : break;
18641 8 : case CFN_BUILT_IN_BSWAP64:
18642 8 : if (call_expr_nargs (_p0) == 1)
18643 : {
18644 8 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
18645 8 : switch (TREE_CODE (_p1))
18646 : {
18647 7 : case INTEGER_CST:
18648 7 : {
18649 7 : {
18650 7 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
18651 7 : tree res = generic_simplify_494 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
18652 7 : if (res) return res;
18653 : }
18654 1 : break;
18655 : }
18656 : default:;
18657 : }
18658 : }
18659 : break;
18660 : default:;
18661 : }
18662 : break;
18663 6413242 : default:;
18664 : }
18665 6413242 : switch (TREE_CODE (_p1))
18666 : {
18667 1 : case VEC_COND_EXPR:
18668 1 : {
18669 1 : tree _q30 = TREE_OPERAND (_p1, 0);
18670 1 : tree _q31 = TREE_OPERAND (_p1, 1);
18671 1 : tree _q32 = TREE_OPERAND (_p1, 2);
18672 1 : {
18673 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
18674 1 : if (VECTOR_TYPE_P (type)
18675 1 : && (TREE_CODE_CLASS (BIT_AND_EXPR) != tcc_comparison
18676 : || types_match (type, TREE_TYPE (captures[3]))
18677 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
18678 : || (optimize_vectors_before_lowering_p ()
18679 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
18680 : )
18681 : {
18682 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1726;
18683 1 : {
18684 1 : if (! tree_invariant_p (captures[0])) goto next_after_fail1726;
18685 0 : tree res_op0;
18686 0 : res_op0 = captures[2];
18687 0 : tree res_op1;
18688 0 : {
18689 0 : tree _o1[2], _r1;
18690 0 : _o1[0] = unshare_expr (captures[0]);
18691 0 : _o1[1] = captures[3];
18692 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18693 0 : if (EXPR_P (_r1))
18694 0 : goto next_after_fail1726;
18695 0 : res_op1 = _r1;
18696 : }
18697 0 : tree res_op2;
18698 0 : {
18699 0 : tree _o1[2], _r1;
18700 0 : _o1[0] = captures[0];
18701 0 : _o1[1] = captures[4];
18702 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, type, _o1[0], _o1[1]);
18703 0 : if (EXPR_P (_r1))
18704 0 : goto next_after_fail1726;
18705 0 : res_op2 = _r1;
18706 : }
18707 0 : tree _r;
18708 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
18709 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
18710 0 : return _r;
18711 : }
18712 1 : next_after_fail1726:;
18713 : }
18714 : }
18715 1 : break;
18716 : }
18717 6413242 : default:;
18718 : }
18719 6413242 : switch (TREE_CODE (_p0))
18720 : {
18721 0 : case ORDERED_EXPR:
18722 0 : {
18723 0 : tree _q20 = TREE_OPERAND (_p0, 0);
18724 0 : tree _q21 = TREE_OPERAND (_p0, 1);
18725 0 : switch (TREE_CODE (_p1))
18726 : {
18727 0 : case NE_EXPR:
18728 0 : {
18729 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18730 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18731 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18732 : {
18733 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18734 : {
18735 0 : {
18736 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
18737 0 : tree res = generic_simplify_495 (loc, type, _p0, _p1, captures);
18738 0 : if (res) return res;
18739 : }
18740 : }
18741 : }
18742 : break;
18743 : }
18744 0 : default:;
18745 : }
18746 0 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
18747 : {
18748 0 : switch (TREE_CODE (_p1))
18749 : {
18750 0 : case ORDERED_EXPR:
18751 0 : {
18752 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18753 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18754 0 : if ((_q51 == _q50 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q50, 0) && types_match (_q51, _q50)))
18755 : {
18756 0 : {
18757 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
18758 0 : if (types_match (captures[0], captures[1])
18759 : )
18760 : {
18761 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1727;
18762 0 : {
18763 0 : tree res_op0;
18764 0 : res_op0 = captures[0];
18765 0 : tree res_op1;
18766 0 : res_op1 = captures[1];
18767 0 : tree _r;
18768 0 : _r = fold_build2_loc (loc, ORDERED_EXPR, type, res_op0, res_op1);
18769 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
18770 0 : return _r;
18771 : }
18772 0 : next_after_fail1727:;
18773 : }
18774 : }
18775 : }
18776 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18777 : {
18778 0 : {
18779 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q51 };
18780 0 : tree res = generic_simplify_496 (loc, type, _p0, _p1, captures);
18781 0 : if (res) return res;
18782 : }
18783 : }
18784 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18785 : {
18786 0 : {
18787 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q50 };
18788 0 : tree res = generic_simplify_496 (loc, type, _p0, _p1, captures);
18789 0 : if (res) return res;
18790 : }
18791 : }
18792 : break;
18793 : }
18794 : default:;
18795 : }
18796 : }
18797 0 : switch (TREE_CODE (_p1))
18798 : {
18799 0 : case ORDERED_EXPR:
18800 0 : {
18801 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18802 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18803 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18804 : {
18805 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18806 : {
18807 0 : {
18808 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
18809 0 : tree res = generic_simplify_497 (loc, type, _p0, _p1, captures);
18810 0 : if (res) return res;
18811 : }
18812 : }
18813 : }
18814 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18815 : {
18816 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18817 : {
18818 0 : {
18819 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _p0, _q20 };
18820 0 : tree res = generic_simplify_497 (loc, type, _p0, _p1, captures);
18821 0 : if (res) return res;
18822 : }
18823 : }
18824 : }
18825 : break;
18826 : }
18827 : default:;
18828 : }
18829 : break;
18830 : }
18831 137 : case NE_EXPR:
18832 137 : {
18833 137 : tree _q20 = TREE_OPERAND (_p0, 0);
18834 137 : tree _q21 = TREE_OPERAND (_p0, 1);
18835 137 : switch (TREE_CODE (_p1))
18836 : {
18837 0 : case ORDERED_EXPR:
18838 0 : {
18839 0 : tree _q50 = TREE_OPERAND (_p1, 0);
18840 0 : tree _q51 = TREE_OPERAND (_p1, 1);
18841 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18842 : {
18843 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18844 : {
18845 0 : {
18846 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
18847 0 : tree res = generic_simplify_495 (loc, type, _p0, _p1, captures);
18848 0 : if (res) return res;
18849 : }
18850 : }
18851 : }
18852 : break;
18853 : }
18854 : default:;
18855 : }
18856 : break;
18857 : }
18858 488184 : case MINUS_EXPR:
18859 488184 : {
18860 488184 : tree _q20 = TREE_OPERAND (_p0, 0);
18861 488184 : tree _q21 = TREE_OPERAND (_p0, 1);
18862 488184 : switch (TREE_CODE (_q20))
18863 : {
18864 420148 : CASE_CONVERT:
18865 420148 : {
18866 420148 : tree _q30 = TREE_OPERAND (_q20, 0);
18867 420148 : switch (TREE_CODE (_q21))
18868 : {
18869 415635 : CASE_CONVERT:
18870 415635 : {
18871 415635 : tree _q50 = TREE_OPERAND (_q21, 0);
18872 415635 : switch (TREE_CODE (_p1))
18873 : {
18874 415611 : case INTEGER_CST:
18875 415611 : {
18876 415611 : {
18877 415611 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1 };
18878 415611 : tree res = generic_simplify_498 (loc, type, _p0, _p1, captures, MINUS_EXPR);
18879 415611 : if (res) return res;
18880 : }
18881 415601 : break;
18882 : }
18883 : default:;
18884 : }
18885 : break;
18886 : }
18887 : default:;
18888 : }
18889 : break;
18890 : }
18891 : default:;
18892 : }
18893 : break;
18894 : }
18895 188420 : case PLUS_EXPR:
18896 188420 : {
18897 188420 : tree _q20 = TREE_OPERAND (_p0, 0);
18898 188420 : tree _q21 = TREE_OPERAND (_p0, 1);
18899 188420 : switch (TREE_CODE (_q20))
18900 : {
18901 53672 : CASE_CONVERT:
18902 53672 : {
18903 53672 : tree _q30 = TREE_OPERAND (_q20, 0);
18904 53672 : switch (TREE_CODE (_q21))
18905 : {
18906 119 : CASE_CONVERT:
18907 119 : {
18908 119 : tree _q50 = TREE_OPERAND (_q21, 0);
18909 119 : switch (TREE_CODE (_p1))
18910 : {
18911 60 : case INTEGER_CST:
18912 60 : {
18913 60 : {
18914 60 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1 };
18915 60 : tree res = generic_simplify_498 (loc, type, _p0, _p1, captures, PLUS_EXPR);
18916 60 : if (res) return res;
18917 : }
18918 45 : break;
18919 : }
18920 : default:;
18921 : }
18922 : break;
18923 : }
18924 : default:;
18925 : }
18926 : break;
18927 : }
18928 : default:;
18929 : }
18930 : break;
18931 : }
18932 80 : case LT_EXPR:
18933 80 : {
18934 80 : tree _q20 = TREE_OPERAND (_p0, 0);
18935 80 : tree _q21 = TREE_OPERAND (_p0, 1);
18936 80 : switch (TREE_CODE (_p1))
18937 : {
18938 8 : case LT_EXPR:
18939 8 : {
18940 8 : tree _q50 = TREE_OPERAND (_p1, 0);
18941 8 : tree _q51 = TREE_OPERAND (_p1, 1);
18942 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18943 : {
18944 0 : {
18945 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
18946 0 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18947 0 : if (res) return res;
18948 : }
18949 : }
18950 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
18951 : {
18952 0 : {
18953 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
18954 0 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18955 0 : if (res) return res;
18956 : }
18957 : }
18958 : break;
18959 : }
18960 1 : case GT_EXPR:
18961 1 : {
18962 1 : tree _q50 = TREE_OPERAND (_p1, 0);
18963 1 : tree _q51 = TREE_OPERAND (_p1, 1);
18964 1 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
18965 : {
18966 0 : {
18967 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
18968 0 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
18969 0 : if (res) return res;
18970 : }
18971 : }
18972 1 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
18973 : {
18974 0 : {
18975 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
18976 0 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
18977 0 : if (res) return res;
18978 : }
18979 : }
18980 : break;
18981 : }
18982 : default:;
18983 : }
18984 : break;
18985 : }
18986 32 : case LE_EXPR:
18987 32 : {
18988 32 : tree _q20 = TREE_OPERAND (_p0, 0);
18989 32 : tree _q21 = TREE_OPERAND (_p0, 1);
18990 32 : switch (TREE_CODE (_p1))
18991 : {
18992 5 : case LE_EXPR:
18993 5 : {
18994 5 : tree _q50 = TREE_OPERAND (_p1, 0);
18995 5 : tree _q51 = TREE_OPERAND (_p1, 1);
18996 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18997 : {
18998 0 : {
18999 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
19000 0 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
19001 0 : if (res) return res;
19002 : }
19003 : }
19004 5 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
19005 : {
19006 4 : {
19007 4 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
19008 4 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
19009 4 : if (res) return res;
19010 : }
19011 : }
19012 : break;
19013 : }
19014 0 : case GE_EXPR:
19015 0 : {
19016 0 : tree _q50 = TREE_OPERAND (_p1, 0);
19017 0 : tree _q51 = TREE_OPERAND (_p1, 1);
19018 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
19019 : {
19020 0 : {
19021 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
19022 0 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
19023 0 : if (res) return res;
19024 : }
19025 : }
19026 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
19027 : {
19028 0 : {
19029 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
19030 0 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
19031 0 : if (res) return res;
19032 : }
19033 : }
19034 : break;
19035 : }
19036 : default:;
19037 : }
19038 : break;
19039 : }
19040 396 : case GT_EXPR:
19041 396 : {
19042 396 : tree _q20 = TREE_OPERAND (_p0, 0);
19043 396 : tree _q21 = TREE_OPERAND (_p0, 1);
19044 396 : switch (TREE_CODE (_p1))
19045 : {
19046 133 : case GT_EXPR:
19047 133 : {
19048 133 : tree _q50 = TREE_OPERAND (_p1, 0);
19049 133 : tree _q51 = TREE_OPERAND (_p1, 1);
19050 133 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19051 : {
19052 0 : {
19053 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
19054 0 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
19055 0 : if (res) return res;
19056 : }
19057 : }
19058 133 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
19059 : {
19060 83 : {
19061 83 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
19062 83 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
19063 83 : if (res) return res;
19064 : }
19065 : }
19066 : break;
19067 : }
19068 67 : case LT_EXPR:
19069 67 : {
19070 67 : tree _q50 = TREE_OPERAND (_p1, 0);
19071 67 : tree _q51 = TREE_OPERAND (_p1, 1);
19072 67 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
19073 : {
19074 0 : {
19075 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
19076 0 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
19077 0 : if (res) return res;
19078 : }
19079 : }
19080 67 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
19081 : {
19082 0 : {
19083 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
19084 0 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
19085 0 : if (res) return res;
19086 : }
19087 : }
19088 : break;
19089 : }
19090 : default:;
19091 : }
19092 : break;
19093 : }
19094 73 : case GE_EXPR:
19095 73 : {
19096 73 : tree _q20 = TREE_OPERAND (_p0, 0);
19097 73 : tree _q21 = TREE_OPERAND (_p0, 1);
19098 73 : switch (TREE_CODE (_p1))
19099 : {
19100 11 : case GE_EXPR:
19101 11 : {
19102 11 : tree _q50 = TREE_OPERAND (_p1, 0);
19103 11 : tree _q51 = TREE_OPERAND (_p1, 1);
19104 11 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19105 : {
19106 7 : {
19107 7 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
19108 7 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
19109 7 : if (res) return res;
19110 : }
19111 : }
19112 11 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
19113 : {
19114 0 : {
19115 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
19116 0 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
19117 0 : if (res) return res;
19118 : }
19119 : }
19120 : break;
19121 : }
19122 17 : case LE_EXPR:
19123 17 : {
19124 17 : tree _q50 = TREE_OPERAND (_p1, 0);
19125 17 : tree _q51 = TREE_OPERAND (_p1, 1);
19126 17 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
19127 : {
19128 0 : {
19129 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
19130 0 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
19131 0 : if (res) return res;
19132 : }
19133 : }
19134 17 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
19135 : {
19136 0 : {
19137 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
19138 0 : tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
19139 0 : if (res) return res;
19140 : }
19141 : }
19142 : break;
19143 : }
19144 : default:;
19145 : }
19146 : break;
19147 : }
19148 47132 : case NEGATE_EXPR:
19149 47132 : {
19150 47132 : tree _q20 = TREE_OPERAND (_p0, 0);
19151 47132 : if (integer_onep (_p1))
19152 : {
19153 1448 : {
19154 1448 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
19155 1448 : if (!TYPE_OVERFLOW_SANITIZED (type)
19156 : )
19157 : {
19158 1435 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1728;
19159 1435 : {
19160 1435 : tree res_op0;
19161 1435 : res_op0 = captures[0];
19162 1435 : tree res_op1;
19163 1435 : res_op1 = captures[1];
19164 1435 : tree _r;
19165 1435 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
19166 1435 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1025, __FILE__, __LINE__, true);
19167 1435 : return _r;
19168 : }
19169 0 : next_after_fail1728:;
19170 : }
19171 : }
19172 : }
19173 : break;
19174 : }
19175 1 : case VEC_PERM_EXPR:
19176 1 : {
19177 1 : tree _q20 = TREE_OPERAND (_p0, 0);
19178 1 : tree _q21 = TREE_OPERAND (_p0, 1);
19179 1 : tree _q22 = TREE_OPERAND (_p0, 2);
19180 1 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
19181 : {
19182 0 : switch (TREE_CODE (_p1))
19183 : {
19184 0 : case VEC_PERM_EXPR:
19185 0 : {
19186 0 : tree _q60 = TREE_OPERAND (_p1, 0);
19187 0 : tree _q61 = TREE_OPERAND (_p1, 1);
19188 0 : tree _q62 = TREE_OPERAND (_p1, 2);
19189 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
19190 : {
19191 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
19192 : {
19193 0 : {
19194 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
19195 0 : if (VECTOR_INTEGER_TYPE_P (type)
19196 : )
19197 : {
19198 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1729;
19199 0 : {
19200 0 : tree res_op0;
19201 0 : {
19202 0 : tree _o1[2], _r1;
19203 0 : _o1[0] = captures[0];
19204 0 : _o1[1] = captures[2];
19205 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
19206 0 : captures[3] = _r1;
19207 : }
19208 0 : res_op0 = unshare_expr (captures[3]);
19209 0 : tree res_op1;
19210 0 : res_op1 = captures[3];
19211 0 : tree res_op2;
19212 0 : res_op2 = captures[1];
19213 0 : tree _r;
19214 0 : _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
19215 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
19216 0 : return _r;
19217 : }
19218 0 : next_after_fail1729:;
19219 : }
19220 : }
19221 : }
19222 : }
19223 : break;
19224 : }
19225 : default:;
19226 : }
19227 : }
19228 : break;
19229 : }
19230 199518 : case CALL_EXPR:
19231 199518 : switch (get_call_combined_fn (_p0))
19232 : {
19233 1 : case CFN_BUILT_IN_POPCOUNT:
19234 1 : if (call_expr_nargs (_p0) == 1)
19235 : {
19236 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19237 1 : if (integer_onep (_p1))
19238 : {
19239 1 : {
19240 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19241 1 : tree res = generic_simplify_499 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT, CFN_BUILT_IN_PARITY);
19242 1 : if (res) return res;
19243 : }
19244 : }
19245 : }
19246 : break;
19247 1 : case CFN_BUILT_IN_POPCOUNTLL:
19248 1 : if (call_expr_nargs (_p0) == 1)
19249 : {
19250 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19251 1 : if (integer_onep (_p1))
19252 : {
19253 1 : {
19254 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19255 1 : tree res = generic_simplify_499 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL, CFN_BUILT_IN_PARITYLL);
19256 1 : if (res) return res;
19257 : }
19258 : }
19259 : }
19260 : break;
19261 0 : case CFN_POPCOUNT:
19262 0 : if (call_expr_nargs (_p0) == 1)
19263 : {
19264 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19265 0 : if (integer_onep (_p1))
19266 : {
19267 0 : {
19268 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19269 0 : tree res = generic_simplify_499 (loc, type, _p0, _p1, captures, CFN_POPCOUNT, CFN_PARITY);
19270 0 : if (res) return res;
19271 : }
19272 : }
19273 : }
19274 : break;
19275 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
19276 0 : if (call_expr_nargs (_p0) == 1)
19277 : {
19278 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19279 0 : if (integer_onep (_p1))
19280 : {
19281 0 : {
19282 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19283 0 : tree res = generic_simplify_499 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX, CFN_BUILT_IN_PARITYIMAX);
19284 0 : if (res) return res;
19285 : }
19286 : }
19287 : }
19288 : break;
19289 1 : case CFN_BUILT_IN_POPCOUNTL:
19290 1 : if (call_expr_nargs (_p0) == 1)
19291 : {
19292 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
19293 1 : if (integer_onep (_p1))
19294 : {
19295 1 : {
19296 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
19297 1 : tree res = generic_simplify_499 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL, CFN_BUILT_IN_PARITYL);
19298 1 : if (res) return res;
19299 : }
19300 : }
19301 : }
19302 : break;
19303 : default:;
19304 : }
19305 : break;
19306 : default:;
19307 : }
19308 : return NULL_TREE;
19309 : }
19310 : #pragma GCC diagnostic pop
|