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 129912779 : tree_negate_expr_p (tree t)
11 : {
12 129912779 : const tree type = TREE_TYPE (t);
13 129912779 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 129912779 : if (TREE_SIDE_EFFECTS (t)) return false;
15 124960330 : switch (TREE_CODE (t))
16 : {
17 7610840 : case INTEGER_CST:
18 7610840 : {
19 7610840 : {
20 7610840 : if ((INTEGRAL_TYPE_P (type)
21 7610840 : && TYPE_UNSIGNED (type))
22 9783404 : || (!TYPE_OVERFLOW_SANITIZED (type)
23 2169822 : && may_negate_without_overflow_p (t))
24 : )
25 : {
26 7594958 : {
27 7594958 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 14, __FILE__, __LINE__, false);
28 7594958 : return true;
29 : }
30 : }
31 : }
32 : break;
33 : }
34 0 : case FIXED_CST:
35 0 : {
36 0 : {
37 0 : {
38 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 15, __FILE__, __LINE__, false);
39 : return true;
40 : }
41 : }
42 403883 : break;
43 : }
44 403883 : case NEGATE_EXPR:
45 403883 : {
46 403883 : tree _p0 = TREE_OPERAND (t, 0);
47 403883 : {
48 403883 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
49 403883 : if (!TYPE_OVERFLOW_SANITIZED (type)
50 : )
51 : {
52 403863 : {
53 403863 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 16, __FILE__, __LINE__, false);
54 403863 : return true;
55 : }
56 : }
57 : }
58 : break;
59 : }
60 733673 : case REAL_CST:
61 733673 : {
62 733673 : {
63 733673 : if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (t))
64 : )
65 : {
66 639 : {
67 639 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 17, __FILE__, __LINE__, false);
68 639 : return true;
69 : }
70 : }
71 : }
72 : break;
73 : }
74 450 : case VECTOR_CST:
75 450 : {
76 450 : {
77 450 : if (FLOAT_TYPE_P (TREE_TYPE (type)) || TYPE_OVERFLOW_WRAPS (type)
78 : )
79 : {
80 329 : {
81 329 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 18, __FILE__, __LINE__, false);
82 329 : return true;
83 : }
84 : }
85 : }
86 : break;
87 : }
88 1220814 : case MINUS_EXPR:
89 1220814 : {
90 1220814 : tree _p0 = TREE_OPERAND (t, 0);
91 1220814 : tree _p1 = TREE_OPERAND (t, 1);
92 1220814 : {
93 1220814 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
94 1220814 : if ((ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type))
95 2124213 : || (FLOAT_TYPE_P (type)
96 640083 : && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
97 640083 : && !HONOR_SIGNED_ZEROS (type))
98 : )
99 : {
100 317988 : {
101 317988 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 19, __FILE__, __LINE__, false);
102 317988 : return true;
103 : }
104 : }
105 : }
106 902826 : break;
107 : }
108 : default:;
109 : }
110 : return false;
111 : }
112 :
113 : bool
114 0 : tree_double_value_p (tree t)
115 : {
116 0 : const tree type = TREE_TYPE (t);
117 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
118 0 : if (TREE_SIDE_EFFECTS (t)) return false;
119 0 : {
120 0 : tree captures[1] ATTRIBUTE_UNUSED = { t };
121 0 : if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == double_type_node
122 : )
123 : {
124 0 : {
125 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 44, __FILE__, __LINE__, false);
126 0 : return true;
127 : }
128 : }
129 : }
130 : return false;
131 : }
132 :
133 : tree
134 0 : generic_simplify_6 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
135 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
136 : {
137 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
138 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail77;
139 0 : {
140 0 : tree res_op0;
141 0 : {
142 0 : tree _o1[2], _r1;
143 0 : _o1[0] = captures[1];
144 0 : _o1[1] = captures[2];
145 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
146 0 : res_op0 = _r1;
147 : }
148 0 : tree _r;
149 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
150 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 54, __FILE__, __LINE__, true);
151 : return _r;
152 : }
153 0 : next_after_fail77:;
154 0 : return NULL_TREE;
155 : }
156 :
157 : tree
158 223445 : generic_simplify_15 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
159 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
160 : const enum tree_code ARG_UNUSED (op))
161 : {
162 223445 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
163 223445 : {
164 223445 : bool wascmp;
165 223445 : if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
166 223445 : && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
167 : )
168 : {
169 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail90;
170 47 : {
171 47 : tree res_op0;
172 47 : res_op0 = wascmp
173 47 : ? constant_boolean_node (true, type)
174 40 : : build_all_ones_cst (TREE_TYPE (captures[0]));
175 47 : tree _r;
176 47 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
177 47 : if (TREE_SIDE_EFFECTS (captures[0]))
178 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
179 47 : if (TREE_SIDE_EFFECTS (captures[1]))
180 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
181 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 63, __FILE__, __LINE__, true);
182 47 : return _r;
183 : }
184 0 : next_after_fail90:;
185 : }
186 : }
187 223398 : return NULL_TREE;
188 : }
189 :
190 : tree
191 11 : generic_simplify_24 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
192 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
193 : {
194 11 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
195 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail99;
196 11 : {
197 11 : tree res_op0;
198 11 : res_op0 = captures[0];
199 11 : tree _r;
200 11 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
201 11 : if (TREE_SIDE_EFFECTS (captures[2]))
202 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
203 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 72, __FILE__, __LINE__, true);
204 : return _r;
205 : }
206 0 : next_after_fail99:;
207 0 : return NULL_TREE;
208 : }
209 :
210 : tree
211 0 : generic_simplify_31 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
212 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
213 : {
214 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
215 0 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
216 0 : && tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
217 : )
218 : {
219 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail106;
220 0 : {
221 0 : tree res_op0;
222 0 : {
223 0 : tree _o1[1], _r1;
224 0 : _o1[0] = captures[1];
225 0 : if (TREE_TYPE (_o1[0]) != type)
226 : {
227 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
228 : }
229 : else
230 : _r1 = _o1[0];
231 0 : res_op0 = _r1;
232 : }
233 0 : tree res_op1;
234 0 : {
235 0 : tree _o1[1], _r1;
236 0 : _o1[0] = captures[2];
237 0 : if (TREE_TYPE (_o1[0]) != type)
238 : {
239 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
240 : }
241 : else
242 : _r1 = _o1[0];
243 0 : res_op1 = _r1;
244 : }
245 0 : tree _r;
246 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
247 0 : if (TREE_SIDE_EFFECTS (captures[0]))
248 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
249 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 79, __FILE__, __LINE__, true);
250 0 : return _r;
251 : }
252 0 : next_after_fail106:;
253 : }
254 : return NULL_TREE;
255 : }
256 :
257 : tree
258 0 : generic_simplify_40 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
259 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
260 : const enum tree_code ARG_UNUSED (op))
261 : {
262 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
263 0 : if (INTEGRAL_TYPE_P (type)
264 0 : && operand_equal_p (captures[2], captures[6], 0)
265 0 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[4])) == 0
266 : )
267 : {
268 0 : {
269 0 : tree t = type;
270 0 : if (!TYPE_OVERFLOW_WRAPS (t))
271 0 : t = unsigned_type_for (t);
272 0 : wide_int c = wi::add (wi::to_wide (captures[3]), wi::to_wide (captures[7]));
273 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail117;
274 0 : if (TREE_SIDE_EFFECTS (captures[7])) goto next_after_fail117;
275 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail117;
276 0 : {
277 0 : tree res_op0;
278 0 : {
279 0 : tree _o1[2], _r1;
280 0 : {
281 0 : tree _o2[1], _r2;
282 0 : _o2[0] = captures[2];
283 0 : if (TREE_TYPE (_o2[0]) != t)
284 : {
285 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
286 : }
287 : else
288 : _r2 = _o2[0];
289 0 : _o1[0] = _r2;
290 : }
291 0 : _o1[1] = wide_int_to_tree (t, c);
292 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
293 0 : res_op0 = _r1;
294 : }
295 0 : tree _r;
296 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
297 0 : if (TREE_SIDE_EFFECTS (captures[6]))
298 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), _r);
299 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 88, __FILE__, __LINE__, true);
300 0 : return _r;
301 : }
302 0 : next_after_fail117:;
303 0 : }
304 : }
305 : return NULL_TREE;
306 : }
307 :
308 : tree
309 18 : generic_simplify_51 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
310 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
311 : const enum tree_code ARG_UNUSED (cmp))
312 : {
313 18 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
314 36 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
315 18 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
316 36 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
317 : )
318 : {
319 18 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail130;
320 18 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail130;
321 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail130;
322 18 : {
323 18 : tree res_op0;
324 18 : {
325 18 : tree _o1[2], _r1;
326 18 : _o1[0] = captures[1];
327 18 : _o1[1] = captures[3];
328 18 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
329 18 : res_op0 = _r1;
330 : }
331 18 : tree res_op1;
332 18 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
333 18 : tree _r;
334 18 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
335 18 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 98, __FILE__, __LINE__, true);
336 18 : return _r;
337 : }
338 : next_after_fail130:;
339 : }
340 : return NULL_TREE;
341 : }
342 :
343 : tree
344 46116 : generic_simplify_61 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
345 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
346 : {
347 46116 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
348 46116 : if (!TYPE_SATURATING (type)
349 : )
350 : {
351 46116 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
352 92162 : && !FIXED_POINT_TYPE_P (type)
353 : )
354 : {
355 46046 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail142;
356 46046 : {
357 46046 : tree res_op0;
358 46046 : res_op0 = captures[0];
359 46046 : tree _r;
360 46046 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
361 46046 : if (TREE_SIDE_EFFECTS (captures[1]))
362 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
363 46046 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 110, __FILE__, __LINE__, true);
364 46046 : return _r;
365 : }
366 0 : next_after_fail142:;
367 : }
368 : }
369 : return NULL_TREE;
370 : }
371 :
372 : tree
373 6831678 : generic_simplify_68 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
374 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
375 : const enum tree_code ARG_UNUSED (op))
376 : {
377 6831678 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
378 6831678 : if (!TYPE_SATURATING (type)
379 : )
380 : {
381 6831678 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
382 13280721 : && !FIXED_POINT_TYPE_P (type)
383 : )
384 : {
385 6449043 : if (INTEGRAL_TYPE_P (type)
386 6448751 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
387 5186946 : && TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
388 4344616 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
389 3800700 : && !TYPE_OVERFLOW_TRAPS (type)
390 10249743 : && !TYPE_OVERFLOW_SANITIZED (type)
391 : )
392 : {
393 3800429 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail157;
394 3800429 : {
395 3800429 : tree res_op0;
396 3800429 : {
397 3800429 : tree _o1[2], _r1;
398 3800429 : _o1[0] = captures[0];
399 3800429 : _o1[1] = captures[1];
400 3800429 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
401 3800429 : if (EXPR_P (_r1))
402 3785997 : goto next_after_fail157;
403 14432 : res_op0 = _r1;
404 : }
405 14432 : tree _r;
406 14432 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
407 14432 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 125, __FILE__, __LINE__, true);
408 14432 : return _r;
409 : }
410 : next_after_fail157:;
411 : }
412 : }
413 : }
414 : return NULL_TREE;
415 : }
416 :
417 : tree
418 56 : generic_simplify_78 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
419 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
420 : const enum tree_code ARG_UNUSED (cmp),
421 : const enum tree_code ARG_UNUSED (icmp),
422 : const enum tree_code ARG_UNUSED (ncmp))
423 : {
424 56 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
425 56 : if (TYPE_PRECISION (type) > 1
426 56 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
427 : )
428 : {
429 0 : {
430 0 : enum tree_code ic = invert_tree_comparison
431 0 : (cmp, HONOR_NANS (captures[1]));
432 0 : tree cmptype = TREE_TYPE (captures[0]);
433 0 : if (ic == icmp
434 : )
435 : {
436 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail168;
437 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail168;
438 0 : {
439 0 : tree res_op0;
440 0 : {
441 0 : tree _o1[1], _r1;
442 0 : {
443 0 : tree _o2[2], _r2;
444 0 : _o2[0] = captures[1];
445 0 : _o2[1] = captures[2];
446 0 : _r2 = fold_build2_loc (loc, icmp, cmptype, _o2[0], _o2[1]);
447 0 : _o1[0] = _r2;
448 : }
449 0 : if (TREE_TYPE (_o1[0]) != type)
450 : {
451 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
452 : }
453 : else
454 : _r1 = _o1[0];
455 0 : res_op0 = _r1;
456 : }
457 0 : tree _r;
458 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
459 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 136, __FILE__, __LINE__, true);
460 0 : return _r;
461 : }
462 : next_after_fail168:;
463 : }
464 : else
465 : {
466 0 : if (ic == ncmp
467 : )
468 : {
469 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail169;
470 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail169;
471 0 : {
472 0 : tree res_op0;
473 0 : {
474 0 : tree _o1[1], _r1;
475 0 : {
476 0 : tree _o2[2], _r2;
477 0 : _o2[0] = captures[1];
478 0 : _o2[1] = captures[2];
479 0 : _r2 = fold_build2_loc (loc, ncmp, cmptype, _o2[0], _o2[1]);
480 0 : _o1[0] = _r2;
481 : }
482 0 : if (TREE_TYPE (_o1[0]) != type)
483 : {
484 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
485 : }
486 : else
487 : _r1 = _o1[0];
488 0 : res_op0 = _r1;
489 : }
490 0 : tree _r;
491 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
492 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 137, __FILE__, __LINE__, true);
493 0 : return _r;
494 : }
495 : next_after_fail169:;
496 : }
497 : }
498 : }
499 : }
500 : return NULL_TREE;
501 : }
502 :
503 : tree
504 5 : generic_simplify_92 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
505 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
506 : {
507 5 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
508 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail183;
509 5 : {
510 5 : tree res_op0;
511 5 : res_op0 = captures[1];
512 5 : tree res_op1;
513 5 : {
514 5 : tree _o1[1], _r1;
515 5 : _o1[0] = captures[2];
516 5 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
517 5 : res_op1 = _r1;
518 : }
519 5 : tree _r;
520 5 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
521 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 151, __FILE__, __LINE__, true);
522 : return _r;
523 : }
524 0 : next_after_fail183:;
525 0 : return NULL_TREE;
526 : }
527 :
528 : tree
529 339 : generic_simplify_99 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
530 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
531 : {
532 339 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
533 339 : if (!TYPE_SATURATING (type)
534 : )
535 : {
536 339 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
537 678 : && !FIXED_POINT_TYPE_P (type)
538 : )
539 : {
540 339 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail192;
541 339 : {
542 339 : tree res_op0;
543 339 : res_op0 = captures[1];
544 339 : tree _r;
545 339 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
546 339 : if (TREE_SIDE_EFFECTS (captures[0]))
547 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
548 339 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 159, __FILE__, __LINE__, true);
549 339 : return _r;
550 : }
551 0 : next_after_fail192:;
552 : }
553 : }
554 : return NULL_TREE;
555 : }
556 :
557 : tree
558 155389 : generic_simplify_105 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
559 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
560 : {
561 155389 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
562 155389 : if (!TYPE_SATURATING (type)
563 : )
564 : {
565 155389 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
566 310778 : && !FIXED_POINT_TYPE_P (type)
567 : )
568 : {
569 155389 : if (INTEGRAL_TYPE_P (type)
570 155389 : && TYPE_OVERFLOW_UNDEFINED (type)
571 67 : && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
572 155456 : && element_precision (type) <= element_precision (TREE_TYPE (captures[2]))
573 : )
574 : {
575 67 : {
576 67 : tree utype = unsigned_type_for (type);
577 67 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail201;
578 67 : {
579 67 : tree res_op0;
580 67 : {
581 67 : tree _o1[2], _r1;
582 67 : {
583 67 : tree _o2[1], _r2;
584 67 : _o2[0] = captures[1];
585 67 : if (TREE_TYPE (_o2[0]) != utype)
586 : {
587 52 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
588 : }
589 : else
590 : _r2 = _o2[0];
591 67 : _o1[0] = _r2;
592 : }
593 67 : {
594 67 : tree _o2[1], _r2;
595 67 : _o2[0] = captures[2];
596 67 : if (TREE_TYPE (_o2[0]) != utype)
597 : {
598 52 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
599 : }
600 : else
601 : _r2 = _o2[0];
602 67 : _o1[1] = _r2;
603 : }
604 67 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
605 67 : res_op0 = _r1;
606 : }
607 67 : tree _r;
608 67 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
609 67 : if (TREE_SIDE_EFFECTS (captures[3]))
610 2 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
611 67 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 168, __FILE__, __LINE__, true);
612 67 : return _r;
613 : }
614 0 : next_after_fail201:;
615 : }
616 : }
617 : else
618 : {
619 155322 : if (((element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
620 155322 : == (element_precision (type) <= element_precision (TREE_TYPE (captures[2]))))
621 155322 : && (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
622 53 : || (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
623 53 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
624 53 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
625 53 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))))
626 : )
627 : {
628 138657 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail202;
629 138657 : {
630 138657 : tree res_op0;
631 138657 : {
632 138657 : tree _o1[1], _r1;
633 138657 : _o1[0] = captures[1];
634 138657 : if (TREE_TYPE (_o1[0]) != type)
635 : {
636 138657 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
637 : }
638 : else
639 : _r1 = _o1[0];
640 138657 : res_op0 = _r1;
641 : }
642 138657 : tree res_op1;
643 138657 : {
644 138657 : tree _o1[1], _r1;
645 138657 : _o1[0] = captures[2];
646 138657 : if (TREE_TYPE (_o1[0]) != type)
647 : {
648 138657 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
649 : }
650 : else
651 : _r1 = _o1[0];
652 138657 : res_op1 = _r1;
653 : }
654 138657 : tree _r;
655 138657 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
656 138657 : if (TREE_SIDE_EFFECTS (captures[3]))
657 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
658 138657 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 169, __FILE__, __LINE__, true);
659 138657 : return _r;
660 : }
661 0 : next_after_fail202:;
662 : }
663 : }
664 : }
665 : }
666 : return NULL_TREE;
667 : }
668 :
669 : tree
670 93 : generic_simplify_133 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
671 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
672 : const enum tree_code ARG_UNUSED (op),
673 : const enum tree_code ARG_UNUSED (rop))
674 : {
675 93 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
676 93 : if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
677 93 : && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
678 : )
679 : {
680 61 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail230;
681 61 : {
682 61 : tree res_op0;
683 61 : {
684 61 : tree _o1[2], _r1;
685 61 : {
686 61 : tree _o2[1], _r2;
687 61 : _o2[0] = captures[0];
688 61 : if (TREE_TYPE (_o2[0]) != type)
689 : {
690 1 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
691 : }
692 : else
693 : _r2 = _o2[0];
694 61 : _o1[0] = _r2;
695 : }
696 61 : {
697 61 : tree _o2[1], _r2;
698 61 : _o2[0] = captures[1];
699 61 : if (TREE_TYPE (_o2[0]) != type)
700 : {
701 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
702 : }
703 : else
704 : _r2 = _o2[0];
705 61 : _o1[1] = _r2;
706 : }
707 61 : _r1 = fold_build2_loc (loc, rop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
708 61 : res_op0 = _r1;
709 : }
710 61 : tree _r;
711 61 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
712 61 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 192, __FILE__, __LINE__, true);
713 61 : return _r;
714 : }
715 0 : next_after_fail230:;
716 : }
717 : return NULL_TREE;
718 : }
719 :
720 : tree
721 2 : generic_simplify_146 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
722 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
723 : const enum tree_code ARG_UNUSED (bitop),
724 : const enum tree_code ARG_UNUSED (rbitop))
725 : {
726 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
727 2 : if (bitop == BIT_AND_EXPR
728 : )
729 : {
730 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail247;
731 1 : {
732 1 : tree _r;
733 1 : _r = build_zero_cst (type);
734 1 : if (TREE_SIDE_EFFECTS (captures[0]))
735 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
736 1 : if (TREE_SIDE_EFFECTS (captures[1]))
737 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
738 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 199, __FILE__, __LINE__, true);
739 1 : return _r;
740 : }
741 0 : next_after_fail247:;
742 : }
743 : else
744 : {
745 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail248;
746 1 : {
747 1 : tree _r;
748 1 : _r = build_minus_one_cst (type);
749 1 : if (TREE_SIDE_EFFECTS (captures[0]))
750 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
751 1 : if (TREE_SIDE_EFFECTS (captures[1]))
752 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
753 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 200, __FILE__, __LINE__, true);
754 1 : return _r;
755 : }
756 0 : next_after_fail248:;
757 : }
758 : return NULL_TREE;
759 : }
760 :
761 : tree
762 0 : generic_simplify_156 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
763 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
764 : {
765 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
766 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
767 0 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
768 : )
769 : {
770 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail261;
771 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail261;
772 0 : {
773 0 : tree res_op0;
774 0 : res_op0 = captures[3];
775 0 : tree res_op1;
776 0 : {
777 0 : tree _o1[2], _r1;
778 0 : _o1[0] = captures[1];
779 0 : _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
780 0 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
781 0 : res_op1 = _r1;
782 : }
783 0 : tree _r;
784 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
785 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 210, __FILE__, __LINE__, true);
786 0 : return _r;
787 : }
788 : next_after_fail261:;
789 : }
790 : return NULL_TREE;
791 : }
792 :
793 : tree
794 0 : generic_simplify_165 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
795 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
796 : const enum tree_code ARG_UNUSED (eqne))
797 : {
798 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
799 0 : if (eqne == EQ_EXPR
800 : )
801 : {
802 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail288;
803 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail288;
804 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail288;
805 0 : {
806 0 : tree _r;
807 0 : _r = captures[0];
808 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 228, __FILE__, __LINE__, true);
809 0 : return _r;
810 : }
811 : next_after_fail288:;
812 : }
813 : else
814 : {
815 0 : if (eqne == NE_EXPR
816 : )
817 : {
818 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail289;
819 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail289;
820 0 : {
821 0 : tree _r;
822 0 : _r = constant_boolean_node (true, type);
823 0 : if (TREE_SIDE_EFFECTS (captures[2]))
824 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
825 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 229, __FILE__, __LINE__, true);
826 0 : return _r;
827 : }
828 : next_after_fail289:;
829 : }
830 : }
831 : return NULL_TREE;
832 : }
833 :
834 : tree
835 0 : generic_simplify_173 (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 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
839 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail310;
840 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail310;
841 0 : {
842 0 : tree _r;
843 0 : _r = captures[1];
844 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 231, __FILE__, __LINE__, true);
845 : return _r;
846 : }
847 : next_after_fail310:;
848 : return NULL_TREE;
849 : }
850 :
851 : tree
852 0 : generic_simplify_177 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
853 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
854 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
855 : {
856 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
857 0 : if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
858 : )
859 : {
860 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail314;
861 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail314;
862 0 : {
863 0 : tree res_op0;
864 0 : res_op0 = captures[0];
865 0 : tree _r;
866 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
867 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 235, __FILE__, __LINE__, true);
868 0 : return _r;
869 : }
870 : next_after_fail314:;
871 : }
872 : return NULL_TREE;
873 : }
874 :
875 : tree
876 0 : generic_simplify_180 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
877 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
878 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
879 : {
880 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
881 0 : if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
882 : )
883 : {
884 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail317;
885 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail317;
886 0 : {
887 0 : tree res_op0;
888 0 : {
889 0 : tree _o1[1], _r1;
890 0 : _o1[0] = captures[0];
891 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
892 0 : res_op0 = _r1;
893 : }
894 0 : tree _r;
895 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
896 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 236, __FILE__, __LINE__, true);
897 0 : return _r;
898 : }
899 : next_after_fail317:;
900 : }
901 : return NULL_TREE;
902 : }
903 :
904 : tree
905 6 : generic_simplify_186 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
906 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
907 : {
908 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
909 6 : if (INTEGRAL_TYPE_P (type)
910 6 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
911 12 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
912 : )
913 : {
914 6 : if (TYPE_UNSIGNED (type)
915 : )
916 : {
917 5 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail323;
918 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail323;
919 5 : {
920 5 : tree res_op0;
921 5 : res_op0 = captures[0];
922 5 : tree _r;
923 5 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
924 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 241, __FILE__, __LINE__, true);
925 5 : return _r;
926 : }
927 : next_after_fail323:;
928 : }
929 : else
930 : {
931 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail324;
932 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail324;
933 1 : {
934 1 : tree res_op0;
935 1 : res_op0 = captures[0];
936 1 : tree _r;
937 1 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
938 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 242, __FILE__, __LINE__, true);
939 1 : return _r;
940 : }
941 : next_after_fail324:;
942 : }
943 : }
944 : return NULL_TREE;
945 : }
946 :
947 : tree
948 40511 : generic_simplify_192 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
949 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
950 : {
951 40511 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
952 40511 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail331;
953 40511 : {
954 40511 : tree res_op0;
955 40511 : res_op0 = captures[0];
956 40511 : tree _r;
957 40511 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
958 40511 : if (TREE_SIDE_EFFECTS (captures[2]))
959 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
960 40511 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 246, __FILE__, __LINE__, true);
961 : return _r;
962 : }
963 0 : next_after_fail331:;
964 0 : return NULL_TREE;
965 : }
966 :
967 : tree
968 8 : generic_simplify_197 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
969 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
970 : const combined_fn ARG_UNUSED (POW))
971 : {
972 8 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
973 8 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
974 : )
975 : {
976 8 : if (!TREE_OVERFLOW (captures[2])
977 : )
978 : {
979 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail337;
980 8 : {
981 8 : tree res_op0;
982 8 : res_op0 = captures[0];
983 8 : tree res_op1;
984 8 : {
985 8 : tree _o1[2], _r1;
986 8 : _o1[0] = captures[2];
987 8 : _o1[1] = build_one_cst (type);
988 8 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
989 8 : res_op1 = _r1;
990 : }
991 8 : tree _r;
992 8 : _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
993 8 : if (!_r)
994 0 : goto next_after_fail337;
995 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 252, __FILE__, __LINE__, true);
996 8 : return _r;
997 : }
998 : next_after_fail337:;
999 : }
1000 : }
1001 : return NULL_TREE;
1002 : }
1003 :
1004 : tree
1005 20163 : generic_simplify_204 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1006 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1007 : const enum tree_code ARG_UNUSED (cmp),
1008 : const enum tree_code ARG_UNUSED (mod))
1009 : {
1010 20163 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1011 20163 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1012 : )
1013 : {
1014 20163 : {
1015 20163 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
1016 20163 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail344;
1017 20163 : {
1018 20163 : tree res_op0;
1019 20163 : {
1020 20163 : tree _o1[2], _r1;
1021 20163 : {
1022 20163 : tree _o2[1], _r2;
1023 20163 : _o2[0] = captures[0];
1024 20163 : if (TREE_TYPE (_o2[0]) != utype)
1025 : {
1026 20163 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
1027 : }
1028 : else
1029 : _r2 = _o2[0];
1030 20163 : _o1[0] = _r2;
1031 : }
1032 20163 : {
1033 20163 : tree _o2[1], _r2;
1034 20163 : _o2[0] = captures[1];
1035 20163 : if (TREE_TYPE (_o2[0]) != utype)
1036 : {
1037 20163 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
1038 : }
1039 : else
1040 : _r2 = _o2[0];
1041 20163 : _o1[1] = _r2;
1042 : }
1043 20163 : _r1 = fold_build2_loc (loc, mod, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1044 20163 : res_op0 = _r1;
1045 : }
1046 20163 : tree res_op1;
1047 20163 : {
1048 20163 : tree _o1[1], _r1;
1049 20163 : _o1[0] = captures[2];
1050 20163 : if (TREE_TYPE (_o1[0]) != utype)
1051 : {
1052 20163 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
1053 : }
1054 : else
1055 : _r1 = _o1[0];
1056 20163 : res_op1 = _r1;
1057 : }
1058 20163 : tree _r;
1059 20163 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1060 20163 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 259, __FILE__, __LINE__, true);
1061 20163 : return _r;
1062 : }
1063 0 : next_after_fail344:;
1064 : }
1065 : }
1066 : return NULL_TREE;
1067 : }
1068 :
1069 : tree
1070 7411 : generic_simplify_217 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1071 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1072 : const enum tree_code ARG_UNUSED (op))
1073 : {
1074 7411 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1075 7411 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail373;
1076 7411 : {
1077 7411 : tree res_op0;
1078 7411 : res_op0 = captures[1];
1079 7411 : tree res_op1;
1080 7411 : res_op1 = captures[2];
1081 7411 : tree _r;
1082 7411 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1083 7411 : if (TREE_SIDE_EFFECTS (captures[0]))
1084 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1085 7411 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 287, __FILE__, __LINE__, true);
1086 : return _r;
1087 : }
1088 0 : next_after_fail373:;
1089 0 : return NULL_TREE;
1090 : }
1091 :
1092 : tree
1093 6 : generic_simplify_224 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1094 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1095 : const enum tree_code ARG_UNUSED (neeq))
1096 : {
1097 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1098 6 : {
1099 6 : poly_int64 diff; tree inner_type = TREE_TYPE (captures[1]);
1100 6 : if (ptr_difference_const (captures[0], captures[2], &diff)
1101 : )
1102 : {
1103 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail380;
1104 0 : {
1105 0 : tree res_op0;
1106 0 : {
1107 0 : tree _o1[2], _r1;
1108 0 : _o1[0] = build_int_cst_type (inner_type, diff);
1109 0 : _o1[1] = captures[1];
1110 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1111 0 : res_op0 = _r1;
1112 : }
1113 0 : tree res_op1;
1114 0 : res_op1 = captures[3];
1115 0 : tree _r;
1116 0 : _r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
1117 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1118 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1119 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1120 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1121 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 293, __FILE__, __LINE__, true);
1122 0 : return _r;
1123 : }
1124 0 : next_after_fail380:;
1125 : }
1126 : }
1127 6 : return NULL_TREE;
1128 : }
1129 :
1130 : tree
1131 13 : generic_simplify_234 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1132 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1133 : const enum tree_code ARG_UNUSED (cmp))
1134 : {
1135 13 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1136 13 : if (tree_fits_shwi_p (captures[3])
1137 13 : && tree_to_shwi (captures[3]) > 0
1138 26 : && tree_to_shwi (captures[3]) < TYPE_PRECISION (TREE_TYPE (captures[2]))
1139 : )
1140 : {
1141 13 : if (tree_to_shwi (captures[3]) > wi::ctz (wi::to_wide (captures[5]))
1142 : )
1143 : {
1144 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail393;
1145 0 : {
1146 0 : tree _r;
1147 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1148 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1149 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1150 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1151 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1152 0 : if (TREE_SIDE_EFFECTS (captures[4]))
1153 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
1154 0 : if (TREE_SIDE_EFFECTS (captures[5]))
1155 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
1156 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 306, __FILE__, __LINE__, true);
1157 0 : return _r;
1158 : }
1159 0 : next_after_fail393:;
1160 : }
1161 : else
1162 : {
1163 13 : {
1164 13 : wide_int c1 = wi::to_wide (captures[3]);
1165 13 : wide_int c2 = wi::lrshift (wi::to_wide (captures[4]), c1);
1166 13 : wide_int c3 = wi::lrshift (wi::to_wide (captures[5]), c1);
1167 13 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail394;
1168 13 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail394;
1169 13 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail394;
1170 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail394;
1171 13 : {
1172 13 : tree res_op0;
1173 13 : {
1174 13 : tree _o1[2], _r1;
1175 13 : _o1[0] = captures[2];
1176 13 : _o1[1] = wide_int_to_tree (TREE_TYPE (captures[2]), c2);
1177 13 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1178 13 : res_op0 = _r1;
1179 : }
1180 13 : tree res_op1;
1181 13 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[2]), c3);
1182 13 : tree _r;
1183 13 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1184 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 307, __FILE__, __LINE__, true);
1185 13 : return _r;
1186 : }
1187 0 : next_after_fail394:;
1188 13 : }
1189 : }
1190 : }
1191 : return NULL_TREE;
1192 : }
1193 :
1194 : tree
1195 92774 : generic_simplify_247 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1196 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1197 : const enum tree_code ARG_UNUSED (cmp))
1198 : {
1199 92774 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1200 92774 : if (single_use (captures[0])
1201 : )
1202 : {
1203 92774 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail416;
1204 92774 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail416;
1205 92774 : {
1206 92774 : tree res_op0;
1207 92774 : res_op0 = captures[1];
1208 92774 : tree res_op1;
1209 92774 : res_op1 = captures[2];
1210 92774 : tree _r;
1211 92774 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1212 92774 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 329, __FILE__, __LINE__, true);
1213 92774 : return _r;
1214 : }
1215 : next_after_fail416:;
1216 : }
1217 : return NULL_TREE;
1218 : }
1219 :
1220 : tree
1221 926187 : generic_simplify_254 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1222 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1223 : const enum tree_code ARG_UNUSED (cmp),
1224 : const enum tree_code ARG_UNUSED (scmp))
1225 : {
1226 926187 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1227 926187 : if (single_use (captures[0])
1228 926187 : && (TREE_CODE (captures[2]) == INTEGER_CST || TREE_CODE (captures[2]) == VECTOR_CST)
1229 : )
1230 : {
1231 926187 : {
1232 926187 : tree otype = TREE_TYPE (captures[2]);
1233 926187 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail428;
1234 926187 : {
1235 926187 : tree res_op0;
1236 926187 : {
1237 926187 : tree _o1[1], _r1;
1238 926187 : _o1[0] = captures[1];
1239 926187 : if (TREE_TYPE (_o1[0]) != otype)
1240 : {
1241 195 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1242 : }
1243 : else
1244 : _r1 = _o1[0];
1245 926187 : res_op0 = _r1;
1246 : }
1247 926187 : tree res_op1;
1248 926187 : {
1249 926187 : tree _o1[1], _r1;
1250 926187 : _o1[0] = captures[2];
1251 926187 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1252 926187 : res_op1 = _r1;
1253 : }
1254 926187 : tree _r;
1255 926187 : _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
1256 926187 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 340, __FILE__, __LINE__, true);
1257 926187 : return _r;
1258 : }
1259 0 : next_after_fail428:;
1260 : }
1261 : }
1262 : return NULL_TREE;
1263 : }
1264 :
1265 : tree
1266 1255 : generic_simplify_261 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1267 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1268 : const enum tree_code ARG_UNUSED (cmp),
1269 : const enum tree_code ARG_UNUSED (icmp))
1270 : {
1271 1255 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1272 1255 : if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1273 1255 : && ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1274 : )
1275 : {
1276 1255 : {
1277 1255 : format_helper fmt (REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (captures[0]))));
1278 1255 : tree type1 = TREE_TYPE (captures[1]);
1279 1255 : bool type1_signed_p = TYPE_SIGN (type1) == SIGNED;
1280 1255 : tree type2 = TREE_TYPE (captures[2]);
1281 1255 : bool type2_signed_p = TYPE_SIGN (type2) == SIGNED;
1282 1255 : if (fmt.can_represent_integral_type_p (type1)
1283 1255 : && fmt.can_represent_integral_type_p (type2)
1284 : )
1285 : {
1286 229 : if (cmp == ORDERED_EXPR || cmp == UNORDERED_EXPR
1287 : )
1288 : {
1289 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail467;
1290 0 : {
1291 0 : tree _r;
1292 0 : _r = constant_boolean_node (cmp == ORDERED_EXPR, type);
1293 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1294 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1295 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1296 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1297 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 378, __FILE__, __LINE__, true);
1298 183 : return _r;
1299 : }
1300 0 : next_after_fail467:;
1301 : }
1302 : else
1303 : {
1304 229 : if (TYPE_PRECISION (type1) > TYPE_PRECISION (type2)
1305 229 : && type1_signed_p >= type2_signed_p
1306 : )
1307 : {
1308 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail468;
1309 0 : {
1310 0 : tree res_op0;
1311 0 : res_op0 = captures[1];
1312 0 : tree res_op1;
1313 0 : {
1314 0 : tree _o1[1], _r1;
1315 0 : _o1[0] = captures[2];
1316 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1317 : {
1318 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1319 : }
1320 : else
1321 : _r1 = _o1[0];
1322 0 : res_op1 = _r1;
1323 : }
1324 0 : tree _r;
1325 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1326 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 379, __FILE__, __LINE__, true);
1327 0 : return _r;
1328 : }
1329 0 : next_after_fail468:;
1330 : }
1331 : else
1332 : {
1333 229 : if (TYPE_PRECISION (type1) < TYPE_PRECISION (type2)
1334 229 : && type1_signed_p <= type2_signed_p
1335 : )
1336 : {
1337 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail469;
1338 7 : {
1339 7 : tree res_op0;
1340 7 : {
1341 7 : tree _o1[1], _r1;
1342 7 : _o1[0] = captures[1];
1343 7 : if (TREE_TYPE (_o1[0]) != type2)
1344 : {
1345 7 : _r1 = fold_build1_loc (loc, NOP_EXPR, type2, _o1[0]);
1346 : }
1347 : else
1348 : _r1 = _o1[0];
1349 7 : res_op0 = _r1;
1350 : }
1351 7 : tree res_op1;
1352 7 : res_op1 = captures[2];
1353 7 : tree _r;
1354 7 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1355 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 380, __FILE__, __LINE__, true);
1356 7 : return _r;
1357 : }
1358 0 : next_after_fail469:;
1359 : }
1360 : else
1361 : {
1362 222 : if (TYPE_PRECISION (type1) == TYPE_PRECISION (type2)
1363 222 : && type1_signed_p == type2_signed_p
1364 : )
1365 : {
1366 176 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail470;
1367 176 : {
1368 176 : tree res_op0;
1369 176 : res_op0 = captures[1];
1370 176 : tree res_op1;
1371 176 : {
1372 176 : tree _o1[1], _r1;
1373 176 : _o1[0] = captures[2];
1374 176 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1375 : {
1376 1 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1377 : }
1378 : else
1379 : _r1 = _o1[0];
1380 176 : res_op1 = _r1;
1381 : }
1382 176 : tree _r;
1383 176 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1384 176 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 381, __FILE__, __LINE__, true);
1385 176 : return _r;
1386 : }
1387 0 : next_after_fail470:;
1388 : }
1389 : }
1390 : }
1391 : }
1392 : }
1393 : }
1394 : }
1395 : return NULL_TREE;
1396 : }
1397 :
1398 : tree
1399 0 : generic_simplify_273 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1400 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1401 : const enum tree_code ARG_UNUSED (cmp))
1402 : {
1403 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1404 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
1405 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1406 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1407 0 : && TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2]))
1408 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
1409 0 : && !wi::neg_p (wi::to_wide (captures[3]))
1410 : )
1411 : {
1412 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail505;
1413 0 : {
1414 0 : tree res_op0;
1415 0 : {
1416 0 : tree _o1[2], _r1;
1417 0 : _o1[0] = captures[2];
1418 0 : {
1419 0 : tree _o2[1], _r2;
1420 0 : {
1421 0 : tree _o3[1], _r3;
1422 0 : _o3[0] = captures[3];
1423 0 : _r3 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o3[0]), _o3[0]);
1424 0 : _o2[0] = _r3;
1425 : }
1426 0 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
1427 : {
1428 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
1429 : }
1430 : else
1431 : _r2 = _o2[0];
1432 0 : _o1[1] = _r2;
1433 : }
1434 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1435 0 : res_op0 = _r1;
1436 : }
1437 0 : tree res_op1;
1438 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[2]));
1439 0 : tree _r;
1440 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1441 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 408, __FILE__, __LINE__, true);
1442 0 : return _r;
1443 : }
1444 0 : next_after_fail505:;
1445 : }
1446 : return NULL_TREE;
1447 : }
1448 :
1449 : tree
1450 806996 : generic_simplify_280 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1451 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1452 : const enum tree_code ARG_UNUSED (cmp),
1453 : const enum tree_code ARG_UNUSED (ncmp))
1454 : {
1455 806996 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1456 1550638 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1457 806996 : && type_has_mode_precision_p (TREE_TYPE (captures[1]))
1458 805700 : && element_precision (captures[0]) >= element_precision (captures[1])
1459 1613992 : && wi::only_sign_bit_p (wi::to_wide (captures[2]), element_precision (captures[1]))
1460 : )
1461 : {
1462 12969 : {
1463 12969 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
1464 12969 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail512;
1465 12969 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail512;
1466 12969 : {
1467 12969 : tree res_op0;
1468 12969 : {
1469 12969 : tree _o1[1], _r1;
1470 12969 : _o1[0] = captures[1];
1471 12969 : if (TREE_TYPE (_o1[0]) != stype)
1472 : {
1473 12756 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
1474 : }
1475 : else
1476 : _r1 = _o1[0];
1477 12969 : res_op0 = _r1;
1478 : }
1479 12969 : tree res_op1;
1480 12969 : res_op1 = build_zero_cst (stype);
1481 12969 : tree _r;
1482 12969 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
1483 12969 : if (TREE_SIDE_EFFECTS (captures[2]))
1484 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1485 12969 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 414, __FILE__, __LINE__, true);
1486 12969 : return _r;
1487 : }
1488 : next_after_fail512:;
1489 : }
1490 : }
1491 : return NULL_TREE;
1492 : }
1493 :
1494 : tree
1495 2 : generic_simplify_290 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1496 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1497 : const enum tree_code ARG_UNUSED (cmp))
1498 : {
1499 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1500 4 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
1501 2 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1502 2 : && TYPE_UNSIGNED (TREE_TYPE (captures[2]))
1503 2 : && (TYPE_PRECISION (TREE_TYPE (captures[1]))
1504 2 : >= 2 * TYPE_PRECISION (TREE_TYPE (captures[2])))
1505 2 : && tree_fits_uhwi_p (captures[4])
1506 2 : && tree_to_uhwi (captures[4]) == TYPE_PRECISION (TREE_TYPE (captures[2]))
1507 2 : && types_match (captures[2], captures[3])
1508 2 : && type_has_mode_precision_p (TREE_TYPE (captures[2]))
1509 6 : && (optab_handler (umulv4_optab, TYPE_MODE (TREE_TYPE (captures[2])))
1510 : != CODE_FOR_nothing)
1511 : )
1512 : {
1513 2 : {
1514 2 : tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
1515 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail540;
1516 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail540;
1517 2 : {
1518 2 : tree res_op0;
1519 2 : {
1520 2 : tree _o1[1], _r1;
1521 2 : {
1522 2 : tree _o2[2], _r2;
1523 2 : _o2[0] = captures[2];
1524 2 : _o2[1] = captures[3];
1525 2 : _r2 = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, _o2[0], _o2[1]);
1526 2 : if (!_r2)
1527 0 : goto next_after_fail540;
1528 2 : _o1[0] = _r2;
1529 : }
1530 2 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
1531 2 : res_op0 = _r1;
1532 : }
1533 2 : tree res_op1;
1534 2 : res_op1 = build_zero_cst (t);
1535 2 : tree _r;
1536 2 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1537 2 : if (TREE_SIDE_EFFECTS (captures[4]))
1538 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
1539 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 433, __FILE__, __LINE__, true);
1540 2 : return _r;
1541 : }
1542 : next_after_fail540:;
1543 : }
1544 : }
1545 : return NULL_TREE;
1546 : }
1547 :
1548 : tree
1549 366 : generic_simplify_293 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1550 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1551 : const enum tree_code ARG_UNUSED (op),
1552 : const enum tree_code ARG_UNUSED (cmp),
1553 : const combined_fn ARG_UNUSED (clz))
1554 : {
1555 366 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1556 366 : if (!sanitize_flags_p (SANITIZE_BUILTIN)
1557 366 : || (cfun && (cfun->curr_properties & PROP_ssa) != 0)
1558 : )
1559 : {
1560 302 : if (integer_zerop (captures[2]) && single_use (captures[0])
1561 : )
1562 : {
1563 59 : {
1564 59 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
1565 59 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail552;
1566 59 : {
1567 59 : tree res_op0;
1568 59 : {
1569 59 : tree _o1[1], _r1;
1570 59 : _o1[0] = captures[1];
1571 59 : if (TREE_TYPE (_o1[0]) != stype)
1572 : {
1573 59 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
1574 : }
1575 : else
1576 : _r1 = _o1[0];
1577 59 : res_op0 = _r1;
1578 : }
1579 59 : tree res_op1;
1580 59 : res_op1 = build_zero_cst (stype);
1581 59 : tree _r;
1582 59 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1583 59 : if (TREE_SIDE_EFFECTS (captures[2]))
1584 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1585 59 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 445, __FILE__, __LINE__, true);
1586 59 : return _r;
1587 : }
1588 0 : next_after_fail552:;
1589 : }
1590 : }
1591 : else
1592 : {
1593 243 : if (wi::to_wide (captures[2]) == TYPE_PRECISION (TREE_TYPE (captures[1])) - 1
1594 : )
1595 : {
1596 79 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail553;
1597 79 : {
1598 79 : tree res_op0;
1599 79 : res_op0 = captures[1];
1600 79 : tree res_op1;
1601 79 : res_op1 = build_one_cst (TREE_TYPE (captures[1]));
1602 79 : tree _r;
1603 79 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1604 79 : if (TREE_SIDE_EFFECTS (captures[2]))
1605 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1606 79 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 446, __FILE__, __LINE__, true);
1607 79 : return _r;
1608 : }
1609 0 : next_after_fail553:;
1610 : }
1611 : }
1612 : }
1613 : return NULL_TREE;
1614 : }
1615 :
1616 : tree
1617 0 : generic_simplify_296 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1618 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1619 : const enum tree_code ARG_UNUSED (op))
1620 : {
1621 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1622 0 : {
1623 0 : HOST_WIDE_INT zero_val = tree_to_shwi (captures[2]);
1624 0 : tree type0 = TREE_TYPE (captures[1]);
1625 0 : int prec = TYPE_PRECISION (type0);
1626 0 : if (prec <= MAX_FIXED_MODE_SIZE
1627 : )
1628 : {
1629 0 : if (tree_int_cst_sgn (captures[3]) < 0 || wi::to_widest (captures[3]) >= prec
1630 : )
1631 : {
1632 0 : if (zero_val != wi::to_widest (captures[3])
1633 : )
1634 : {
1635 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail558;
1636 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail558;
1637 0 : {
1638 0 : tree _r;
1639 0 : _r = constant_boolean_node (op == EQ_EXPR ? false : true, type);
1640 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1641 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1642 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1643 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1644 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 451, __FILE__, __LINE__, true);
1645 0 : return _r;
1646 : }
1647 0 : next_after_fail558:;
1648 : }
1649 : }
1650 : else
1651 : {
1652 0 : if (zero_val < 0 || zero_val >= prec
1653 : )
1654 : {
1655 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail559;
1656 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail559;
1657 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail559;
1658 0 : {
1659 0 : tree res_op0;
1660 0 : {
1661 0 : tree _o1[2], _r1;
1662 0 : _o1[0] = captures[1];
1663 0 : _o1[1] = wide_int_to_tree (type0,
1664 0 : wi::mask (tree_to_uhwi (captures[3]) + 1,
1665 : false, prec));
1666 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1667 0 : res_op0 = _r1;
1668 : }
1669 0 : tree res_op1;
1670 0 : res_op1 = wide_int_to_tree (type0,
1671 0 : wi::shifted_mask (tree_to_uhwi (captures[3]), 1,
1672 : false, prec));
1673 0 : tree _r;
1674 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1675 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 452, __FILE__, __LINE__, true);
1676 0 : return _r;
1677 : }
1678 0 : next_after_fail559:;
1679 : }
1680 : }
1681 : }
1682 : }
1683 0 : return NULL_TREE;
1684 : }
1685 :
1686 : tree
1687 2362 : generic_simplify_311 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1688 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1689 : const enum tree_code ARG_UNUSED (div))
1690 : {
1691 2362 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1692 2362 : if (!integer_zerop (captures[1])
1693 : )
1694 : {
1695 1737 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail579;
1696 1737 : {
1697 1737 : tree _r;
1698 1737 : _r = captures[0];
1699 1737 : if (TREE_SIDE_EFFECTS (captures[1]))
1700 59 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1701 1737 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 470, __FILE__, __LINE__, true);
1702 1737 : return _r;
1703 : }
1704 0 : next_after_fail579:;
1705 : }
1706 : return NULL_TREE;
1707 : }
1708 :
1709 : tree
1710 9113 : generic_simplify_317 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1711 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1712 : const enum tree_code ARG_UNUSED (div))
1713 : {
1714 9113 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1715 9113 : {
1716 9113 : wi::overflow_type overflow;
1717 9113 : wide_int mul = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[3]),
1718 18226 : TYPE_SIGN (type), &overflow);
1719 9113 : if (div == EXACT_DIV_EXPR
1720 9113 : || optimize_successive_divisions_p (captures[3], captures[0])
1721 : )
1722 : {
1723 0 : if (!overflow
1724 : )
1725 : {
1726 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail585;
1727 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail585;
1728 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail585;
1729 0 : {
1730 0 : tree res_op0;
1731 0 : res_op0 = captures[1];
1732 0 : tree res_op1;
1733 0 : res_op1 = wide_int_to_tree (type, mul);
1734 0 : tree _r;
1735 0 : _r = fold_build2_loc (loc, div, type, res_op0, res_op1);
1736 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 476, __FILE__, __LINE__, true);
1737 0 : return _r;
1738 : }
1739 9113 : next_after_fail585:;
1740 : }
1741 : else
1742 : {
1743 0 : if (TYPE_UNSIGNED (type)
1744 0 : || mul != wi::min_value (TYPE_PRECISION (type), SIGNED)
1745 : )
1746 : {
1747 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail586;
1748 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail586;
1749 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail586;
1750 0 : {
1751 0 : tree _r;
1752 0 : _r = build_zero_cst (type);
1753 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1754 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1755 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 477, __FILE__, __LINE__, true);
1756 0 : return _r;
1757 : }
1758 9113 : next_after_fail586:;
1759 : }
1760 : }
1761 : }
1762 0 : }
1763 9113 : return NULL_TREE;
1764 : }
1765 :
1766 : tree
1767 1575935 : generic_simplify_329 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1768 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1769 : const enum tree_code ARG_UNUSED (mod))
1770 : {
1771 1575935 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1772 1856787 : if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0]))
1773 1297547 : && INTEGRAL_TYPE_P (type)
1774 1297547 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1775 1297547 : && (TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[1]))
1776 3 : || TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1777 1 : || !TYPE_UNSIGNED (type))
1778 2873482 : && integer_pow2p (captures[2]) && tree_int_cst_sgn (captures[2]) > 0
1779 : )
1780 : {
1781 953481 : {
1782 953481 : tree utype = TREE_TYPE (captures[1]);
1783 953481 : if (!TYPE_OVERFLOW_WRAPS (utype))
1784 303 : utype = unsigned_type_for (utype);
1785 953481 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail598;
1786 953481 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail598;
1787 953481 : {
1788 953481 : tree res_op0;
1789 953481 : res_op0 = captures[0];
1790 953481 : tree res_op1;
1791 953481 : {
1792 953481 : tree _o1[1], _r1;
1793 953481 : {
1794 953481 : tree _o2[2], _r2;
1795 953481 : {
1796 953481 : tree _o3[1], _r3;
1797 953481 : _o3[0] = captures[1];
1798 953481 : if (TREE_TYPE (_o3[0]) != utype)
1799 : {
1800 303 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
1801 : }
1802 : else
1803 : _r3 = _o3[0];
1804 953481 : _o2[0] = _r3;
1805 : }
1806 953481 : _o2[1] = build_one_cst (utype);
1807 953481 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1808 953481 : _o1[0] = _r2;
1809 : }
1810 953481 : if (TREE_TYPE (_o1[0]) != type)
1811 : {
1812 19333 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
1813 : }
1814 : else
1815 : _r1 = _o1[0];
1816 953481 : res_op1 = _r1;
1817 : }
1818 953481 : tree _r;
1819 953481 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
1820 953481 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 489, __FILE__, __LINE__, true);
1821 953481 : return _r;
1822 : }
1823 : next_after_fail598:;
1824 : }
1825 : }
1826 : return NULL_TREE;
1827 : }
1828 :
1829 : tree
1830 39 : generic_simplify_346 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1831 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1832 : const enum tree_code ARG_UNUSED (cmp),
1833 : const enum tree_code ARG_UNUSED (minmax))
1834 : {
1835 39 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1836 39 : {
1837 39 : tree_code code = minmax_from_comparison (cmp, captures[0], captures[1], captures[0], captures[4]);
1838 39 : if ((cmp == LT_EXPR || cmp == LE_EXPR)
1839 15 : && code == MIN_EXPR
1840 43 : && integer_nonzerop (fold_build2 (LE_EXPR, boolean_type_node, captures[3], captures[4]))
1841 : )
1842 : {
1843 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail621;
1844 4 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail621;
1845 4 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail621;
1846 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail621;
1847 4 : {
1848 4 : tree res_op0;
1849 4 : res_op0 = captures[2];
1850 4 : tree res_op1;
1851 4 : res_op1 = captures[4];
1852 4 : tree _r;
1853 4 : _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
1854 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 512, __FILE__, __LINE__, true);
1855 4 : return _r;
1856 : }
1857 : next_after_fail621:;
1858 : }
1859 : else
1860 : {
1861 35 : if ((cmp == GT_EXPR || cmp == GE_EXPR)
1862 24 : && code == MAX_EXPR
1863 59 : && integer_nonzerop (fold_build2 (GE_EXPR, boolean_type_node, captures[3], captures[4]))
1864 : )
1865 : {
1866 10 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail622;
1867 10 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail622;
1868 10 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail622;
1869 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail622;
1870 10 : {
1871 10 : tree res_op0;
1872 10 : res_op0 = captures[2];
1873 10 : tree res_op1;
1874 10 : res_op1 = captures[4];
1875 10 : tree _r;
1876 10 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
1877 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 513, __FILE__, __LINE__, true);
1878 10 : return _r;
1879 : }
1880 : next_after_fail622:;
1881 : }
1882 : }
1883 : }
1884 : return NULL_TREE;
1885 : }
1886 :
1887 : tree
1888 51 : generic_simplify_359 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1889 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1890 : const enum tree_code ARG_UNUSED (op))
1891 : {
1892 51 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1893 51 : if (bitwise_equal_p (captures[0], captures[2])
1894 1 : && tree_expr_nonzero_p (captures[3])
1895 52 : && expr_no_side_effects_p (captures[2])
1896 : )
1897 : {
1898 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail636;
1899 1 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail636;
1900 1 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail636;
1901 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail636;
1902 1 : {
1903 1 : tree _r;
1904 1 : _r = captures[1];
1905 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 527, __FILE__, __LINE__, true);
1906 1 : return _r;
1907 : }
1908 : next_after_fail636:;
1909 : }
1910 : return NULL_TREE;
1911 : }
1912 :
1913 : tree
1914 9 : generic_simplify_368 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1915 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1916 : const combined_fn ARG_UNUSED (func))
1917 : {
1918 9 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1919 9 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail646;
1920 9 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail646;
1921 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail646;
1922 9 : {
1923 9 : tree _r;
1924 9 : _r = captures[2];
1925 9 : if (TREE_SIDE_EFFECTS (captures[1]))
1926 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1927 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 537, __FILE__, __LINE__, true);
1928 : return _r;
1929 : }
1930 : next_after_fail646:;
1931 : return NULL_TREE;
1932 : }
1933 :
1934 : tree
1935 100 : generic_simplify_376 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1936 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1937 : const enum tree_code ARG_UNUSED (cmp))
1938 : {
1939 100 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1940 100 : if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1941 : )
1942 : {
1943 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail657;
1944 0 : {
1945 0 : tree _r;
1946 0 : _r = constant_boolean_node (cmp == LT_EXPR, type);
1947 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1948 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1949 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1950 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1951 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 546, __FILE__, __LINE__, true);
1952 0 : return _r;
1953 : }
1954 0 : next_after_fail657:;
1955 : }
1956 : return NULL_TREE;
1957 : }
1958 :
1959 : tree
1960 433 : generic_simplify_382 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1961 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1962 : const enum tree_code ARG_UNUSED (op))
1963 : {
1964 433 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1965 866 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1966 866 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
1967 : )
1968 : {
1969 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail664;
1970 0 : {
1971 0 : tree res_op0;
1972 0 : res_op0 = captures[2];
1973 0 : tree res_op1;
1974 0 : res_op1 = captures[1];
1975 0 : tree _r;
1976 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1977 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1978 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1979 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 553, __FILE__, __LINE__, true);
1980 0 : return _r;
1981 : }
1982 0 : next_after_fail664:;
1983 : }
1984 : return NULL_TREE;
1985 : }
1986 :
1987 : tree
1988 6 : generic_simplify_388 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1989 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1990 : const enum tree_code ARG_UNUSED (cmp))
1991 : {
1992 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1993 12 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1994 12 : && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1995 : )
1996 : {
1997 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail671;
1998 6 : {
1999 6 : tree res_op0;
2000 6 : res_op0 = captures[0];
2001 6 : tree res_op1;
2002 6 : res_op1 = captures[1];
2003 6 : tree _r;
2004 6 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2005 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 560, __FILE__, __LINE__, true);
2006 6 : return _r;
2007 : }
2008 0 : next_after_fail671:;
2009 : }
2010 : return NULL_TREE;
2011 : }
2012 :
2013 : tree
2014 165 : generic_simplify_395 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2015 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2016 : const enum tree_code ARG_UNUSED (cmp),
2017 : const enum tree_code ARG_UNUSED (out))
2018 : {
2019 165 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2020 165 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
2021 165 : && types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[0]))
2022 93 : && tree_nop_conversion_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[3]))
2023 165 : && wi::to_wide (captures[4]) != 0
2024 0 : && single_use (captures[1])
2025 : )
2026 : {
2027 93 : {
2028 93 : unsigned int prec = TYPE_PRECISION (TREE_TYPE (captures[3]));
2029 93 : signop sign = TYPE_SIGN (TREE_TYPE (captures[3]));
2030 93 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail710;
2031 93 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail710;
2032 93 : {
2033 93 : tree res_op0;
2034 93 : res_op0 = captures[3];
2035 93 : tree res_op1;
2036 93 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[3]),
2037 93 : wi::max_value (prec, sign)
2038 279 : - wi::to_wide (captures[4]));
2039 93 : tree _r;
2040 93 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2041 93 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 562, __FILE__, __LINE__, true);
2042 93 : return _r;
2043 : }
2044 : next_after_fail710:;
2045 : }
2046 : }
2047 : return NULL_TREE;
2048 : }
2049 :
2050 : tree
2051 50 : generic_simplify_403 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2052 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2053 : const enum tree_code ARG_UNUSED (op),
2054 : const enum tree_code ARG_UNUSED (cmp),
2055 : const combined_fn ARG_UNUSED (ctz))
2056 : {
2057 50 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2058 50 : {
2059 50 : bool ok = true;
2060 50 : HOST_WIDE_INT val = 0;
2061 50 : if (sanitize_flags_p (SANITIZE_BUILTIN)
2062 50 : && (!cfun
2063 32 : || (cfun->curr_properties & PROP_ssa) == 0))
2064 : ok = false;
2065 18 : else if (!tree_fits_shwi_p (captures[2]))
2066 : ok = false;
2067 : else
2068 : {
2069 18 : val = tree_to_shwi (captures[2]);
2070 18 : if (op == GT_EXPR || op == LE_EXPR)
2071 : {
2072 10 : if (val == HOST_WIDE_INT_MAX)
2073 : ok = false;
2074 : else
2075 10 : val++;
2076 : }
2077 : }
2078 50 : tree type0 = TREE_TYPE (captures[1]);
2079 50 : int prec = TYPE_PRECISION (type0);
2080 68 : if (ok && prec <= MAX_FIXED_MODE_SIZE
2081 : )
2082 : {
2083 18 : if (val <= 0
2084 : )
2085 : {
2086 8 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail721;
2087 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail721;
2088 8 : {
2089 8 : tree _r;
2090 8 : _r = constant_boolean_node (cmp == EQ_EXPR ? true : false, type);
2091 8 : if (TREE_SIDE_EFFECTS (captures[1]))
2092 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2093 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 593, __FILE__, __LINE__, true);
2094 8 : return _r;
2095 : }
2096 : next_after_fail721:;
2097 : }
2098 : else
2099 : {
2100 10 : if (val >= prec
2101 : )
2102 : {
2103 5 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail722;
2104 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail722;
2105 5 : {
2106 5 : tree _r;
2107 5 : _r = constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
2108 5 : if (TREE_SIDE_EFFECTS (captures[1]))
2109 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2110 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 594, __FILE__, __LINE__, true);
2111 5 : return _r;
2112 : }
2113 : next_after_fail722:;
2114 : }
2115 : else
2116 : {
2117 5 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail723;
2118 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail723;
2119 5 : {
2120 5 : tree res_op0;
2121 5 : {
2122 5 : tree _o1[2], _r1;
2123 5 : _o1[0] = captures[1];
2124 5 : _o1[1] = wide_int_to_tree (type0,
2125 5 : wi::mask (val, false, prec));
2126 5 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2127 5 : res_op0 = _r1;
2128 : }
2129 5 : tree res_op1;
2130 5 : res_op1 = build_zero_cst (type0);
2131 5 : tree _r;
2132 5 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2133 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 595, __FILE__, __LINE__, true);
2134 5 : return _r;
2135 : }
2136 : next_after_fail723:;
2137 : }
2138 : }
2139 : }
2140 : }
2141 : return NULL_TREE;
2142 : }
2143 :
2144 : tree
2145 355 : generic_simplify_416 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2146 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2147 : const enum tree_code ARG_UNUSED (shift),
2148 : const enum tree_code ARG_UNUSED (mod))
2149 : {
2150 355 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2151 355 : if (integer_pow2p (captures[3]) && tree_int_cst_sgn (captures[3]) > 0
2152 : )
2153 : {
2154 280 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail742;
2155 280 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail742;
2156 280 : {
2157 280 : tree res_op0;
2158 280 : res_op0 = captures[0];
2159 280 : tree res_op1;
2160 280 : {
2161 280 : tree _o1[2], _r1;
2162 280 : _o1[0] = captures[1];
2163 280 : {
2164 280 : tree _o2[2], _r2;
2165 280 : _o2[0] = captures[2];
2166 280 : _o2[1] = build_int_cst (TREE_TYPE (captures[2]),
2167 : 1);
2168 280 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2169 280 : _o1[1] = _r2;
2170 : }
2171 280 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2172 280 : res_op1 = _r1;
2173 : }
2174 280 : tree _r;
2175 280 : _r = fold_build2_loc (loc, shift, type, res_op0, res_op1);
2176 280 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 610, __FILE__, __LINE__, true);
2177 280 : return _r;
2178 : }
2179 : next_after_fail742:;
2180 : }
2181 : return NULL_TREE;
2182 : }
2183 :
2184 : tree
2185 27461 : generic_simplify_425 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2186 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2187 : const enum tree_code ARG_UNUSED (bit_op),
2188 : const enum tree_code ARG_UNUSED (shift))
2189 : {
2190 27461 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2191 27461 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
2192 : )
2193 : {
2194 27461 : {
2195 27461 : tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
2196 27461 : if (mask
2197 : )
2198 : {
2199 27454 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail754;
2200 27454 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail754;
2201 27454 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail754;
2202 27454 : {
2203 27454 : tree res_op0;
2204 27454 : {
2205 27454 : tree _o1[2], _r1;
2206 27454 : {
2207 27454 : tree _o2[1], _r2;
2208 27454 : _o2[0] = captures[2];
2209 27454 : if (TREE_TYPE (_o2[0]) != type)
2210 : {
2211 70 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
2212 : }
2213 : else
2214 : _r2 = _o2[0];
2215 27454 : _o1[0] = _r2;
2216 : }
2217 27454 : _o1[1] = captures[4];
2218 27454 : _r1 = fold_build2_loc (loc, shift, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2219 27454 : res_op0 = _r1;
2220 : }
2221 27454 : tree res_op1;
2222 27454 : res_op1 = mask;
2223 27454 : tree _r;
2224 27454 : _r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
2225 27454 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 620, __FILE__, __LINE__, true);
2226 27454 : return _r;
2227 : }
2228 : next_after_fail754:;
2229 : }
2230 : }
2231 : }
2232 : return NULL_TREE;
2233 : }
2234 :
2235 : tree
2236 7275 : generic_simplify_431 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2237 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2238 : const enum tree_code ARG_UNUSED (minmax))
2239 : {
2240 7275 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2241 7275 : if (INTEGRAL_TYPE_P (type)
2242 7275 : && types_match (captures[1], type) && int_fits_type_p (captures[2], type)
2243 633 : && TYPE_SIGN (TREE_TYPE (captures[0])) == TYPE_SIGN (type)
2244 7275 : && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type)
2245 : )
2246 : {
2247 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail766;
2248 0 : {
2249 0 : tree res_op0;
2250 0 : res_op0 = captures[1];
2251 0 : tree res_op1;
2252 0 : {
2253 0 : tree _o1[1], _r1;
2254 0 : _o1[0] = captures[2];
2255 0 : if (TREE_TYPE (_o1[0]) != type)
2256 : {
2257 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2258 : }
2259 : else
2260 : _r1 = _o1[0];
2261 0 : res_op1 = _r1;
2262 : }
2263 0 : tree _r;
2264 0 : _r = fold_build2_loc (loc, minmax, type, res_op0, res_op1);
2265 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 632, __FILE__, __LINE__, true);
2266 0 : return _r;
2267 : }
2268 0 : next_after_fail766:;
2269 : }
2270 : return NULL_TREE;
2271 : }
2272 :
2273 : tree
2274 2439866 : generic_simplify_434 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2275 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2276 : const enum tree_code ARG_UNUSED (op))
2277 : {
2278 2439866 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2279 2439866 : if (INTEGRAL_TYPE_P (type)
2280 1989156 : && op != MULT_EXPR
2281 1989156 : && op != RDIV_EXPR
2282 1309090 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2283 1309090 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2284 1309090 : && type_has_mode_precision_p (TREE_TYPE (captures[2]))
2285 1308711 : && type_has_mode_precision_p (TREE_TYPE (captures[4]))
2286 1307941 : && type_has_mode_precision_p (type)
2287 1304088 : && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
2288 0 : && types_match (captures[2], type)
2289 2439866 : && (types_match (captures[2], captures[4])
2290 0 : || poly_int_tree_p (captures[3]))
2291 : )
2292 : {
2293 0 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
2294 : )
2295 : {
2296 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail775;
2297 0 : {
2298 0 : tree res_op0;
2299 0 : res_op0 = captures[2];
2300 0 : tree res_op1;
2301 0 : {
2302 0 : tree _o1[1], _r1;
2303 0 : _o1[0] = captures[4];
2304 0 : if (TREE_TYPE (_o1[0]) != type)
2305 : {
2306 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2307 : }
2308 : else
2309 : _r1 = _o1[0];
2310 0 : res_op1 = _r1;
2311 : }
2312 0 : tree _r;
2313 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2314 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 633, __FILE__, __LINE__, true);
2315 0 : return _r;
2316 : }
2317 0 : next_after_fail775:;
2318 : }
2319 : else
2320 : {
2321 0 : {
2322 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
2323 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail776;
2324 0 : {
2325 0 : tree res_op0;
2326 0 : {
2327 0 : tree _o1[2], _r1;
2328 0 : {
2329 0 : tree _o2[1], _r2;
2330 0 : _o2[0] = captures[2];
2331 0 : if (TREE_TYPE (_o2[0]) != utype)
2332 : {
2333 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2334 : }
2335 : else
2336 : _r2 = _o2[0];
2337 0 : _o1[0] = _r2;
2338 : }
2339 0 : {
2340 0 : tree _o2[1], _r2;
2341 0 : _o2[0] = captures[4];
2342 0 : if (TREE_TYPE (_o2[0]) != utype)
2343 : {
2344 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2345 : }
2346 : else
2347 : _r2 = _o2[0];
2348 0 : _o1[1] = _r2;
2349 : }
2350 0 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2351 0 : res_op0 = _r1;
2352 : }
2353 0 : tree _r;
2354 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2355 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 634, __FILE__, __LINE__, true);
2356 0 : return _r;
2357 : }
2358 0 : next_after_fail776:;
2359 : }
2360 : }
2361 : }
2362 : else
2363 : {
2364 2427420 : if (FLOAT_TYPE_P (type)
2365 2452312 : && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
2366 12446 : == DECIMAL_FLOAT_TYPE_P (type)
2367 : )
2368 : {
2369 12423 : {
2370 12423 : tree arg0 = strip_float_extensions (captures[2]);
2371 12423 : tree arg1 = strip_float_extensions (captures[4]);
2372 12423 : tree itype = TREE_TYPE (captures[0]);
2373 12423 : tree ty1 = TREE_TYPE (arg0);
2374 12423 : tree ty2 = TREE_TYPE (arg1);
2375 12423 : enum tree_code code = TREE_CODE (itype);
2376 0 : if (FLOAT_TYPE_P (ty1)
2377 12423 : && FLOAT_TYPE_P (ty2)
2378 : )
2379 : {
2380 12423 : {
2381 12423 : tree newtype = type;
2382 12423 : if (TYPE_MODE (ty1) == SDmode
2383 12414 : || TYPE_MODE (ty2) == SDmode
2384 24837 : || TYPE_MODE (type) == SDmode)
2385 9 : newtype = dfloat32_type_node;
2386 12423 : if (TYPE_MODE (ty1) == DDmode
2387 12417 : || TYPE_MODE (ty2) == DDmode
2388 24840 : || TYPE_MODE (type) == DDmode)
2389 6 : newtype = dfloat64_type_node;
2390 12423 : if (TYPE_MODE (ty1) == TDmode
2391 12423 : || TYPE_MODE (ty2) == TDmode
2392 24846 : || TYPE_MODE (type) == TDmode)
2393 15 : newtype = dfloat128_type_node;
2394 12423 : if ((newtype == dfloat32_type_node
2395 12423 : || newtype == dfloat64_type_node
2396 12423 : || newtype == dfloat128_type_node)
2397 15 : && newtype == type
2398 12429 : && types_match (newtype, type)
2399 : )
2400 : {
2401 6 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail777;
2402 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail777;
2403 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail777;
2404 0 : {
2405 0 : tree res_op0;
2406 0 : {
2407 0 : tree _o1[1], _r1;
2408 0 : _o1[0] = captures[2];
2409 0 : if (TREE_TYPE (_o1[0]) != newtype)
2410 : {
2411 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
2412 : }
2413 : else
2414 : _r1 = _o1[0];
2415 0 : res_op0 = _r1;
2416 : }
2417 0 : tree res_op1;
2418 0 : {
2419 0 : tree _o1[1], _r1;
2420 0 : _o1[0] = captures[4];
2421 0 : if (TREE_TYPE (_o1[0]) != newtype)
2422 : {
2423 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
2424 : }
2425 : else
2426 : _r1 = _o1[0];
2427 0 : res_op1 = _r1;
2428 : }
2429 0 : tree _r;
2430 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2431 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 635, __FILE__, __LINE__, true);
2432 0 : return _r;
2433 : }
2434 : next_after_fail777:;
2435 : }
2436 : else
2437 : {
2438 12417 : {
2439 12417 : if (element_precision (ty1) > element_precision (newtype))
2440 751 : newtype = ty1;
2441 12417 : if (element_precision (ty2) > element_precision (newtype))
2442 2 : newtype = ty2;
2443 12417 : if (element_precision (newtype) < element_precision (itype)
2444 11112 : && (!VECTOR_MODE_P (TYPE_MODE (newtype))
2445 0 : || target_supports_op_p (newtype, op, optab_default))
2446 11112 : && (flag_unsafe_math_optimizations
2447 11100 : || (element_precision (newtype) == element_precision (type)
2448 11096 : && real_can_shorten_arithmetic (element_mode (itype),
2449 : element_mode (type))
2450 4066 : && !excess_precision_type (newtype)))
2451 13090 : && !types_match (itype, newtype)
2452 : )
2453 : {
2454 673 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail778;
2455 673 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail778;
2456 655 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail778;
2457 655 : {
2458 655 : tree res_op0;
2459 655 : {
2460 655 : tree _o1[2], _r1;
2461 655 : {
2462 655 : tree _o2[1], _r2;
2463 655 : _o2[0] = captures[2];
2464 655 : if (TREE_TYPE (_o2[0]) != newtype)
2465 : {
2466 655 : _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
2467 : }
2468 : else
2469 : _r2 = _o2[0];
2470 655 : _o1[0] = _r2;
2471 : }
2472 655 : {
2473 655 : tree _o2[1], _r2;
2474 655 : _o2[0] = captures[4];
2475 655 : if (TREE_TYPE (_o2[0]) != newtype)
2476 : {
2477 604 : _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
2478 : }
2479 : else
2480 : _r2 = _o2[0];
2481 655 : _o1[1] = _r2;
2482 : }
2483 655 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2484 655 : res_op0 = _r1;
2485 : }
2486 655 : tree _r;
2487 655 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2488 655 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 636, __FILE__, __LINE__, true);
2489 655 : return _r;
2490 : }
2491 : next_after_fail778:;
2492 : }
2493 : }
2494 : }
2495 : }
2496 : }
2497 : }
2498 : }
2499 : }
2500 : return NULL_TREE;
2501 : }
2502 :
2503 : tree
2504 1667 : generic_simplify_465 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2505 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2506 : {
2507 1667 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2508 1667 : {
2509 1667 : bool wascmp;
2510 1667 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
2511 1667 : || bitwise_inverted_equal_p (captures[1], captures[2], wascmp)
2512 : )
2513 : {
2514 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail812;
2515 8 : {
2516 8 : tree _r;
2517 8 : _r = wascmp ? constant_boolean_node (false, type) : build_zero_cst (type);
2518 8 : if (TREE_SIDE_EFFECTS (captures[0]))
2519 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2520 8 : if (TREE_SIDE_EFFECTS (captures[1]))
2521 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2522 8 : if (TREE_SIDE_EFFECTS (captures[2]))
2523 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2524 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 665, __FILE__, __LINE__, true);
2525 8 : return _r;
2526 : }
2527 0 : next_after_fail812:;
2528 : }
2529 : }
2530 1659 : return NULL_TREE;
2531 : }
2532 :
2533 : tree
2534 0 : generic_simplify_476 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2535 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2536 : {
2537 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2538 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail844;
2539 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail844;
2540 0 : {
2541 0 : tree _r;
2542 0 : _r = captures[2];
2543 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2544 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2545 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 687, __FILE__, __LINE__, true);
2546 : return _r;
2547 : }
2548 : next_after_fail844:;
2549 : return NULL_TREE;
2550 : }
2551 :
2552 : tree
2553 3 : generic_simplify_481 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2554 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2555 : {
2556 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2557 6 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2558 6 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
2559 : )
2560 : {
2561 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail862;
2562 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail862;
2563 3 : {
2564 3 : tree res_op0;
2565 3 : res_op0 = captures[3];
2566 3 : tree res_op1;
2567 3 : {
2568 3 : tree _o1[2], _r1;
2569 3 : _o1[0] = captures[1];
2570 3 : _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
2571 3 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2572 3 : res_op1 = _r1;
2573 : }
2574 3 : tree _r;
2575 3 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2576 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 689, __FILE__, __LINE__, true);
2577 3 : return _r;
2578 : }
2579 : next_after_fail862:;
2580 : }
2581 : return NULL_TREE;
2582 : }
2583 :
2584 : tree
2585 32530 : generic_simplify_488 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2586 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2587 : const enum tree_code ARG_UNUSED (shift))
2588 : {
2589 32530 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2590 32530 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2591 22380 : && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
2592 22380 : && tree_fits_uhwi_p (captures[4])
2593 22380 : && tree_to_uhwi (captures[4]) > 0
2594 54910 : && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
2595 : )
2596 : {
2597 22380 : {
2598 22380 : unsigned int shiftc = tree_to_uhwi (captures[4]);
2599 22380 : unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
2600 22380 : unsigned HOST_WIDE_INT newmask, zerobits = 0;
2601 22380 : tree shift_type = TREE_TYPE (captures[2]);
2602 22380 : unsigned int prec;
2603 22380 : if (shift == LSHIFT_EXPR)
2604 0 : zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
2605 22380 : else if (shift == RSHIFT_EXPR
2606 22380 : && type_has_mode_precision_p (shift_type))
2607 : {
2608 22380 : prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
2609 22380 : tree arg00 = captures[3];
2610 22380 : if (captures[2] != captures[3]
2611 22380 : && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2612 : {
2613 21973 : tree inner_type = TREE_TYPE (captures[3]);
2614 21973 : if (type_has_mode_precision_p (inner_type)
2615 21973 : && TYPE_PRECISION (inner_type) < prec)
2616 : {
2617 34 : prec = TYPE_PRECISION (inner_type);
2618 34 : if (shiftc < prec)
2619 34 : shift_type = inner_type;
2620 : }
2621 : }
2622 22380 : zerobits = HOST_WIDE_INT_M1U;
2623 22380 : if (shiftc < prec)
2624 : {
2625 22380 : zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
2626 22380 : zerobits <<= prec - shiftc;
2627 : }
2628 22380 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
2629 22380 : && prec == TYPE_PRECISION (TREE_TYPE (captures[2])))
2630 : {
2631 73 : if ((mask & zerobits) == 0)
2632 59 : shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
2633 : else
2634 : zerobits = 0;
2635 : }
2636 : }
2637 22366 : if ((mask & zerobits) == mask
2638 : )
2639 : {
2640 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail873;
2641 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail873;
2642 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail873;
2643 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail873;
2644 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail873;
2645 0 : {
2646 0 : tree _r;
2647 0 : _r = build_int_cst (type, 0);
2648 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 691, __FILE__, __LINE__, true);
2649 0 : return _r;
2650 : }
2651 : next_after_fail873:;
2652 : }
2653 : else
2654 : {
2655 22380 : {
2656 22380 : newmask = mask | zerobits;
2657 22380 : if (newmask != mask && (newmask & (newmask + 1)) == 0
2658 : )
2659 : {
2660 : {
2661 65 : for (prec = BITS_PER_UNIT;
2662 122 : prec < HOST_BITS_PER_WIDE_INT; prec <<= 1)
2663 118 : if (newmask == (HOST_WIDE_INT_1U << prec) - 1)
2664 : break;
2665 57 : if (prec < HOST_BITS_PER_WIDE_INT
2666 4 : || newmask == HOST_WIDE_INT_M1U
2667 : )
2668 : {
2669 57 : {
2670 57 : tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
2671 57 : if (!tree_int_cst_equal (newmaskt, captures[5])
2672 : )
2673 : {
2674 57 : if (shift_type != TREE_TYPE (captures[2])
2675 : )
2676 : {
2677 47 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail874;
2678 47 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail874;
2679 47 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail874;
2680 47 : {
2681 47 : tree res_op0;
2682 47 : {
2683 47 : tree _o1[1], _r1;
2684 47 : {
2685 47 : tree _o2[2], _r2;
2686 47 : {
2687 47 : tree _o3[1], _r3;
2688 47 : _o3[0] = captures[2];
2689 47 : if (TREE_TYPE (_o3[0]) != shift_type)
2690 : {
2691 47 : _r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
2692 : }
2693 : else
2694 : _r3 = _o3[0];
2695 47 : _o2[0] = _r3;
2696 : }
2697 47 : _o2[1] = captures[4];
2698 47 : _r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
2699 47 : _o1[0] = _r2;
2700 : }
2701 47 : if (TREE_TYPE (_o1[0]) != type)
2702 : {
2703 47 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2704 : }
2705 : else
2706 : _r1 = _o1[0];
2707 47 : res_op0 = _r1;
2708 : }
2709 47 : tree res_op1;
2710 47 : res_op1 = newmaskt;
2711 47 : tree _r;
2712 47 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2713 47 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 692, __FILE__, __LINE__, true);
2714 47 : return _r;
2715 : }
2716 : next_after_fail874:;
2717 : }
2718 : else
2719 : {
2720 10 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail875;
2721 10 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail875;
2722 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail875;
2723 10 : {
2724 10 : tree res_op0;
2725 10 : res_op0 = captures[0];
2726 10 : tree res_op1;
2727 10 : res_op1 = newmaskt;
2728 10 : tree _r;
2729 10 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2730 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 693, __FILE__, __LINE__, true);
2731 10 : return _r;
2732 : }
2733 : next_after_fail875:;
2734 : }
2735 : }
2736 : }
2737 : }
2738 : }
2739 : }
2740 : }
2741 : }
2742 : }
2743 : }
2744 : return NULL_TREE;
2745 : }
2746 :
2747 : tree
2748 108 : generic_simplify_498 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2749 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2750 : {
2751 108 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2752 108 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail889;
2753 108 : {
2754 108 : tree res_op0;
2755 108 : res_op0 = captures[1];
2756 108 : tree res_op1;
2757 108 : {
2758 108 : tree _o1[1], _r1;
2759 108 : _o1[0] = captures[2];
2760 108 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2761 108 : res_op1 = _r1;
2762 : }
2763 108 : tree _r;
2764 108 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2765 108 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 703, __FILE__, __LINE__, true);
2766 : return _r;
2767 : }
2768 0 : next_after_fail889:;
2769 0 : return NULL_TREE;
2770 : }
2771 :
2772 : tree
2773 29 : generic_simplify_504 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2774 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2775 : {
2776 29 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2777 29 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
2778 : )
2779 : {
2780 29 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail895;
2781 29 : {
2782 29 : tree res_op0;
2783 29 : {
2784 29 : tree _o1[2], _r1;
2785 29 : _o1[0] = captures[0];
2786 29 : {
2787 29 : tree _o2[1], _r2;
2788 29 : _o2[0] = captures[1];
2789 29 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
2790 29 : _o1[1] = _r2;
2791 : }
2792 29 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2793 29 : res_op0 = _r1;
2794 : }
2795 29 : tree _r;
2796 29 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2797 29 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 709, __FILE__, __LINE__, true);
2798 29 : return _r;
2799 : }
2800 0 : next_after_fail895:;
2801 : }
2802 : return NULL_TREE;
2803 : }
2804 :
2805 : tree
2806 16 : generic_simplify_512 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2807 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2808 : {
2809 16 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2810 16 : if (ANY_INTEGRAL_TYPE_P (type) && !TYPE_OVERFLOW_SANITIZED (type)
2811 : )
2812 : {
2813 16 : {
2814 16 : tree ptrdifftype = TREE_TYPE (captures[0]);
2815 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail904;
2816 16 : {
2817 16 : tree res_op0;
2818 16 : {
2819 16 : tree _o1[2], _r1;
2820 16 : _o1[0] = captures[2];
2821 16 : _o1[1] = captures[1];
2822 16 : _r1 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ptrdifftype, _o1[0], _o1[1]);
2823 16 : res_op0 = _r1;
2824 : }
2825 16 : tree _r;
2826 16 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2827 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 716, __FILE__, __LINE__, true);
2828 16 : return _r;
2829 : }
2830 0 : next_after_fail904:;
2831 : }
2832 : }
2833 : return NULL_TREE;
2834 : }
2835 :
2836 : tree
2837 0 : generic_simplify_519 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2838 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2839 : const enum tree_code ARG_UNUSED (minmax))
2840 : {
2841 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2842 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail912;
2843 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail912;
2844 0 : {
2845 0 : tree _r;
2846 0 : _r = captures[0];
2847 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 724, __FILE__, __LINE__, true);
2848 : return _r;
2849 : }
2850 : next_after_fail912:;
2851 : return NULL_TREE;
2852 : }
2853 :
2854 : tree
2855 47 : generic_simplify_527 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2856 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2857 : const enum tree_code ARG_UNUSED (minmax),
2858 : const enum tree_code ARG_UNUSED (cmp))
2859 : {
2860 47 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2861 47 : {
2862 47 : poly_int64 off0, off1;
2863 47 : tree base0, base1;
2864 47 : int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
2865 : off0, off1,
2866 : 1
2867 : );
2868 47 : if (equal == 1
2869 : )
2870 : {
2871 0 : if (minmax == MIN_EXPR
2872 : )
2873 : {
2874 0 : if (known_le (off0, off1)
2875 : )
2876 : {
2877 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail922;
2878 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail922;
2879 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail922;
2880 0 : {
2881 0 : tree _r;
2882 0 : _r = captures[0];
2883 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 733, __FILE__, __LINE__, true);
2884 0 : return _r;
2885 : }
2886 47 : next_after_fail922:;
2887 : }
2888 : else
2889 : {
2890 0 : if (known_gt (off0, off1)
2891 : )
2892 : {
2893 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail923;
2894 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail923;
2895 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail923;
2896 0 : {
2897 0 : tree _r;
2898 0 : _r = captures[2];
2899 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 734, __FILE__, __LINE__, true);
2900 0 : return _r;
2901 : }
2902 47 : next_after_fail923:;
2903 : }
2904 : }
2905 : }
2906 : else
2907 : {
2908 0 : if (known_ge (off0, off1)
2909 : )
2910 : {
2911 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail924;
2912 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail924;
2913 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail924;
2914 0 : {
2915 0 : tree _r;
2916 0 : _r = captures[0];
2917 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 735, __FILE__, __LINE__, true);
2918 0 : return _r;
2919 : }
2920 47 : next_after_fail924:;
2921 : }
2922 : else
2923 : {
2924 0 : if (known_lt (off0, off1)
2925 : )
2926 : {
2927 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail925;
2928 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail925;
2929 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail925;
2930 0 : {
2931 0 : tree _r;
2932 0 : _r = captures[2];
2933 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 736, __FILE__, __LINE__, true);
2934 0 : return _r;
2935 : }
2936 47 : next_after_fail925:;
2937 : }
2938 : }
2939 : }
2940 : }
2941 : }
2942 47 : return NULL_TREE;
2943 : }
2944 :
2945 : tree
2946 0 : generic_simplify_548 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2947 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2948 : const combined_fn ARG_UNUSED (cond_len_op))
2949 : {
2950 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2951 0 : {
2952 0 : tree op_type = TREE_TYPE (captures[3]);
2953 0 : if (element_precision (type) == element_precision (op_type)
2954 : )
2955 : {
2956 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail955;
2957 0 : {
2958 0 : tree res_op0;
2959 0 : {
2960 0 : tree _o1[6], _r1;
2961 0 : _o1[0] = captures[0];
2962 0 : _o1[1] = captures[1];
2963 0 : _o1[2] = captures[2];
2964 0 : {
2965 0 : tree _o2[1], _r2;
2966 0 : _o2[0] = captures[6];
2967 0 : if (TREE_TYPE (_o2[0]) != op_type)
2968 : {
2969 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
2970 : }
2971 : else
2972 : _r2 = _o2[0];
2973 0 : _o1[3] = _r2;
2974 : }
2975 0 : _o1[4] = captures[4];
2976 0 : _o1[5] = captures[5];
2977 0 : _r1 = maybe_build_call_expr_loc (loc, cond_len_op, TREE_TYPE (_o1[1]), 6, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4], _o1[5]);
2978 0 : if (!_r1)
2979 0 : goto next_after_fail955;
2980 0 : res_op0 = _r1;
2981 : }
2982 0 : tree _r;
2983 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
2984 0 : if (TREE_SIDE_EFFECTS (captures[3]))
2985 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
2986 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 749, __FILE__, __LINE__, true);
2987 0 : return _r;
2988 : }
2989 : next_after_fail955:;
2990 : }
2991 : }
2992 : return NULL_TREE;
2993 : }
2994 :
2995 : tree
2996 0 : generic_simplify_558 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2997 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2998 : const combined_fn ARG_UNUSED (bswap))
2999 : {
3000 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3001 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail968;
3002 0 : {
3003 0 : tree _r;
3004 0 : _r = captures[0];
3005 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 762, __FILE__, __LINE__, true);
3006 : return _r;
3007 : }
3008 0 : next_after_fail968:;
3009 0 : return NULL_TREE;
3010 : }
3011 :
3012 : tree
3013 0 : generic_simplify_565 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3014 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
3015 : const combined_fn ARG_UNUSED (ovf))
3016 : {
3017 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3018 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
3019 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3020 0 : && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
3021 0 : && (!TYPE_UNSIGNED (TREE_TYPE (captures[1])) || TYPE_UNSIGNED (TREE_TYPE (captures[2])))
3022 : )
3023 : {
3024 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail975;
3025 0 : {
3026 0 : tree res_op0;
3027 0 : res_op0 = captures[0];
3028 0 : tree res_op1;
3029 0 : res_op1 = captures[2];
3030 0 : tree _r;
3031 0 : _r = maybe_build_call_expr_loc (loc, ovf, type, 2, res_op0, res_op1);
3032 0 : if (!_r)
3033 0 : goto next_after_fail975;
3034 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 769, __FILE__, __LINE__, true);
3035 0 : return _r;
3036 : }
3037 : next_after_fail975:;
3038 : }
3039 : return NULL_TREE;
3040 : }
3041 :
3042 : tree
3043 0 : generic_simplify_573 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3044 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3045 : const combined_fn ARG_UNUSED (fns))
3046 : {
3047 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3048 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail983;
3049 0 : {
3050 0 : tree _r;
3051 0 : _r = captures[0];
3052 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 777, __FILE__, __LINE__, true);
3053 : return _r;
3054 : }
3055 0 : next_after_fail983:;
3056 0 : return NULL_TREE;
3057 : }
3058 :
3059 : tree
3060 0 : generic_simplify_578 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3061 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
3062 : {
3063 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3064 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail988;
3065 0 : {
3066 0 : tree _r;
3067 0 : _r = captures[0];
3068 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3069 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3070 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 782, __FILE__, __LINE__, true);
3071 : return _r;
3072 : }
3073 0 : next_after_fail988:;
3074 0 : return NULL_TREE;
3075 : }
3076 :
3077 : tree
3078 0 : generic_simplify_585 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3079 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3080 : const combined_fn ARG_UNUSED (rints))
3081 : {
3082 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3083 0 : if (canonicalize_math_p ()
3084 : )
3085 : {
3086 0 : if (!flag_errno_math
3087 : )
3088 : {
3089 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail995;
3090 0 : {
3091 0 : tree res_op0;
3092 0 : res_op0 = captures[0];
3093 0 : tree _r;
3094 0 : _r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
3095 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 789, __FILE__, __LINE__, true);
3096 0 : return _r;
3097 : }
3098 0 : next_after_fail995:;
3099 : }
3100 : }
3101 : return NULL_TREE;
3102 : }
3103 :
3104 : tree
3105 0 : generic_simplify_591 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3106 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
3107 : const combined_fn ARG_UNUSED (fmas))
3108 : {
3109 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3110 0 : if (canonicalize_math_after_vectorization_p ()
3111 : )
3112 : {
3113 : {
3114 : tree t = TREE_TYPE (captures[0]);
3115 : if ((!ANY_INTEGRAL_TYPE_P (type)
3116 : || TYPE_UNSIGNED (type)
3117 : || !TYPE_OVERFLOW_SANITIZED (type))
3118 : && (!ANY_INTEGRAL_TYPE_P (t)
3119 : || TYPE_UNSIGNED (t)
3120 : || !TYPE_OVERFLOW_SANITIZED (type))
3121 : )
3122 : {
3123 : {
3124 : tree utype = unsigned_type_for (type);
3125 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1001;
3126 : {
3127 : tree res_op0;
3128 : {
3129 : tree _o1[3], _r1;
3130 : {
3131 : tree _o2[1], _r2;
3132 : _o2[0] = captures[0];
3133 : if (TREE_TYPE (_o2[0]) != utype)
3134 : {
3135 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
3136 : }
3137 : else
3138 : _r2 = _o2[0];
3139 : _o1[0] = _r2;
3140 : }
3141 : {
3142 : tree _o2[1], _r2;
3143 : _o2[0] = captures[1];
3144 : if (TREE_TYPE (_o2[0]) != utype)
3145 : {
3146 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
3147 : }
3148 : else
3149 : _r2 = _o2[0];
3150 : _o1[1] = _r2;
3151 : }
3152 : {
3153 : tree _o2[1], _r2;
3154 : _o2[0] = captures[2];
3155 : if (TREE_TYPE (_o2[0]) != utype)
3156 : {
3157 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
3158 : }
3159 : else
3160 : _r2 = _o2[0];
3161 : _o1[2] = _r2;
3162 : }
3163 : _r1 = maybe_build_call_expr_loc (loc, CFN_FNMA, TREE_TYPE (_o1[0]), 3, _o1[0], _o1[1], _o1[2]);
3164 : if (!_r1)
3165 : goto next_after_fail1001;
3166 : res_op0 = _r1;
3167 : }
3168 : tree _r;
3169 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3170 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 795, __FILE__, __LINE__, true);
3171 : return _r;
3172 : }
3173 0 : next_after_fail1001:;
3174 : }
3175 : }
3176 : }
3177 : }
3178 0 : return NULL_TREE;
3179 : }
3180 :
3181 : tree
3182 0 : generic_simplify_613 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3183 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3184 : const combined_fn ARG_UNUSED (bswap),
3185 : const combined_fn ARG_UNUSED (popcount))
3186 : {
3187 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3188 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3189 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3190 : )
3191 : {
3192 0 : {
3193 0 : tree type0 = TREE_TYPE (captures[0]);
3194 0 : tree type1 = TREE_TYPE (captures[1]);
3195 0 : unsigned int prec0 = TYPE_PRECISION (type0);
3196 0 : unsigned int prec1 = TYPE_PRECISION (type1);
3197 0 : if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
3198 : )
3199 : {
3200 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1023;
3201 0 : {
3202 0 : tree res_op0;
3203 0 : {
3204 0 : tree _o1[1], _r1;
3205 0 : {
3206 0 : tree _o2[1], _r2;
3207 0 : _o2[0] = captures[2];
3208 0 : if (TREE_TYPE (_o2[0]) != type1)
3209 : {
3210 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
3211 : }
3212 : else
3213 : _r2 = _o2[0];
3214 0 : _o1[0] = _r2;
3215 : }
3216 0 : if (TREE_TYPE (_o1[0]) != type0)
3217 : {
3218 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3219 : }
3220 : else
3221 : _r1 = _o1[0];
3222 0 : res_op0 = _r1;
3223 : }
3224 0 : tree _r;
3225 0 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
3226 0 : if (!_r)
3227 0 : goto next_after_fail1023;
3228 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 811, __FILE__, __LINE__, true);
3229 0 : return _r;
3230 : }
3231 : next_after_fail1023:;
3232 : }
3233 : }
3234 : }
3235 : return NULL_TREE;
3236 : }
3237 :
3238 : tree
3239 2141781 : generic_simplify_ABS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3240 : {
3241 2141781 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3242 2141781 : switch (TREE_CODE (_p0))
3243 : {
3244 185482 : CASE_CONVERT:
3245 185482 : {
3246 185482 : tree _q20 = TREE_OPERAND (_p0, 0);
3247 185482 : {
3248 185482 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3249 370962 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3250 914 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3251 840 : && element_precision (type) > element_precision (TREE_TYPE (captures[0]))
3252 185707 : && (!VECTOR_TYPE_P (type)
3253 0 : || target_supports_op_p (TREE_TYPE (captures[0]), ABSU_EXPR, optab_vector))
3254 : )
3255 : {
3256 225 : {
3257 225 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
3258 225 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1037;
3259 225 : {
3260 225 : tree res_op0;
3261 225 : {
3262 225 : tree _o1[1], _r1;
3263 225 : _o1[0] = captures[0];
3264 225 : _r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
3265 225 : res_op0 = _r1;
3266 : }
3267 225 : tree _r;
3268 225 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3269 225 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 824, __FILE__, __LINE__, true);
3270 225 : return _r;
3271 : }
3272 0 : next_after_fail1037:;
3273 : }
3274 : }
3275 : }
3276 : break;
3277 : }
3278 12 : case ABS_EXPR:
3279 12 : {
3280 12 : tree _q20 = TREE_OPERAND (_p0, 0);
3281 12 : {
3282 12 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
3283 12 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1038;
3284 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1038;
3285 12 : {
3286 12 : tree _r;
3287 12 : _r = captures[0];
3288 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 825, __FILE__, __LINE__, true);
3289 12 : return _r;
3290 : }
3291 0 : next_after_fail1038:;
3292 : }
3293 0 : break;
3294 : }
3295 57 : case NEGATE_EXPR:
3296 57 : {
3297 57 : tree _q20 = TREE_OPERAND (_p0, 0);
3298 57 : {
3299 57 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3300 57 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1039;
3301 57 : {
3302 57 : tree res_op0;
3303 57 : res_op0 = captures[0];
3304 57 : tree _r;
3305 57 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
3306 57 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 826, __FILE__, __LINE__, true);
3307 2141781 : return _r;
3308 : }
3309 0 : next_after_fail1039:;
3310 : }
3311 0 : break;
3312 : }
3313 317 : case PLUS_EXPR:
3314 317 : {
3315 317 : tree _q20 = TREE_OPERAND (_p0, 0);
3316 317 : tree _q21 = TREE_OPERAND (_p0, 1);
3317 317 : if (real_zerop (_q21))
3318 : {
3319 3 : {
3320 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3321 3 : tree res = generic_simplify_1 (loc, type, _p0, captures, PLUS_EXPR);
3322 3 : if (res) return res;
3323 : }
3324 : }
3325 : break;
3326 : }
3327 7793 : case MINUS_EXPR:
3328 7793 : {
3329 7793 : tree _q20 = TREE_OPERAND (_p0, 0);
3330 7793 : tree _q21 = TREE_OPERAND (_p0, 1);
3331 7793 : if (real_zerop (_q21))
3332 : {
3333 0 : {
3334 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3335 0 : tree res = generic_simplify_1 (loc, type, _p0, captures, MINUS_EXPR);
3336 0 : if (res) return res;
3337 : }
3338 : }
3339 : break;
3340 : }
3341 0 : case VEC_COND_EXPR:
3342 0 : {
3343 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3344 0 : tree _q21 = TREE_OPERAND (_p0, 1);
3345 0 : tree _q22 = TREE_OPERAND (_p0, 2);
3346 0 : {
3347 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3348 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1040;
3349 0 : {
3350 0 : tree res_op0;
3351 0 : res_op0 = captures[1];
3352 0 : tree res_op1;
3353 0 : {
3354 0 : tree _o1[1], _r1;
3355 0 : _o1[0] = captures[2];
3356 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, type, _o1[0]);
3357 0 : if (EXPR_P (_r1))
3358 0 : goto next_after_fail1040;
3359 0 : res_op1 = _r1;
3360 : }
3361 0 : tree res_op2;
3362 0 : {
3363 0 : tree _o1[1], _r1;
3364 0 : _o1[0] = captures[3];
3365 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, type, _o1[0]);
3366 0 : if (EXPR_P (_r1))
3367 0 : goto next_after_fail1040;
3368 0 : res_op2 = _r1;
3369 : }
3370 0 : tree _r;
3371 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
3372 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 827, __FILE__, __LINE__, true);
3373 0 : return _r;
3374 : }
3375 0 : next_after_fail1040:;
3376 : }
3377 0 : break;
3378 : }
3379 702 : case CALL_EXPR:
3380 702 : switch (get_call_combined_fn (_p0))
3381 : {
3382 0 : case CFN_BUILT_IN_COPYSIGNF16:
3383 0 : if (call_expr_nargs (_p0) == 2)
3384 : {
3385 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3386 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3387 0 : {
3388 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3389 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF16);
3390 0 : if (res) return res;
3391 : }
3392 : }
3393 : break;
3394 0 : case CFN_BUILT_IN_COPYSIGNF32:
3395 0 : if (call_expr_nargs (_p0) == 2)
3396 : {
3397 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3398 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3399 0 : {
3400 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3401 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF32);
3402 0 : if (res) return res;
3403 : }
3404 : }
3405 : break;
3406 0 : case CFN_BUILT_IN_COPYSIGNF64:
3407 0 : if (call_expr_nargs (_p0) == 2)
3408 : {
3409 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3410 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3411 0 : {
3412 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3413 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF64);
3414 0 : if (res) return res;
3415 : }
3416 : }
3417 : break;
3418 0 : case CFN_BUILT_IN_COPYSIGNF128X:
3419 0 : if (call_expr_nargs (_p0) == 2)
3420 : {
3421 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3422 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3423 0 : {
3424 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3425 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF128X);
3426 0 : if (res) return res;
3427 : }
3428 : }
3429 : break;
3430 0 : case CFN_BUILT_IN_COPYSIGNF128:
3431 0 : if (call_expr_nargs (_p0) == 2)
3432 : {
3433 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3434 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3435 0 : {
3436 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3437 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF128);
3438 0 : if (res) return res;
3439 : }
3440 : }
3441 : break;
3442 0 : case CFN_BUILT_IN_COPYSIGNF32X:
3443 0 : if (call_expr_nargs (_p0) == 2)
3444 : {
3445 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3446 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3447 0 : {
3448 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3449 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF32X);
3450 0 : if (res) return res;
3451 : }
3452 : }
3453 : break;
3454 0 : case CFN_BUILT_IN_COPYSIGNF64X:
3455 0 : if (call_expr_nargs (_p0) == 2)
3456 : {
3457 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3458 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3459 0 : {
3460 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3461 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF64X);
3462 0 : if (res) return res;
3463 : }
3464 : }
3465 : break;
3466 0 : case CFN_BUILT_IN_COPYSIGN:
3467 0 : if (call_expr_nargs (_p0) == 2)
3468 : {
3469 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3470 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3471 0 : {
3472 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3473 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGN);
3474 0 : if (res) return res;
3475 : }
3476 : }
3477 : break;
3478 1 : case CFN_BUILT_IN_COPYSIGNF:
3479 1 : if (call_expr_nargs (_p0) == 2)
3480 : {
3481 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3482 1 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3483 1 : {
3484 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3485 1 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF);
3486 1 : if (res) return res;
3487 : }
3488 : }
3489 : break;
3490 0 : case CFN_BUILT_IN_COPYSIGNL:
3491 0 : if (call_expr_nargs (_p0) == 2)
3492 : {
3493 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3494 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3495 0 : {
3496 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3497 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNL);
3498 0 : if (res) return res;
3499 : }
3500 : }
3501 : break;
3502 0 : case CFN_COPYSIGN:
3503 0 : if (call_expr_nargs (_p0) == 2)
3504 : {
3505 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3506 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3507 0 : {
3508 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3509 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_COPYSIGN);
3510 0 : if (res) return res;
3511 : }
3512 : }
3513 : break;
3514 : default:;
3515 : }
3516 : break;
3517 2141484 : default:;
3518 : }
3519 2141484 : if (tree_expr_nonnegative_p (_p0))
3520 : {
3521 548 : {
3522 548 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3523 548 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1041;
3524 548 : {
3525 548 : tree _r;
3526 548 : _r = captures[0];
3527 548 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 828, __FILE__, __LINE__, true);
3528 548 : return _r;
3529 : }
3530 0 : next_after_fail1041:;
3531 : }
3532 : }
3533 : return NULL_TREE;
3534 : }
3535 :
3536 : tree
3537 998490 : generic_simplify_BIT_XOR_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
3538 : {
3539 998490 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3540 998490 : switch (TREE_CODE (_p0))
3541 : {
3542 102 : case MINUS_EXPR:
3543 102 : {
3544 102 : tree _q20 = TREE_OPERAND (_p0, 0);
3545 102 : tree _q21 = TREE_OPERAND (_p0, 1);
3546 102 : switch (TREE_CODE (_q21))
3547 : {
3548 22 : CASE_CONVERT:
3549 22 : {
3550 22 : tree _q40 = TREE_OPERAND (_q21, 0);
3551 22 : switch (TREE_CODE (_q40))
3552 : {
3553 0 : case LT_EXPR:
3554 0 : {
3555 0 : tree _q50 = TREE_OPERAND (_q40, 0);
3556 0 : tree _q51 = TREE_OPERAND (_q40, 1);
3557 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3558 : {
3559 0 : if (integer_zerop (_q51))
3560 : {
3561 0 : switch (TREE_CODE (_p1))
3562 : {
3563 0 : case NEGATE_EXPR:
3564 0 : {
3565 0 : tree _q80 = TREE_OPERAND (_p1, 0);
3566 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
3567 : {
3568 0 : {
3569 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3570 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3571 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3572 : )
3573 : {
3574 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1160;
3575 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1160;
3576 0 : {
3577 0 : tree res_op0;
3578 0 : res_op0 = captures[0];
3579 0 : tree _r;
3580 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
3581 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 885, __FILE__, __LINE__, true);
3582 0 : return _r;
3583 : }
3584 0 : next_after_fail1160:;
3585 : }
3586 : }
3587 : }
3588 : break;
3589 : }
3590 : default:;
3591 : }
3592 : }
3593 : }
3594 : break;
3595 : }
3596 : default:;
3597 : }
3598 : break;
3599 : }
3600 : default:;
3601 : }
3602 : break;
3603 : }
3604 142 : case NEGATE_EXPR:
3605 142 : {
3606 142 : tree _q20 = TREE_OPERAND (_p0, 0);
3607 142 : switch (TREE_CODE (_p1))
3608 : {
3609 0 : case MINUS_EXPR:
3610 0 : {
3611 0 : tree _q40 = TREE_OPERAND (_p1, 0);
3612 0 : tree _q41 = TREE_OPERAND (_p1, 1);
3613 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
3614 : {
3615 0 : switch (TREE_CODE (_q41))
3616 : {
3617 0 : CASE_CONVERT:
3618 0 : {
3619 0 : tree _q70 = TREE_OPERAND (_q41, 0);
3620 0 : switch (TREE_CODE (_q70))
3621 : {
3622 0 : case LT_EXPR:
3623 0 : {
3624 0 : tree _q80 = TREE_OPERAND (_q70, 0);
3625 0 : tree _q81 = TREE_OPERAND (_q70, 1);
3626 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
3627 : {
3628 0 : if (integer_zerop (_q81))
3629 : {
3630 0 : {
3631 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
3632 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3633 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3634 : )
3635 : {
3636 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1161;
3637 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1161;
3638 0 : {
3639 0 : tree res_op0;
3640 0 : res_op0 = captures[0];
3641 0 : tree _r;
3642 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
3643 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 885, __FILE__, __LINE__, true);
3644 0 : return _r;
3645 : }
3646 0 : next_after_fail1161:;
3647 : }
3648 : }
3649 : }
3650 : }
3651 : break;
3652 : }
3653 : default:;
3654 : }
3655 : break;
3656 : }
3657 : default:;
3658 : }
3659 : }
3660 : break;
3661 : }
3662 : default:;
3663 : }
3664 : break;
3665 : }
3666 998490 : default:;
3667 : }
3668 998490 : if (integer_zerop (_p1))
3669 : {
3670 543 : {
3671 543 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3672 543 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1162;
3673 543 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1162;
3674 543 : {
3675 543 : tree res_op0;
3676 543 : res_op0 = captures[0];
3677 543 : tree _r;
3678 543 : _r = non_lvalue_loc (loc, res_op0);
3679 543 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
3680 543 : return _r;
3681 : }
3682 : next_after_fail1162:;
3683 : }
3684 : }
3685 997947 : switch (TREE_CODE (_p0))
3686 : {
3687 2970 : case LSHIFT_EXPR:
3688 2970 : {
3689 2970 : tree _q20 = TREE_OPERAND (_p0, 0);
3690 2970 : tree _q21 = TREE_OPERAND (_p0, 1);
3691 2970 : switch (TREE_CODE (_p1))
3692 : {
3693 10 : case LSHIFT_EXPR:
3694 10 : {
3695 10 : tree _q50 = TREE_OPERAND (_p1, 0);
3696 10 : tree _q51 = TREE_OPERAND (_p1, 1);
3697 10 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3698 : {
3699 1 : {
3700 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
3701 1 : tree res = generic_simplify_3 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3702 1 : if (res) return res;
3703 : }
3704 : }
3705 : break;
3706 : }
3707 : default:;
3708 : }
3709 : break;
3710 : }
3711 22430 : case RSHIFT_EXPR:
3712 22430 : {
3713 22430 : tree _q20 = TREE_OPERAND (_p0, 0);
3714 22430 : tree _q21 = TREE_OPERAND (_p0, 1);
3715 22430 : switch (TREE_CODE (_p1))
3716 : {
3717 20 : case RSHIFT_EXPR:
3718 20 : {
3719 20 : tree _q50 = TREE_OPERAND (_p1, 0);
3720 20 : tree _q51 = TREE_OPERAND (_p1, 1);
3721 20 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3722 : {
3723 10 : {
3724 10 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
3725 10 : tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3726 10 : if (res) return res;
3727 : }
3728 : }
3729 : break;
3730 : }
3731 : default:;
3732 : }
3733 : break;
3734 : }
3735 3380 : case BIT_AND_EXPR:
3736 3380 : {
3737 3380 : tree _q20 = TREE_OPERAND (_p0, 0);
3738 3380 : tree _q21 = TREE_OPERAND (_p0, 1);
3739 3380 : switch (TREE_CODE (_p1))
3740 : {
3741 354 : case BIT_AND_EXPR:
3742 354 : {
3743 354 : tree _q50 = TREE_OPERAND (_p1, 0);
3744 354 : tree _q51 = TREE_OPERAND (_p1, 1);
3745 354 : {
3746 354 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
3747 354 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3748 354 : if (res) return res;
3749 : }
3750 354 : {
3751 354 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q50 };
3752 354 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3753 354 : if (res) return res;
3754 : }
3755 354 : {
3756 354 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q51 };
3757 354 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3758 354 : if (res) return res;
3759 : }
3760 354 : {
3761 354 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q50 };
3762 354 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3763 354 : if (res) return res;
3764 : }
3765 354 : break;
3766 : }
3767 3380 : default:;
3768 : }
3769 3380 : switch (TREE_CODE (_q21))
3770 : {
3771 41 : case BIT_NOT_EXPR:
3772 41 : {
3773 41 : tree _q40 = TREE_OPERAND (_q21, 0);
3774 41 : switch (TREE_CODE (_p1))
3775 : {
3776 0 : case BIT_NOT_EXPR:
3777 0 : {
3778 0 : tree _q60 = TREE_OPERAND (_p1, 0);
3779 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
3780 : {
3781 0 : {
3782 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
3783 0 : tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
3784 0 : if (res) return res;
3785 : }
3786 : }
3787 : break;
3788 : }
3789 : default:;
3790 : }
3791 : break;
3792 : }
3793 3380 : default:;
3794 : }
3795 3380 : switch (TREE_CODE (_q20))
3796 : {
3797 90 : case BIT_NOT_EXPR:
3798 90 : {
3799 90 : tree _q30 = TREE_OPERAND (_q20, 0);
3800 90 : switch (TREE_CODE (_p1))
3801 : {
3802 0 : case BIT_NOT_EXPR:
3803 0 : {
3804 0 : tree _q60 = TREE_OPERAND (_p1, 0);
3805 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
3806 : {
3807 0 : {
3808 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q30 };
3809 0 : tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
3810 0 : if (res) return res;
3811 : }
3812 : }
3813 : break;
3814 : }
3815 90 : default:;
3816 : }
3817 90 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
3818 : {
3819 0 : {
3820 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3821 0 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
3822 0 : if (res) return res;
3823 : }
3824 : }
3825 : break;
3826 : }
3827 3380 : default:;
3828 : }
3829 3380 : switch (TREE_CODE (_q21))
3830 : {
3831 41 : case BIT_NOT_EXPR:
3832 41 : {
3833 41 : tree _q40 = TREE_OPERAND (_q21, 0);
3834 41 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
3835 : {
3836 0 : {
3837 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3838 0 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
3839 0 : if (res) return res;
3840 : }
3841 : }
3842 : break;
3843 : }
3844 : default:;
3845 : }
3846 : break;
3847 : }
3848 505 : case BIT_NOT_EXPR:
3849 505 : {
3850 505 : tree _q20 = TREE_OPERAND (_p0, 0);
3851 505 : switch (TREE_CODE (_p1))
3852 : {
3853 51 : case BIT_AND_EXPR:
3854 51 : {
3855 51 : tree _q40 = TREE_OPERAND (_p1, 0);
3856 51 : tree _q41 = TREE_OPERAND (_p1, 1);
3857 51 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
3858 : {
3859 0 : switch (TREE_CODE (_q41))
3860 : {
3861 0 : case BIT_NOT_EXPR:
3862 0 : {
3863 0 : tree _q60 = TREE_OPERAND (_q41, 0);
3864 0 : {
3865 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q60 };
3866 0 : tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
3867 0 : if (res) return res;
3868 : }
3869 0 : break;
3870 : }
3871 : default:;
3872 : }
3873 : }
3874 51 : switch (TREE_CODE (_q40))
3875 : {
3876 7 : case BIT_NOT_EXPR:
3877 7 : {
3878 7 : tree _q50 = TREE_OPERAND (_q40, 0);
3879 7 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
3880 : {
3881 0 : {
3882 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
3883 0 : tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
3884 0 : if (res) return res;
3885 : }
3886 : }
3887 : break;
3888 : }
3889 : default:;
3890 : }
3891 : break;
3892 : }
3893 : default:;
3894 : }
3895 : break;
3896 : }
3897 997936 : default:;
3898 : }
3899 997936 : switch (TREE_CODE (_p1))
3900 : {
3901 789 : case BIT_AND_EXPR:
3902 789 : {
3903 789 : tree _q30 = TREE_OPERAND (_p1, 0);
3904 789 : tree _q31 = TREE_OPERAND (_p1, 1);
3905 789 : switch (TREE_CODE (_q30))
3906 : {
3907 57 : case BIT_NOT_EXPR:
3908 57 : {
3909 57 : tree _q40 = TREE_OPERAND (_q30, 0);
3910 57 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
3911 : {
3912 0 : {
3913 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
3914 0 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
3915 0 : if (res) return res;
3916 : }
3917 : }
3918 : break;
3919 : }
3920 789 : default:;
3921 : }
3922 789 : switch (TREE_CODE (_q31))
3923 : {
3924 8 : case BIT_NOT_EXPR:
3925 8 : {
3926 8 : tree _q50 = TREE_OPERAND (_q31, 0);
3927 8 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
3928 : {
3929 0 : {
3930 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q30 };
3931 0 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
3932 0 : if (res) return res;
3933 : }
3934 : }
3935 : break;
3936 : }
3937 : default:;
3938 : }
3939 : break;
3940 : }
3941 997936 : default:;
3942 : }
3943 997936 : switch (TREE_CODE (_p0))
3944 : {
3945 21587 : case PLUS_EXPR:
3946 21587 : {
3947 21587 : tree _q20 = TREE_OPERAND (_p0, 0);
3948 21587 : tree _q21 = TREE_OPERAND (_p0, 1);
3949 21587 : if (integer_minus_onep (_q21))
3950 : {
3951 10450 : switch (TREE_CODE (_p1))
3952 : {
3953 11 : case NEGATE_EXPR:
3954 11 : {
3955 11 : tree _q50 = TREE_OPERAND (_p1, 0);
3956 11 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3957 : {
3958 11 : {
3959 11 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3960 11 : tree res = generic_simplify_8 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3961 11 : if (res) return res;
3962 : }
3963 : }
3964 : break;
3965 : }
3966 : default:;
3967 : }
3968 : }
3969 : break;
3970 : }
3971 142 : case NEGATE_EXPR:
3972 142 : {
3973 142 : tree _q20 = TREE_OPERAND (_p0, 0);
3974 142 : switch (TREE_CODE (_p1))
3975 : {
3976 0 : case PLUS_EXPR:
3977 0 : {
3978 0 : tree _q40 = TREE_OPERAND (_p1, 0);
3979 0 : tree _q41 = TREE_OPERAND (_p1, 1);
3980 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
3981 : {
3982 0 : if (integer_minus_onep (_q41))
3983 : {
3984 0 : {
3985 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3986 0 : tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3987 0 : if (res) return res;
3988 : }
3989 : }
3990 : }
3991 : break;
3992 : }
3993 0 : case MINUS_EXPR:
3994 0 : {
3995 0 : tree _q40 = TREE_OPERAND (_p1, 0);
3996 0 : tree _q41 = TREE_OPERAND (_p1, 1);
3997 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
3998 : {
3999 0 : if (integer_onep (_q41))
4000 : {
4001 0 : {
4002 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4003 0 : tree res = generic_simplify_10 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4004 0 : if (res) return res;
4005 : }
4006 : }
4007 : }
4008 : break;
4009 : }
4010 : default:;
4011 : }
4012 : break;
4013 : }
4014 102 : case MINUS_EXPR:
4015 102 : {
4016 102 : tree _q20 = TREE_OPERAND (_p0, 0);
4017 102 : tree _q21 = TREE_OPERAND (_p0, 1);
4018 102 : if (integer_onep (_q21))
4019 : {
4020 0 : switch (TREE_CODE (_p1))
4021 : {
4022 0 : case NEGATE_EXPR:
4023 0 : {
4024 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4025 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4026 : {
4027 0 : {
4028 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4029 0 : tree res = generic_simplify_11 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4030 0 : if (res) return res;
4031 : }
4032 : }
4033 : break;
4034 : }
4035 : default:;
4036 : }
4037 : }
4038 : break;
4039 : }
4040 1310 : case BIT_IOR_EXPR:
4041 1310 : {
4042 1310 : tree _q20 = TREE_OPERAND (_p0, 0);
4043 1310 : tree _q21 = TREE_OPERAND (_p0, 1);
4044 1310 : switch (TREE_CODE (_p1))
4045 : {
4046 65 : case BIT_AND_EXPR:
4047 65 : {
4048 65 : tree _q50 = TREE_OPERAND (_p1, 0);
4049 65 : tree _q51 = TREE_OPERAND (_p1, 1);
4050 65 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4051 : {
4052 15 : {
4053 15 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4054 15 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4055 15 : if (res) return res;
4056 : }
4057 : }
4058 65 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4059 : {
4060 12 : {
4061 12 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
4062 12 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4063 12 : if (res) return res;
4064 : }
4065 : }
4066 65 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4067 : {
4068 3 : {
4069 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
4070 3 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4071 3 : if (res) return res;
4072 : }
4073 : }
4074 65 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4075 : {
4076 6 : {
4077 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
4078 6 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4079 6 : if (res) return res;
4080 : }
4081 : }
4082 : break;
4083 : }
4084 1310 : default:;
4085 : }
4086 1310 : switch (TREE_CODE (_q20))
4087 : {
4088 481 : case BIT_NOT_EXPR:
4089 481 : {
4090 481 : tree _q30 = TREE_OPERAND (_q20, 0);
4091 481 : {
4092 481 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
4093 481 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4094 481 : if (res) return res;
4095 : }
4096 480 : break;
4097 : }
4098 1309 : default:;
4099 : }
4100 1309 : switch (TREE_CODE (_q21))
4101 : {
4102 62 : case BIT_NOT_EXPR:
4103 62 : {
4104 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4105 62 : {
4106 62 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20, _p1 };
4107 62 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4108 62 : if (res) return res;
4109 : }
4110 62 : break;
4111 : }
4112 : default:;
4113 : }
4114 : break;
4115 : }
4116 3380 : case BIT_AND_EXPR:
4117 3380 : {
4118 3380 : tree _q20 = TREE_OPERAND (_p0, 0);
4119 3380 : tree _q21 = TREE_OPERAND (_p0, 1);
4120 3380 : switch (TREE_CODE (_p1))
4121 : {
4122 74 : case BIT_IOR_EXPR:
4123 74 : {
4124 74 : tree _q50 = TREE_OPERAND (_p1, 0);
4125 74 : tree _q51 = TREE_OPERAND (_p1, 1);
4126 74 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4127 : {
4128 18 : {
4129 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q21, _q20 };
4130 18 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4131 18 : if (res) return res;
4132 : }
4133 : }
4134 74 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4135 : {
4136 9 : {
4137 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q20, _q21 };
4138 9 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4139 9 : if (res) return res;
4140 : }
4141 : }
4142 74 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4143 : {
4144 9 : {
4145 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q21, _q20 };
4146 9 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4147 9 : if (res) return res;
4148 : }
4149 : }
4150 74 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4151 : {
4152 18 : {
4153 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q20, _q21 };
4154 18 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4155 18 : if (res) return res;
4156 : }
4157 : }
4158 : break;
4159 : }
4160 : default:;
4161 : }
4162 : break;
4163 : }
4164 997924 : default:;
4165 : }
4166 997924 : switch (TREE_CODE (_p1))
4167 : {
4168 521 : case BIT_IOR_EXPR:
4169 521 : {
4170 521 : tree _q30 = TREE_OPERAND (_p1, 0);
4171 521 : tree _q31 = TREE_OPERAND (_p1, 1);
4172 521 : switch (TREE_CODE (_q30))
4173 : {
4174 21 : case BIT_NOT_EXPR:
4175 21 : {
4176 21 : tree _q40 = TREE_OPERAND (_q30, 0);
4177 21 : {
4178 21 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q31, _p0 };
4179 21 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4180 21 : if (res) return res;
4181 : }
4182 21 : break;
4183 : }
4184 521 : default:;
4185 : }
4186 521 : switch (TREE_CODE (_q31))
4187 : {
4188 25 : case BIT_NOT_EXPR:
4189 25 : {
4190 25 : tree _q50 = TREE_OPERAND (_q31, 0);
4191 25 : {
4192 25 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q31, _q50, _q30, _p0 };
4193 25 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4194 25 : if (res) return res;
4195 : }
4196 25 : break;
4197 : }
4198 : default:;
4199 : }
4200 : break;
4201 : }
4202 997924 : default:;
4203 : }
4204 997924 : switch (TREE_CODE (_p0))
4205 : {
4206 3380 : case BIT_AND_EXPR:
4207 3380 : {
4208 3380 : tree _q20 = TREE_OPERAND (_p0, 0);
4209 3380 : tree _q21 = TREE_OPERAND (_p0, 1);
4210 3380 : switch (TREE_CODE (_q20))
4211 : {
4212 90 : case BIT_NOT_EXPR:
4213 90 : {
4214 90 : tree _q30 = TREE_OPERAND (_q20, 0);
4215 90 : {
4216 90 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
4217 90 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
4218 90 : if (res) return res;
4219 : }
4220 89 : break;
4221 : }
4222 3379 : default:;
4223 : }
4224 3379 : switch (TREE_CODE (_q21))
4225 : {
4226 41 : case BIT_NOT_EXPR:
4227 41 : {
4228 41 : tree _q40 = TREE_OPERAND (_q21, 0);
4229 41 : {
4230 41 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20, _p1 };
4231 41 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
4232 41 : if (res) return res;
4233 : }
4234 41 : break;
4235 : }
4236 : default:;
4237 : }
4238 : break;
4239 : }
4240 997923 : default:;
4241 : }
4242 997923 : switch (TREE_CODE (_p1))
4243 : {
4244 789 : case BIT_AND_EXPR:
4245 789 : {
4246 789 : tree _q30 = TREE_OPERAND (_p1, 0);
4247 789 : tree _q31 = TREE_OPERAND (_p1, 1);
4248 789 : switch (TREE_CODE (_q30))
4249 : {
4250 57 : case BIT_NOT_EXPR:
4251 57 : {
4252 57 : tree _q40 = TREE_OPERAND (_q30, 0);
4253 57 : {
4254 57 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q31, _p0 };
4255 57 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
4256 57 : if (res) return res;
4257 : }
4258 57 : break;
4259 : }
4260 789 : default:;
4261 : }
4262 789 : switch (TREE_CODE (_q31))
4263 : {
4264 8 : case BIT_NOT_EXPR:
4265 8 : {
4266 8 : tree _q50 = TREE_OPERAND (_q31, 0);
4267 8 : {
4268 8 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q31, _q50, _q30, _p0 };
4269 8 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
4270 8 : if (res) return res;
4271 : }
4272 8 : break;
4273 : }
4274 : default:;
4275 : }
4276 : break;
4277 : }
4278 997923 : default:;
4279 : }
4280 997923 : switch (TREE_CODE (_p0))
4281 : {
4282 635772 : CASE_CONVERT:
4283 635772 : {
4284 635772 : tree _q20 = TREE_OPERAND (_p0, 0);
4285 635772 : switch (TREE_CODE (_p1))
4286 : {
4287 631555 : CASE_CONVERT:
4288 631555 : {
4289 631555 : tree _q40 = TREE_OPERAND (_p1, 0);
4290 631555 : {
4291 631555 : tree _q40_pops[1];
4292 631555 : if (tree_maybe_bit_not (_q40, _q40_pops))
4293 : {
4294 0 : tree _q50 = _q40_pops[0];
4295 0 : {
4296 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
4297 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4298 0 : if (res) return res;
4299 : }
4300 : }
4301 : }
4302 631555 : break;
4303 : }
4304 635772 : default:;
4305 : }
4306 635772 : {
4307 635772 : tree _q20_pops[1];
4308 635772 : if (tree_maybe_bit_not (_q20, _q20_pops))
4309 : {
4310 60485 : tree _q30 = _q20_pops[0];
4311 60485 : switch (TREE_CODE (_p1))
4312 : {
4313 60435 : CASE_CONVERT:
4314 60435 : {
4315 60435 : tree _q50 = TREE_OPERAND (_p1, 0);
4316 60435 : {
4317 60435 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
4318 60435 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4319 60435 : if (res) return res;
4320 : }
4321 60435 : break;
4322 : }
4323 : default:;
4324 : }
4325 : }
4326 : }
4327 635772 : break;
4328 : }
4329 997923 : default:;
4330 : }
4331 997923 : {
4332 997923 : tree _p1_pops[1];
4333 997923 : if (tree_maybe_bit_not (_p1, _p1_pops))
4334 : {
4335 9341 : tree _q30 = _p1_pops[0];
4336 9341 : {
4337 9341 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
4338 9341 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4339 9341 : if (res) return res;
4340 : }
4341 : }
4342 : }
4343 997923 : {
4344 997923 : tree _p0_pops[1];
4345 997923 : if (tree_maybe_bit_not (_p0, _p0_pops))
4346 : {
4347 1052 : tree _q20 = _p0_pops[0];
4348 1052 : {
4349 1052 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
4350 1052 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4351 1052 : if (res) return res;
4352 : }
4353 : }
4354 : }
4355 997902 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4356 : {
4357 149 : {
4358 149 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4359 149 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1163;
4360 149 : {
4361 149 : tree _r;
4362 149 : _r = build_zero_cst (type);
4363 149 : if (TREE_SIDE_EFFECTS (captures[0]))
4364 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4365 149 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 887, __FILE__, __LINE__, true);
4366 149 : return _r;
4367 : }
4368 0 : next_after_fail1163:;
4369 : }
4370 : }
4371 997753 : if (integer_all_onesp (_p1))
4372 : {
4373 1080 : {
4374 1080 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4375 1080 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1164;
4376 1080 : {
4377 1080 : tree res_op0;
4378 1080 : res_op0 = captures[0];
4379 1080 : tree _r;
4380 1080 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4381 1080 : if (TREE_SIDE_EFFECTS (captures[1]))
4382 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4383 1080 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
4384 1080 : return _r;
4385 : }
4386 0 : next_after_fail1164:;
4387 : }
4388 : }
4389 996673 : switch (TREE_CODE (_p0))
4390 : {
4391 1302 : case BIT_IOR_EXPR:
4392 1302 : {
4393 1302 : tree _q20 = TREE_OPERAND (_p0, 0);
4394 1302 : tree _q21 = TREE_OPERAND (_p0, 1);
4395 1302 : switch (TREE_CODE (_p1))
4396 : {
4397 179 : case BIT_IOR_EXPR:
4398 179 : {
4399 179 : tree _q50 = TREE_OPERAND (_p1, 0);
4400 179 : tree _q51 = TREE_OPERAND (_p1, 1);
4401 179 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4402 : {
4403 0 : switch (TREE_CODE (_q51))
4404 : {
4405 0 : case BIT_NOT_EXPR:
4406 0 : {
4407 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4408 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
4409 : {
4410 0 : {
4411 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4412 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4413 0 : if (res) return res;
4414 : }
4415 : }
4416 : break;
4417 : }
4418 : default:;
4419 : }
4420 : }
4421 179 : switch (TREE_CODE (_q50))
4422 : {
4423 20 : case BIT_NOT_EXPR:
4424 20 : {
4425 20 : tree _q60 = TREE_OPERAND (_q50, 0);
4426 20 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
4427 : {
4428 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4429 : {
4430 1 : {
4431 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4432 1 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4433 1 : if (res) return res;
4434 : }
4435 : }
4436 : }
4437 19 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4438 : {
4439 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4440 : {
4441 0 : {
4442 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
4443 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4444 0 : if (res) return res;
4445 : }
4446 : }
4447 : }
4448 : break;
4449 : }
4450 178 : default:;
4451 : }
4452 178 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4453 : {
4454 0 : switch (TREE_CODE (_q51))
4455 : {
4456 0 : case BIT_NOT_EXPR:
4457 0 : {
4458 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4459 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4460 : {
4461 0 : {
4462 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
4463 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4464 0 : if (res) return res;
4465 : }
4466 : }
4467 : break;
4468 : }
4469 : default:;
4470 : }
4471 : }
4472 : break;
4473 : }
4474 1301 : default:;
4475 : }
4476 1301 : switch (TREE_CODE (_q21))
4477 : {
4478 62 : case BIT_NOT_EXPR:
4479 62 : {
4480 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4481 62 : switch (TREE_CODE (_p1))
4482 : {
4483 9 : case BIT_IOR_EXPR:
4484 9 : {
4485 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4486 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4487 9 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4488 : {
4489 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
4490 : {
4491 0 : {
4492 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
4493 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4494 0 : if (res) return res;
4495 : }
4496 : }
4497 : }
4498 : break;
4499 : }
4500 : default:;
4501 : }
4502 : break;
4503 : }
4504 1301 : default:;
4505 : }
4506 1301 : switch (TREE_CODE (_q20))
4507 : {
4508 480 : case BIT_NOT_EXPR:
4509 480 : {
4510 480 : tree _q30 = TREE_OPERAND (_q20, 0);
4511 480 : switch (TREE_CODE (_p1))
4512 : {
4513 28 : case BIT_IOR_EXPR:
4514 28 : {
4515 28 : tree _q60 = TREE_OPERAND (_p1, 0);
4516 28 : tree _q61 = TREE_OPERAND (_p1, 1);
4517 28 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
4518 : {
4519 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
4520 : {
4521 0 : {
4522 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
4523 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4524 0 : if (res) return res;
4525 : }
4526 : }
4527 : }
4528 28 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4529 : {
4530 9 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
4531 : {
4532 0 : {
4533 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
4534 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4535 0 : if (res) return res;
4536 : }
4537 : }
4538 9 : switch (TREE_CODE (_q61))
4539 : {
4540 0 : case BIT_NOT_EXPR:
4541 0 : {
4542 0 : tree _q80 = TREE_OPERAND (_q61, 0);
4543 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
4544 : {
4545 0 : {
4546 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
4547 0 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
4548 0 : if (res) return res;
4549 : }
4550 : }
4551 : break;
4552 : }
4553 : default:;
4554 : }
4555 : }
4556 28 : switch (TREE_CODE (_q60))
4557 : {
4558 1 : case BIT_NOT_EXPR:
4559 1 : {
4560 1 : tree _q70 = TREE_OPERAND (_q60, 0);
4561 1 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
4562 : {
4563 1 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
4564 : {
4565 1 : {
4566 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
4567 1 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
4568 1 : if (res) return res;
4569 : }
4570 : }
4571 : }
4572 : break;
4573 : }
4574 : default:;
4575 : }
4576 : break;
4577 : }
4578 9 : case BIT_XOR_EXPR:
4579 9 : {
4580 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4581 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4582 9 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4583 : {
4584 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
4585 : {
4586 0 : {
4587 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
4588 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
4589 0 : if (res) return res;
4590 : }
4591 : }
4592 : }
4593 : break;
4594 : }
4595 479 : default:;
4596 : }
4597 479 : {
4598 479 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p1 };
4599 479 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
4600 479 : if (res) return res;
4601 : }
4602 431 : break;
4603 : }
4604 1252 : default:;
4605 : }
4606 1252 : switch (TREE_CODE (_q21))
4607 : {
4608 62 : case BIT_NOT_EXPR:
4609 62 : {
4610 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4611 62 : switch (TREE_CODE (_p1))
4612 : {
4613 9 : case BIT_IOR_EXPR:
4614 9 : {
4615 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4616 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4617 9 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
4618 : {
4619 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
4620 : {
4621 0 : {
4622 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
4623 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4624 0 : if (res) return res;
4625 : }
4626 : }
4627 : }
4628 : break;
4629 : }
4630 9 : case BIT_XOR_EXPR:
4631 9 : {
4632 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4633 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4634 9 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
4635 : {
4636 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
4637 : {
4638 0 : {
4639 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
4640 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
4641 0 : if (res) return res;
4642 : }
4643 : }
4644 : }
4645 : break;
4646 : }
4647 : default:;
4648 : }
4649 : break;
4650 : }
4651 1252 : default:;
4652 : }
4653 1252 : switch (TREE_CODE (_p1))
4654 : {
4655 65 : case BIT_AND_EXPR:
4656 65 : {
4657 65 : tree _q50 = TREE_OPERAND (_p1, 0);
4658 65 : tree _q51 = TREE_OPERAND (_p1, 1);
4659 65 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4660 : {
4661 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4662 : {
4663 0 : {
4664 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4665 0 : tree res = generic_simplify_20 (loc, type, _p0, _p1, captures);
4666 0 : if (res) return res;
4667 : }
4668 : }
4669 : }
4670 : break;
4671 : }
4672 36 : case BIT_XOR_EXPR:
4673 36 : {
4674 36 : tree _q50 = TREE_OPERAND (_p1, 0);
4675 36 : tree _q51 = TREE_OPERAND (_p1, 1);
4676 36 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4677 : {
4678 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4679 : {
4680 0 : {
4681 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4682 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
4683 0 : if (res) return res;
4684 : }
4685 : }
4686 : }
4687 : break;
4688 : }
4689 1252 : default:;
4690 : }
4691 1252 : switch (TREE_CODE (_q21))
4692 : {
4693 62 : case BIT_NOT_EXPR:
4694 62 : {
4695 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4696 62 : switch (TREE_CODE (_p1))
4697 : {
4698 9 : case BIT_IOR_EXPR:
4699 9 : {
4700 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4701 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4702 9 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
4703 : {
4704 0 : switch (TREE_CODE (_q61))
4705 : {
4706 0 : case BIT_NOT_EXPR:
4707 0 : {
4708 0 : tree _q80 = TREE_OPERAND (_q61, 0);
4709 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
4710 : {
4711 0 : {
4712 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
4713 0 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
4714 0 : if (res) return res;
4715 : }
4716 : }
4717 : break;
4718 : }
4719 : default:;
4720 : }
4721 : }
4722 9 : switch (TREE_CODE (_q60))
4723 : {
4724 0 : case BIT_NOT_EXPR:
4725 0 : {
4726 0 : tree _q70 = TREE_OPERAND (_q60, 0);
4727 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4728 : {
4729 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
4730 : {
4731 0 : {
4732 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
4733 0 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
4734 0 : if (res) return res;
4735 : }
4736 : }
4737 : }
4738 : break;
4739 : }
4740 : default:;
4741 : }
4742 : break;
4743 : }
4744 : default:;
4745 : }
4746 : break;
4747 : }
4748 1252 : default:;
4749 : }
4750 1252 : switch (TREE_CODE (_p1))
4751 : {
4752 24 : CASE_CONVERT:
4753 24 : {
4754 24 : tree _q50 = TREE_OPERAND (_p1, 0);
4755 24 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
4756 : {
4757 0 : {
4758 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
4759 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
4760 0 : if (res) return res;
4761 : }
4762 : }
4763 24 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
4764 : {
4765 0 : {
4766 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q21 };
4767 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
4768 0 : if (res) return res;
4769 : }
4770 : }
4771 : break;
4772 : }
4773 1252 : default:;
4774 : }
4775 1252 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
4776 : {
4777 3 : {
4778 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
4779 3 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
4780 3 : if (res) return res;
4781 : }
4782 : }
4783 1249 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
4784 : {
4785 3 : {
4786 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q21 };
4787 3 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
4788 3 : if (res) return res;
4789 : }
4790 : }
4791 1246 : {
4792 1246 : tree _q20_pops[1];
4793 1246 : if (tree_nop_convert (_q20, _q20_pops))
4794 : {
4795 8 : tree _q30 = _q20_pops[0];
4796 8 : switch (TREE_CODE (_q30))
4797 : {
4798 8 : case BIT_NOT_EXPR:
4799 8 : {
4800 8 : tree _q40 = TREE_OPERAND (_q30, 0);
4801 8 : {
4802 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q21, _p1 };
4803 8 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
4804 8 : if (res) return res;
4805 : }
4806 0 : break;
4807 : }
4808 : default:;
4809 : }
4810 : }
4811 : }
4812 1238 : switch (TREE_CODE (_q21))
4813 : {
4814 62 : case BIT_NOT_EXPR:
4815 62 : {
4816 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4817 62 : {
4818 62 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q20, _p1 };
4819 62 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
4820 62 : if (res) return res;
4821 : }
4822 54 : break;
4823 : }
4824 1230 : default:;
4825 : }
4826 1230 : {
4827 1230 : tree _q21_pops[1];
4828 1230 : if (tree_nop_convert (_q21, _q21_pops))
4829 : {
4830 0 : tree _q40 = _q21_pops[0];
4831 0 : switch (TREE_CODE (_q40))
4832 : {
4833 0 : case BIT_NOT_EXPR:
4834 0 : {
4835 0 : tree _q50 = TREE_OPERAND (_q40, 0);
4836 0 : {
4837 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q20, _p1 };
4838 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
4839 0 : if (res) return res;
4840 : }
4841 0 : break;
4842 : }
4843 : default:;
4844 : }
4845 : }
4846 : }
4847 1230 : break;
4848 : }
4849 3935 : case BIT_XOR_EXPR:
4850 3935 : {
4851 3935 : tree _q20 = TREE_OPERAND (_p0, 0);
4852 3935 : tree _q21 = TREE_OPERAND (_p0, 1);
4853 3935 : switch (TREE_CODE (_p1))
4854 : {
4855 203 : case BIT_IOR_EXPR:
4856 203 : {
4857 203 : tree _q50 = TREE_OPERAND (_p1, 0);
4858 203 : tree _q51 = TREE_OPERAND (_p1, 1);
4859 203 : switch (TREE_CODE (_q50))
4860 : {
4861 1 : case BIT_NOT_EXPR:
4862 1 : {
4863 1 : tree _q60 = TREE_OPERAND (_q50, 0);
4864 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4865 : {
4866 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4867 : {
4868 1 : {
4869 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q21, _p0 };
4870 1 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
4871 1 : if (res) return res;
4872 : }
4873 : }
4874 : }
4875 : break;
4876 : }
4877 202 : default:;
4878 : }
4879 202 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4880 : {
4881 0 : switch (TREE_CODE (_q51))
4882 : {
4883 0 : case BIT_NOT_EXPR:
4884 0 : {
4885 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4886 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4887 : {
4888 0 : {
4889 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q21, _p0 };
4890 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
4891 0 : if (res) return res;
4892 : }
4893 : }
4894 : break;
4895 : }
4896 : default:;
4897 : }
4898 : }
4899 202 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4900 : {
4901 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4902 : {
4903 0 : {
4904 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4905 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
4906 0 : if (res) return res;
4907 : }
4908 : }
4909 : }
4910 : break;
4911 : }
4912 41 : case BIT_AND_EXPR:
4913 41 : {
4914 41 : tree _q50 = TREE_OPERAND (_p1, 0);
4915 41 : tree _q51 = TREE_OPERAND (_p1, 1);
4916 41 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4917 : {
4918 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4919 : {
4920 0 : {
4921 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4922 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4923 0 : if (res) return res;
4924 : }
4925 : }
4926 : }
4927 : break;
4928 : }
4929 198 : CASE_CONVERT:
4930 198 : {
4931 198 : tree _q50 = TREE_OPERAND (_p1, 0);
4932 198 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
4933 : {
4934 0 : {
4935 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
4936 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
4937 0 : if (res) return res;
4938 : }
4939 : }
4940 198 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
4941 : {
4942 0 : {
4943 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q20 };
4944 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
4945 0 : if (res) return res;
4946 : }
4947 : }
4948 : break;
4949 : }
4950 3934 : default:;
4951 : }
4952 3934 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
4953 : {
4954 0 : {
4955 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
4956 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
4957 0 : if (res) return res;
4958 : }
4959 : }
4960 3934 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
4961 : {
4962 11 : {
4963 11 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q20 };
4964 11 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
4965 11 : if (res) return res;
4966 : }
4967 : }
4968 : break;
4969 : }
4970 3379 : case BIT_AND_EXPR:
4971 3379 : {
4972 3379 : tree _q20 = TREE_OPERAND (_p0, 0);
4973 3379 : tree _q21 = TREE_OPERAND (_p0, 1);
4974 3379 : switch (TREE_CODE (_p1))
4975 : {
4976 74 : case BIT_IOR_EXPR:
4977 74 : {
4978 74 : tree _q50 = TREE_OPERAND (_p1, 0);
4979 74 : tree _q51 = TREE_OPERAND (_p1, 1);
4980 74 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4981 : {
4982 18 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4983 : {
4984 0 : {
4985 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4986 0 : tree res = generic_simplify_20 (loc, type, _p0, _p1, captures);
4987 0 : if (res) return res;
4988 : }
4989 : }
4990 : }
4991 : break;
4992 : }
4993 30 : case BIT_XOR_EXPR:
4994 30 : {
4995 30 : tree _q50 = TREE_OPERAND (_p1, 0);
4996 30 : tree _q51 = TREE_OPERAND (_p1, 1);
4997 30 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4998 : {
4999 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5000 : {
5001 0 : {
5002 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5003 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
5004 0 : if (res) return res;
5005 : }
5006 : }
5007 : }
5008 : break;
5009 : }
5010 3379 : default:;
5011 : }
5012 3379 : switch (TREE_CODE (_q21))
5013 : {
5014 1554 : case INTEGER_CST:
5015 1554 : {
5016 1554 : switch (TREE_CODE (_p1))
5017 : {
5018 15 : CASE_CONVERT:
5019 15 : {
5020 15 : tree _q50 = TREE_OPERAND (_p1, 0);
5021 15 : switch (TREE_CODE (_q50))
5022 : {
5023 0 : case BIT_AND_EXPR:
5024 0 : {
5025 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5026 0 : tree _q61 = TREE_OPERAND (_q50, 1);
5027 0 : switch (TREE_CODE (_q61))
5028 : {
5029 0 : case INTEGER_CST:
5030 0 : {
5031 0 : {
5032 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q60, _q61 };
5033 0 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
5034 0 : if (res) return res;
5035 : }
5036 0 : break;
5037 : }
5038 : default:;
5039 : }
5040 : break;
5041 : }
5042 : default:;
5043 : }
5044 : break;
5045 : }
5046 210 : case BIT_AND_EXPR:
5047 210 : {
5048 210 : tree _q50 = TREE_OPERAND (_p1, 0);
5049 210 : tree _q51 = TREE_OPERAND (_p1, 1);
5050 210 : switch (TREE_CODE (_q51))
5051 : {
5052 210 : case INTEGER_CST:
5053 210 : {
5054 210 : {
5055 210 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
5056 210 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
5057 210 : if (res) return res;
5058 : }
5059 209 : break;
5060 : }
5061 : default:;
5062 : }
5063 : break;
5064 : }
5065 : default:;
5066 : }
5067 : break;
5068 : }
5069 : default:;
5070 : }
5071 : break;
5072 : }
5073 635615 : CASE_CONVERT:
5074 635615 : {
5075 635615 : tree _q20 = TREE_OPERAND (_p0, 0);
5076 635615 : switch (TREE_CODE (_q20))
5077 : {
5078 24 : case BIT_AND_EXPR:
5079 24 : {
5080 24 : tree _q30 = TREE_OPERAND (_q20, 0);
5081 24 : tree _q31 = TREE_OPERAND (_q20, 1);
5082 24 : switch (TREE_CODE (_q31))
5083 : {
5084 0 : case INTEGER_CST:
5085 0 : {
5086 0 : switch (TREE_CODE (_p1))
5087 : {
5088 0 : CASE_CONVERT:
5089 0 : {
5090 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5091 0 : switch (TREE_CODE (_q60))
5092 : {
5093 0 : case BIT_AND_EXPR:
5094 0 : {
5095 0 : tree _q70 = TREE_OPERAND (_q60, 0);
5096 0 : tree _q71 = TREE_OPERAND (_q60, 1);
5097 0 : switch (TREE_CODE (_q71))
5098 : {
5099 0 : case INTEGER_CST:
5100 0 : {
5101 0 : {
5102 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q60, _q70, _q71 };
5103 0 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
5104 0 : if (res) return res;
5105 : }
5106 0 : break;
5107 : }
5108 : default:;
5109 : }
5110 : break;
5111 : }
5112 : default:;
5113 : }
5114 : break;
5115 : }
5116 0 : case BIT_AND_EXPR:
5117 0 : {
5118 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5119 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5120 0 : switch (TREE_CODE (_q61))
5121 : {
5122 0 : case INTEGER_CST:
5123 0 : {
5124 0 : {
5125 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1, _q60, _q61 };
5126 0 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
5127 0 : if (res) return res;
5128 : }
5129 0 : break;
5130 : }
5131 : default:;
5132 : }
5133 : break;
5134 : }
5135 : default:;
5136 : }
5137 : break;
5138 : }
5139 : default:;
5140 : }
5141 : break;
5142 : }
5143 24 : case BIT_IOR_EXPR:
5144 24 : {
5145 24 : tree _q30 = TREE_OPERAND (_q20, 0);
5146 24 : tree _q31 = TREE_OPERAND (_q20, 1);
5147 24 : switch (TREE_CODE (_p1))
5148 : {
5149 16 : CASE_CONVERT:
5150 16 : {
5151 16 : tree _q60 = TREE_OPERAND (_p1, 0);
5152 16 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
5153 : {
5154 0 : {
5155 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
5156 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5157 0 : if (res) return res;
5158 : }
5159 : }
5160 16 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
5161 : {
5162 0 : {
5163 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
5164 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5165 0 : if (res) return res;
5166 : }
5167 : }
5168 : break;
5169 : }
5170 24 : default:;
5171 : }
5172 24 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
5173 : {
5174 0 : {
5175 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
5176 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5177 0 : if (res) return res;
5178 : }
5179 : }
5180 24 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
5181 : {
5182 0 : {
5183 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
5184 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5185 0 : if (res) return res;
5186 : }
5187 : }
5188 : break;
5189 : }
5190 635615 : default:;
5191 : }
5192 635615 : switch (TREE_CODE (_p1))
5193 : {
5194 631548 : CASE_CONVERT:
5195 631548 : {
5196 631548 : tree _q40 = TREE_OPERAND (_p1, 0);
5197 631548 : switch (TREE_CODE (_q40))
5198 : {
5199 0 : case BIT_IOR_EXPR:
5200 0 : {
5201 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5202 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5203 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
5204 : {
5205 0 : {
5206 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
5207 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5208 0 : if (res) return res;
5209 : }
5210 : }
5211 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
5212 : {
5213 0 : {
5214 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q50, _q20 };
5215 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5216 0 : if (res) return res;
5217 : }
5218 : }
5219 : break;
5220 : }
5221 : default:;
5222 : }
5223 : break;
5224 : }
5225 26 : case BIT_IOR_EXPR:
5226 26 : {
5227 26 : tree _q40 = TREE_OPERAND (_p1, 0);
5228 26 : tree _q41 = TREE_OPERAND (_p1, 1);
5229 26 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
5230 : {
5231 0 : {
5232 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
5233 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5234 0 : if (res) return res;
5235 : }
5236 : }
5237 26 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
5238 : {
5239 0 : {
5240 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
5241 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5242 0 : if (res) return res;
5243 : }
5244 : }
5245 : break;
5246 : }
5247 : default:;
5248 : }
5249 : break;
5250 : }
5251 996588 : default:;
5252 : }
5253 996588 : switch (TREE_CODE (_p1))
5254 : {
5255 760758 : CASE_CONVERT:
5256 760758 : {
5257 760758 : tree _q30 = TREE_OPERAND (_p1, 0);
5258 760758 : switch (TREE_CODE (_q30))
5259 : {
5260 6 : case BIT_IOR_EXPR:
5261 6 : {
5262 6 : tree _q40 = TREE_OPERAND (_q30, 0);
5263 6 : tree _q41 = TREE_OPERAND (_q30, 1);
5264 6 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
5265 : {
5266 0 : {
5267 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _p0 };
5268 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5269 0 : if (res) return res;
5270 : }
5271 : }
5272 6 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
5273 : {
5274 0 : {
5275 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _p0 };
5276 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5277 0 : if (res) return res;
5278 : }
5279 : }
5280 : break;
5281 : }
5282 : default:;
5283 : }
5284 : break;
5285 : }
5286 518 : case BIT_IOR_EXPR:
5287 518 : {
5288 518 : tree _q30 = TREE_OPERAND (_p1, 0);
5289 518 : tree _q31 = TREE_OPERAND (_p1, 1);
5290 518 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
5291 : {
5292 1 : {
5293 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
5294 1 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5295 1 : if (res) return res;
5296 : }
5297 : }
5298 517 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
5299 : {
5300 1 : {
5301 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
5302 1 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5303 1 : if (res) return res;
5304 : }
5305 : }
5306 : break;
5307 : }
5308 996586 : default:;
5309 : }
5310 996586 : {
5311 996586 : tree _p0_pops[1];
5312 996586 : if (tree_nop_convert (_p0, _p0_pops))
5313 : {
5314 508139 : tree _q20 = _p0_pops[0];
5315 508139 : switch (TREE_CODE (_q20))
5316 : {
5317 16 : case BIT_IOR_EXPR:
5318 16 : {
5319 16 : tree _q30 = TREE_OPERAND (_q20, 0);
5320 16 : tree _q31 = TREE_OPERAND (_q20, 1);
5321 16 : {
5322 16 : tree _q30_pops[1];
5323 16 : if (tree_nop_convert (_q30, _q30_pops))
5324 : {
5325 0 : tree _q40 = _q30_pops[0];
5326 0 : switch (TREE_CODE (_q40))
5327 : {
5328 0 : case BIT_NOT_EXPR:
5329 0 : {
5330 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5331 0 : {
5332 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q31, _p1 };
5333 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5334 0 : if (res) return res;
5335 : }
5336 0 : break;
5337 : }
5338 : default:;
5339 : }
5340 : }
5341 : }
5342 16 : {
5343 16 : tree _q31_pops[1];
5344 16 : if (tree_nop_convert (_q31, _q31_pops))
5345 : {
5346 0 : tree _q50 = _q31_pops[0];
5347 0 : switch (TREE_CODE (_q50))
5348 : {
5349 0 : case BIT_NOT_EXPR:
5350 0 : {
5351 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5352 0 : {
5353 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q30, _p1 };
5354 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5355 0 : if (res) return res;
5356 : }
5357 0 : break;
5358 : }
5359 : default:;
5360 : }
5361 : }
5362 : }
5363 16 : switch (TREE_CODE (_q30))
5364 : {
5365 16 : case BIT_NOT_EXPR:
5366 16 : {
5367 16 : tree _q40 = TREE_OPERAND (_q30, 0);
5368 16 : {
5369 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q31, _p1 };
5370 16 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5371 16 : if (res) return res;
5372 : }
5373 0 : break;
5374 : }
5375 0 : default:;
5376 : }
5377 0 : switch (TREE_CODE (_q31))
5378 : {
5379 0 : case BIT_NOT_EXPR:
5380 0 : {
5381 0 : tree _q50 = TREE_OPERAND (_q31, 0);
5382 0 : {
5383 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q30, _p1 };
5384 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5385 0 : if (res) return res;
5386 : }
5387 0 : break;
5388 : }
5389 : default:;
5390 : }
5391 : break;
5392 : }
5393 : default:;
5394 : }
5395 : }
5396 : }
5397 996570 : switch (TREE_CODE (_p1))
5398 : {
5399 516 : case BIT_IOR_EXPR:
5400 516 : {
5401 516 : tree _q30 = TREE_OPERAND (_p1, 0);
5402 516 : tree _q31 = TREE_OPERAND (_p1, 1);
5403 516 : {
5404 516 : tree _q30_pops[1];
5405 516 : if (tree_nop_convert (_q30, _q30_pops))
5406 : {
5407 2 : tree _q40 = _q30_pops[0];
5408 2 : switch (TREE_CODE (_q40))
5409 : {
5410 0 : case BIT_NOT_EXPR:
5411 0 : {
5412 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5413 0 : {
5414 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q31, _p0 };
5415 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5416 0 : if (res) return res;
5417 : }
5418 0 : break;
5419 : }
5420 : default:;
5421 : }
5422 : }
5423 : }
5424 516 : {
5425 516 : tree _q31_pops[1];
5426 516 : if (tree_nop_convert (_q31, _q31_pops))
5427 : {
5428 2 : tree _q50 = _q31_pops[0];
5429 2 : switch (TREE_CODE (_q50))
5430 : {
5431 0 : case BIT_NOT_EXPR:
5432 0 : {
5433 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5434 0 : {
5435 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q30, _p0 };
5436 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5437 0 : if (res) return res;
5438 : }
5439 0 : break;
5440 : }
5441 : default:;
5442 : }
5443 : }
5444 : }
5445 516 : switch (TREE_CODE (_q30))
5446 : {
5447 18 : case BIT_NOT_EXPR:
5448 18 : {
5449 18 : tree _q40 = TREE_OPERAND (_q30, 0);
5450 18 : {
5451 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q31, _p0 };
5452 18 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5453 18 : if (res) return res;
5454 : }
5455 18 : break;
5456 : }
5457 516 : default:;
5458 : }
5459 516 : switch (TREE_CODE (_q31))
5460 : {
5461 25 : case BIT_NOT_EXPR:
5462 25 : {
5463 25 : tree _q50 = TREE_OPERAND (_q31, 0);
5464 25 : {
5465 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q30, _p0 };
5466 25 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5467 25 : if (res) return res;
5468 : }
5469 17 : break;
5470 : }
5471 : default:;
5472 : }
5473 : break;
5474 : }
5475 996562 : default:;
5476 : }
5477 996562 : {
5478 996562 : tree _p1_pops[1];
5479 996562 : if (tree_nop_convert (_p1, _p1_pops))
5480 : {
5481 635875 : tree _q30 = _p1_pops[0];
5482 635875 : switch (TREE_CODE (_q30))
5483 : {
5484 0 : case BIT_IOR_EXPR:
5485 0 : {
5486 0 : tree _q40 = TREE_OPERAND (_q30, 0);
5487 0 : tree _q41 = TREE_OPERAND (_q30, 1);
5488 0 : {
5489 0 : tree _q40_pops[1];
5490 0 : if (tree_nop_convert (_q40, _q40_pops))
5491 : {
5492 0 : tree _q50 = _q40_pops[0];
5493 0 : switch (TREE_CODE (_q50))
5494 : {
5495 0 : case BIT_NOT_EXPR:
5496 0 : {
5497 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5498 0 : {
5499 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q41, _p0 };
5500 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5501 0 : if (res) return res;
5502 : }
5503 0 : break;
5504 : }
5505 : default:;
5506 : }
5507 : }
5508 : }
5509 0 : {
5510 0 : tree _q41_pops[1];
5511 0 : if (tree_nop_convert (_q41, _q41_pops))
5512 : {
5513 0 : tree _q60 = _q41_pops[0];
5514 0 : switch (TREE_CODE (_q60))
5515 : {
5516 0 : case BIT_NOT_EXPR:
5517 0 : {
5518 0 : tree _q70 = TREE_OPERAND (_q60, 0);
5519 0 : {
5520 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q70, _q40, _p0 };
5521 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5522 0 : if (res) return res;
5523 : }
5524 0 : break;
5525 : }
5526 : default:;
5527 : }
5528 : }
5529 : }
5530 0 : switch (TREE_CODE (_q40))
5531 : {
5532 0 : case BIT_NOT_EXPR:
5533 0 : {
5534 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5535 0 : {
5536 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q41, _p0 };
5537 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5538 0 : if (res) return res;
5539 : }
5540 0 : break;
5541 : }
5542 0 : default:;
5543 : }
5544 0 : switch (TREE_CODE (_q41))
5545 : {
5546 0 : case BIT_NOT_EXPR:
5547 0 : {
5548 0 : tree _q60 = TREE_OPERAND (_q41, 0);
5549 0 : {
5550 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q40, _p0 };
5551 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5552 0 : if (res) return res;
5553 : }
5554 0 : break;
5555 : }
5556 : default:;
5557 : }
5558 : break;
5559 : }
5560 : default:;
5561 : }
5562 : }
5563 : }
5564 996562 : switch (TREE_CODE (_p0))
5565 : {
5566 635591 : CASE_CONVERT:
5567 635591 : {
5568 635591 : tree _q20 = TREE_OPERAND (_p0, 0);
5569 635591 : switch (TREE_CODE (_q20))
5570 : {
5571 50 : case BIT_NOT_EXPR:
5572 50 : {
5573 50 : tree _q30 = TREE_OPERAND (_q20, 0);
5574 50 : switch (TREE_CODE (_p1))
5575 : {
5576 0 : CASE_CONVERT:
5577 0 : {
5578 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5579 0 : switch (TREE_CODE (_q50))
5580 : {
5581 0 : case BIT_NOT_EXPR:
5582 0 : {
5583 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5584 0 : {
5585 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 };
5586 0 : tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
5587 0 : if (res) return res;
5588 : }
5589 0 : break;
5590 : }
5591 : default:;
5592 : }
5593 : break;
5594 : }
5595 0 : case BIT_NOT_EXPR:
5596 0 : {
5597 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5598 0 : {
5599 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
5600 0 : tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
5601 0 : if (res) return res;
5602 : }
5603 0 : break;
5604 : }
5605 26 : case INTEGER_CST:
5606 26 : {
5607 26 : {
5608 26 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 };
5609 26 : tree res = generic_simplify_27 (loc, type, _p0, _p1, captures);
5610 26 : if (res) return res;
5611 : }
5612 24 : break;
5613 : }
5614 : default:;
5615 : }
5616 : break;
5617 : }
5618 : default:;
5619 : }
5620 : break;
5621 : }
5622 484 : case BIT_NOT_EXPR:
5623 484 : {
5624 484 : tree _q20 = TREE_OPERAND (_p0, 0);
5625 484 : switch (TREE_CODE (_p1))
5626 : {
5627 18 : CASE_CONVERT:
5628 18 : {
5629 18 : tree _q40 = TREE_OPERAND (_p1, 0);
5630 18 : switch (TREE_CODE (_q40))
5631 : {
5632 0 : case BIT_NOT_EXPR:
5633 0 : {
5634 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5635 0 : {
5636 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
5637 0 : tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
5638 0 : if (res) return res;
5639 : }
5640 0 : break;
5641 : }
5642 : default:;
5643 : }
5644 : break;
5645 : }
5646 10 : case BIT_NOT_EXPR:
5647 10 : {
5648 10 : tree _q40 = TREE_OPERAND (_p1, 0);
5649 10 : {
5650 10 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
5651 10 : tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
5652 10 : if (res) return res;
5653 : }
5654 0 : break;
5655 : }
5656 31 : case INTEGER_CST:
5657 31 : {
5658 31 : {
5659 31 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
5660 31 : tree res = generic_simplify_27 (loc, type, _p0, _p1, captures);
5661 31 : if (res) return res;
5662 : }
5663 0 : break;
5664 : }
5665 443 : default:;
5666 : }
5667 443 : {
5668 443 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1 };
5669 443 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures);
5670 443 : if (res) return res;
5671 : }
5672 0 : break;
5673 : }
5674 3376 : case BIT_AND_EXPR:
5675 3376 : {
5676 3376 : tree _q20 = TREE_OPERAND (_p0, 0);
5677 3376 : tree _q21 = TREE_OPERAND (_p0, 1);
5678 3376 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5679 : {
5680 75 : {
5681 75 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
5682 75 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5683 75 : if (res) return res;
5684 : }
5685 : }
5686 3301 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5687 : {
5688 3 : {
5689 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
5690 3 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5691 3 : if (res) return res;
5692 : }
5693 : }
5694 3298 : switch (TREE_CODE (_p1))
5695 : {
5696 353 : case BIT_AND_EXPR:
5697 353 : {
5698 353 : tree _q50 = TREE_OPERAND (_p1, 0);
5699 353 : tree _q51 = TREE_OPERAND (_p1, 1);
5700 353 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
5701 : {
5702 21 : {
5703 21 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
5704 21 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5705 21 : if (res) return res;
5706 : }
5707 : }
5708 332 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
5709 : {
5710 0 : {
5711 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q20 };
5712 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5713 0 : if (res) return res;
5714 : }
5715 : }
5716 332 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
5717 : {
5718 0 : {
5719 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q21 };
5720 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5721 0 : if (res) return res;
5722 : }
5723 : }
5724 332 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q21, 0))
5725 : {
5726 201 : {
5727 201 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q21 };
5728 201 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5729 201 : if (res) return res;
5730 : }
5731 : }
5732 : break;
5733 : }
5734 : default:;
5735 : }
5736 : break;
5737 : }
5738 995776 : default:;
5739 : }
5740 995776 : switch (TREE_CODE (_p1))
5741 : {
5742 513 : case BIT_AND_EXPR:
5743 513 : {
5744 513 : tree _q30 = TREE_OPERAND (_p1, 0);
5745 513 : tree _q31 = TREE_OPERAND (_p1, 1);
5746 513 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5747 : {
5748 0 : {
5749 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
5750 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5751 0 : if (res) return res;
5752 : }
5753 : }
5754 513 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5755 : {
5756 0 : {
5757 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
5758 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5759 0 : if (res) return res;
5760 : }
5761 : }
5762 : break;
5763 : }
5764 995776 : default:;
5765 : }
5766 995776 : switch (TREE_CODE (_p0))
5767 : {
5768 635589 : CASE_CONVERT:
5769 635589 : {
5770 635589 : tree _q20 = TREE_OPERAND (_p0, 0);
5771 635589 : switch (TREE_CODE (_q20))
5772 : {
5773 24 : case BIT_AND_EXPR:
5774 24 : {
5775 24 : tree _q30 = TREE_OPERAND (_q20, 0);
5776 24 : tree _q31 = TREE_OPERAND (_q20, 1);
5777 24 : switch (TREE_CODE (_p1))
5778 : {
5779 8 : CASE_CONVERT:
5780 8 : {
5781 8 : tree _q60 = TREE_OPERAND (_p1, 0);
5782 8 : switch (TREE_CODE (_q60))
5783 : {
5784 0 : case BIT_AND_EXPR:
5785 0 : {
5786 0 : tree _q70 = TREE_OPERAND (_q60, 0);
5787 0 : tree _q71 = TREE_OPERAND (_q60, 1);
5788 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
5789 : {
5790 0 : {
5791 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
5792 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5793 0 : if (res) return res;
5794 : }
5795 : }
5796 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
5797 : {
5798 0 : {
5799 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
5800 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5801 0 : if (res) return res;
5802 : }
5803 : }
5804 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
5805 : {
5806 0 : {
5807 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
5808 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5809 0 : if (res) return res;
5810 : }
5811 : }
5812 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
5813 : {
5814 0 : {
5815 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
5816 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5817 0 : if (res) return res;
5818 : }
5819 : }
5820 : break;
5821 : }
5822 : default:;
5823 : }
5824 : break;
5825 : }
5826 : default:;
5827 : }
5828 : break;
5829 : }
5830 60549 : case BIT_XOR_EXPR:
5831 60549 : {
5832 60549 : tree _q30 = TREE_OPERAND (_q20, 0);
5833 60549 : tree _q31 = TREE_OPERAND (_q20, 1);
5834 60549 : switch (TREE_CODE (_p1))
5835 : {
5836 60483 : CASE_CONVERT:
5837 60483 : {
5838 60483 : tree _q60 = TREE_OPERAND (_p1, 0);
5839 60483 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
5840 : {
5841 0 : {
5842 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
5843 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5844 0 : if (res) return res;
5845 : }
5846 : }
5847 60483 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
5848 : {
5849 0 : {
5850 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q30 };
5851 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5852 0 : if (res) return res;
5853 : }
5854 : }
5855 : break;
5856 : }
5857 60549 : default:;
5858 : }
5859 60549 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
5860 : {
5861 0 : {
5862 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
5863 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5864 0 : if (res) return res;
5865 : }
5866 : }
5867 60549 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
5868 : {
5869 0 : {
5870 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q30 };
5871 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5872 0 : if (res) return res;
5873 : }
5874 : }
5875 : break;
5876 : }
5877 635589 : default:;
5878 : }
5879 635589 : switch (TREE_CODE (_p1))
5880 : {
5881 631532 : CASE_CONVERT:
5882 631532 : {
5883 631532 : tree _q40 = TREE_OPERAND (_p1, 0);
5884 631532 : switch (TREE_CODE (_q40))
5885 : {
5886 0 : case BIT_XOR_EXPR:
5887 0 : {
5888 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5889 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5890 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
5891 : {
5892 0 : {
5893 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
5894 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5895 0 : if (res) return res;
5896 : }
5897 : }
5898 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
5899 : {
5900 0 : {
5901 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q50, _q20 };
5902 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5903 0 : if (res) return res;
5904 : }
5905 : }
5906 : break;
5907 : }
5908 : default:;
5909 : }
5910 : break;
5911 : }
5912 2 : case BIT_XOR_EXPR:
5913 2 : {
5914 2 : tree _q40 = TREE_OPERAND (_p1, 0);
5915 2 : tree _q41 = TREE_OPERAND (_p1, 1);
5916 2 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
5917 : {
5918 0 : {
5919 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
5920 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5921 0 : if (res) return res;
5922 : }
5923 : }
5924 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
5925 : {
5926 0 : {
5927 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
5928 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5929 0 : if (res) return res;
5930 : }
5931 : }
5932 : break;
5933 : }
5934 : default:;
5935 : }
5936 : break;
5937 : }
5938 995776 : default:;
5939 : }
5940 995776 : switch (TREE_CODE (_p1))
5941 : {
5942 760724 : CASE_CONVERT:
5943 760724 : {
5944 760724 : tree _q30 = TREE_OPERAND (_p1, 0);
5945 760724 : switch (TREE_CODE (_q30))
5946 : {
5947 8 : case BIT_XOR_EXPR:
5948 8 : {
5949 8 : tree _q40 = TREE_OPERAND (_q30, 0);
5950 8 : tree _q41 = TREE_OPERAND (_q30, 1);
5951 8 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
5952 : {
5953 0 : {
5954 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _p0 };
5955 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5956 0 : if (res) return res;
5957 : }
5958 : }
5959 8 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
5960 : {
5961 0 : {
5962 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _p0 };
5963 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5964 0 : if (res) return res;
5965 : }
5966 : }
5967 : break;
5968 : }
5969 : default:;
5970 : }
5971 : break;
5972 : }
5973 78 : case BIT_XOR_EXPR:
5974 78 : {
5975 78 : tree _q30 = TREE_OPERAND (_p1, 0);
5976 78 : tree _q31 = TREE_OPERAND (_p1, 1);
5977 78 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
5978 : {
5979 0 : {
5980 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
5981 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5982 0 : if (res) return res;
5983 : }
5984 : }
5985 78 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
5986 : {
5987 0 : {
5988 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
5989 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5990 0 : if (res) return res;
5991 : }
5992 : }
5993 : break;
5994 : }
5995 995776 : default:;
5996 : }
5997 995776 : switch (TREE_CODE (_p0))
5998 : {
5999 635589 : CASE_CONVERT:
6000 635589 : {
6001 635589 : tree _q20 = TREE_OPERAND (_p0, 0);
6002 635589 : switch (TREE_CODE (_q20))
6003 : {
6004 60549 : case BIT_XOR_EXPR:
6005 60549 : {
6006 60549 : tree _q30 = TREE_OPERAND (_q20, 0);
6007 60549 : tree _q31 = TREE_OPERAND (_q20, 1);
6008 60549 : switch (TREE_CODE (_p1))
6009 : {
6010 60483 : CASE_CONVERT:
6011 60483 : {
6012 60483 : tree _q60 = TREE_OPERAND (_p1, 0);
6013 60483 : switch (TREE_CODE (_q60))
6014 : {
6015 0 : case BIT_XOR_EXPR:
6016 0 : {
6017 0 : tree _q70 = TREE_OPERAND (_q60, 0);
6018 0 : tree _q71 = TREE_OPERAND (_q60, 1);
6019 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
6020 : {
6021 0 : {
6022 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q71 };
6023 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6024 0 : if (res) return res;
6025 : }
6026 : }
6027 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
6028 : {
6029 0 : {
6030 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q70 };
6031 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6032 0 : if (res) return res;
6033 : }
6034 : }
6035 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
6036 : {
6037 0 : {
6038 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q71 };
6039 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6040 0 : if (res) return res;
6041 : }
6042 : }
6043 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
6044 : {
6045 0 : {
6046 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q70 };
6047 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6048 0 : if (res) return res;
6049 : }
6050 : }
6051 : break;
6052 : }
6053 : default:;
6054 : }
6055 : break;
6056 : }
6057 0 : case BIT_XOR_EXPR:
6058 0 : {
6059 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6060 0 : tree _q61 = TREE_OPERAND (_p1, 1);
6061 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
6062 : {
6063 0 : {
6064 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q61 };
6065 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6066 0 : if (res) return res;
6067 : }
6068 : }
6069 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
6070 : {
6071 0 : {
6072 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
6073 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6074 0 : if (res) return res;
6075 : }
6076 : }
6077 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
6078 : {
6079 0 : {
6080 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q61 };
6081 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6082 0 : if (res) return res;
6083 : }
6084 : }
6085 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
6086 : {
6087 0 : {
6088 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q60 };
6089 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6090 0 : if (res) return res;
6091 : }
6092 : }
6093 : break;
6094 : }
6095 : default:;
6096 : }
6097 : break;
6098 : }
6099 635589 : default:;
6100 : }
6101 635589 : switch (TREE_CODE (_p1))
6102 : {
6103 631532 : CASE_CONVERT:
6104 631532 : {
6105 631532 : tree _q40 = TREE_OPERAND (_p1, 0);
6106 631532 : {
6107 631532 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
6108 631532 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
6109 631532 : if (res) return res;
6110 : }
6111 544021 : break;
6112 : }
6113 548078 : default:;
6114 : }
6115 548078 : {
6116 548078 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
6117 548078 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
6118 548078 : if (res) return res;
6119 : }
6120 547970 : break;
6121 : }
6122 3923 : case BIT_XOR_EXPR:
6123 3923 : {
6124 3923 : tree _q20 = TREE_OPERAND (_p0, 0);
6125 3923 : tree _q21 = TREE_OPERAND (_p0, 1);
6126 3923 : switch (TREE_CODE (_p1))
6127 : {
6128 198 : CASE_CONVERT:
6129 198 : {
6130 198 : tree _q50 = TREE_OPERAND (_p1, 0);
6131 198 : switch (TREE_CODE (_q50))
6132 : {
6133 0 : case BIT_XOR_EXPR:
6134 0 : {
6135 0 : tree _q60 = TREE_OPERAND (_q50, 0);
6136 0 : tree _q61 = TREE_OPERAND (_q50, 1);
6137 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6138 : {
6139 0 : {
6140 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q61 };
6141 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6142 0 : if (res) return res;
6143 : }
6144 : }
6145 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
6146 : {
6147 0 : {
6148 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q60 };
6149 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6150 0 : if (res) return res;
6151 : }
6152 : }
6153 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
6154 : {
6155 0 : {
6156 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q61 };
6157 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6158 0 : if (res) return res;
6159 : }
6160 : }
6161 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
6162 : {
6163 0 : {
6164 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q60 };
6165 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6166 0 : if (res) return res;
6167 : }
6168 : }
6169 : break;
6170 : }
6171 : default:;
6172 : }
6173 : break;
6174 : }
6175 10 : case BIT_XOR_EXPR:
6176 10 : {
6177 10 : tree _q50 = TREE_OPERAND (_p1, 0);
6178 10 : tree _q51 = TREE_OPERAND (_p1, 1);
6179 10 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6180 : {
6181 0 : {
6182 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
6183 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6184 0 : if (res) return res;
6185 : }
6186 : }
6187 10 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6188 : {
6189 0 : {
6190 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6191 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6192 0 : if (res) return res;
6193 : }
6194 : }
6195 10 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6196 : {
6197 0 : {
6198 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
6199 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6200 0 : if (res) return res;
6201 : }
6202 : }
6203 10 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6204 : {
6205 0 : {
6206 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
6207 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6208 0 : if (res) return res;
6209 : }
6210 : }
6211 : break;
6212 : }
6213 : default:;
6214 : }
6215 : break;
6216 : }
6217 3076 : case BIT_AND_EXPR:
6218 3076 : {
6219 3076 : tree _q20 = TREE_OPERAND (_p0, 0);
6220 3076 : tree _q21 = TREE_OPERAND (_p0, 1);
6221 3076 : {
6222 3076 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6223 3076 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR);
6224 3076 : if (res) return res;
6225 : }
6226 3076 : {
6227 3076 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
6228 3076 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR);
6229 3076 : if (res) return res;
6230 : }
6231 3076 : if (tree_truth_valued_p (_q20))
6232 : {
6233 0 : if (tree_truth_valued_p (_q21))
6234 : {
6235 0 : switch (TREE_CODE (_p1))
6236 : {
6237 0 : case EQ_EXPR:
6238 0 : {
6239 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6240 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6241 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6242 : {
6243 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6244 : {
6245 0 : {
6246 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6247 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1165;
6248 0 : {
6249 0 : tree res_op0;
6250 0 : {
6251 0 : tree _o1[2], _r1;
6252 0 : _o1[0] = captures[0];
6253 0 : _o1[1] = captures[1];
6254 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
6255 0 : res_op0 = _r1;
6256 : }
6257 0 : tree _r;
6258 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
6259 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
6260 0 : return _r;
6261 : }
6262 0 : next_after_fail1165:;
6263 : }
6264 : }
6265 : }
6266 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6267 : {
6268 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6269 : {
6270 0 : {
6271 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6272 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1166;
6273 0 : {
6274 0 : tree res_op0;
6275 0 : {
6276 0 : tree _o1[2], _r1;
6277 0 : _o1[0] = captures[0];
6278 0 : _o1[1] = captures[1];
6279 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
6280 0 : res_op0 = _r1;
6281 : }
6282 0 : tree _r;
6283 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
6284 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
6285 0 : return _r;
6286 : }
6287 0 : next_after_fail1166:;
6288 : }
6289 : }
6290 : }
6291 : break;
6292 : }
6293 : default:;
6294 : }
6295 : }
6296 : }
6297 : break;
6298 : }
6299 908157 : default:;
6300 : }
6301 908157 : switch (TREE_CODE (_p1))
6302 : {
6303 513 : case BIT_AND_EXPR:
6304 513 : {
6305 513 : tree _q30 = TREE_OPERAND (_p1, 0);
6306 513 : tree _q31 = TREE_OPERAND (_p1, 1);
6307 513 : {
6308 513 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
6309 513 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR);
6310 513 : if (res) return res;
6311 : }
6312 513 : {
6313 513 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
6314 513 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR);
6315 513 : if (res) return res;
6316 : }
6317 513 : break;
6318 : }
6319 908157 : default:;
6320 : }
6321 908157 : switch (TREE_CODE (_p0))
6322 : {
6323 3923 : case BIT_XOR_EXPR:
6324 3923 : {
6325 3923 : tree _q20 = TREE_OPERAND (_p0, 0);
6326 3923 : tree _q21 = TREE_OPERAND (_p0, 1);
6327 3923 : if (CONSTANT_CLASS_P (_q21))
6328 : {
6329 49 : if (CONSTANT_CLASS_P (_p1))
6330 : {
6331 30 : {
6332 30 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6333 30 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
6334 30 : if (res) return res;
6335 : }
6336 : }
6337 : }
6338 : break;
6339 : }
6340 70 : case COND_EXPR:
6341 70 : {
6342 70 : tree _q20 = TREE_OPERAND (_p0, 0);
6343 70 : tree _q21 = TREE_OPERAND (_p0, 1);
6344 70 : tree _q22 = TREE_OPERAND (_p0, 2);
6345 70 : if (integer_zerop (_q22))
6346 : {
6347 70 : switch (TREE_CODE (_p1))
6348 : {
6349 4 : case COND_EXPR:
6350 4 : {
6351 4 : tree _q60 = TREE_OPERAND (_p1, 0);
6352 4 : tree _q61 = TREE_OPERAND (_p1, 1);
6353 4 : tree _q62 = TREE_OPERAND (_p1, 2);
6354 4 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6355 : {
6356 0 : if (integer_zerop (_q61))
6357 : {
6358 0 : {
6359 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
6360 0 : const enum tree_code op = BIT_XOR_EXPR;
6361 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1167;
6362 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1167;
6363 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1167;
6364 0 : {
6365 0 : tree res_op0;
6366 0 : res_op0 = captures[1];
6367 0 : tree res_op1;
6368 0 : res_op1 = captures[2];
6369 0 : tree res_op2;
6370 0 : res_op2 = captures[4];
6371 0 : tree _r;
6372 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
6373 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
6374 0 : return _r;
6375 : }
6376 0 : next_after_fail1167:;
6377 : }
6378 : }
6379 : }
6380 : break;
6381 : }
6382 : default:;
6383 : }
6384 : }
6385 70 : if (integer_zerop (_q21))
6386 : {
6387 0 : switch (TREE_CODE (_p1))
6388 : {
6389 0 : case COND_EXPR:
6390 0 : {
6391 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6392 0 : tree _q61 = TREE_OPERAND (_p1, 1);
6393 0 : tree _q62 = TREE_OPERAND (_p1, 2);
6394 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6395 : {
6396 0 : if (integer_zerop (_q62))
6397 : {
6398 0 : {
6399 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
6400 0 : const enum tree_code op = BIT_XOR_EXPR;
6401 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1168;
6402 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1168;
6403 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1168;
6404 0 : {
6405 0 : tree res_op0;
6406 0 : res_op0 = captures[1];
6407 0 : tree res_op1;
6408 0 : res_op1 = captures[2];
6409 0 : tree res_op2;
6410 0 : res_op2 = captures[4];
6411 0 : tree _r;
6412 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
6413 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
6414 0 : return _r;
6415 : }
6416 0 : next_after_fail1168:;
6417 : }
6418 : }
6419 : }
6420 : break;
6421 : }
6422 : default:;
6423 : }
6424 : }
6425 70 : switch (TREE_CODE (_q20))
6426 : {
6427 0 : case LT_EXPR:
6428 0 : {
6429 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6430 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6431 0 : if (zerop (_q22))
6432 : {
6433 0 : switch (TREE_CODE (_p1))
6434 : {
6435 0 : case COND_EXPR:
6436 0 : {
6437 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6438 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6439 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6440 0 : switch (TREE_CODE (_q80))
6441 : {
6442 0 : case GE_EXPR:
6443 0 : {
6444 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6445 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6446 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6447 : {
6448 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6449 : {
6450 0 : if (zerop (_q82))
6451 : {
6452 0 : {
6453 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6454 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LT_EXPR, GE_EXPR);
6455 0 : if (res) return res;
6456 : }
6457 : }
6458 : }
6459 : }
6460 : break;
6461 : }
6462 : default:;
6463 : }
6464 : break;
6465 : }
6466 : default:;
6467 : }
6468 : }
6469 : break;
6470 : }
6471 38 : case LE_EXPR:
6472 38 : {
6473 38 : tree _q30 = TREE_OPERAND (_q20, 0);
6474 38 : tree _q31 = TREE_OPERAND (_q20, 1);
6475 38 : if (zerop (_q22))
6476 : {
6477 38 : switch (TREE_CODE (_p1))
6478 : {
6479 0 : case COND_EXPR:
6480 0 : {
6481 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6482 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6483 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6484 0 : switch (TREE_CODE (_q80))
6485 : {
6486 0 : case GT_EXPR:
6487 0 : {
6488 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6489 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6490 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6491 : {
6492 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6493 : {
6494 0 : if (zerop (_q82))
6495 : {
6496 0 : {
6497 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6498 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LE_EXPR, GT_EXPR);
6499 0 : if (res) return res;
6500 : }
6501 : }
6502 : }
6503 : }
6504 : break;
6505 : }
6506 : default:;
6507 : }
6508 : break;
6509 : }
6510 : default:;
6511 : }
6512 : }
6513 : break;
6514 : }
6515 0 : case EQ_EXPR:
6516 0 : {
6517 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6518 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6519 0 : if (zerop (_q22))
6520 : {
6521 0 : switch (TREE_CODE (_p1))
6522 : {
6523 0 : case COND_EXPR:
6524 0 : {
6525 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6526 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6527 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6528 0 : switch (TREE_CODE (_q80))
6529 : {
6530 0 : case NE_EXPR:
6531 0 : {
6532 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6533 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6534 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6535 : {
6536 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6537 : {
6538 0 : if (zerop (_q82))
6539 : {
6540 0 : {
6541 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6542 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, EQ_EXPR, NE_EXPR);
6543 0 : if (res) return res;
6544 : }
6545 : }
6546 : }
6547 : }
6548 : break;
6549 : }
6550 : default:;
6551 : }
6552 : break;
6553 : }
6554 : default:;
6555 : }
6556 : }
6557 : break;
6558 : }
6559 32 : case NE_EXPR:
6560 32 : {
6561 32 : tree _q30 = TREE_OPERAND (_q20, 0);
6562 32 : tree _q31 = TREE_OPERAND (_q20, 1);
6563 32 : if (zerop (_q22))
6564 : {
6565 32 : switch (TREE_CODE (_p1))
6566 : {
6567 4 : case COND_EXPR:
6568 4 : {
6569 4 : tree _q80 = TREE_OPERAND (_p1, 0);
6570 4 : tree _q81 = TREE_OPERAND (_p1, 1);
6571 4 : tree _q82 = TREE_OPERAND (_p1, 2);
6572 4 : switch (TREE_CODE (_q80))
6573 : {
6574 0 : case EQ_EXPR:
6575 0 : {
6576 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6577 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6578 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6579 : {
6580 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6581 : {
6582 0 : if (zerop (_q82))
6583 : {
6584 0 : {
6585 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6586 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, NE_EXPR, EQ_EXPR);
6587 0 : if (res) return res;
6588 : }
6589 : }
6590 : }
6591 : }
6592 : break;
6593 : }
6594 : default:;
6595 : }
6596 : break;
6597 : }
6598 : default:;
6599 : }
6600 : }
6601 : break;
6602 : }
6603 0 : case GE_EXPR:
6604 0 : {
6605 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6606 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6607 0 : if (zerop (_q22))
6608 : {
6609 0 : switch (TREE_CODE (_p1))
6610 : {
6611 0 : case COND_EXPR:
6612 0 : {
6613 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6614 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6615 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6616 0 : switch (TREE_CODE (_q80))
6617 : {
6618 0 : case LT_EXPR:
6619 0 : {
6620 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6621 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6622 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6623 : {
6624 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6625 : {
6626 0 : if (zerop (_q82))
6627 : {
6628 0 : {
6629 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6630 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GE_EXPR, LT_EXPR);
6631 0 : if (res) return res;
6632 : }
6633 : }
6634 : }
6635 : }
6636 : break;
6637 : }
6638 : default:;
6639 : }
6640 : break;
6641 : }
6642 : default:;
6643 : }
6644 : }
6645 : break;
6646 : }
6647 0 : case GT_EXPR:
6648 0 : {
6649 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6650 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6651 0 : if (zerop (_q22))
6652 : {
6653 0 : switch (TREE_CODE (_p1))
6654 : {
6655 0 : case COND_EXPR:
6656 0 : {
6657 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6658 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6659 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6660 0 : switch (TREE_CODE (_q80))
6661 : {
6662 0 : case LE_EXPR:
6663 0 : {
6664 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6665 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6666 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6667 : {
6668 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6669 : {
6670 0 : if (zerop (_q82))
6671 : {
6672 0 : {
6673 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6674 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GT_EXPR, LE_EXPR);
6675 0 : if (res) return res;
6676 : }
6677 : }
6678 : }
6679 : }
6680 : break;
6681 : }
6682 : default:;
6683 : }
6684 : break;
6685 : }
6686 : default:;
6687 : }
6688 : }
6689 : break;
6690 : }
6691 0 : case UNORDERED_EXPR:
6692 0 : {
6693 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6694 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6695 0 : if (zerop (_q22))
6696 : {
6697 0 : switch (TREE_CODE (_p1))
6698 : {
6699 0 : case COND_EXPR:
6700 0 : {
6701 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6702 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6703 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6704 0 : switch (TREE_CODE (_q80))
6705 : {
6706 0 : case ORDERED_EXPR:
6707 0 : {
6708 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6709 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6710 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6711 : {
6712 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6713 : {
6714 0 : if (zerop (_q82))
6715 : {
6716 0 : {
6717 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6718 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
6719 0 : if (res) return res;
6720 : }
6721 : }
6722 : }
6723 : }
6724 : break;
6725 : }
6726 : default:;
6727 : }
6728 : break;
6729 : }
6730 : default:;
6731 : }
6732 : }
6733 : break;
6734 : }
6735 0 : case ORDERED_EXPR:
6736 0 : {
6737 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6738 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6739 0 : if (zerop (_q22))
6740 : {
6741 0 : switch (TREE_CODE (_p1))
6742 : {
6743 0 : case COND_EXPR:
6744 0 : {
6745 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6746 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6747 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6748 0 : switch (TREE_CODE (_q80))
6749 : {
6750 0 : case UNORDERED_EXPR:
6751 0 : {
6752 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6753 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6754 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6755 : {
6756 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6757 : {
6758 0 : if (zerop (_q82))
6759 : {
6760 0 : {
6761 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6762 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
6763 0 : if (res) return res;
6764 : }
6765 : }
6766 : }
6767 : }
6768 : break;
6769 : }
6770 : default:;
6771 : }
6772 : break;
6773 : }
6774 : default:;
6775 : }
6776 : }
6777 : break;
6778 : }
6779 0 : case UNLT_EXPR:
6780 0 : {
6781 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6782 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6783 0 : if (zerop (_q22))
6784 : {
6785 0 : switch (TREE_CODE (_p1))
6786 : {
6787 0 : case COND_EXPR:
6788 0 : {
6789 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6790 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6791 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6792 0 : switch (TREE_CODE (_q80))
6793 : {
6794 0 : case GE_EXPR:
6795 0 : {
6796 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6797 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6798 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6799 : {
6800 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6801 : {
6802 0 : if (zerop (_q82))
6803 : {
6804 0 : {
6805 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6806 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLT_EXPR, GE_EXPR);
6807 0 : if (res) return res;
6808 : }
6809 : }
6810 : }
6811 : }
6812 : break;
6813 : }
6814 : default:;
6815 : }
6816 : break;
6817 : }
6818 : default:;
6819 : }
6820 : }
6821 : break;
6822 : }
6823 0 : case UNLE_EXPR:
6824 0 : {
6825 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6826 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6827 0 : if (zerop (_q22))
6828 : {
6829 0 : switch (TREE_CODE (_p1))
6830 : {
6831 0 : case COND_EXPR:
6832 0 : {
6833 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6834 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6835 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6836 0 : switch (TREE_CODE (_q80))
6837 : {
6838 0 : case GT_EXPR:
6839 0 : {
6840 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6841 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6842 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6843 : {
6844 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6845 : {
6846 0 : if (zerop (_q82))
6847 : {
6848 0 : {
6849 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6850 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLE_EXPR, GT_EXPR);
6851 0 : if (res) return res;
6852 : }
6853 : }
6854 : }
6855 : }
6856 : break;
6857 : }
6858 : default:;
6859 : }
6860 : break;
6861 : }
6862 : default:;
6863 : }
6864 : }
6865 : break;
6866 : }
6867 0 : case UNGT_EXPR:
6868 0 : {
6869 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6870 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6871 0 : if (zerop (_q22))
6872 : {
6873 0 : switch (TREE_CODE (_p1))
6874 : {
6875 0 : case COND_EXPR:
6876 0 : {
6877 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6878 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6879 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6880 0 : switch (TREE_CODE (_q80))
6881 : {
6882 0 : case LE_EXPR:
6883 0 : {
6884 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6885 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6886 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6887 : {
6888 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6889 : {
6890 0 : if (zerop (_q82))
6891 : {
6892 0 : {
6893 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6894 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGT_EXPR, LE_EXPR);
6895 0 : if (res) return res;
6896 : }
6897 : }
6898 : }
6899 : }
6900 : break;
6901 : }
6902 : default:;
6903 : }
6904 : break;
6905 : }
6906 : default:;
6907 : }
6908 : }
6909 : break;
6910 : }
6911 0 : case UNGE_EXPR:
6912 0 : {
6913 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6914 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6915 0 : if (zerop (_q22))
6916 : {
6917 0 : switch (TREE_CODE (_p1))
6918 : {
6919 0 : case COND_EXPR:
6920 0 : {
6921 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6922 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6923 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6924 0 : switch (TREE_CODE (_q80))
6925 : {
6926 0 : case LT_EXPR:
6927 0 : {
6928 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6929 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6930 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6931 : {
6932 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6933 : {
6934 0 : if (zerop (_q82))
6935 : {
6936 0 : {
6937 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6938 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGE_EXPR, LT_EXPR);
6939 0 : if (res) return res;
6940 : }
6941 : }
6942 : }
6943 : }
6944 : break;
6945 : }
6946 : default:;
6947 : }
6948 : break;
6949 : }
6950 : default:;
6951 : }
6952 : }
6953 : break;
6954 : }
6955 0 : case UNEQ_EXPR:
6956 0 : {
6957 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6958 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6959 0 : if (zerop (_q22))
6960 : {
6961 0 : switch (TREE_CODE (_p1))
6962 : {
6963 0 : case COND_EXPR:
6964 0 : {
6965 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6966 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6967 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6968 0 : switch (TREE_CODE (_q80))
6969 : {
6970 0 : case LTGT_EXPR:
6971 0 : {
6972 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6973 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6974 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6975 : {
6976 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6977 : {
6978 0 : if (zerop (_q82))
6979 : {
6980 0 : {
6981 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6982 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNEQ_EXPR, LTGT_EXPR);
6983 0 : if (res) return res;
6984 : }
6985 : }
6986 : }
6987 : }
6988 : break;
6989 : }
6990 : default:;
6991 : }
6992 : break;
6993 : }
6994 : default:;
6995 : }
6996 : }
6997 : break;
6998 : }
6999 0 : case LTGT_EXPR:
7000 0 : {
7001 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7002 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7003 0 : if (zerop (_q22))
7004 : {
7005 0 : switch (TREE_CODE (_p1))
7006 : {
7007 0 : case COND_EXPR:
7008 0 : {
7009 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7010 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7011 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7012 0 : switch (TREE_CODE (_q80))
7013 : {
7014 0 : case UNEQ_EXPR:
7015 0 : {
7016 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7017 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7018 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7019 : {
7020 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7021 : {
7022 0 : if (zerop (_q82))
7023 : {
7024 0 : {
7025 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
7026 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LTGT_EXPR, UNEQ_EXPR);
7027 0 : if (res) return res;
7028 : }
7029 : }
7030 : }
7031 : }
7032 : break;
7033 : }
7034 : default:;
7035 : }
7036 : break;
7037 : }
7038 : default:;
7039 : }
7040 : }
7041 : break;
7042 : }
7043 : default:;
7044 : }
7045 : break;
7046 : }
7047 1 : case VEC_COND_EXPR:
7048 1 : {
7049 1 : tree _q20 = TREE_OPERAND (_p0, 0);
7050 1 : tree _q21 = TREE_OPERAND (_p0, 1);
7051 1 : tree _q22 = TREE_OPERAND (_p0, 2);
7052 1 : if (integer_zerop (_q22))
7053 : {
7054 1 : switch (TREE_CODE (_p1))
7055 : {
7056 0 : case VEC_COND_EXPR:
7057 0 : {
7058 0 : tree _q60 = TREE_OPERAND (_p1, 0);
7059 0 : tree _q61 = TREE_OPERAND (_p1, 1);
7060 0 : tree _q62 = TREE_OPERAND (_p1, 2);
7061 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7062 : {
7063 0 : if (integer_zerop (_q61))
7064 : {
7065 0 : {
7066 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
7067 0 : const enum tree_code op = BIT_XOR_EXPR;
7068 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1169;
7069 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1169;
7070 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1169;
7071 0 : {
7072 0 : tree res_op0;
7073 0 : res_op0 = captures[1];
7074 0 : tree res_op1;
7075 0 : res_op1 = captures[2];
7076 0 : tree res_op2;
7077 0 : res_op2 = captures[4];
7078 0 : tree _r;
7079 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7080 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
7081 0 : return _r;
7082 : }
7083 0 : next_after_fail1169:;
7084 : }
7085 : }
7086 : }
7087 : break;
7088 : }
7089 : default:;
7090 : }
7091 : }
7092 1 : if (integer_zerop (_q21))
7093 : {
7094 0 : switch (TREE_CODE (_p1))
7095 : {
7096 0 : case VEC_COND_EXPR:
7097 0 : {
7098 0 : tree _q60 = TREE_OPERAND (_p1, 0);
7099 0 : tree _q61 = TREE_OPERAND (_p1, 1);
7100 0 : tree _q62 = TREE_OPERAND (_p1, 2);
7101 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7102 : {
7103 0 : if (integer_zerop (_q62))
7104 : {
7105 0 : {
7106 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
7107 0 : const enum tree_code op = BIT_XOR_EXPR;
7108 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1170;
7109 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1170;
7110 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1170;
7111 0 : {
7112 0 : tree res_op0;
7113 0 : res_op0 = captures[1];
7114 0 : tree res_op1;
7115 0 : res_op1 = captures[2];
7116 0 : tree res_op2;
7117 0 : res_op2 = captures[4];
7118 0 : tree _r;
7119 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7120 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
7121 0 : return _r;
7122 : }
7123 0 : next_after_fail1170:;
7124 : }
7125 : }
7126 : }
7127 : break;
7128 : }
7129 : default:;
7130 : }
7131 : }
7132 1 : switch (TREE_CODE (_q20))
7133 : {
7134 0 : case LT_EXPR:
7135 0 : {
7136 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7137 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7138 0 : if (integer_zerop (_q22))
7139 : {
7140 0 : switch (TREE_CODE (_p1))
7141 : {
7142 0 : case VEC_COND_EXPR:
7143 0 : {
7144 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7145 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7146 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7147 0 : switch (TREE_CODE (_q80))
7148 : {
7149 0 : case GE_EXPR:
7150 0 : {
7151 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7152 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7153 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7154 : {
7155 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7156 : {
7157 0 : if (integer_zerop (_q82))
7158 : {
7159 0 : {
7160 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7161 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LT_EXPR, GE_EXPR);
7162 0 : if (res) return res;
7163 : }
7164 : }
7165 : }
7166 : }
7167 : break;
7168 : }
7169 : default:;
7170 : }
7171 : break;
7172 : }
7173 : default:;
7174 : }
7175 : }
7176 : break;
7177 : }
7178 0 : case LE_EXPR:
7179 0 : {
7180 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7181 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7182 0 : if (integer_zerop (_q22))
7183 : {
7184 0 : switch (TREE_CODE (_p1))
7185 : {
7186 0 : case VEC_COND_EXPR:
7187 0 : {
7188 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7189 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7190 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7191 0 : switch (TREE_CODE (_q80))
7192 : {
7193 0 : case GT_EXPR:
7194 0 : {
7195 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7196 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7197 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7198 : {
7199 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7200 : {
7201 0 : if (integer_zerop (_q82))
7202 : {
7203 0 : {
7204 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7205 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LE_EXPR, GT_EXPR);
7206 0 : if (res) return res;
7207 : }
7208 : }
7209 : }
7210 : }
7211 : break;
7212 : }
7213 : default:;
7214 : }
7215 : break;
7216 : }
7217 : default:;
7218 : }
7219 : }
7220 : break;
7221 : }
7222 0 : case EQ_EXPR:
7223 0 : {
7224 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7225 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7226 0 : if (integer_zerop (_q22))
7227 : {
7228 0 : switch (TREE_CODE (_p1))
7229 : {
7230 0 : case VEC_COND_EXPR:
7231 0 : {
7232 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7233 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7234 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7235 0 : switch (TREE_CODE (_q80))
7236 : {
7237 0 : case NE_EXPR:
7238 0 : {
7239 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7240 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7241 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7242 : {
7243 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7244 : {
7245 0 : if (integer_zerop (_q82))
7246 : {
7247 0 : {
7248 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7249 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, EQ_EXPR, NE_EXPR);
7250 0 : if (res) return res;
7251 : }
7252 : }
7253 : }
7254 : }
7255 : break;
7256 : }
7257 : default:;
7258 : }
7259 : break;
7260 : }
7261 : default:;
7262 : }
7263 : }
7264 : break;
7265 : }
7266 1 : case NE_EXPR:
7267 1 : {
7268 1 : tree _q30 = TREE_OPERAND (_q20, 0);
7269 1 : tree _q31 = TREE_OPERAND (_q20, 1);
7270 1 : if (integer_zerop (_q22))
7271 : {
7272 1 : switch (TREE_CODE (_p1))
7273 : {
7274 0 : case VEC_COND_EXPR:
7275 0 : {
7276 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7277 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7278 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7279 0 : switch (TREE_CODE (_q80))
7280 : {
7281 0 : case EQ_EXPR:
7282 0 : {
7283 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7284 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7285 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7286 : {
7287 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7288 : {
7289 0 : if (integer_zerop (_q82))
7290 : {
7291 0 : {
7292 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7293 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, NE_EXPR, EQ_EXPR);
7294 0 : if (res) return res;
7295 : }
7296 : }
7297 : }
7298 : }
7299 : break;
7300 : }
7301 : default:;
7302 : }
7303 : break;
7304 : }
7305 : default:;
7306 : }
7307 : }
7308 : break;
7309 : }
7310 0 : case GE_EXPR:
7311 0 : {
7312 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7313 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7314 0 : if (integer_zerop (_q22))
7315 : {
7316 0 : switch (TREE_CODE (_p1))
7317 : {
7318 0 : case VEC_COND_EXPR:
7319 0 : {
7320 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7321 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7322 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7323 0 : switch (TREE_CODE (_q80))
7324 : {
7325 0 : case LT_EXPR:
7326 0 : {
7327 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7328 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7329 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7330 : {
7331 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7332 : {
7333 0 : if (integer_zerop (_q82))
7334 : {
7335 0 : {
7336 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7337 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GE_EXPR, LT_EXPR);
7338 0 : if (res) return res;
7339 : }
7340 : }
7341 : }
7342 : }
7343 : break;
7344 : }
7345 : default:;
7346 : }
7347 : break;
7348 : }
7349 : default:;
7350 : }
7351 : }
7352 : break;
7353 : }
7354 0 : case GT_EXPR:
7355 0 : {
7356 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7357 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7358 0 : if (integer_zerop (_q22))
7359 : {
7360 0 : switch (TREE_CODE (_p1))
7361 : {
7362 0 : case VEC_COND_EXPR:
7363 0 : {
7364 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7365 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7366 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7367 0 : switch (TREE_CODE (_q80))
7368 : {
7369 0 : case LE_EXPR:
7370 0 : {
7371 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7372 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7373 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7374 : {
7375 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7376 : {
7377 0 : if (integer_zerop (_q82))
7378 : {
7379 0 : {
7380 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7381 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GT_EXPR, LE_EXPR);
7382 0 : if (res) return res;
7383 : }
7384 : }
7385 : }
7386 : }
7387 : break;
7388 : }
7389 : default:;
7390 : }
7391 : break;
7392 : }
7393 : default:;
7394 : }
7395 : }
7396 : break;
7397 : }
7398 0 : case UNORDERED_EXPR:
7399 0 : {
7400 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7401 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7402 0 : if (integer_zerop (_q22))
7403 : {
7404 0 : switch (TREE_CODE (_p1))
7405 : {
7406 0 : case VEC_COND_EXPR:
7407 0 : {
7408 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7409 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7410 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7411 0 : switch (TREE_CODE (_q80))
7412 : {
7413 0 : case ORDERED_EXPR:
7414 0 : {
7415 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7416 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7417 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7418 : {
7419 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7420 : {
7421 0 : if (integer_zerop (_q82))
7422 : {
7423 0 : {
7424 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7425 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
7426 0 : if (res) return res;
7427 : }
7428 : }
7429 : }
7430 : }
7431 : break;
7432 : }
7433 : default:;
7434 : }
7435 : break;
7436 : }
7437 : default:;
7438 : }
7439 : }
7440 : break;
7441 : }
7442 0 : case ORDERED_EXPR:
7443 0 : {
7444 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7445 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7446 0 : if (integer_zerop (_q22))
7447 : {
7448 0 : switch (TREE_CODE (_p1))
7449 : {
7450 0 : case VEC_COND_EXPR:
7451 0 : {
7452 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7453 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7454 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7455 0 : switch (TREE_CODE (_q80))
7456 : {
7457 0 : case UNORDERED_EXPR:
7458 0 : {
7459 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7460 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7461 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7462 : {
7463 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7464 : {
7465 0 : if (integer_zerop (_q82))
7466 : {
7467 0 : {
7468 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7469 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
7470 0 : if (res) return res;
7471 : }
7472 : }
7473 : }
7474 : }
7475 : break;
7476 : }
7477 : default:;
7478 : }
7479 : break;
7480 : }
7481 : default:;
7482 : }
7483 : }
7484 : break;
7485 : }
7486 0 : case UNLT_EXPR:
7487 0 : {
7488 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7489 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7490 0 : if (integer_zerop (_q22))
7491 : {
7492 0 : switch (TREE_CODE (_p1))
7493 : {
7494 0 : case VEC_COND_EXPR:
7495 0 : {
7496 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7497 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7498 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7499 0 : switch (TREE_CODE (_q80))
7500 : {
7501 0 : case GE_EXPR:
7502 0 : {
7503 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7504 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7505 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7506 : {
7507 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7508 : {
7509 0 : if (integer_zerop (_q82))
7510 : {
7511 0 : {
7512 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7513 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLT_EXPR, GE_EXPR);
7514 0 : if (res) return res;
7515 : }
7516 : }
7517 : }
7518 : }
7519 : break;
7520 : }
7521 : default:;
7522 : }
7523 : break;
7524 : }
7525 : default:;
7526 : }
7527 : }
7528 : break;
7529 : }
7530 0 : case UNLE_EXPR:
7531 0 : {
7532 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7533 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7534 0 : if (integer_zerop (_q22))
7535 : {
7536 0 : switch (TREE_CODE (_p1))
7537 : {
7538 0 : case VEC_COND_EXPR:
7539 0 : {
7540 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7541 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7542 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7543 0 : switch (TREE_CODE (_q80))
7544 : {
7545 0 : case GT_EXPR:
7546 0 : {
7547 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7548 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7549 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7550 : {
7551 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7552 : {
7553 0 : if (integer_zerop (_q82))
7554 : {
7555 0 : {
7556 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7557 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLE_EXPR, GT_EXPR);
7558 0 : if (res) return res;
7559 : }
7560 : }
7561 : }
7562 : }
7563 : break;
7564 : }
7565 : default:;
7566 : }
7567 : break;
7568 : }
7569 : default:;
7570 : }
7571 : }
7572 : break;
7573 : }
7574 0 : case UNGT_EXPR:
7575 0 : {
7576 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7577 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7578 0 : if (integer_zerop (_q22))
7579 : {
7580 0 : switch (TREE_CODE (_p1))
7581 : {
7582 0 : case VEC_COND_EXPR:
7583 0 : {
7584 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7585 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7586 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7587 0 : switch (TREE_CODE (_q80))
7588 : {
7589 0 : case LE_EXPR:
7590 0 : {
7591 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7592 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7593 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7594 : {
7595 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7596 : {
7597 0 : if (integer_zerop (_q82))
7598 : {
7599 0 : {
7600 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7601 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGT_EXPR, LE_EXPR);
7602 0 : if (res) return res;
7603 : }
7604 : }
7605 : }
7606 : }
7607 : break;
7608 : }
7609 : default:;
7610 : }
7611 : break;
7612 : }
7613 : default:;
7614 : }
7615 : }
7616 : break;
7617 : }
7618 0 : case UNGE_EXPR:
7619 0 : {
7620 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7621 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7622 0 : if (integer_zerop (_q22))
7623 : {
7624 0 : switch (TREE_CODE (_p1))
7625 : {
7626 0 : case VEC_COND_EXPR:
7627 0 : {
7628 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7629 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7630 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7631 0 : switch (TREE_CODE (_q80))
7632 : {
7633 0 : case LT_EXPR:
7634 0 : {
7635 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7636 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7637 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7638 : {
7639 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7640 : {
7641 0 : if (integer_zerop (_q82))
7642 : {
7643 0 : {
7644 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7645 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGE_EXPR, LT_EXPR);
7646 0 : if (res) return res;
7647 : }
7648 : }
7649 : }
7650 : }
7651 : break;
7652 : }
7653 : default:;
7654 : }
7655 : break;
7656 : }
7657 : default:;
7658 : }
7659 : }
7660 : break;
7661 : }
7662 0 : case UNEQ_EXPR:
7663 0 : {
7664 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7665 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7666 0 : if (integer_zerop (_q22))
7667 : {
7668 0 : switch (TREE_CODE (_p1))
7669 : {
7670 0 : case VEC_COND_EXPR:
7671 0 : {
7672 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7673 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7674 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7675 0 : switch (TREE_CODE (_q80))
7676 : {
7677 0 : case LTGT_EXPR:
7678 0 : {
7679 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7680 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7681 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7682 : {
7683 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7684 : {
7685 0 : if (integer_zerop (_q82))
7686 : {
7687 0 : {
7688 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7689 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNEQ_EXPR, LTGT_EXPR);
7690 0 : if (res) return res;
7691 : }
7692 : }
7693 : }
7694 : }
7695 : break;
7696 : }
7697 : default:;
7698 : }
7699 : break;
7700 : }
7701 : default:;
7702 : }
7703 : }
7704 : break;
7705 : }
7706 0 : case LTGT_EXPR:
7707 0 : {
7708 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7709 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7710 0 : if (integer_zerop (_q22))
7711 : {
7712 0 : switch (TREE_CODE (_p1))
7713 : {
7714 0 : case VEC_COND_EXPR:
7715 0 : {
7716 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7717 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7718 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7719 0 : switch (TREE_CODE (_q80))
7720 : {
7721 0 : case UNEQ_EXPR:
7722 0 : {
7723 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7724 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7725 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7726 : {
7727 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7728 : {
7729 0 : if (integer_zerop (_q82))
7730 : {
7731 0 : {
7732 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7733 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LTGT_EXPR, UNEQ_EXPR);
7734 0 : if (res) return res;
7735 : }
7736 : }
7737 : }
7738 : }
7739 : break;
7740 : }
7741 : default:;
7742 : }
7743 : break;
7744 : }
7745 : default:;
7746 : }
7747 : }
7748 : break;
7749 : }
7750 : default:;
7751 : }
7752 : break;
7753 : }
7754 119 : case EQ_EXPR:
7755 119 : {
7756 119 : tree _q20 = TREE_OPERAND (_p0, 0);
7757 119 : tree _q21 = TREE_OPERAND (_p0, 1);
7758 119 : switch (TREE_CODE (_p1))
7759 : {
7760 0 : case BIT_AND_EXPR:
7761 0 : {
7762 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7763 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7764 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7765 : {
7766 0 : if (tree_truth_valued_p (_q50))
7767 : {
7768 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7769 : {
7770 0 : if (tree_truth_valued_p (_q51))
7771 : {
7772 0 : {
7773 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7774 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1171;
7775 0 : {
7776 0 : tree res_op0;
7777 0 : {
7778 0 : tree _o1[2], _r1;
7779 0 : _o1[0] = captures[0];
7780 0 : _o1[1] = captures[1];
7781 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
7782 0 : res_op0 = _r1;
7783 : }
7784 0 : tree _r;
7785 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
7786 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
7787 0 : return _r;
7788 : }
7789 0 : next_after_fail1171:;
7790 : }
7791 : }
7792 : }
7793 : }
7794 : }
7795 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7796 : {
7797 0 : if (tree_truth_valued_p (_q50))
7798 : {
7799 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7800 : {
7801 0 : if (tree_truth_valued_p (_q51))
7802 : {
7803 0 : {
7804 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7805 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1172;
7806 0 : {
7807 0 : tree res_op0;
7808 0 : {
7809 0 : tree _o1[2], _r1;
7810 0 : _o1[0] = captures[0];
7811 0 : _o1[1] = captures[1];
7812 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
7813 0 : res_op0 = _r1;
7814 : }
7815 0 : tree _r;
7816 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
7817 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
7818 0 : return _r;
7819 : }
7820 0 : next_after_fail1172:;
7821 : }
7822 : }
7823 : }
7824 : }
7825 : }
7826 : break;
7827 : }
7828 : default:;
7829 : }
7830 : break;
7831 : }
7832 908127 : default:;
7833 : }
7834 908127 : {
7835 908127 : tree _p0_pops[1];
7836 908127 : if (tree_logical_inverted_value (_p0, _p0_pops))
7837 : {
7838 52 : tree _q20 = _p0_pops[0];
7839 52 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7840 : {
7841 4 : if (tree_truth_valued_p (_p1))
7842 : {
7843 4 : {
7844 4 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
7845 4 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7846 4 : if (res) return res;
7847 : }
7848 : }
7849 : }
7850 : }
7851 : }
7852 908123 : {
7853 908123 : tree _p0_pops[1];
7854 908123 : if (tree_nop_convert (_p0, _p0_pops))
7855 : {
7856 508121 : tree _q20 = _p0_pops[0];
7857 508121 : switch (TREE_CODE (_q20))
7858 : {
7859 24 : case BIT_NOT_EXPR:
7860 24 : {
7861 24 : tree _q30 = TREE_OPERAND (_q20, 0);
7862 24 : {
7863 24 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1 };
7864 24 : tree res = generic_simplify_39 (loc, type, _p0, _p1, captures);
7865 24 : if (res) return res;
7866 : }
7867 0 : break;
7868 : }
7869 20 : case MULT_EXPR:
7870 20 : {
7871 20 : tree _q30 = TREE_OPERAND (_q20, 0);
7872 20 : tree _q31 = TREE_OPERAND (_q20, 1);
7873 20 : {
7874 20 : tree _q30_pops[1];
7875 20 : if (tree_nop_convert (_q30, _q30_pops))
7876 : {
7877 0 : tree _q40 = _q30_pops[0];
7878 0 : switch (TREE_CODE (_q31))
7879 : {
7880 0 : case INTEGER_CST:
7881 0 : {
7882 0 : switch (TREE_CODE (_p1))
7883 : {
7884 0 : case LSHIFT_EXPR:
7885 0 : {
7886 0 : tree _q70 = TREE_OPERAND (_p1, 0);
7887 0 : tree _q71 = TREE_OPERAND (_p1, 1);
7888 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
7889 : {
7890 0 : switch (TREE_CODE (_q71))
7891 : {
7892 0 : case INTEGER_CST:
7893 0 : {
7894 0 : {
7895 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31, _p1, _q71 };
7896 0 : tree res = generic_simplify_41 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7897 0 : if (res) return res;
7898 : }
7899 0 : break;
7900 : }
7901 : default:;
7902 : }
7903 : }
7904 : break;
7905 : }
7906 0 : default:;
7907 : }
7908 0 : {
7909 0 : tree _p1_pops[1];
7910 0 : if (tree_nop_convert (_p1, _p1_pops))
7911 : {
7912 0 : tree _q70 = _p1_pops[0];
7913 0 : switch (TREE_CODE (_q70))
7914 : {
7915 0 : case MULT_EXPR:
7916 0 : {
7917 0 : tree _q80 = TREE_OPERAND (_q70, 0);
7918 0 : tree _q81 = TREE_OPERAND (_q70, 1);
7919 0 : {
7920 0 : tree _q80_pops[1];
7921 0 : if (tree_nop_convert (_q80, _q80_pops))
7922 : {
7923 0 : tree _q90 = _q80_pops[0];
7924 0 : switch (TREE_CODE (_q81))
7925 : {
7926 0 : case INTEGER_CST:
7927 0 : {
7928 0 : {
7929 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31, _p1, _q70, _q90, _q81 };
7930 0 : tree res = generic_simplify_40 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7931 0 : if (res) return res;
7932 : }
7933 0 : break;
7934 : }
7935 : default:;
7936 : }
7937 : }
7938 : }
7939 0 : break;
7940 : }
7941 : default:;
7942 : }
7943 : }
7944 : }
7945 0 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
7946 : {
7947 0 : {
7948 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
7949 0 : tree res = generic_simplify_42 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7950 0 : if (res) return res;
7951 : }
7952 : }
7953 : break;
7954 : }
7955 : default:;
7956 : }
7957 : }
7958 : }
7959 20 : break;
7960 : }
7961 : default:;
7962 : }
7963 : }
7964 : }
7965 908099 : if (tree_truth_valued_p (_p0))
7966 : {
7967 135539 : {
7968 135539 : tree _p1_pops[1];
7969 135539 : if (tree_logical_inverted_value (_p1, _p1_pops))
7970 : {
7971 13 : tree _q30 = _p1_pops[0];
7972 13 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7973 : {
7974 0 : {
7975 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
7976 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7977 0 : if (res) return res;
7978 : }
7979 : }
7980 : }
7981 : }
7982 : }
7983 908099 : switch (TREE_CODE (_p1))
7984 : {
7985 288 : case BIT_NOT_EXPR:
7986 288 : {
7987 288 : tree _q30 = TREE_OPERAND (_p1, 0);
7988 288 : {
7989 288 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
7990 288 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures);
7991 288 : if (res) return res;
7992 : }
7993 0 : break;
7994 : }
7995 907811 : default:;
7996 : }
7997 907811 : {
7998 907811 : tree _p1_pops[1];
7999 907811 : if (tree_nop_convert (_p1, _p1_pops))
8000 : {
8001 635866 : tree _q30 = _p1_pops[0];
8002 635866 : switch (TREE_CODE (_q30))
8003 : {
8004 0 : case BIT_NOT_EXPR:
8005 0 : {
8006 0 : tree _q40 = TREE_OPERAND (_q30, 0);
8007 0 : {
8008 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
8009 0 : tree res = generic_simplify_39 (loc, type, _p0, _p1, captures);
8010 0 : if (res) return res;
8011 : }
8012 0 : break;
8013 : }
8014 : default:;
8015 : }
8016 : }
8017 : }
8018 907811 : switch (TREE_CODE (_p0))
8019 : {
8020 1131 : case BIT_IOR_EXPR:
8021 1131 : {
8022 1131 : tree _q20 = TREE_OPERAND (_p0, 0);
8023 1131 : tree _q21 = TREE_OPERAND (_p0, 1);
8024 1131 : switch (TREE_CODE (_q21))
8025 : {
8026 23 : case INTEGER_CST:
8027 23 : {
8028 23 : switch (TREE_CODE (_p1))
8029 : {
8030 23 : case INTEGER_CST:
8031 23 : {
8032 23 : {
8033 23 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8034 23 : tree res = generic_simplify_43 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_XOR_EXPR);
8035 23 : if (res) return res;
8036 : }
8037 23 : break;
8038 : }
8039 : default:;
8040 : }
8041 : break;
8042 : }
8043 : default:;
8044 : }
8045 : break;
8046 : }
8047 90 : case LT_EXPR:
8048 90 : {
8049 90 : tree _q20 = TREE_OPERAND (_p0, 0);
8050 90 : tree _q21 = TREE_OPERAND (_p0, 1);
8051 90 : switch (TREE_CODE (_p1))
8052 : {
8053 0 : case GT_EXPR:
8054 0 : {
8055 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8056 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8057 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8058 : {
8059 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8060 : {
8061 0 : {
8062 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8063 0 : const enum tree_code cmp1 = LT_EXPR;
8064 0 : const enum tree_code cmp2 = GT_EXPR;
8065 0 : const enum tree_code rcmp = NE_EXPR;
8066 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8067 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8068 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8069 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8070 : )
8071 : {
8072 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1173;
8073 0 : {
8074 0 : tree res_op0;
8075 0 : res_op0 = captures[0];
8076 0 : tree res_op1;
8077 0 : res_op1 = captures[1];
8078 0 : tree _r;
8079 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8080 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8081 0 : return _r;
8082 : }
8083 0 : next_after_fail1173:;
8084 : }
8085 : }
8086 : }
8087 : }
8088 : break;
8089 : }
8090 0 : case EQ_EXPR:
8091 0 : {
8092 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8093 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8094 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8095 : {
8096 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8097 : {
8098 0 : {
8099 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8100 0 : const enum tree_code cmp1 = LT_EXPR;
8101 0 : const enum tree_code cmp2 = EQ_EXPR;
8102 0 : const enum tree_code rcmp = LE_EXPR;
8103 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8104 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8105 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8106 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8107 : )
8108 : {
8109 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1174;
8110 0 : {
8111 0 : tree res_op0;
8112 0 : res_op0 = captures[0];
8113 0 : tree res_op1;
8114 0 : res_op1 = captures[1];
8115 0 : tree _r;
8116 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8117 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8118 0 : return _r;
8119 : }
8120 0 : next_after_fail1174:;
8121 : }
8122 : }
8123 : }
8124 : }
8125 : break;
8126 : }
8127 0 : case NE_EXPR:
8128 0 : {
8129 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8130 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8131 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8132 : {
8133 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8134 : {
8135 0 : {
8136 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8137 0 : const enum tree_code cmp1 = LT_EXPR;
8138 0 : const enum tree_code cmp2 = NE_EXPR;
8139 0 : const enum tree_code rcmp = GT_EXPR;
8140 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8141 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8142 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8143 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8144 : )
8145 : {
8146 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1175;
8147 0 : {
8148 0 : tree res_op0;
8149 0 : res_op0 = captures[0];
8150 0 : tree res_op1;
8151 0 : res_op1 = captures[1];
8152 0 : tree _r;
8153 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8154 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8155 0 : return _r;
8156 : }
8157 0 : next_after_fail1175:;
8158 : }
8159 : }
8160 : }
8161 : }
8162 : break;
8163 : }
8164 : default:;
8165 : }
8166 : break;
8167 : }
8168 85 : case LE_EXPR:
8169 85 : {
8170 85 : tree _q20 = TREE_OPERAND (_p0, 0);
8171 85 : tree _q21 = TREE_OPERAND (_p0, 1);
8172 85 : switch (TREE_CODE (_p1))
8173 : {
8174 0 : case GE_EXPR:
8175 0 : {
8176 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8177 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8178 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8179 : {
8180 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8181 : {
8182 0 : {
8183 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8184 0 : const enum tree_code cmp1 = LE_EXPR;
8185 0 : const enum tree_code cmp2 = GE_EXPR;
8186 0 : const enum tree_code rcmp = NE_EXPR;
8187 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8188 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8189 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8190 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8191 : )
8192 : {
8193 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1176;
8194 0 : {
8195 0 : tree res_op0;
8196 0 : res_op0 = captures[0];
8197 0 : tree res_op1;
8198 0 : res_op1 = captures[1];
8199 0 : tree _r;
8200 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8201 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8202 0 : return _r;
8203 : }
8204 0 : next_after_fail1176:;
8205 : }
8206 : }
8207 : }
8208 : }
8209 : break;
8210 : }
8211 0 : case EQ_EXPR:
8212 0 : {
8213 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8214 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8215 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8216 : {
8217 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8218 : {
8219 0 : {
8220 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8221 0 : const enum tree_code cmp1 = LE_EXPR;
8222 0 : const enum tree_code cmp2 = EQ_EXPR;
8223 0 : const enum tree_code rcmp = LT_EXPR;
8224 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8225 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8226 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8227 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8228 : )
8229 : {
8230 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1177;
8231 0 : {
8232 0 : tree res_op0;
8233 0 : res_op0 = captures[0];
8234 0 : tree res_op1;
8235 0 : res_op1 = captures[1];
8236 0 : tree _r;
8237 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8238 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8239 0 : return _r;
8240 : }
8241 0 : next_after_fail1177:;
8242 : }
8243 : }
8244 : }
8245 : }
8246 : break;
8247 : }
8248 0 : case NE_EXPR:
8249 0 : {
8250 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8251 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8252 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8253 : {
8254 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8255 : {
8256 0 : {
8257 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8258 0 : const enum tree_code cmp1 = LE_EXPR;
8259 0 : const enum tree_code cmp2 = NE_EXPR;
8260 0 : const enum tree_code rcmp = GE_EXPR;
8261 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8262 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8263 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8264 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8265 : )
8266 : {
8267 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1178;
8268 0 : {
8269 0 : tree res_op0;
8270 0 : res_op0 = captures[0];
8271 0 : tree res_op1;
8272 0 : res_op1 = captures[1];
8273 0 : tree _r;
8274 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8275 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8276 0 : return _r;
8277 : }
8278 0 : next_after_fail1178:;
8279 : }
8280 : }
8281 : }
8282 : }
8283 : break;
8284 : }
8285 : default:;
8286 : }
8287 : break;
8288 : }
8289 100 : case GT_EXPR:
8290 100 : {
8291 100 : tree _q20 = TREE_OPERAND (_p0, 0);
8292 100 : tree _q21 = TREE_OPERAND (_p0, 1);
8293 100 : switch (TREE_CODE (_p1))
8294 : {
8295 0 : case GT_EXPR:
8296 0 : {
8297 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8298 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8299 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8300 : {
8301 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8302 : {
8303 0 : {
8304 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8305 0 : const enum tree_code cmp1 = LT_EXPR;
8306 0 : const enum tree_code cmp2 = GT_EXPR;
8307 0 : const enum tree_code rcmp = NE_EXPR;
8308 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8309 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8310 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8311 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8312 : )
8313 : {
8314 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1179;
8315 0 : {
8316 0 : tree res_op0;
8317 0 : res_op0 = captures[0];
8318 0 : tree res_op1;
8319 0 : res_op1 = captures[1];
8320 0 : tree _r;
8321 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8322 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8323 0 : return _r;
8324 : }
8325 0 : next_after_fail1179:;
8326 : }
8327 : }
8328 0 : {
8329 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8330 0 : const enum tree_code cmp1 = LT_EXPR;
8331 0 : const enum tree_code cmp2 = GT_EXPR;
8332 0 : const enum tree_code rcmp = NE_EXPR;
8333 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8334 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8335 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8336 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8337 : )
8338 : {
8339 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1180;
8340 0 : {
8341 0 : tree res_op0;
8342 0 : res_op0 = captures[0];
8343 0 : tree res_op1;
8344 0 : res_op1 = captures[1];
8345 0 : tree _r;
8346 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8347 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8348 0 : return _r;
8349 : }
8350 0 : next_after_fail1180:;
8351 : }
8352 : }
8353 : }
8354 : }
8355 : break;
8356 : }
8357 0 : case EQ_EXPR:
8358 0 : {
8359 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8360 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8361 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8362 : {
8363 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8364 : {
8365 0 : {
8366 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8367 0 : const enum tree_code cmp1 = LT_EXPR;
8368 0 : const enum tree_code cmp2 = EQ_EXPR;
8369 0 : const enum tree_code rcmp = LE_EXPR;
8370 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8371 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8372 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8373 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8374 : )
8375 : {
8376 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1181;
8377 0 : {
8378 0 : tree res_op0;
8379 0 : res_op0 = captures[0];
8380 0 : tree res_op1;
8381 0 : res_op1 = captures[1];
8382 0 : tree _r;
8383 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8384 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8385 0 : return _r;
8386 : }
8387 0 : next_after_fail1181:;
8388 : }
8389 : }
8390 : }
8391 : }
8392 : break;
8393 : }
8394 12 : case NE_EXPR:
8395 12 : {
8396 12 : tree _q50 = TREE_OPERAND (_p1, 0);
8397 12 : tree _q51 = TREE_OPERAND (_p1, 1);
8398 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8399 : {
8400 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8401 : {
8402 0 : {
8403 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8404 0 : const enum tree_code cmp1 = LT_EXPR;
8405 0 : const enum tree_code cmp2 = NE_EXPR;
8406 0 : const enum tree_code rcmp = GT_EXPR;
8407 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8408 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8409 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8410 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8411 : )
8412 : {
8413 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1182;
8414 0 : {
8415 0 : tree res_op0;
8416 0 : res_op0 = captures[0];
8417 0 : tree res_op1;
8418 0 : res_op1 = captures[1];
8419 0 : tree _r;
8420 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8421 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8422 0 : return _r;
8423 : }
8424 0 : next_after_fail1182:;
8425 : }
8426 : }
8427 : }
8428 : }
8429 : break;
8430 : }
8431 0 : case LT_EXPR:
8432 0 : {
8433 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8434 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8435 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8436 : {
8437 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8438 : {
8439 0 : {
8440 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8441 0 : const enum tree_code cmp1 = LT_EXPR;
8442 0 : const enum tree_code cmp2 = GT_EXPR;
8443 0 : const enum tree_code rcmp = NE_EXPR;
8444 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8445 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8446 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8447 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8448 : )
8449 : {
8450 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1183;
8451 0 : {
8452 0 : tree res_op0;
8453 0 : res_op0 = captures[0];
8454 0 : tree res_op1;
8455 0 : res_op1 = captures[1];
8456 0 : tree _r;
8457 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8458 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8459 0 : return _r;
8460 : }
8461 0 : next_after_fail1183:;
8462 : }
8463 : }
8464 : }
8465 : }
8466 : break;
8467 : }
8468 : default:;
8469 : }
8470 : break;
8471 : }
8472 62 : case GE_EXPR:
8473 62 : {
8474 62 : tree _q20 = TREE_OPERAND (_p0, 0);
8475 62 : tree _q21 = TREE_OPERAND (_p0, 1);
8476 62 : switch (TREE_CODE (_p1))
8477 : {
8478 1 : case GE_EXPR:
8479 1 : {
8480 1 : tree _q50 = TREE_OPERAND (_p1, 0);
8481 1 : tree _q51 = TREE_OPERAND (_p1, 1);
8482 1 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8483 : {
8484 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8485 : {
8486 0 : {
8487 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8488 0 : const enum tree_code cmp1 = LE_EXPR;
8489 0 : const enum tree_code cmp2 = GE_EXPR;
8490 0 : const enum tree_code rcmp = NE_EXPR;
8491 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8492 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8493 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8494 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8495 : )
8496 : {
8497 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1184;
8498 0 : {
8499 0 : tree res_op0;
8500 0 : res_op0 = captures[0];
8501 0 : tree res_op1;
8502 0 : res_op1 = captures[1];
8503 0 : tree _r;
8504 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8505 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8506 0 : return _r;
8507 : }
8508 0 : next_after_fail1184:;
8509 : }
8510 : }
8511 0 : {
8512 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8513 0 : const enum tree_code cmp1 = LE_EXPR;
8514 0 : const enum tree_code cmp2 = GE_EXPR;
8515 0 : const enum tree_code rcmp = NE_EXPR;
8516 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8517 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8518 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8519 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8520 : )
8521 : {
8522 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1185;
8523 0 : {
8524 0 : tree res_op0;
8525 0 : res_op0 = captures[0];
8526 0 : tree res_op1;
8527 0 : res_op1 = captures[1];
8528 0 : tree _r;
8529 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8530 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8531 0 : return _r;
8532 : }
8533 0 : next_after_fail1185:;
8534 : }
8535 : }
8536 : }
8537 : }
8538 : break;
8539 : }
8540 0 : case EQ_EXPR:
8541 0 : {
8542 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8543 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8544 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8545 : {
8546 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8547 : {
8548 0 : {
8549 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8550 0 : const enum tree_code cmp1 = LE_EXPR;
8551 0 : const enum tree_code cmp2 = EQ_EXPR;
8552 0 : const enum tree_code rcmp = LT_EXPR;
8553 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8554 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8555 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8556 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8557 : )
8558 : {
8559 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1186;
8560 0 : {
8561 0 : tree res_op0;
8562 0 : res_op0 = captures[0];
8563 0 : tree res_op1;
8564 0 : res_op1 = captures[1];
8565 0 : tree _r;
8566 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8567 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8568 0 : return _r;
8569 : }
8570 0 : next_after_fail1186:;
8571 : }
8572 : }
8573 : }
8574 : }
8575 : break;
8576 : }
8577 8 : case NE_EXPR:
8578 8 : {
8579 8 : tree _q50 = TREE_OPERAND (_p1, 0);
8580 8 : tree _q51 = TREE_OPERAND (_p1, 1);
8581 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8582 : {
8583 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8584 : {
8585 0 : {
8586 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8587 0 : const enum tree_code cmp1 = LE_EXPR;
8588 0 : const enum tree_code cmp2 = NE_EXPR;
8589 0 : const enum tree_code rcmp = GE_EXPR;
8590 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8591 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8592 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8593 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8594 : )
8595 : {
8596 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1187;
8597 0 : {
8598 0 : tree res_op0;
8599 0 : res_op0 = captures[0];
8600 0 : tree res_op1;
8601 0 : res_op1 = captures[1];
8602 0 : tree _r;
8603 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8604 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8605 0 : return _r;
8606 : }
8607 0 : next_after_fail1187:;
8608 : }
8609 : }
8610 : }
8611 : }
8612 : break;
8613 : }
8614 0 : case LE_EXPR:
8615 0 : {
8616 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8617 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8618 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8619 : {
8620 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8621 : {
8622 0 : {
8623 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8624 0 : const enum tree_code cmp1 = LE_EXPR;
8625 0 : const enum tree_code cmp2 = GE_EXPR;
8626 0 : const enum tree_code rcmp = NE_EXPR;
8627 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8628 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8629 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8630 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8631 : )
8632 : {
8633 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1188;
8634 0 : {
8635 0 : tree res_op0;
8636 0 : res_op0 = captures[0];
8637 0 : tree res_op1;
8638 0 : res_op1 = captures[1];
8639 0 : tree _r;
8640 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8641 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8642 0 : return _r;
8643 : }
8644 0 : next_after_fail1188:;
8645 : }
8646 : }
8647 : }
8648 : }
8649 : break;
8650 : }
8651 : default:;
8652 : }
8653 : break;
8654 : }
8655 119 : case EQ_EXPR:
8656 119 : {
8657 119 : tree _q20 = TREE_OPERAND (_p0, 0);
8658 119 : tree _q21 = TREE_OPERAND (_p0, 1);
8659 119 : switch (TREE_CODE (_p1))
8660 : {
8661 0 : case LT_EXPR:
8662 0 : {
8663 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8664 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8665 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8666 : {
8667 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8668 : {
8669 0 : {
8670 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8671 0 : const enum tree_code cmp1 = LT_EXPR;
8672 0 : const enum tree_code cmp2 = EQ_EXPR;
8673 0 : const enum tree_code rcmp = LE_EXPR;
8674 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8675 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8676 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8677 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8678 : )
8679 : {
8680 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1189;
8681 0 : {
8682 0 : tree res_op0;
8683 0 : res_op0 = captures[0];
8684 0 : tree res_op1;
8685 0 : res_op1 = captures[1];
8686 0 : tree _r;
8687 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8688 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8689 0 : return _r;
8690 : }
8691 0 : next_after_fail1189:;
8692 : }
8693 : }
8694 : }
8695 : }
8696 : break;
8697 : }
8698 0 : case LE_EXPR:
8699 0 : {
8700 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8701 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8702 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8703 : {
8704 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8705 : {
8706 0 : {
8707 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8708 0 : const enum tree_code cmp1 = LE_EXPR;
8709 0 : const enum tree_code cmp2 = EQ_EXPR;
8710 0 : const enum tree_code rcmp = LT_EXPR;
8711 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8712 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8713 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8714 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8715 : )
8716 : {
8717 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1190;
8718 0 : {
8719 0 : tree res_op0;
8720 0 : res_op0 = captures[0];
8721 0 : tree res_op1;
8722 0 : res_op1 = captures[1];
8723 0 : tree _r;
8724 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8725 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8726 0 : return _r;
8727 : }
8728 0 : next_after_fail1190:;
8729 : }
8730 : }
8731 : }
8732 : }
8733 : break;
8734 : }
8735 0 : case GT_EXPR:
8736 0 : {
8737 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8738 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8739 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8740 : {
8741 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8742 : {
8743 0 : {
8744 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8745 0 : const enum tree_code cmp1 = LT_EXPR;
8746 0 : const enum tree_code cmp2 = EQ_EXPR;
8747 0 : const enum tree_code rcmp = LE_EXPR;
8748 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8749 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8750 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8751 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8752 : )
8753 : {
8754 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1191;
8755 0 : {
8756 0 : tree res_op0;
8757 0 : res_op0 = captures[0];
8758 0 : tree res_op1;
8759 0 : res_op1 = captures[1];
8760 0 : tree _r;
8761 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8762 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8763 0 : return _r;
8764 : }
8765 0 : next_after_fail1191:;
8766 : }
8767 : }
8768 : }
8769 : }
8770 : break;
8771 : }
8772 8 : case GE_EXPR:
8773 8 : {
8774 8 : tree _q50 = TREE_OPERAND (_p1, 0);
8775 8 : tree _q51 = TREE_OPERAND (_p1, 1);
8776 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8777 : {
8778 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8779 : {
8780 0 : {
8781 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8782 0 : const enum tree_code cmp1 = LE_EXPR;
8783 0 : const enum tree_code cmp2 = EQ_EXPR;
8784 0 : const enum tree_code rcmp = LT_EXPR;
8785 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8786 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8787 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8788 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8789 : )
8790 : {
8791 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1192;
8792 0 : {
8793 0 : tree res_op0;
8794 0 : res_op0 = captures[0];
8795 0 : tree res_op1;
8796 0 : res_op1 = captures[1];
8797 0 : tree _r;
8798 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8799 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8800 0 : return _r;
8801 : }
8802 0 : next_after_fail1192:;
8803 : }
8804 : }
8805 : }
8806 : }
8807 : break;
8808 : }
8809 : default:;
8810 : }
8811 : break;
8812 : }
8813 113 : case NE_EXPR:
8814 113 : {
8815 113 : tree _q20 = TREE_OPERAND (_p0, 0);
8816 113 : tree _q21 = TREE_OPERAND (_p0, 1);
8817 113 : switch (TREE_CODE (_p1))
8818 : {
8819 0 : case LT_EXPR:
8820 0 : {
8821 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8822 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8823 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8824 : {
8825 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8826 : {
8827 0 : {
8828 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8829 0 : const enum tree_code cmp1 = LT_EXPR;
8830 0 : const enum tree_code cmp2 = NE_EXPR;
8831 0 : const enum tree_code rcmp = GT_EXPR;
8832 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8833 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8834 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8835 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8836 : )
8837 : {
8838 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1193;
8839 0 : {
8840 0 : tree res_op0;
8841 0 : res_op0 = captures[0];
8842 0 : tree res_op1;
8843 0 : res_op1 = captures[1];
8844 0 : tree _r;
8845 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8846 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8847 0 : return _r;
8848 : }
8849 0 : next_after_fail1193:;
8850 : }
8851 : }
8852 : }
8853 : }
8854 : break;
8855 : }
8856 0 : case LE_EXPR:
8857 0 : {
8858 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8859 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8860 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8861 : {
8862 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8863 : {
8864 0 : {
8865 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8866 0 : const enum tree_code cmp1 = LE_EXPR;
8867 0 : const enum tree_code cmp2 = NE_EXPR;
8868 0 : const enum tree_code rcmp = GE_EXPR;
8869 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8870 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8871 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8872 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8873 : )
8874 : {
8875 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1194;
8876 0 : {
8877 0 : tree res_op0;
8878 0 : res_op0 = captures[0];
8879 0 : tree res_op1;
8880 0 : res_op1 = captures[1];
8881 0 : tree _r;
8882 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8883 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8884 0 : return _r;
8885 : }
8886 0 : next_after_fail1194:;
8887 : }
8888 : }
8889 : }
8890 : }
8891 : break;
8892 : }
8893 0 : case GT_EXPR:
8894 0 : {
8895 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8896 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8897 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8898 : {
8899 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8900 : {
8901 0 : {
8902 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8903 0 : const enum tree_code cmp1 = LT_EXPR;
8904 0 : const enum tree_code cmp2 = NE_EXPR;
8905 0 : const enum tree_code rcmp = GT_EXPR;
8906 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8907 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8908 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8909 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8910 : )
8911 : {
8912 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1195;
8913 0 : {
8914 0 : tree res_op0;
8915 0 : res_op0 = captures[0];
8916 0 : tree res_op1;
8917 0 : res_op1 = captures[1];
8918 0 : tree _r;
8919 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8920 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8921 0 : return _r;
8922 : }
8923 0 : next_after_fail1195:;
8924 : }
8925 : }
8926 : }
8927 : }
8928 : break;
8929 : }
8930 6 : case GE_EXPR:
8931 6 : {
8932 6 : tree _q50 = TREE_OPERAND (_p1, 0);
8933 6 : tree _q51 = TREE_OPERAND (_p1, 1);
8934 6 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8935 : {
8936 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8937 : {
8938 0 : {
8939 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8940 0 : const enum tree_code cmp1 = LE_EXPR;
8941 0 : const enum tree_code cmp2 = NE_EXPR;
8942 0 : const enum tree_code rcmp = GE_EXPR;
8943 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8944 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8945 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8946 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8947 : )
8948 : {
8949 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1196;
8950 0 : {
8951 0 : tree res_op0;
8952 0 : res_op0 = captures[0];
8953 0 : tree res_op1;
8954 0 : res_op1 = captures[1];
8955 0 : tree _r;
8956 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8957 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
8958 0 : return _r;
8959 : }
8960 0 : next_after_fail1196:;
8961 : }
8962 : }
8963 : }
8964 : }
8965 : break;
8966 : }
8967 : default:;
8968 : }
8969 : break;
8970 : }
8971 524 : case MULT_EXPR:
8972 524 : {
8973 524 : tree _q20 = TREE_OPERAND (_p0, 0);
8974 524 : tree _q21 = TREE_OPERAND (_p0, 1);
8975 524 : switch (TREE_CODE (_q21))
8976 : {
8977 498 : case INTEGER_CST:
8978 498 : {
8979 498 : switch (TREE_CODE (_p1))
8980 : {
8981 12 : case MULT_EXPR:
8982 12 : {
8983 12 : tree _q50 = TREE_OPERAND (_p1, 0);
8984 12 : tree _q51 = TREE_OPERAND (_p1, 1);
8985 12 : switch (TREE_CODE (_q51))
8986 : {
8987 12 : case INTEGER_CST:
8988 12 : {
8989 12 : {
8990 12 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q50, _q51 };
8991 12 : tree res = generic_simplify_44 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
8992 12 : if (res) return res;
8993 : }
8994 12 : break;
8995 : }
8996 : default:;
8997 : }
8998 : break;
8999 : }
9000 0 : case LSHIFT_EXPR:
9001 0 : {
9002 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9003 0 : tree _q51 = TREE_OPERAND (_p1, 1);
9004 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9005 : {
9006 0 : switch (TREE_CODE (_q51))
9007 : {
9008 0 : case INTEGER_CST:
9009 0 : {
9010 0 : {
9011 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q51 };
9012 0 : tree res = generic_simplify_45 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9013 0 : if (res) return res;
9014 : }
9015 0 : break;
9016 : }
9017 : default:;
9018 : }
9019 : }
9020 : break;
9021 : }
9022 498 : default:;
9023 : }
9024 498 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9025 : {
9026 18 : {
9027 18 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
9028 18 : tree res = generic_simplify_46 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9029 18 : if (res) return res;
9030 : }
9031 : }
9032 : break;
9033 : }
9034 524 : default:;
9035 : }
9036 524 : switch (TREE_CODE (_q20))
9037 : {
9038 0 : case BIT_XOR_EXPR:
9039 0 : {
9040 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9041 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9042 0 : if (tree_zero_one_valued_p (_q21))
9043 : {
9044 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9045 : {
9046 0 : {
9047 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
9048 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9049 0 : if (res) return res;
9050 : }
9051 : }
9052 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
9053 : {
9054 0 : {
9055 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q21 };
9056 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9057 0 : if (res) return res;
9058 : }
9059 : }
9060 : }
9061 : break;
9062 : }
9063 524 : default:;
9064 : }
9065 524 : if (tree_zero_one_valued_p (_q20))
9066 : {
9067 8 : switch (TREE_CODE (_q21))
9068 : {
9069 2 : case BIT_XOR_EXPR:
9070 2 : {
9071 2 : tree _q40 = TREE_OPERAND (_q21, 0);
9072 2 : tree _q41 = TREE_OPERAND (_q21, 1);
9073 2 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
9074 : {
9075 2 : {
9076 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
9077 2 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9078 2 : if (res) return res;
9079 : }
9080 : }
9081 0 : if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q41, 0) && types_match (_p1, _q41)))
9082 : {
9083 0 : {
9084 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
9085 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9086 0 : if (res) return res;
9087 : }
9088 : }
9089 : break;
9090 : }
9091 : default:;
9092 : }
9093 : }
9094 : break;
9095 : }
9096 2503 : case LSHIFT_EXPR:
9097 2503 : {
9098 2503 : tree _q20 = TREE_OPERAND (_p0, 0);
9099 2503 : tree _q21 = TREE_OPERAND (_p0, 1);
9100 2503 : switch (TREE_CODE (_q21))
9101 : {
9102 1122 : case INTEGER_CST:
9103 1122 : {
9104 1122 : switch (TREE_CODE (_p1))
9105 : {
9106 0 : case MULT_EXPR:
9107 0 : {
9108 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9109 0 : tree _q51 = TREE_OPERAND (_p1, 1);
9110 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9111 : {
9112 0 : switch (TREE_CODE (_q51))
9113 : {
9114 0 : case INTEGER_CST:
9115 0 : {
9116 0 : {
9117 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q51, _p0, _q21 };
9118 0 : tree res = generic_simplify_45 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9119 0 : if (res) return res;
9120 : }
9121 0 : break;
9122 : }
9123 : default:;
9124 : }
9125 : }
9126 : break;
9127 : }
9128 1122 : default:;
9129 : }
9130 1122 : {
9131 1122 : tree _p1_pops[1];
9132 1122 : if (tree_nop_convert (_p1, _p1_pops))
9133 : {
9134 23 : tree _q50 = _p1_pops[0];
9135 23 : switch (TREE_CODE (_q50))
9136 : {
9137 0 : case MULT_EXPR:
9138 0 : {
9139 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9140 0 : tree _q61 = TREE_OPERAND (_q50, 1);
9141 0 : {
9142 0 : tree _q60_pops[1];
9143 0 : if (tree_nop_convert (_q60, _q60_pops))
9144 : {
9145 0 : tree _q70 = _q60_pops[0];
9146 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
9147 : {
9148 0 : switch (TREE_CODE (_q61))
9149 : {
9150 0 : case INTEGER_CST:
9151 0 : {
9152 0 : {
9153 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q61, _p0, _q21 };
9154 0 : tree res = generic_simplify_41 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9155 0 : if (res) return res;
9156 : }
9157 0 : break;
9158 : }
9159 : default:;
9160 : }
9161 : }
9162 : }
9163 : }
9164 0 : break;
9165 : }
9166 : default:;
9167 : }
9168 : }
9169 : }
9170 1122 : break;
9171 : }
9172 : default:;
9173 : }
9174 : break;
9175 : }
9176 907809 : default:;
9177 : }
9178 907809 : switch (TREE_CODE (_p1))
9179 : {
9180 244 : case MULT_EXPR:
9181 244 : {
9182 244 : tree _q30 = TREE_OPERAND (_p1, 0);
9183 244 : tree _q31 = TREE_OPERAND (_p1, 1);
9184 244 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9185 : {
9186 0 : switch (TREE_CODE (_q31))
9187 : {
9188 0 : case INTEGER_CST:
9189 0 : {
9190 0 : {
9191 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
9192 0 : tree res = generic_simplify_46 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9193 0 : if (res) return res;
9194 : }
9195 0 : break;
9196 : }
9197 : default:;
9198 : }
9199 : }
9200 : break;
9201 : }
9202 907809 : default:;
9203 : }
9204 907809 : {
9205 907809 : tree _p1_pops[1];
9206 907809 : if (tree_nop_convert (_p1, _p1_pops))
9207 : {
9208 635866 : tree _q30 = _p1_pops[0];
9209 635866 : switch (TREE_CODE (_q30))
9210 : {
9211 17 : case MULT_EXPR:
9212 17 : {
9213 17 : tree _q40 = TREE_OPERAND (_q30, 0);
9214 17 : tree _q41 = TREE_OPERAND (_q30, 1);
9215 17 : {
9216 17 : tree _q40_pops[1];
9217 17 : if (tree_nop_convert (_q40, _q40_pops))
9218 : {
9219 0 : tree _q50 = _q40_pops[0];
9220 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
9221 : {
9222 0 : switch (TREE_CODE (_q41))
9223 : {
9224 0 : case INTEGER_CST:
9225 0 : {
9226 0 : {
9227 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
9228 0 : tree res = generic_simplify_42 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9229 0 : if (res) return res;
9230 : }
9231 0 : break;
9232 : }
9233 : default:;
9234 : }
9235 : }
9236 : }
9237 : }
9238 17 : break;
9239 : }
9240 : default:;
9241 : }
9242 : }
9243 : }
9244 907809 : switch (TREE_CODE (_p0))
9245 : {
9246 2503 : case LSHIFT_EXPR:
9247 2503 : {
9248 2503 : tree _q20 = TREE_OPERAND (_p0, 0);
9249 2503 : tree _q21 = TREE_OPERAND (_p0, 1);
9250 2503 : switch (TREE_CODE (_q21))
9251 : {
9252 1122 : case INTEGER_CST:
9253 1122 : {
9254 1122 : switch (TREE_CODE (_p1))
9255 : {
9256 9 : case LSHIFT_EXPR:
9257 9 : {
9258 9 : tree _q50 = TREE_OPERAND (_p1, 0);
9259 9 : tree _q51 = TREE_OPERAND (_p1, 1);
9260 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9261 : {
9262 3 : switch (TREE_CODE (_q51))
9263 : {
9264 3 : case INTEGER_CST:
9265 3 : {
9266 3 : {
9267 3 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
9268 3 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9269 3 : if (res) return res;
9270 : }
9271 1 : break;
9272 : }
9273 : default:;
9274 : }
9275 : }
9276 : break;
9277 : }
9278 1120 : default:;
9279 : }
9280 1120 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9281 : {
9282 57 : {
9283 57 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9284 57 : tree res = generic_simplify_49 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9285 57 : if (res) return res;
9286 : }
9287 : }
9288 : break;
9289 : }
9290 : default:;
9291 : }
9292 : break;
9293 : }
9294 907807 : default:;
9295 : }
9296 907807 : switch (TREE_CODE (_p1))
9297 : {
9298 1982 : case LSHIFT_EXPR:
9299 1982 : {
9300 1982 : tree _q30 = TREE_OPERAND (_p1, 0);
9301 1982 : tree _q31 = TREE_OPERAND (_p1, 1);
9302 1982 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9303 : {
9304 3 : switch (TREE_CODE (_q31))
9305 : {
9306 3 : case INTEGER_CST:
9307 3 : {
9308 3 : {
9309 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
9310 3 : tree res = generic_simplify_49 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9311 3 : if (res) return res;
9312 : }
9313 0 : break;
9314 : }
9315 : default:;
9316 : }
9317 : }
9318 : break;
9319 : }
9320 907804 : default:;
9321 : }
9322 907804 : switch (TREE_CODE (_p0))
9323 : {
9324 0 : case MIN_EXPR:
9325 0 : {
9326 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9327 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9328 0 : switch (TREE_CODE (_p1))
9329 : {
9330 0 : case MAX_EXPR:
9331 0 : {
9332 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9333 0 : tree _q51 = TREE_OPERAND (_p1, 1);
9334 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9335 : {
9336 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9337 : {
9338 0 : {
9339 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9340 0 : if (!HONOR_NANS (captures[0])
9341 : )
9342 : {
9343 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1197;
9344 0 : {
9345 0 : tree res_op0;
9346 0 : res_op0 = captures[0];
9347 0 : tree res_op1;
9348 0 : res_op1 = captures[1];
9349 0 : tree _r;
9350 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
9351 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
9352 0 : return _r;
9353 : }
9354 0 : next_after_fail1197:;
9355 : }
9356 : }
9357 : }
9358 : }
9359 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9360 : {
9361 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9362 : {
9363 0 : {
9364 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9365 0 : if (!HONOR_NANS (captures[0])
9366 : )
9367 : {
9368 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1198;
9369 0 : {
9370 0 : tree res_op0;
9371 0 : res_op0 = captures[0];
9372 0 : tree res_op1;
9373 0 : res_op1 = captures[1];
9374 0 : tree _r;
9375 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
9376 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
9377 0 : return _r;
9378 : }
9379 0 : next_after_fail1198:;
9380 : }
9381 : }
9382 : }
9383 : }
9384 : break;
9385 : }
9386 : default:;
9387 : }
9388 : break;
9389 : }
9390 126 : case MAX_EXPR:
9391 126 : {
9392 126 : tree _q20 = TREE_OPERAND (_p0, 0);
9393 126 : tree _q21 = TREE_OPERAND (_p0, 1);
9394 126 : switch (TREE_CODE (_p1))
9395 : {
9396 0 : case MIN_EXPR:
9397 0 : {
9398 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9399 0 : tree _q51 = TREE_OPERAND (_p1, 1);
9400 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9401 : {
9402 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9403 : {
9404 0 : {
9405 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9406 0 : if (!HONOR_NANS (captures[0])
9407 : )
9408 : {
9409 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1199;
9410 0 : {
9411 0 : tree res_op0;
9412 0 : res_op0 = captures[0];
9413 0 : tree res_op1;
9414 0 : res_op1 = captures[1];
9415 0 : tree _r;
9416 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
9417 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
9418 0 : return _r;
9419 : }
9420 0 : next_after_fail1199:;
9421 : }
9422 : }
9423 : }
9424 : }
9425 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9426 : {
9427 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9428 : {
9429 0 : {
9430 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9431 0 : if (!HONOR_NANS (captures[0])
9432 : )
9433 : {
9434 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1200;
9435 0 : {
9436 0 : tree res_op0;
9437 0 : res_op0 = captures[0];
9438 0 : tree res_op1;
9439 0 : res_op1 = captures[1];
9440 0 : tree _r;
9441 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
9442 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
9443 0 : return _r;
9444 : }
9445 0 : next_after_fail1200:;
9446 : }
9447 : }
9448 : }
9449 : }
9450 : break;
9451 : }
9452 : default:;
9453 : }
9454 : break;
9455 : }
9456 907804 : default:;
9457 : }
9458 907804 : switch (TREE_CODE (_p1))
9459 : {
9460 244 : case MULT_EXPR:
9461 244 : {
9462 244 : tree _q30 = TREE_OPERAND (_p1, 0);
9463 244 : tree _q31 = TREE_OPERAND (_p1, 1);
9464 244 : switch (TREE_CODE (_q30))
9465 : {
9466 0 : case BIT_XOR_EXPR:
9467 0 : {
9468 0 : tree _q40 = TREE_OPERAND (_q30, 0);
9469 0 : tree _q41 = TREE_OPERAND (_q30, 1);
9470 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
9471 : {
9472 0 : if (tree_zero_one_valued_p (_q31))
9473 : {
9474 0 : {
9475 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q31 };
9476 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9477 0 : if (res) return res;
9478 : }
9479 : }
9480 : }
9481 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
9482 : {
9483 0 : if (tree_zero_one_valued_p (_q31))
9484 : {
9485 0 : {
9486 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q31 };
9487 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9488 0 : if (res) return res;
9489 : }
9490 : }
9491 : }
9492 : break;
9493 : }
9494 244 : default:;
9495 : }
9496 244 : if (tree_zero_one_valued_p (_q30))
9497 : {
9498 17 : switch (TREE_CODE (_q31))
9499 : {
9500 0 : case BIT_XOR_EXPR:
9501 0 : {
9502 0 : tree _q50 = TREE_OPERAND (_q31, 0);
9503 0 : tree _q51 = TREE_OPERAND (_q31, 1);
9504 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
9505 : {
9506 0 : {
9507 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q51, _q30 };
9508 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9509 0 : if (res) return res;
9510 : }
9511 : }
9512 0 : if ((_q51 == _p0 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _p0, 0) && types_match (_q51, _p0)))
9513 : {
9514 0 : {
9515 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q50, _q30 };
9516 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9517 0 : if (res) return res;
9518 : }
9519 : }
9520 : break;
9521 : }
9522 : default:;
9523 : }
9524 : }
9525 : break;
9526 : }
9527 907804 : default:;
9528 : }
9529 907804 : switch (TREE_CODE (_p0))
9530 : {
9531 1 : case VEC_COND_EXPR:
9532 1 : {
9533 1 : tree _q20 = TREE_OPERAND (_p0, 0);
9534 1 : tree _q21 = TREE_OPERAND (_p0, 1);
9535 1 : tree _q22 = TREE_OPERAND (_p0, 2);
9536 1 : switch (TREE_CODE (_p1))
9537 : {
9538 0 : case VEC_COND_EXPR:
9539 0 : {
9540 0 : tree _q60 = TREE_OPERAND (_p1, 0);
9541 0 : tree _q61 = TREE_OPERAND (_p1, 1);
9542 0 : tree _q62 = TREE_OPERAND (_p1, 2);
9543 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9544 : {
9545 0 : {
9546 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
9547 0 : if (VECTOR_TYPE_P (type)
9548 0 : && (TREE_CODE_CLASS (BIT_XOR_EXPR) != tcc_comparison
9549 : || types_match (type, TREE_TYPE (captures[2]))
9550 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
9551 : || (optimize_vectors_before_lowering_p ()
9552 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
9553 : )
9554 : {
9555 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1201;
9556 0 : {
9557 0 : tree res_op0;
9558 0 : res_op0 = captures[1];
9559 0 : tree res_op1;
9560 0 : {
9561 0 : tree _o1[2], _r1;
9562 0 : _o1[0] = captures[2];
9563 0 : _o1[1] = captures[5];
9564 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
9565 0 : if (EXPR_P (_r1))
9566 0 : goto next_after_fail1201;
9567 0 : res_op1 = _r1;
9568 : }
9569 0 : tree res_op2;
9570 0 : {
9571 0 : tree _o1[2], _r1;
9572 0 : _o1[0] = captures[3];
9573 0 : _o1[1] = captures[6];
9574 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
9575 0 : if (EXPR_P (_r1))
9576 0 : goto next_after_fail1201;
9577 0 : res_op2 = _r1;
9578 : }
9579 0 : tree _r;
9580 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9581 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
9582 0 : return _r;
9583 : }
9584 0 : next_after_fail1201:;
9585 : }
9586 : }
9587 : }
9588 : break;
9589 : }
9590 1 : default:;
9591 : }
9592 1 : if (integer_minus_onep (_q21))
9593 : {
9594 1 : if (integer_zerop (_q22))
9595 : {
9596 1 : switch (TREE_CODE (_p1))
9597 : {
9598 0 : case VEC_COND_EXPR:
9599 0 : {
9600 0 : tree _q60 = TREE_OPERAND (_p1, 0);
9601 0 : tree _q61 = TREE_OPERAND (_p1, 1);
9602 0 : tree _q62 = TREE_OPERAND (_p1, 2);
9603 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
9604 : {
9605 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
9606 : {
9607 0 : {
9608 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9609 0 : const enum tree_code lop = BIT_XOR_EXPR;
9610 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9611 : )
9612 : {
9613 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1202;
9614 0 : {
9615 0 : tree res_op0;
9616 0 : {
9617 0 : tree _o1[2], _r1;
9618 0 : _o1[0] = captures[0];
9619 0 : _o1[1] = captures[3];
9620 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9621 0 : res_op0 = _r1;
9622 : }
9623 0 : tree res_op1;
9624 0 : res_op1 = captures[1];
9625 0 : tree res_op2;
9626 0 : res_op2 = captures[2];
9627 0 : tree _r;
9628 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9629 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9630 0 : return _r;
9631 : }
9632 0 : next_after_fail1202:;
9633 : }
9634 : }
9635 0 : {
9636 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9637 0 : const enum tree_code lop = BIT_XOR_EXPR;
9638 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9639 : )
9640 : {
9641 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1203;
9642 0 : {
9643 0 : tree res_op0;
9644 0 : {
9645 0 : tree _o1[2], _r1;
9646 0 : _o1[0] = captures[0];
9647 0 : _o1[1] = captures[3];
9648 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9649 0 : res_op0 = _r1;
9650 : }
9651 0 : tree res_op1;
9652 0 : res_op1 = captures[1];
9653 0 : tree res_op2;
9654 0 : res_op2 = captures[2];
9655 0 : tree _r;
9656 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9657 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9658 0 : return _r;
9659 : }
9660 0 : next_after_fail1203:;
9661 : }
9662 : }
9663 0 : {
9664 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9665 0 : const enum tree_code lop = BIT_XOR_EXPR;
9666 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9667 : )
9668 : {
9669 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1204;
9670 0 : {
9671 0 : tree res_op0;
9672 0 : {
9673 0 : tree _o1[2], _r1;
9674 0 : _o1[0] = captures[0];
9675 0 : _o1[1] = captures[3];
9676 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9677 0 : res_op0 = _r1;
9678 : }
9679 0 : tree res_op1;
9680 0 : res_op1 = captures[1];
9681 0 : tree res_op2;
9682 0 : res_op2 = captures[2];
9683 0 : tree _r;
9684 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9685 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9686 0 : return _r;
9687 : }
9688 0 : next_after_fail1204:;
9689 : }
9690 : }
9691 0 : {
9692 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9693 0 : const enum tree_code lop = BIT_XOR_EXPR;
9694 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9695 : )
9696 : {
9697 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1205;
9698 0 : {
9699 0 : tree res_op0;
9700 0 : {
9701 0 : tree _o1[2], _r1;
9702 0 : _o1[0] = captures[0];
9703 0 : _o1[1] = captures[3];
9704 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9705 0 : res_op0 = _r1;
9706 : }
9707 0 : tree res_op1;
9708 0 : res_op1 = captures[1];
9709 0 : tree res_op2;
9710 0 : res_op2 = captures[2];
9711 0 : tree _r;
9712 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9713 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9714 0 : return _r;
9715 : }
9716 0 : next_after_fail1205:;
9717 : }
9718 : }
9719 0 : {
9720 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9721 0 : const enum tree_code lop = BIT_XOR_EXPR;
9722 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9723 : )
9724 : {
9725 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1206;
9726 0 : {
9727 0 : tree res_op0;
9728 0 : {
9729 0 : tree _o1[2], _r1;
9730 0 : _o1[0] = captures[0];
9731 0 : _o1[1] = captures[3];
9732 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9733 0 : res_op0 = _r1;
9734 : }
9735 0 : tree res_op1;
9736 0 : res_op1 = captures[1];
9737 0 : tree res_op2;
9738 0 : res_op2 = captures[2];
9739 0 : tree _r;
9740 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9741 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9742 0 : return _r;
9743 : }
9744 0 : next_after_fail1206:;
9745 : }
9746 : }
9747 0 : {
9748 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9749 0 : const enum tree_code lop = BIT_XOR_EXPR;
9750 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9751 : )
9752 : {
9753 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1207;
9754 0 : {
9755 0 : tree res_op0;
9756 0 : {
9757 0 : tree _o1[2], _r1;
9758 0 : _o1[0] = captures[0];
9759 0 : _o1[1] = captures[3];
9760 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9761 0 : res_op0 = _r1;
9762 : }
9763 0 : tree res_op1;
9764 0 : res_op1 = captures[1];
9765 0 : tree res_op2;
9766 0 : res_op2 = captures[2];
9767 0 : tree _r;
9768 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9769 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9770 0 : return _r;
9771 : }
9772 0 : next_after_fail1207:;
9773 : }
9774 : }
9775 0 : {
9776 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9777 0 : const enum tree_code lop = BIT_XOR_EXPR;
9778 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9779 : )
9780 : {
9781 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1208;
9782 0 : {
9783 0 : tree res_op0;
9784 0 : {
9785 0 : tree _o1[2], _r1;
9786 0 : _o1[0] = captures[0];
9787 0 : _o1[1] = captures[3];
9788 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9789 0 : res_op0 = _r1;
9790 : }
9791 0 : tree res_op1;
9792 0 : res_op1 = captures[1];
9793 0 : tree res_op2;
9794 0 : res_op2 = captures[2];
9795 0 : tree _r;
9796 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9797 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9798 0 : return _r;
9799 : }
9800 0 : next_after_fail1208:;
9801 : }
9802 : }
9803 0 : {
9804 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9805 0 : const enum tree_code lop = BIT_XOR_EXPR;
9806 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9807 : )
9808 : {
9809 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1209;
9810 0 : {
9811 0 : tree res_op0;
9812 0 : {
9813 0 : tree _o1[2], _r1;
9814 0 : _o1[0] = captures[0];
9815 0 : _o1[1] = captures[3];
9816 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9817 0 : res_op0 = _r1;
9818 : }
9819 0 : tree res_op1;
9820 0 : res_op1 = captures[1];
9821 0 : tree res_op2;
9822 0 : res_op2 = captures[2];
9823 0 : tree _r;
9824 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9825 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9826 0 : return _r;
9827 : }
9828 0 : next_after_fail1209:;
9829 : }
9830 : }
9831 0 : {
9832 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9833 0 : const enum tree_code lop = BIT_XOR_EXPR;
9834 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9835 : )
9836 : {
9837 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1210;
9838 0 : {
9839 0 : tree res_op0;
9840 0 : {
9841 0 : tree _o1[2], _r1;
9842 0 : _o1[0] = captures[0];
9843 0 : _o1[1] = captures[3];
9844 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9845 0 : res_op0 = _r1;
9846 : }
9847 0 : tree res_op1;
9848 0 : res_op1 = captures[1];
9849 0 : tree res_op2;
9850 0 : res_op2 = captures[2];
9851 0 : tree _r;
9852 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9853 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9854 0 : return _r;
9855 : }
9856 0 : next_after_fail1210:;
9857 : }
9858 : }
9859 0 : {
9860 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9861 0 : const enum tree_code lop = BIT_XOR_EXPR;
9862 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9863 : )
9864 : {
9865 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1211;
9866 0 : {
9867 0 : tree res_op0;
9868 0 : {
9869 0 : tree _o1[2], _r1;
9870 0 : _o1[0] = captures[0];
9871 0 : _o1[1] = captures[3];
9872 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9873 0 : res_op0 = _r1;
9874 : }
9875 0 : tree res_op1;
9876 0 : res_op1 = captures[1];
9877 0 : tree res_op2;
9878 0 : res_op2 = captures[2];
9879 0 : tree _r;
9880 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9881 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9882 0 : return _r;
9883 : }
9884 0 : next_after_fail1211:;
9885 : }
9886 : }
9887 0 : {
9888 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9889 0 : const enum tree_code lop = BIT_XOR_EXPR;
9890 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9891 : )
9892 : {
9893 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1212;
9894 0 : {
9895 0 : tree res_op0;
9896 0 : {
9897 0 : tree _o1[2], _r1;
9898 0 : _o1[0] = captures[0];
9899 0 : _o1[1] = captures[3];
9900 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9901 0 : res_op0 = _r1;
9902 : }
9903 0 : tree res_op1;
9904 0 : res_op1 = captures[1];
9905 0 : tree res_op2;
9906 0 : res_op2 = captures[2];
9907 0 : tree _r;
9908 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9909 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9910 0 : return _r;
9911 : }
9912 0 : next_after_fail1212:;
9913 : }
9914 : }
9915 0 : {
9916 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9917 0 : const enum tree_code lop = BIT_XOR_EXPR;
9918 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9919 : )
9920 : {
9921 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1213;
9922 0 : {
9923 0 : tree res_op0;
9924 0 : {
9925 0 : tree _o1[2], _r1;
9926 0 : _o1[0] = captures[0];
9927 0 : _o1[1] = captures[3];
9928 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9929 0 : res_op0 = _r1;
9930 : }
9931 0 : tree res_op1;
9932 0 : res_op1 = captures[1];
9933 0 : tree res_op2;
9934 0 : res_op2 = captures[2];
9935 0 : tree _r;
9936 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9937 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9938 0 : return _r;
9939 : }
9940 0 : next_after_fail1213:;
9941 : }
9942 : }
9943 0 : {
9944 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9945 0 : const enum tree_code lop = BIT_XOR_EXPR;
9946 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9947 : )
9948 : {
9949 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1214;
9950 0 : {
9951 0 : tree res_op0;
9952 0 : {
9953 0 : tree _o1[2], _r1;
9954 0 : _o1[0] = captures[0];
9955 0 : _o1[1] = captures[3];
9956 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9957 0 : res_op0 = _r1;
9958 : }
9959 0 : tree res_op1;
9960 0 : res_op1 = captures[1];
9961 0 : tree res_op2;
9962 0 : res_op2 = captures[2];
9963 0 : tree _r;
9964 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9965 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9966 0 : return _r;
9967 : }
9968 0 : next_after_fail1214:;
9969 : }
9970 : }
9971 0 : {
9972 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9973 0 : const enum tree_code lop = BIT_XOR_EXPR;
9974 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9975 : )
9976 : {
9977 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1215;
9978 0 : {
9979 0 : tree res_op0;
9980 0 : {
9981 0 : tree _o1[2], _r1;
9982 0 : _o1[0] = captures[0];
9983 0 : _o1[1] = captures[3];
9984 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9985 0 : res_op0 = _r1;
9986 : }
9987 0 : tree res_op1;
9988 0 : res_op1 = captures[1];
9989 0 : tree res_op2;
9990 0 : res_op2 = captures[2];
9991 0 : tree _r;
9992 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9993 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
9994 0 : return _r;
9995 : }
9996 0 : next_after_fail1215:;
9997 : }
9998 : }
9999 0 : {
10000 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10001 0 : const enum tree_code lop = BIT_XOR_EXPR;
10002 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10003 : )
10004 : {
10005 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1216;
10006 0 : {
10007 0 : tree res_op0;
10008 0 : {
10009 0 : tree _o1[2], _r1;
10010 0 : _o1[0] = captures[0];
10011 0 : _o1[1] = captures[3];
10012 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10013 0 : res_op0 = _r1;
10014 : }
10015 0 : tree res_op1;
10016 0 : res_op1 = captures[1];
10017 0 : tree res_op2;
10018 0 : res_op2 = captures[2];
10019 0 : tree _r;
10020 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10021 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10022 0 : return _r;
10023 : }
10024 0 : next_after_fail1216:;
10025 : }
10026 : }
10027 0 : {
10028 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10029 0 : const enum tree_code lop = BIT_XOR_EXPR;
10030 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10031 : )
10032 : {
10033 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1217;
10034 0 : {
10035 0 : tree res_op0;
10036 0 : {
10037 0 : tree _o1[2], _r1;
10038 0 : _o1[0] = captures[0];
10039 0 : _o1[1] = captures[3];
10040 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10041 0 : res_op0 = _r1;
10042 : }
10043 0 : tree res_op1;
10044 0 : res_op1 = captures[1];
10045 0 : tree res_op2;
10046 0 : res_op2 = captures[2];
10047 0 : tree _r;
10048 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10049 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10050 0 : return _r;
10051 : }
10052 0 : next_after_fail1217:;
10053 : }
10054 : }
10055 0 : {
10056 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10057 0 : const enum tree_code lop = BIT_XOR_EXPR;
10058 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10059 : )
10060 : {
10061 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1218;
10062 0 : {
10063 0 : tree res_op0;
10064 0 : {
10065 0 : tree _o1[2], _r1;
10066 0 : _o1[0] = captures[0];
10067 0 : _o1[1] = captures[3];
10068 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10069 0 : res_op0 = _r1;
10070 : }
10071 0 : tree res_op1;
10072 0 : res_op1 = captures[1];
10073 0 : tree res_op2;
10074 0 : res_op2 = captures[2];
10075 0 : tree _r;
10076 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10077 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10078 0 : return _r;
10079 : }
10080 0 : next_after_fail1218:;
10081 : }
10082 : }
10083 0 : {
10084 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10085 0 : const enum tree_code lop = BIT_XOR_EXPR;
10086 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10087 : )
10088 : {
10089 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1219;
10090 0 : {
10091 0 : tree res_op0;
10092 0 : {
10093 0 : tree _o1[2], _r1;
10094 0 : _o1[0] = captures[0];
10095 0 : _o1[1] = captures[3];
10096 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10097 0 : res_op0 = _r1;
10098 : }
10099 0 : tree res_op1;
10100 0 : res_op1 = captures[1];
10101 0 : tree res_op2;
10102 0 : res_op2 = captures[2];
10103 0 : tree _r;
10104 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10105 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10106 0 : return _r;
10107 : }
10108 0 : next_after_fail1219:;
10109 : }
10110 : }
10111 0 : {
10112 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10113 0 : const enum tree_code lop = BIT_XOR_EXPR;
10114 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10115 : )
10116 : {
10117 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1220;
10118 0 : {
10119 0 : tree res_op0;
10120 0 : {
10121 0 : tree _o1[2], _r1;
10122 0 : _o1[0] = captures[0];
10123 0 : _o1[1] = captures[3];
10124 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10125 0 : res_op0 = _r1;
10126 : }
10127 0 : tree res_op1;
10128 0 : res_op1 = captures[1];
10129 0 : tree res_op2;
10130 0 : res_op2 = captures[2];
10131 0 : tree _r;
10132 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10133 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10134 0 : return _r;
10135 : }
10136 0 : next_after_fail1220:;
10137 : }
10138 : }
10139 0 : {
10140 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10141 0 : const enum tree_code lop = BIT_XOR_EXPR;
10142 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10143 : )
10144 : {
10145 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1221;
10146 0 : {
10147 0 : tree res_op0;
10148 0 : {
10149 0 : tree _o1[2], _r1;
10150 0 : _o1[0] = captures[0];
10151 0 : _o1[1] = captures[3];
10152 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10153 0 : res_op0 = _r1;
10154 : }
10155 0 : tree res_op1;
10156 0 : res_op1 = captures[1];
10157 0 : tree res_op2;
10158 0 : res_op2 = captures[2];
10159 0 : tree _r;
10160 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10161 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10162 0 : return _r;
10163 : }
10164 0 : next_after_fail1221:;
10165 : }
10166 : }
10167 0 : {
10168 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10169 0 : const enum tree_code lop = BIT_XOR_EXPR;
10170 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10171 : )
10172 : {
10173 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1222;
10174 0 : {
10175 0 : tree res_op0;
10176 0 : {
10177 0 : tree _o1[2], _r1;
10178 0 : _o1[0] = captures[0];
10179 0 : _o1[1] = captures[3];
10180 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10181 0 : res_op0 = _r1;
10182 : }
10183 0 : tree res_op1;
10184 0 : res_op1 = captures[1];
10185 0 : tree res_op2;
10186 0 : res_op2 = captures[2];
10187 0 : tree _r;
10188 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10189 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10190 0 : return _r;
10191 : }
10192 0 : next_after_fail1222:;
10193 : }
10194 : }
10195 0 : {
10196 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10197 0 : const enum tree_code lop = BIT_XOR_EXPR;
10198 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10199 : )
10200 : {
10201 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1223;
10202 0 : {
10203 0 : tree res_op0;
10204 0 : {
10205 0 : tree _o1[2], _r1;
10206 0 : _o1[0] = captures[0];
10207 0 : _o1[1] = captures[3];
10208 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10209 0 : res_op0 = _r1;
10210 : }
10211 0 : tree res_op1;
10212 0 : res_op1 = captures[1];
10213 0 : tree res_op2;
10214 0 : res_op2 = captures[2];
10215 0 : tree _r;
10216 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10217 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10218 0 : return _r;
10219 : }
10220 0 : next_after_fail1223:;
10221 : }
10222 : }
10223 0 : {
10224 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10225 0 : const enum tree_code lop = BIT_XOR_EXPR;
10226 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10227 : )
10228 : {
10229 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1224;
10230 0 : {
10231 0 : tree res_op0;
10232 0 : {
10233 0 : tree _o1[2], _r1;
10234 0 : _o1[0] = captures[0];
10235 0 : _o1[1] = captures[3];
10236 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10237 0 : res_op0 = _r1;
10238 : }
10239 0 : tree res_op1;
10240 0 : res_op1 = captures[1];
10241 0 : tree res_op2;
10242 0 : res_op2 = captures[2];
10243 0 : tree _r;
10244 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10245 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10246 0 : return _r;
10247 : }
10248 0 : next_after_fail1224:;
10249 : }
10250 : }
10251 0 : {
10252 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10253 0 : const enum tree_code lop = BIT_XOR_EXPR;
10254 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10255 : )
10256 : {
10257 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1225;
10258 0 : {
10259 0 : tree res_op0;
10260 0 : {
10261 0 : tree _o1[2], _r1;
10262 0 : _o1[0] = captures[0];
10263 0 : _o1[1] = captures[3];
10264 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10265 0 : res_op0 = _r1;
10266 : }
10267 0 : tree res_op1;
10268 0 : res_op1 = captures[1];
10269 0 : tree res_op2;
10270 0 : res_op2 = captures[2];
10271 0 : tree _r;
10272 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10273 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10274 0 : return _r;
10275 : }
10276 0 : next_after_fail1225:;
10277 : }
10278 : }
10279 0 : {
10280 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10281 0 : const enum tree_code lop = BIT_XOR_EXPR;
10282 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10283 : )
10284 : {
10285 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1226;
10286 0 : {
10287 0 : tree res_op0;
10288 0 : {
10289 0 : tree _o1[2], _r1;
10290 0 : _o1[0] = captures[0];
10291 0 : _o1[1] = captures[3];
10292 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10293 0 : res_op0 = _r1;
10294 : }
10295 0 : tree res_op1;
10296 0 : res_op1 = captures[1];
10297 0 : tree res_op2;
10298 0 : res_op2 = captures[2];
10299 0 : tree _r;
10300 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10301 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10302 0 : return _r;
10303 : }
10304 0 : next_after_fail1226:;
10305 : }
10306 : }
10307 0 : {
10308 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10309 0 : const enum tree_code lop = BIT_XOR_EXPR;
10310 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10311 : )
10312 : {
10313 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1227;
10314 0 : {
10315 0 : tree res_op0;
10316 0 : {
10317 0 : tree _o1[2], _r1;
10318 0 : _o1[0] = captures[0];
10319 0 : _o1[1] = captures[3];
10320 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10321 0 : res_op0 = _r1;
10322 : }
10323 0 : tree res_op1;
10324 0 : res_op1 = captures[1];
10325 0 : tree res_op2;
10326 0 : res_op2 = captures[2];
10327 0 : tree _r;
10328 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10329 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10330 0 : return _r;
10331 : }
10332 0 : next_after_fail1227:;
10333 : }
10334 : }
10335 0 : {
10336 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10337 0 : const enum tree_code lop = BIT_XOR_EXPR;
10338 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10339 : )
10340 : {
10341 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1228;
10342 0 : {
10343 0 : tree res_op0;
10344 0 : {
10345 0 : tree _o1[2], _r1;
10346 0 : _o1[0] = captures[0];
10347 0 : _o1[1] = captures[3];
10348 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10349 0 : res_op0 = _r1;
10350 : }
10351 0 : tree res_op1;
10352 0 : res_op1 = captures[1];
10353 0 : tree res_op2;
10354 0 : res_op2 = captures[2];
10355 0 : tree _r;
10356 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10357 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10358 0 : return _r;
10359 : }
10360 0 : next_after_fail1228:;
10361 : }
10362 : }
10363 0 : {
10364 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10365 0 : const enum tree_code lop = BIT_XOR_EXPR;
10366 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10367 : )
10368 : {
10369 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1229;
10370 0 : {
10371 0 : tree res_op0;
10372 0 : {
10373 0 : tree _o1[2], _r1;
10374 0 : _o1[0] = captures[0];
10375 0 : _o1[1] = captures[3];
10376 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10377 0 : res_op0 = _r1;
10378 : }
10379 0 : tree res_op1;
10380 0 : res_op1 = captures[1];
10381 0 : tree res_op2;
10382 0 : res_op2 = captures[2];
10383 0 : tree _r;
10384 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10385 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10386 0 : return _r;
10387 : }
10388 0 : next_after_fail1229:;
10389 : }
10390 : }
10391 0 : {
10392 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10393 0 : const enum tree_code lop = BIT_XOR_EXPR;
10394 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10395 : )
10396 : {
10397 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1230;
10398 0 : {
10399 0 : tree res_op0;
10400 0 : {
10401 0 : tree _o1[2], _r1;
10402 0 : _o1[0] = captures[0];
10403 0 : _o1[1] = captures[3];
10404 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10405 0 : res_op0 = _r1;
10406 : }
10407 0 : tree res_op1;
10408 0 : res_op1 = captures[1];
10409 0 : tree res_op2;
10410 0 : res_op2 = captures[2];
10411 0 : tree _r;
10412 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10413 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10414 0 : return _r;
10415 : }
10416 0 : next_after_fail1230:;
10417 : }
10418 : }
10419 0 : {
10420 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10421 0 : const enum tree_code lop = BIT_XOR_EXPR;
10422 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10423 : )
10424 : {
10425 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1231;
10426 0 : {
10427 0 : tree res_op0;
10428 0 : {
10429 0 : tree _o1[2], _r1;
10430 0 : _o1[0] = captures[0];
10431 0 : _o1[1] = captures[3];
10432 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10433 0 : res_op0 = _r1;
10434 : }
10435 0 : tree res_op1;
10436 0 : res_op1 = captures[1];
10437 0 : tree res_op2;
10438 0 : res_op2 = captures[2];
10439 0 : tree _r;
10440 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10441 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10442 0 : return _r;
10443 : }
10444 0 : next_after_fail1231:;
10445 : }
10446 : }
10447 0 : {
10448 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10449 0 : const enum tree_code lop = BIT_XOR_EXPR;
10450 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10451 : )
10452 : {
10453 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1232;
10454 0 : {
10455 0 : tree res_op0;
10456 0 : {
10457 0 : tree _o1[2], _r1;
10458 0 : _o1[0] = captures[0];
10459 0 : _o1[1] = captures[3];
10460 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10461 0 : res_op0 = _r1;
10462 : }
10463 0 : tree res_op1;
10464 0 : res_op1 = captures[1];
10465 0 : tree res_op2;
10466 0 : res_op2 = captures[2];
10467 0 : tree _r;
10468 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10469 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10470 0 : return _r;
10471 : }
10472 0 : next_after_fail1232:;
10473 : }
10474 : }
10475 0 : {
10476 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10477 0 : const enum tree_code lop = BIT_XOR_EXPR;
10478 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10479 : )
10480 : {
10481 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1233;
10482 0 : {
10483 0 : tree res_op0;
10484 0 : {
10485 0 : tree _o1[2], _r1;
10486 0 : _o1[0] = captures[0];
10487 0 : _o1[1] = captures[3];
10488 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10489 0 : res_op0 = _r1;
10490 : }
10491 0 : tree res_op1;
10492 0 : res_op1 = captures[1];
10493 0 : tree res_op2;
10494 0 : res_op2 = captures[2];
10495 0 : tree _r;
10496 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10497 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10498 0 : return _r;
10499 : }
10500 0 : next_after_fail1233:;
10501 : }
10502 : }
10503 0 : {
10504 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10505 0 : const enum tree_code lop = BIT_XOR_EXPR;
10506 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10507 : )
10508 : {
10509 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1234;
10510 0 : {
10511 0 : tree res_op0;
10512 0 : {
10513 0 : tree _o1[2], _r1;
10514 0 : _o1[0] = captures[0];
10515 0 : _o1[1] = captures[3];
10516 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10517 0 : res_op0 = _r1;
10518 : }
10519 0 : tree res_op1;
10520 0 : res_op1 = captures[1];
10521 0 : tree res_op2;
10522 0 : res_op2 = captures[2];
10523 0 : tree _r;
10524 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10525 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10526 0 : return _r;
10527 : }
10528 0 : next_after_fail1234:;
10529 : }
10530 : }
10531 0 : {
10532 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10533 0 : const enum tree_code lop = BIT_XOR_EXPR;
10534 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10535 : )
10536 : {
10537 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1235;
10538 0 : {
10539 0 : tree res_op0;
10540 0 : {
10541 0 : tree _o1[2], _r1;
10542 0 : _o1[0] = captures[0];
10543 0 : _o1[1] = captures[3];
10544 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10545 0 : res_op0 = _r1;
10546 : }
10547 0 : tree res_op1;
10548 0 : res_op1 = captures[1];
10549 0 : tree res_op2;
10550 0 : res_op2 = captures[2];
10551 0 : tree _r;
10552 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10553 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10554 0 : return _r;
10555 : }
10556 0 : next_after_fail1235:;
10557 : }
10558 : }
10559 : }
10560 : }
10561 : break;
10562 : }
10563 : default:;
10564 : }
10565 : }
10566 : }
10567 1 : {
10568 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
10569 1 : if (VECTOR_TYPE_P (type)
10570 1 : && (TREE_CODE_CLASS (BIT_XOR_EXPR) != tcc_comparison
10571 : || types_match (type, TREE_TYPE (captures[2]))
10572 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10573 : || (optimize_vectors_before_lowering_p ()
10574 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10575 : )
10576 : {
10577 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1236;
10578 1 : {
10579 1 : if (! tree_invariant_p (captures[4])) goto next_after_fail1236;
10580 0 : tree res_op0;
10581 0 : res_op0 = captures[1];
10582 0 : tree res_op1;
10583 0 : {
10584 0 : tree _o1[2], _r1;
10585 0 : _o1[0] = captures[2];
10586 0 : _o1[1] = unshare_expr (captures[4]);
10587 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
10588 0 : if (EXPR_P (_r1))
10589 0 : goto next_after_fail1236;
10590 0 : res_op1 = _r1;
10591 : }
10592 0 : tree res_op2;
10593 0 : {
10594 0 : tree _o1[2], _r1;
10595 0 : _o1[0] = captures[3];
10596 0 : _o1[1] = captures[4];
10597 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
10598 0 : if (EXPR_P (_r1))
10599 0 : goto next_after_fail1236;
10600 0 : res_op2 = _r1;
10601 : }
10602 0 : tree _r;
10603 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10604 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
10605 0 : return _r;
10606 : }
10607 1 : next_after_fail1236:;
10608 : }
10609 : }
10610 1 : break;
10611 : }
10612 907804 : default:;
10613 : }
10614 907804 : switch (TREE_CODE (_p1))
10615 : {
10616 0 : case VEC_COND_EXPR:
10617 0 : {
10618 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10619 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10620 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10621 0 : {
10622 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
10623 0 : if (VECTOR_TYPE_P (type)
10624 0 : && (TREE_CODE_CLASS (BIT_XOR_EXPR) != tcc_comparison
10625 : || types_match (type, TREE_TYPE (captures[3]))
10626 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
10627 : || (optimize_vectors_before_lowering_p ()
10628 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
10629 : )
10630 : {
10631 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1237;
10632 0 : {
10633 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1237;
10634 0 : tree res_op0;
10635 0 : res_op0 = captures[2];
10636 0 : tree res_op1;
10637 0 : {
10638 0 : tree _o1[2], _r1;
10639 0 : _o1[0] = unshare_expr (captures[0]);
10640 0 : _o1[1] = captures[3];
10641 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
10642 0 : if (EXPR_P (_r1))
10643 0 : goto next_after_fail1237;
10644 0 : res_op1 = _r1;
10645 : }
10646 0 : tree res_op2;
10647 0 : {
10648 0 : tree _o1[2], _r1;
10649 0 : _o1[0] = captures[0];
10650 0 : _o1[1] = captures[4];
10651 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
10652 0 : if (EXPR_P (_r1))
10653 0 : goto next_after_fail1237;
10654 0 : res_op2 = _r1;
10655 : }
10656 0 : tree _r;
10657 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10658 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
10659 0 : return _r;
10660 : }
10661 0 : next_after_fail1237:;
10662 : }
10663 : }
10664 0 : break;
10665 : }
10666 907804 : default:;
10667 : }
10668 907804 : switch (TREE_CODE (_p0))
10669 : {
10670 90 : case LT_EXPR:
10671 90 : {
10672 90 : tree _q20 = TREE_OPERAND (_p0, 0);
10673 90 : tree _q21 = TREE_OPERAND (_p0, 1);
10674 90 : if (integer_truep (_p1))
10675 : {
10676 14 : {
10677 14 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10678 14 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
10679 14 : if (res) return res;
10680 : }
10681 : }
10682 76 : if (integer_zerop (_q21))
10683 : {
10684 24 : switch (TREE_CODE (_p1))
10685 : {
10686 17 : case LT_EXPR:
10687 17 : {
10688 17 : tree _q50 = TREE_OPERAND (_p1, 0);
10689 17 : tree _q51 = TREE_OPERAND (_p1, 1);
10690 17 : if (integer_zerop (_q51))
10691 : {
10692 17 : {
10693 17 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
10694 17 : tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, LT_EXPR);
10695 17 : if (res) return res;
10696 : }
10697 : }
10698 : break;
10699 : }
10700 0 : case GE_EXPR:
10701 0 : {
10702 0 : tree _q50 = TREE_OPERAND (_p1, 0);
10703 0 : tree _q51 = TREE_OPERAND (_p1, 1);
10704 0 : if (integer_zerop (_q51))
10705 : {
10706 0 : {
10707 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
10708 0 : tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
10709 0 : if (res) return res;
10710 : }
10711 : }
10712 : break;
10713 : }
10714 : default:;
10715 : }
10716 : }
10717 : break;
10718 : }
10719 85 : case LE_EXPR:
10720 85 : {
10721 85 : tree _q20 = TREE_OPERAND (_p0, 0);
10722 85 : tree _q21 = TREE_OPERAND (_p0, 1);
10723 85 : if (integer_truep (_p1))
10724 : {
10725 15 : {
10726 15 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10727 15 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
10728 15 : if (res) return res;
10729 : }
10730 : }
10731 : break;
10732 : }
10733 119 : case EQ_EXPR:
10734 119 : {
10735 119 : tree _q20 = TREE_OPERAND (_p0, 0);
10736 119 : tree _q21 = TREE_OPERAND (_p0, 1);
10737 119 : if (integer_truep (_p1))
10738 : {
10739 14 : {
10740 14 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10741 14 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
10742 14 : if (res) return res;
10743 : }
10744 : }
10745 : break;
10746 : }
10747 113 : case NE_EXPR:
10748 113 : {
10749 113 : tree _q20 = TREE_OPERAND (_p0, 0);
10750 113 : tree _q21 = TREE_OPERAND (_p0, 1);
10751 113 : if (integer_truep (_p1))
10752 : {
10753 7 : {
10754 7 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10755 7 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
10756 7 : if (res) return res;
10757 : }
10758 : }
10759 : break;
10760 : }
10761 62 : case GE_EXPR:
10762 62 : {
10763 62 : tree _q20 = TREE_OPERAND (_p0, 0);
10764 62 : tree _q21 = TREE_OPERAND (_p0, 1);
10765 62 : if (integer_truep (_p1))
10766 : {
10767 0 : {
10768 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10769 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
10770 0 : if (res) return res;
10771 : }
10772 : }
10773 62 : if (integer_zerop (_q21))
10774 : {
10775 26 : switch (TREE_CODE (_p1))
10776 : {
10777 1 : case GE_EXPR:
10778 1 : {
10779 1 : tree _q50 = TREE_OPERAND (_p1, 0);
10780 1 : tree _q51 = TREE_OPERAND (_p1, 1);
10781 1 : if (integer_zerop (_q51))
10782 : {
10783 1 : {
10784 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
10785 1 : tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, GE_EXPR);
10786 1 : if (res) return res;
10787 : }
10788 : }
10789 : break;
10790 : }
10791 5 : case LT_EXPR:
10792 5 : {
10793 5 : tree _q50 = TREE_OPERAND (_p1, 0);
10794 5 : tree _q51 = TREE_OPERAND (_p1, 1);
10795 5 : if (integer_zerop (_q51))
10796 : {
10797 5 : {
10798 5 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _p0, _q20 };
10799 5 : tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
10800 5 : if (res) return res;
10801 : }
10802 : }
10803 : break;
10804 : }
10805 : default:;
10806 : }
10807 : }
10808 : break;
10809 : }
10810 100 : case GT_EXPR:
10811 100 : {
10812 100 : tree _q20 = TREE_OPERAND (_p0, 0);
10813 100 : tree _q21 = TREE_OPERAND (_p0, 1);
10814 100 : if (integer_truep (_p1))
10815 : {
10816 14 : {
10817 14 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10818 14 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
10819 14 : if (res) return res;
10820 : }
10821 : }
10822 : break;
10823 : }
10824 0 : case UNORDERED_EXPR:
10825 0 : {
10826 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10827 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10828 0 : if (integer_truep (_p1))
10829 : {
10830 0 : {
10831 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10832 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
10833 0 : if (res) return res;
10834 : }
10835 : }
10836 : break;
10837 : }
10838 0 : case ORDERED_EXPR:
10839 0 : {
10840 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10841 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10842 0 : if (integer_truep (_p1))
10843 : {
10844 0 : {
10845 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10846 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
10847 0 : if (res) return res;
10848 : }
10849 : }
10850 : break;
10851 : }
10852 0 : case UNLT_EXPR:
10853 0 : {
10854 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10855 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10856 0 : if (integer_truep (_p1))
10857 : {
10858 0 : {
10859 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10860 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
10861 0 : if (res) return res;
10862 : }
10863 : }
10864 : break;
10865 : }
10866 0 : case UNLE_EXPR:
10867 0 : {
10868 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10869 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10870 0 : if (integer_truep (_p1))
10871 : {
10872 0 : {
10873 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10874 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
10875 0 : if (res) return res;
10876 : }
10877 : }
10878 : break;
10879 : }
10880 0 : case UNGT_EXPR:
10881 0 : {
10882 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10883 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10884 0 : if (integer_truep (_p1))
10885 : {
10886 0 : {
10887 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10888 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
10889 0 : if (res) return res;
10890 : }
10891 : }
10892 : break;
10893 : }
10894 0 : case UNGE_EXPR:
10895 0 : {
10896 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10897 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10898 0 : if (integer_truep (_p1))
10899 : {
10900 0 : {
10901 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10902 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
10903 0 : if (res) return res;
10904 : }
10905 : }
10906 : break;
10907 : }
10908 0 : case UNEQ_EXPR:
10909 0 : {
10910 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10911 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10912 0 : if (integer_truep (_p1))
10913 : {
10914 0 : {
10915 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10916 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
10917 0 : if (res) return res;
10918 : }
10919 : }
10920 : break;
10921 : }
10922 0 : case LTGT_EXPR:
10923 0 : {
10924 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10925 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10926 0 : if (integer_truep (_p1))
10927 : {
10928 0 : {
10929 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10930 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
10931 0 : if (res) return res;
10932 : }
10933 : }
10934 : break;
10935 : }
10936 7 : case VEC_PERM_EXPR:
10937 7 : {
10938 7 : tree _q20 = TREE_OPERAND (_p0, 0);
10939 7 : tree _q21 = TREE_OPERAND (_p0, 1);
10940 7 : tree _q22 = TREE_OPERAND (_p0, 2);
10941 7 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
10942 : {
10943 0 : switch (TREE_CODE (_p1))
10944 : {
10945 0 : case VEC_PERM_EXPR:
10946 0 : {
10947 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10948 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10949 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10950 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
10951 : {
10952 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
10953 : {
10954 0 : {
10955 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
10956 0 : if (VECTOR_INTEGER_TYPE_P (type)
10957 : )
10958 : {
10959 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1238;
10960 0 : {
10961 0 : tree res_op0;
10962 0 : {
10963 0 : tree _o1[2], _r1;
10964 0 : _o1[0] = captures[0];
10965 0 : _o1[1] = captures[2];
10966 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10967 0 : captures[3] = _r1;
10968 : }
10969 0 : res_op0 = unshare_expr (captures[3]);
10970 0 : tree res_op1;
10971 0 : res_op1 = captures[3];
10972 0 : tree res_op2;
10973 0 : res_op2 = captures[1];
10974 0 : tree _r;
10975 0 : _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
10976 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10977 0 : return _r;
10978 : }
10979 0 : next_after_fail1238:;
10980 : }
10981 : }
10982 : }
10983 : }
10984 : break;
10985 : }
10986 : default:;
10987 : }
10988 : }
10989 : break;
10990 : }
10991 3247 : case CALL_EXPR:
10992 3247 : switch (get_call_combined_fn (_p0))
10993 : {
10994 1 : case CFN_PARITY:
10995 1 : if (call_expr_nargs (_p0) == 1)
10996 : {
10997 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10998 1 : switch (TREE_CODE (_p1))
10999 : {
11000 1 : case CALL_EXPR:
11001 1 : switch (get_call_combined_fn (_p1))
11002 : {
11003 1 : case CFN_PARITY:
11004 1 : if (call_expr_nargs (_p1) == 1)
11005 : {
11006 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
11007 1 : {
11008 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11009 1 : tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_PARITY);
11010 1 : if (res) return res;
11011 : }
11012 : }
11013 : break;
11014 : default:;
11015 : }
11016 : break;
11017 : default:;
11018 : }
11019 : }
11020 : break;
11021 1 : case CFN_BUILT_IN_PARITYL:
11022 1 : if (call_expr_nargs (_p0) == 1)
11023 : {
11024 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11025 1 : switch (TREE_CODE (_p1))
11026 : {
11027 1 : case CALL_EXPR:
11028 1 : switch (get_call_combined_fn (_p1))
11029 : {
11030 1 : case CFN_BUILT_IN_PARITYL:
11031 1 : if (call_expr_nargs (_p1) == 1)
11032 : {
11033 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
11034 1 : {
11035 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11036 1 : tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYL);
11037 1 : if (res) return res;
11038 : }
11039 : }
11040 : break;
11041 : default:;
11042 : }
11043 : break;
11044 : default:;
11045 : }
11046 : }
11047 : break;
11048 0 : case CFN_BUILT_IN_PARITYIMAX:
11049 0 : if (call_expr_nargs (_p0) == 1)
11050 : {
11051 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11052 0 : switch (TREE_CODE (_p1))
11053 : {
11054 0 : case CALL_EXPR:
11055 0 : switch (get_call_combined_fn (_p1))
11056 : {
11057 0 : case CFN_BUILT_IN_PARITYIMAX:
11058 0 : if (call_expr_nargs (_p1) == 1)
11059 : {
11060 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
11061 0 : {
11062 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11063 0 : tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYIMAX);
11064 0 : if (res) return res;
11065 : }
11066 : }
11067 : break;
11068 : default:;
11069 : }
11070 : break;
11071 : default:;
11072 : }
11073 : }
11074 : break;
11075 1 : case CFN_BUILT_IN_PARITY:
11076 1 : if (call_expr_nargs (_p0) == 1)
11077 : {
11078 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11079 1 : switch (TREE_CODE (_p1))
11080 : {
11081 1 : case CALL_EXPR:
11082 1 : switch (get_call_combined_fn (_p1))
11083 : {
11084 1 : case CFN_BUILT_IN_PARITY:
11085 1 : if (call_expr_nargs (_p1) == 1)
11086 : {
11087 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
11088 1 : {
11089 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11090 1 : tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITY);
11091 1 : if (res) return res;
11092 : }
11093 : }
11094 : break;
11095 : default:;
11096 : }
11097 : break;
11098 : default:;
11099 : }
11100 : }
11101 : break;
11102 8 : case CFN_BUILT_IN_PARITYLL:
11103 8 : if (call_expr_nargs (_p0) == 1)
11104 : {
11105 8 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11106 8 : switch (TREE_CODE (_p1))
11107 : {
11108 8 : case CALL_EXPR:
11109 8 : switch (get_call_combined_fn (_p1))
11110 : {
11111 8 : case CFN_BUILT_IN_PARITYLL:
11112 8 : if (call_expr_nargs (_p1) == 1)
11113 : {
11114 8 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
11115 8 : {
11116 8 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11117 8 : tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYLL);
11118 8 : if (res) return res;
11119 : }
11120 : }
11121 : break;
11122 : default:;
11123 : }
11124 : break;
11125 : default:;
11126 : }
11127 : }
11128 : break;
11129 : default:;
11130 : }
11131 : break;
11132 : default:;
11133 : }
11134 : return NULL_TREE;
11135 : }
11136 :
11137 : tree
11138 34934345 : generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree _p0, tree _p1, tree _p2)
11139 : {
11140 34934345 : switch (code)
11141 : {
11142 12470522 : case COND_EXPR:
11143 12470522 : return generic_simplify_COND_EXPR (loc, code, type, _p0, _p1, _p2);
11144 391960 : case VEC_COND_EXPR:
11145 391960 : return generic_simplify_VEC_COND_EXPR (loc, code, type, _p0, _p1, _p2);
11146 766220 : case BIT_FIELD_REF:
11147 766220 : return generic_simplify_BIT_FIELD_REF (loc, code, type, _p0, _p1, _p2);
11148 14844 : case BIT_INSERT_EXPR:
11149 14844 : return generic_simplify_BIT_INSERT_EXPR (loc, code, type, _p0, _p1, _p2);
11150 773506 : case VEC_PERM_EXPR:
11151 773506 : return generic_simplify_VEC_PERM_EXPR (loc, code, type, _p0, _p1, _p2);
11152 : default:;
11153 : }
11154 : return NULL_TREE;
11155 : }
11156 :
11157 : tree
11158 0 : generic_simplify (location_t, enum tree_code,
11159 : const tree, tree, tree, tree, tree)
11160 : {
11161 0 : return NULL_TREE;
11162 : }
11163 :
11164 : tree
11165 0 : generic_simplify (location_t, enum tree_code,
11166 : const tree, tree, tree, tree, tree, tree)
11167 : {
11168 0 : return NULL_TREE;
11169 : }
11170 :
11171 : tree
11172 0 : generic_simplify (location_t, enum tree_code,
11173 : const tree, tree, tree, tree, tree, tree, tree)
11174 : {
11175 0 : return NULL_TREE;
11176 : }
11177 :
11178 : tree
11179 0 : generic_simplify (location_t, enum tree_code,
11180 : const tree, tree, tree, tree, tree, tree, tree, tree)
11181 : {
11182 0 : return NULL_TREE;
11183 : }
11184 : void
11185 18347 : generic_dump_logs (const char *file1, int line1_id, const char *file2, int line2, bool simplify)
11186 : {
11187 18347 : static int dbg_line_numbers[1112] = {
11188 : /* 0 */ 163, 166, 175, 177, 180, 183, 185, 191, 199, 197,
11189 : /* 10 */ 201, 203, 972, 974, 2165, 2171, 2173, 2176, 2181, 2184,
11190 : /* 20 */ 2432, 2436, 2438, 2440, 2442, 2444, 2446, 2448, 2475, 2491,
11191 : /* 30 */ 2499, 2481, 3094, 3096, 3098, 3105, 3102, 3112, 3114, 3121,
11192 : /* 40 */ 3118, 3329, 3339, 5684, 9119, 9140, 11566, 11569, 11574, 2132,
11193 : /* 50 */ 8939, 1347, 1351, 1511, 1526, 1531, 1578, 1579, 1583, 1584,
11194 : /* 60 */ 1626, 1651, 1656, 1749, 1873, 1963, 1883, 2027, 1893, 1898,
11195 : /* 70 */ 2021, 1906, 2073, 2015, 2034, 2040, 2707, 2047, 2061, 2107,
11196 : /* 80 */ 2324, 2390, 2413, 2424, 2427, 2459, 2565, 2597, 4366, 4379,
11197 : /* 90 */ 4389, 3171, 3173, 4729, 4403, 4415, 7081, 7083, 7148, 7156,
11198 : /* 100 */ 10477, 10483, 266, 293, 294, 505, 1341, 1856, 1911, 1974,
11199 : /* 110 */ 3861, 3799, 3904, 3905, 3909, 3910, 3920, 3924, 3928, 3943,
11200 : /* 120 */ 3946, 3950, 3876, 3879, 3884, 4030, 4036, 4042, 4222, 4223,
11201 : /* 130 */ 4252, 4273, 4292, 4717, 5583, 7012, 7097, 7099, 8567, 8642,
11202 : /* 140 */ 10308, 10356, 10370, 11593, 12018, 956, 962, 1491, 1500, 1992,
11203 : /* 150 */ 1983, 1930, 2733, 3812, 3852, 3857, 3858, 3866, 3867, 3870,
11204 : /* 160 */ 3887, 3962, 3965, 3969, 4050, 4072, 4110, 4121, 4160, 4175,
11205 : /* 170 */ 4723, 7022, 8647, 10366, 11597, 1477, 1486, 1516, 1521, 1563,
11206 : /* 180 */ 1548, 1555, 1605, 2069, 1610, 1617, 1646, 1773, 1863, 1868,
11207 : /* 190 */ 1878, 1888, 2002, 2089, 2099, 2101, 2360, 2365, 2370, 2376,
11208 : /* 200 */ 2377, 2399, 2548, 2577, 2579, 2584, 2586, 2726, 3385, 3400,
11209 : /* 210 */ 3418, 3618, 3619, 3620, 3628, 3636, 3645, 3654, 3686, 3687,
11210 : /* 220 */ 3692, 3693, 3698, 3703, 3707, 3762, 3776, 3390, 3409, 3411,
11211 : /* 230 */ 3395, 7685, 9517, 12116, 12131, 473, 479, 511, 1286, 1306,
11212 : /* 240 */ 1311, 2157, 2158, 2195, 2742, 5268, 5569, 5576, 5626, 5629,
11213 : /* 250 */ 5679, 8560, 8974, 8804, 8811, 8968, 9013, 9018, 341, 918,
11214 : /* 260 */ 1359, 3013, 2809, 2815, 2818, 2823, 2464, 2721, 2517, 2659,
11215 : /* 270 */ 2897, 2760, 2770, 2839, 2841, 2842, 2845, 2847, 2848, 2850,
11216 : /* 280 */ 2852, 2854, 2856, 2858, 2860, 2874, 2875, 2931, 3019, 3044,
11217 : /* 290 */ 2960, 2987, 3027, 3032, 3057, 3064, 3130, 3734, 4659, 4667,
11218 : /* 300 */ 4670, 4676, 4679, 4706, 5060, 5061, 5095, 5099, 5228, 5068,
11219 : /* 310 */ 5069, 5113, 5116, 5117, 5122, 5125, 5128, 5129, 5081, 5084,
11220 : /* 320 */ 5301, 5305, 5310, 5594, 5746, 5750, 7108, 7124, 7126, 7138,
11221 : /* 330 */ 7168, 7174, 7175, 7190, 7191, 7195, 7213, 7218, 7250, 7258,
11222 : /* 340 */ 7268, 7277, 7281, 7287, 7294, 7310, 7314, 7318, 7325, 7326,
11223 : /* 350 */ 7331, 7332, 7339, 7340, 7342, 7343, 7359, 7370, 7382, 7386,
11224 : /* 360 */ 7388, 7393, 7396, 7399, 7407, 7469, 7470, 7474, 7475, 7482,
11225 : /* 370 */ 7486, 7490, 7493, 7499, 7500, 7504, 7507, 7514, 7534, 7537,
11226 : /* 380 */ 7540, 7543, 7592, 7595, 7599, 7606, 7612, 7620, 7629, 7630,
11227 : /* 390 */ 7728, 7738, 7777, 7783, 7799, 7812, 7814, 7816, 7827, 7855,
11228 : /* 400 */ 7897, 7876, 7877, 7884, 7886, 7902, 7908, 7913, 7922, 7928,
11229 : /* 410 */ 7934, 7939, 7944, 7976, 8039, 7958, 7968, 8068, 8087, 8089,
11230 : /* 420 */ 8091, 8093, 8095, 8097, 8101, 8103, 8126, 8149, 8261, 8268,
11231 : /* 430 */ 8269, 8277, 8278, 8480, 9561, 9563, 9641, 9643, 9644, 9650,
11232 : /* 440 */ 9666, 9668, 9670, 9688, 9689, 10093, 10096, 10110, 10119, 10183,
11233 : /* 450 */ 10184, 10238, 10240, 10316, 10908, 10910, 10912, 11346, 7104, 7115,
11234 : /* 460 */ 7117, 7225, 485, 1259, 1280, 8924, 8929, 8934, 545, 546,
11235 : /* 470 */ 557, 562, 569, 578, 586, 595, 641, 644, 853, 1007,
11236 : /* 480 */ 1035, 1066, 606, 883, 887, 892, 898, 902, 910, 999,
11237 : /* 490 */ 757, 767, 769, 771, 8554, 8979, 9001, 8984, 8989, 8994,
11238 : /* 500 */ 9008, 9042, 9047, 828, 6328, 6396, 6398, 6400, 6500, 6503,
11239 : /* 510 */ 6677, 6679, 6693, 6697, 6720, 6726, 6737, 6799, 6814, 4753,
11240 : /* 520 */ 4773, 4780, 4786, 4792, 4798, 6805, 4766, 4809, 4822, 6309,
11241 : /* 530 */ 6610, 6614, 6622, 6951, 9534, 9535, 6961, 10537, 10545, 12159,
11242 : /* 540 */ 7992, 7993, 8007, 8008, 840, 843, 1724, 2783, 2786, 2905,
11243 : /* 550 */ 2917, 3002, 2946, 2973, 3085, 3088, 4529, 4540, 4689, 4697,
11244 : /* 560 */ 4976, 7046, 8405, 7642, 7645, 7671, 7672, 8174, 8176, 8178,
11245 : /* 570 */ 8180, 8184, 8186, 8188, 8190, 8194, 8199, 8206, 8211, 8231,
11246 : /* 580 */ 8233, 8235, 8237, 8418, 8431, 8441, 8449, 8459, 8581, 8583,
11247 : /* 590 */ 9575, 9584, 9624, 10161, 10163, 10164, 10219, 10222, 10224, 2799,
11248 : /* 600 */ 7036, 7715, 8655, 8660, 10929, 10931, 10933, 10935, 10939, 945,
11249 : /* 610 */ 981, 1331, 4857, 4927, 4930, 4938, 5029, 5031, 5032, 5033,
11250 : /* 620 */ 5240, 4908, 4917, 5801, 5804, 5805, 5813, 2335, 2345, 2352,
11251 : /* 630 */ 3745, 3750, 4601, 9400, 9402, 9433, 9468, 11962, 1223, 8872,
11252 : /* 640 */ 8893, 1232, 8616, 8622, 8919, 9347, 1246, 1250, 8914, 9097,
11253 : /* 650 */ 1459, 1543, 1591, 1536, 1568, 1599, 1641, 1682, 1693, 1704,
11254 : /* 660 */ 1716, 2609, 1945, 1953, 1958, 2081, 2454, 2748, 3325, 3355,
11255 : /* 670 */ 3357, 3367, 3369, 3476, 3477, 3478, 3486, 3494, 3503, 3512,
11256 : /* 680 */ 3546, 3547, 3552, 3553, 3558, 3563, 3567, 3375, 3380, 3425,
11257 : /* 690 */ 4734, 5199, 5217, 5218, 5772, 5778, 5826, 7240, 7688, 9503,
11258 : /* 700 */ 9505, 10351, 1631, 1636, 2686, 1804, 2691, 5279, 2666, 2697,
11259 : /* 710 */ 2701, 5293, 4644, 7073, 7075, 2202, 2216, 2671, 3837, 2241,
11260 : /* 720 */ 2264, 2265, 9964, 4422, 4426, 4436, 4454, 4485, 4494, 4553,
11261 : /* 730 */ 4556, 4565, 4566, 4584, 4586, 4588, 4590, 4639, 9525, 4440,
11262 : /* 740 */ 4447, 4432, 4611, 4620, 4623, 11138, 11144, 11152, 11158, 11167,
11263 : /* 750 */ 11173, 11181, 11187, 11233, 11241, 4844, 5001, 5011, 8509, 8512,
11264 : /* 760 */ 8531, 5722, 5734, 5737, 5741, 8293, 7233, 7229, 8490, 8497,
11265 : /* 770 */ 8632, 8637, 8738, 8835, 8852, 8884, 8904, 8909, 9160, 9137,
11266 : /* 780 */ 9116, 8945, 8949, 9240, 9250, 9257, 9266, 9284, 9291, 9272,
11267 : /* 790 */ 9540, 9546, 9954, 9960, 9957, 9977, 9982, 9988, 9996, 10002,
11268 : /* 800 */ 10010, 10016, 10026, 10032, 10040, 10046, 10054, 10060, 10068, 10074,
11269 : /* 810 */ 10128, 10331, 10346, 10382, 10636, 10639, 10444, 10458, 10471, 11315,
11270 : /* 820 */ 11330, 11421, 11422, 12071, 223, 2113, 2123, 5858, 2141, 1173,
11271 : /* 830 */ 2620, 3306, 5321, 5323, 5333, 5450, 5461, 5474, 5497, 5507,
11272 : /* 840 */ 5516, 5528, 5554, 5868, 6315, 1801, 1815, 1822, 1844, 1851,
11273 : /* 850 */ 2469, 2714, 2118, 2136, 2145, 2211, 2247, 2253, 3824, 6999,
11274 : /* 860 */ 3832, 10036, 9992, 10050, 10064, 10078, 10006, 10020, 5338, 5348,
11275 : /* 870 */ 5357, 5384, 5394, 5400, 5879, 5409, 5406, 5692, 5700, 5708,
11276 : /* 880 */ 5712, 5695, 5703, 5716, 5728, 241, 249, 1757, 1762, 2679,
11277 : /* 890 */ 2533, 3722, 4519, 5897, 5906, 5917, 5926, 11977, 739, 5641,
11278 : /* 900 */ 5647, 5649, 3178, 3182, 254, 3199, 3203, 3234, 3242, 3215,
11279 : /* 910 */ 3229, 272, 309, 1495, 1810, 1918, 1925, 1935, 1940, 2222,
11280 : /* 920 */ 3250, 3262, 3256, 3268, 2233, 2926, 2954, 2981, 2965, 2992,
11281 : /* 930 */ 4084, 4056, 4131, 4140, 4183, 4194, 5654, 5665, 11943, 11944,
11282 : /* 940 */ 1729, 1734, 7678, 11292, 11296, 259, 312, 2935, 2938, 3275,
11283 : /* 950 */ 3282, 3289, 3295, 4093, 3300, 4149, 4203, 5657, 385, 316,
11284 : /* 960 */ 353, 362, 370, 444, 459, 467, 658, 698, 1016, 1211,
11285 : /* 970 */ 1216, 1314, 1317, 1451, 2523, 5670, 8589, 8595, 8786, 9036,
11286 : /* 980 */ 2640, 6105, 6115, 7745, 8325, 8385, 8386, 2630, 8319, 621,
11287 : /* 990 */ 624, 748, 777, 783, 789, 797, 802, 807, 871, 875,
11288 : /* 1000 */ 8601, 8607, 8243, 929, 1406, 4873, 1395, 1398, 1430, 1441,
11289 : /* 1010 */ 4850, 4922, 5039, 1465, 1663, 1739, 1767, 2404, 5045, 5046,
11290 : /* 1020 */ 7682, 11950, 4461, 4465, 4511, 4512, 4632, 4472, 4476, 4502,
11291 : /* 1030 */ 4503, 4982, 5689, 8301, 8303, 8310, 8312, 7237, 6821, 4740,
11292 : /* 1040 */ 5937, 4837, 5946, 6629, 6634, 6772, 6774, 6780, 6789, 6790,
11293 : /* 1050 */ 5844, 5846, 6827, 6830, 6839, 6843, 6848, 6877, 6882, 6948,
11294 : /* 1060 */ 6890, 6895, 6958, 8022, 8024, 6914, 6915, 6916, 6971, 6938,
11295 : /* 1070 */ 6939, 6940, 6986, 6987, 8053, 8058, 6856, 5850, 5852, 6126,
11296 : /* 1080 */ 6128, 9696, 9702, 9707, 9716, 9718, 9738, 9783, 9786, 9787,
11297 : /* 1090 */ 9819, 9825, 9827, 9828, 9884, 9885, 9906, 9911, 9916, 9946,
11298 : /* 1100 */ 11446, 11448, 11483, 11558, 11561, 11646, 11581, 11587, 11715, 11717,
11299 : /* 1110 */ 11779, 11781
11300 : };
11301 :
11302 27401 : fprintf (dump_file, "%s %s:%d, %s:%d\n",
11303 : simplify ? "Applying pattern" : "Matching expression", file1, dbg_line_numbers[line1_id], file2, line2);
11304 18347 : }
11305 :
11306 : #pragma GCC diagnostic pop
|