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 129489202 : tree_negate_expr_p (tree t)
11 : {
12 129489202 : const tree type = TREE_TYPE (t);
13 129489202 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 129489202 : if (TREE_SIDE_EFFECTS (t)) return false;
15 124561639 : switch (TREE_CODE (t))
16 : {
17 7440708 : case INTEGER_CST:
18 7440708 : {
19 7440708 : {
20 7440708 : if ((INTEGRAL_TYPE_P (type)
21 7440708 : && TYPE_UNSIGNED (type))
22 9613248 : || (!TYPE_OVERFLOW_SANITIZED (type)
23 2169798 : && may_negate_without_overflow_p (t))
24 : )
25 : {
26 7424826 : {
27 7424826 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 14, __FILE__, __LINE__, false);
28 7424826 : 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 401873 : break;
43 : }
44 401873 : case NEGATE_EXPR:
45 401873 : {
46 401873 : tree _p0 = TREE_OPERAND (t, 0);
47 401873 : {
48 401873 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
49 401873 : if (!TYPE_OVERFLOW_SANITIZED (type)
50 : )
51 : {
52 401853 : {
53 401853 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 16, __FILE__, __LINE__, false);
54 401853 : return true;
55 : }
56 : }
57 : }
58 : break;
59 : }
60 730113 : case REAL_CST:
61 730113 : {
62 730113 : {
63 730113 : 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 442 : case VECTOR_CST:
75 442 : {
76 442 : {
77 442 : if (FLOAT_TYPE_P (TREE_TYPE (type)) || TYPE_OVERFLOW_WRAPS (type)
78 : )
79 : {
80 326 : {
81 326 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 18, __FILE__, __LINE__, false);
82 326 : return true;
83 : }
84 : }
85 : }
86 : break;
87 : }
88 1218680 : case MINUS_EXPR:
89 1218680 : {
90 1218680 : tree _p0 = TREE_OPERAND (t, 0);
91 1218680 : tree _p1 = TREE_OPERAND (t, 1);
92 1218680 : {
93 1218680 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
94 1218680 : if ((ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type))
95 2121788 : || (FLOAT_TYPE_P (type)
96 636737 : && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
97 636737 : && !HONOR_SIGNED_ZEROS (type))
98 : )
99 : {
100 316145 : {
101 316145 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 19, __FILE__, __LINE__, false);
102 316145 : return true;
103 : }
104 : }
105 : }
106 902535 : 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 1 : 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 : {
161 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
162 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail90;
163 1 : {
164 1 : tree res_op0;
165 1 : res_op0 = captures[0];
166 1 : tree _r;
167 1 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
168 1 : if (TREE_SIDE_EFFECTS (captures[1]))
169 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
170 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 63, __FILE__, __LINE__, true);
171 : return _r;
172 : }
173 0 : next_after_fail90:;
174 0 : return NULL_TREE;
175 : }
176 :
177 : tree
178 8 : generic_simplify_21 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
179 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
180 : {
181 8 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
182 8 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
183 : )
184 : {
185 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail96;
186 8 : {
187 8 : tree res_op0;
188 8 : {
189 8 : tree _o1[2], _r1;
190 8 : _o1[0] = captures[1];
191 8 : {
192 8 : tree _o2[1], _r2;
193 8 : _o2[0] = captures[0];
194 8 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
195 8 : _o1[1] = _r2;
196 : }
197 8 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
198 8 : res_op0 = _r1;
199 : }
200 8 : tree _r;
201 8 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
202 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 69, __FILE__, __LINE__, true);
203 8 : return _r;
204 : }
205 0 : next_after_fail96:;
206 : }
207 : return NULL_TREE;
208 : }
209 :
210 : tree
211 0 : generic_simplify_30 (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_fail105;
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", 78, __FILE__, __LINE__, true);
250 0 : return _r;
251 : }
252 0 : next_after_fail105:;
253 : }
254 : return NULL_TREE;
255 : }
256 :
257 : tree
258 0 : generic_simplify_38 (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_fail115;
274 0 : if (TREE_SIDE_EFFECTS (captures[7])) goto next_after_fail115;
275 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail115;
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", 86, __FILE__, __LINE__, true);
300 0 : return _r;
301 : }
302 0 : next_after_fail115:;
303 0 : }
304 : }
305 : return NULL_TREE;
306 : }
307 :
308 : tree
309 5 : generic_simplify_50 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
310 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
311 : {
312 5 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
313 10 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
314 5 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
315 10 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
316 : )
317 : {
318 5 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail129;
319 5 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail129;
320 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail129;
321 5 : {
322 5 : tree res_op0;
323 5 : {
324 5 : tree _o1[2], _r1;
325 5 : _o1[0] = captures[1];
326 5 : _o1[1] = captures[3];
327 5 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
328 5 : res_op0 = _r1;
329 : }
330 5 : tree res_op1;
331 5 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
332 5 : tree _r;
333 5 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
334 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 97, __FILE__, __LINE__, true);
335 5 : return _r;
336 : }
337 : next_after_fail129:;
338 : }
339 : return NULL_TREE;
340 : }
341 :
342 : tree
343 2 : generic_simplify_58 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
344 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
345 : {
346 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
347 2 : if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
348 2 : && !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
349 2 : && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[0]))
350 4 : && !TYPE_SATURATING (TREE_TYPE (captures[0]))
351 : )
352 : {
353 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail139;
354 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail139;
355 2 : {
356 2 : tree res_op0;
357 2 : {
358 2 : tree _o1[1], _r1;
359 2 : {
360 2 : tree _o2[2], _r2;
361 2 : _o2[0] = captures[1];
362 2 : _o2[1] = captures[2];
363 2 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
364 2 : _o1[0] = _r2;
365 : }
366 2 : if (TREE_TYPE (_o1[0]) != type)
367 : {
368 1 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
369 : }
370 : else
371 : _r1 = _o1[0];
372 2 : res_op0 = _r1;
373 : }
374 2 : tree _r;
375 2 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
376 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 107, __FILE__, __LINE__, true);
377 2 : return _r;
378 : }
379 : next_after_fail139:;
380 : }
381 : return NULL_TREE;
382 : }
383 :
384 : tree
385 2296606 : generic_simplify_69 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
386 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
387 : const enum tree_code ARG_UNUSED (plusminus))
388 : {
389 2296606 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
390 2296606 : if (!TYPE_SATURATING (type)
391 2296606 : && (!FLOAT_TYPE_P (type) || flag_associative_math)
392 : )
393 : {
394 110 : if (!ANY_INTEGRAL_TYPE_P (type)
395 2296383 : || TYPE_OVERFLOW_WRAPS (type)
396 4013239 : || (INTEGRAL_TYPE_P (type)
397 1716746 : && tree_expr_nonzero_p (captures[1])
398 3217787 : && expr_not_equal_to (captures[1], wi::minus_one (TYPE_PRECISION (type)),
399 : gimple_match_ctx (captures[0])))
400 : )
401 : {
402 1500737 : if (single_use (captures[0]) || single_use (captures[3])
403 : )
404 : {
405 1500737 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail158;
406 1500737 : {
407 1500737 : tree res_op0;
408 1500737 : {
409 1500737 : tree _o1[2], _r1;
410 1500737 : _o1[0] = captures[2];
411 1500737 : _o1[1] = captures[4];
412 1500737 : _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
413 1500737 : res_op0 = _r1;
414 : }
415 1500737 : tree res_op1;
416 1500737 : res_op1 = captures[1];
417 1500737 : tree _r;
418 1500737 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
419 1500737 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 126, __FILE__, __LINE__, true);
420 1500737 : return _r;
421 : }
422 0 : next_after_fail158:;
423 : }
424 : else
425 : {
426 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail159;
427 : {
428 : tree res_op0;
429 : {
430 : tree _o1[2], _r1;
431 : _o1[0] = captures[2];
432 : _o1[1] = captures[4];
433 : _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
434 : res_op0 = _r1;
435 : }
436 : tree res_op1;
437 : res_op1 = captures[1];
438 : tree _r;
439 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
440 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 127, __FILE__, __LINE__, true);
441 : return _r;
442 : }
443 : next_after_fail159:;
444 : }
445 : }
446 : }
447 : return NULL_TREE;
448 : }
449 :
450 : tree
451 4 : generic_simplify_80 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
452 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
453 : const combined_fn ARG_UNUSED (POPCOUNT))
454 : {
455 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
456 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail171;
457 4 : {
458 4 : tree res_op0;
459 4 : {
460 4 : tree _o1[1], _r1;
461 4 : _o1[0] = captures[2];
462 4 : _r1 = maybe_build_call_expr_loc (loc, POPCOUNT, type, 1, _o1[0]);
463 4 : if (!_r1)
464 0 : goto next_after_fail171;
465 4 : res_op0 = _r1;
466 : }
467 4 : tree res_op1;
468 4 : {
469 4 : tree _o1[1], _r1;
470 4 : _o1[0] = captures[3];
471 4 : _r1 = maybe_build_call_expr_loc (loc, POPCOUNT, type, 1, _o1[0]);
472 4 : if (!_r1)
473 0 : goto next_after_fail171;
474 4 : res_op1 = _r1;
475 : }
476 4 : tree _r;
477 4 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
478 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 139, __FILE__, __LINE__, true);
479 : return _r;
480 : }
481 : next_after_fail171:;
482 : return NULL_TREE;
483 : }
484 :
485 : tree
486 2 : generic_simplify_88 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
487 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
488 : {
489 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
490 2 : if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
491 2 : && !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2]))
492 2 : && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[2]))
493 4 : && !TYPE_SATURATING (TREE_TYPE (captures[2]))
494 : )
495 : {
496 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail179;
497 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail179;
498 2 : {
499 2 : tree res_op0;
500 2 : {
501 2 : tree _o1[1], _r1;
502 2 : {
503 2 : tree _o2[2], _r2;
504 2 : _o2[0] = captures[0];
505 2 : _o2[1] = captures[1];
506 2 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
507 2 : _o1[0] = _r2;
508 : }
509 2 : if (TREE_TYPE (_o1[0]) != type)
510 : {
511 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
512 : }
513 : else
514 : _r1 = _o1[0];
515 2 : res_op0 = _r1;
516 : }
517 2 : tree _r;
518 2 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
519 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 147, __FILE__, __LINE__, true);
520 2 : return _r;
521 : }
522 : next_after_fail179:;
523 : }
524 : return NULL_TREE;
525 : }
526 :
527 : tree
528 0 : generic_simplify_98 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
529 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
530 : {
531 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
532 0 : if (!TYPE_SATURATING (type)
533 : )
534 : {
535 0 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
536 0 : && !FIXED_POINT_TYPE_P (type)
537 : )
538 : {
539 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail191;
540 0 : {
541 0 : tree res_op0;
542 0 : res_op0 = captures[1];
543 0 : tree res_op1;
544 0 : res_op1 = captures[2];
545 0 : tree _r;
546 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
547 0 : if (TREE_SIDE_EFFECTS (captures[0]))
548 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
549 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 158, __FILE__, __LINE__, true);
550 0 : return _r;
551 : }
552 0 : next_after_fail191:;
553 : }
554 : }
555 : return NULL_TREE;
556 : }
557 :
558 : tree
559 0 : generic_simplify_105 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
560 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
561 : {
562 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
563 0 : if (VECTOR_TYPE_P (type)
564 0 : && known_eq (TYPE_VECTOR_SUBPARTS (type),
565 : TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[3])))
566 0 : && (TYPE_MODE (TREE_TYPE (type))
567 0 : == TYPE_MODE (TREE_TYPE (TREE_TYPE (captures[3]))))
568 : )
569 : {
570 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail202;
571 0 : {
572 0 : tree res_op0;
573 0 : res_op0 = captures[0];
574 0 : tree res_op1;
575 0 : {
576 0 : tree _o1[1], _r1;
577 0 : {
578 0 : tree _o2[3], _r2;
579 0 : _o2[0] = captures[2];
580 0 : {
581 0 : tree _o3[1], _r3;
582 0 : _o3[0] = captures[3];
583 0 : _r3 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o3[0]), _o3[0]);
584 0 : _o2[1] = _r3;
585 : }
586 0 : _o2[2] = captures[4];
587 0 : _r2 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o2[1]), _o2[0], _o2[1], _o2[2]);
588 0 : _o1[0] = _r2;
589 : }
590 0 : if (TREE_TYPE (_o1[0]) != type)
591 : {
592 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
593 : }
594 : else
595 : _r1 = _o1[0];
596 0 : res_op1 = _r1;
597 : }
598 0 : tree _r;
599 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
600 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 169, __FILE__, __LINE__, true);
601 0 : return _r;
602 : }
603 0 : next_after_fail202:;
604 : }
605 : return NULL_TREE;
606 : }
607 :
608 : tree
609 0 : generic_simplify_112 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
610 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
611 : {
612 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
613 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail209;
614 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail209;
615 0 : {
616 0 : tree _r;
617 0 : _r = captures[2];
618 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 176, __FILE__, __LINE__, true);
619 : return _r;
620 : }
621 : next_after_fail209:;
622 : return NULL_TREE;
623 : }
624 :
625 : tree
626 16 : generic_simplify_116 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
627 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
628 : {
629 16 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
630 32 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
631 32 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
632 : )
633 : {
634 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail213;
635 0 : {
636 0 : tree res_op0;
637 0 : res_op0 = captures[0];
638 0 : tree res_op1;
639 0 : {
640 0 : tree _o1[2], _r1;
641 0 : _o1[0] = captures[1];
642 0 : _o1[1] = build_one_cst (type);
643 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
644 0 : res_op1 = _r1;
645 : }
646 0 : tree _r;
647 0 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
648 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 179, __FILE__, __LINE__, true);
649 0 : return _r;
650 : }
651 0 : next_after_fail213:;
652 : }
653 : return NULL_TREE;
654 : }
655 :
656 : tree
657 1 : generic_simplify_129 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
658 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
659 : {
660 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
661 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail226;
662 1 : {
663 1 : tree res_op0;
664 1 : {
665 1 : tree _o1[2], _r1;
666 1 : _o1[0] = captures[1];
667 1 : _o1[1] = captures[2];
668 1 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
669 1 : res_op0 = _r1;
670 : }
671 1 : tree _r;
672 1 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
673 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 188, __FILE__, __LINE__, true);
674 : return _r;
675 : }
676 0 : next_after_fail226:;
677 0 : return NULL_TREE;
678 : }
679 :
680 : tree
681 21 : generic_simplify_139 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
682 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
683 : const enum tree_code ARG_UNUSED (bitop),
684 : const enum tree_code ARG_UNUSED (rbitop))
685 : {
686 21 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
687 21 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail240;
688 21 : {
689 21 : tree _r;
690 21 : _r = captures[0];
691 21 : if (TREE_SIDE_EFFECTS (captures[1]))
692 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
693 21 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 194, __FILE__, __LINE__, true);
694 : return _r;
695 : }
696 0 : next_after_fail240:;
697 0 : return NULL_TREE;
698 : }
699 :
700 : tree
701 82 : generic_simplify_143 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
702 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
703 : const enum tree_code ARG_UNUSED (op))
704 : {
705 82 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
706 82 : if (bitwise_equal_p (captures[4], captures[7])
707 : )
708 : {
709 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail244;
710 16 : {
711 16 : tree res_op0;
712 16 : {
713 16 : tree _o1[2], _r1;
714 16 : {
715 16 : tree _o2[2], _r2;
716 16 : _o2[0] = captures[5];
717 16 : {
718 16 : tree _o3[1], _r3;
719 16 : _o3[0] = captures[6];
720 16 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
721 : {
722 16 : _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
723 : }
724 : else
725 : _r3 = _o3[0];
726 16 : _o2[1] = _r3;
727 : }
728 16 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
729 16 : _o1[0] = _r2;
730 : }
731 16 : {
732 16 : tree _o2[1], _r2;
733 16 : _o2[0] = captures[4];
734 16 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
735 : {
736 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
737 : }
738 : else
739 : _r2 = _o2[0];
740 16 : _o1[1] = _r2;
741 : }
742 16 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
743 16 : res_op0 = _r1;
744 : }
745 16 : tree _r;
746 16 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
747 16 : if (TREE_SIDE_EFFECTS (captures[7]))
748 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
749 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 198, __FILE__, __LINE__, true);
750 16 : return _r;
751 : }
752 0 : next_after_fail244:;
753 : }
754 : return NULL_TREE;
755 : }
756 :
757 : tree
758 0 : generic_simplify_155 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
759 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
760 : {
761 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
762 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
763 0 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
764 : )
765 : {
766 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail260;
767 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail260;
768 0 : {
769 0 : tree res_op0;
770 0 : res_op0 = captures[3];
771 0 : tree res_op1;
772 0 : {
773 0 : tree _o1[2], _r1;
774 0 : _o1[0] = captures[1];
775 0 : _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
776 0 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
777 0 : res_op1 = _r1;
778 : }
779 0 : tree _r;
780 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
781 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 209, __FILE__, __LINE__, true);
782 0 : return _r;
783 : }
784 : next_after_fail260:;
785 : }
786 : return NULL_TREE;
787 : }
788 :
789 : tree
790 0 : generic_simplify_164 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
791 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
792 : const enum tree_code ARG_UNUSED (eqne))
793 : {
794 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
795 0 : if (eqne == EQ_EXPR
796 : )
797 : {
798 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail287;
799 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail287;
800 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail287;
801 0 : {
802 0 : tree _r;
803 0 : _r = captures[0];
804 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 227, __FILE__, __LINE__, true);
805 0 : return _r;
806 : }
807 : next_after_fail287:;
808 : }
809 : else
810 : {
811 0 : if (eqne == NE_EXPR
812 : )
813 : {
814 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail288;
815 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail288;
816 0 : {
817 0 : tree _r;
818 0 : _r = constant_boolean_node (true, type);
819 0 : if (TREE_SIDE_EFFECTS (captures[2]))
820 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
821 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 228, __FILE__, __LINE__, true);
822 0 : return _r;
823 : }
824 : next_after_fail288:;
825 : }
826 : }
827 : return NULL_TREE;
828 : }
829 :
830 : tree
831 0 : generic_simplify_172 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
832 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
833 : {
834 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
835 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail309;
836 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail309;
837 0 : {
838 0 : tree _r;
839 0 : _r = captures[1];
840 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 230, __FILE__, __LINE__, true);
841 : return _r;
842 : }
843 : next_after_fail309:;
844 : return NULL_TREE;
845 : }
846 :
847 : tree
848 0 : generic_simplify_176 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
849 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
850 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
851 : {
852 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
853 0 : if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
854 : )
855 : {
856 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail313;
857 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail313;
858 0 : {
859 0 : tree res_op0;
860 0 : res_op0 = captures[0];
861 0 : tree _r;
862 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
863 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 234, __FILE__, __LINE__, true);
864 0 : return _r;
865 : }
866 : next_after_fail313:;
867 : }
868 : return NULL_TREE;
869 : }
870 :
871 : tree
872 0 : generic_simplify_179 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
873 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
874 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
875 : {
876 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
877 0 : if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
878 : )
879 : {
880 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail316;
881 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail316;
882 0 : {
883 0 : tree res_op0;
884 0 : {
885 0 : tree _o1[1], _r1;
886 0 : _o1[0] = captures[0];
887 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
888 0 : res_op0 = _r1;
889 : }
890 0 : tree _r;
891 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
892 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 235, __FILE__, __LINE__, true);
893 0 : return _r;
894 : }
895 : next_after_fail316:;
896 : }
897 : return NULL_TREE;
898 : }
899 :
900 : tree
901 6 : generic_simplify_185 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
902 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
903 : {
904 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
905 6 : if (INTEGRAL_TYPE_P (type)
906 6 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
907 12 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
908 : )
909 : {
910 6 : if (TYPE_UNSIGNED (type)
911 : )
912 : {
913 5 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail322;
914 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail322;
915 5 : {
916 5 : tree res_op0;
917 5 : res_op0 = captures[0];
918 5 : tree _r;
919 5 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
920 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 240, __FILE__, __LINE__, true);
921 5 : return _r;
922 : }
923 : next_after_fail322:;
924 : }
925 : else
926 : {
927 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail323;
928 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail323;
929 1 : {
930 1 : tree res_op0;
931 1 : res_op0 = captures[0];
932 1 : tree _r;
933 1 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
934 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 241, __FILE__, __LINE__, true);
935 1 : return _r;
936 : }
937 : next_after_fail323:;
938 : }
939 : }
940 : return NULL_TREE;
941 : }
942 :
943 : tree
944 43605 : generic_simplify_191 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
945 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
946 : {
947 43605 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
948 43605 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail330;
949 43605 : {
950 43605 : tree res_op0;
951 43605 : res_op0 = captures[0];
952 43605 : tree _r;
953 43605 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
954 43605 : if (TREE_SIDE_EFFECTS (captures[2]))
955 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
956 43605 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 245, __FILE__, __LINE__, true);
957 : return _r;
958 : }
959 0 : next_after_fail330:;
960 0 : return NULL_TREE;
961 : }
962 :
963 : tree
964 8 : generic_simplify_196 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
965 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
966 : const combined_fn ARG_UNUSED (POW))
967 : {
968 8 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
969 8 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
970 : )
971 : {
972 8 : if (!TREE_OVERFLOW (captures[2])
973 : )
974 : {
975 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail336;
976 8 : {
977 8 : tree res_op0;
978 8 : res_op0 = captures[0];
979 8 : tree res_op1;
980 8 : {
981 8 : tree _o1[2], _r1;
982 8 : _o1[0] = captures[2];
983 8 : _o1[1] = build_one_cst (type);
984 8 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
985 8 : res_op1 = _r1;
986 : }
987 8 : tree _r;
988 8 : _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
989 8 : if (!_r)
990 0 : goto next_after_fail336;
991 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 251, __FILE__, __LINE__, true);
992 8 : return _r;
993 : }
994 : next_after_fail336:;
995 : }
996 : }
997 : return NULL_TREE;
998 : }
999 :
1000 : tree
1001 20065 : generic_simplify_203 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1002 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1003 : const enum tree_code ARG_UNUSED (cmp),
1004 : const enum tree_code ARG_UNUSED (mod))
1005 : {
1006 20065 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1007 20065 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1008 : )
1009 : {
1010 20065 : {
1011 20065 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
1012 20065 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail343;
1013 20065 : {
1014 20065 : tree res_op0;
1015 20065 : {
1016 20065 : tree _o1[2], _r1;
1017 20065 : {
1018 20065 : tree _o2[1], _r2;
1019 20065 : _o2[0] = captures[0];
1020 20065 : if (TREE_TYPE (_o2[0]) != utype)
1021 : {
1022 20065 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
1023 : }
1024 : else
1025 : _r2 = _o2[0];
1026 20065 : _o1[0] = _r2;
1027 : }
1028 20065 : {
1029 20065 : tree _o2[1], _r2;
1030 20065 : _o2[0] = captures[1];
1031 20065 : if (TREE_TYPE (_o2[0]) != utype)
1032 : {
1033 20065 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
1034 : }
1035 : else
1036 : _r2 = _o2[0];
1037 20065 : _o1[1] = _r2;
1038 : }
1039 20065 : _r1 = fold_build2_loc (loc, mod, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1040 20065 : res_op0 = _r1;
1041 : }
1042 20065 : tree res_op1;
1043 20065 : {
1044 20065 : tree _o1[1], _r1;
1045 20065 : _o1[0] = captures[2];
1046 20065 : if (TREE_TYPE (_o1[0]) != utype)
1047 : {
1048 20065 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
1049 : }
1050 : else
1051 : _r1 = _o1[0];
1052 20065 : res_op1 = _r1;
1053 : }
1054 20065 : tree _r;
1055 20065 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1056 20065 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 258, __FILE__, __LINE__, true);
1057 20065 : return _r;
1058 : }
1059 0 : next_after_fail343:;
1060 : }
1061 : }
1062 : return NULL_TREE;
1063 : }
1064 :
1065 : tree
1066 8419 : generic_simplify_216 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1067 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1068 : const enum tree_code ARG_UNUSED (op))
1069 : {
1070 8419 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1071 8419 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail372;
1072 8419 : {
1073 8419 : tree res_op0;
1074 8419 : res_op0 = captures[1];
1075 8419 : tree res_op1;
1076 8419 : res_op1 = captures[2];
1077 8419 : tree _r;
1078 8419 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1079 8419 : if (TREE_SIDE_EFFECTS (captures[0]))
1080 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1081 8419 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 286, __FILE__, __LINE__, true);
1082 : return _r;
1083 : }
1084 0 : next_after_fail372:;
1085 0 : return NULL_TREE;
1086 : }
1087 :
1088 : tree
1089 6 : generic_simplify_223 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1090 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1091 : const enum tree_code ARG_UNUSED (neeq))
1092 : {
1093 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1094 6 : {
1095 6 : poly_int64 diff; tree inner_type = TREE_TYPE (captures[1]);
1096 6 : if (ptr_difference_const (captures[0], captures[2], &diff)
1097 : )
1098 : {
1099 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail379;
1100 0 : {
1101 0 : tree res_op0;
1102 0 : {
1103 0 : tree _o1[2], _r1;
1104 0 : _o1[0] = build_int_cst_type (inner_type, diff);
1105 0 : _o1[1] = captures[1];
1106 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1107 0 : res_op0 = _r1;
1108 : }
1109 0 : tree res_op1;
1110 0 : res_op1 = captures[3];
1111 0 : tree _r;
1112 0 : _r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
1113 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1114 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1115 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1116 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1117 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 292, __FILE__, __LINE__, true);
1118 0 : return _r;
1119 : }
1120 0 : next_after_fail379:;
1121 : }
1122 : }
1123 6 : return NULL_TREE;
1124 : }
1125 :
1126 : tree
1127 13 : generic_simplify_233 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1128 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1129 : const enum tree_code ARG_UNUSED (cmp))
1130 : {
1131 13 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1132 13 : if (tree_fits_shwi_p (captures[3])
1133 13 : && tree_to_shwi (captures[3]) > 0
1134 26 : && tree_to_shwi (captures[3]) < TYPE_PRECISION (TREE_TYPE (captures[2]))
1135 : )
1136 : {
1137 13 : if (tree_to_shwi (captures[3]) > wi::ctz (wi::to_wide (captures[5]))
1138 : )
1139 : {
1140 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail392;
1141 0 : {
1142 0 : tree _r;
1143 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1144 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1145 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1146 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1147 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1148 0 : if (TREE_SIDE_EFFECTS (captures[4]))
1149 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
1150 0 : if (TREE_SIDE_EFFECTS (captures[5]))
1151 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
1152 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 305, __FILE__, __LINE__, true);
1153 0 : return _r;
1154 : }
1155 0 : next_after_fail392:;
1156 : }
1157 : else
1158 : {
1159 13 : {
1160 13 : wide_int c1 = wi::to_wide (captures[3]);
1161 13 : wide_int c2 = wi::lrshift (wi::to_wide (captures[4]), c1);
1162 13 : wide_int c3 = wi::lrshift (wi::to_wide (captures[5]), c1);
1163 13 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail393;
1164 13 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail393;
1165 13 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail393;
1166 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail393;
1167 13 : {
1168 13 : tree res_op0;
1169 13 : {
1170 13 : tree _o1[2], _r1;
1171 13 : _o1[0] = captures[2];
1172 13 : _o1[1] = wide_int_to_tree (TREE_TYPE (captures[2]), c2);
1173 13 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1174 13 : res_op0 = _r1;
1175 : }
1176 13 : tree res_op1;
1177 13 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[2]), c3);
1178 13 : tree _r;
1179 13 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1180 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 306, __FILE__, __LINE__, true);
1181 13 : return _r;
1182 : }
1183 0 : next_after_fail393:;
1184 13 : }
1185 : }
1186 : }
1187 : return NULL_TREE;
1188 : }
1189 :
1190 : tree
1191 91968 : generic_simplify_246 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1192 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1193 : const enum tree_code ARG_UNUSED (cmp))
1194 : {
1195 91968 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1196 91968 : if (single_use (captures[0])
1197 : )
1198 : {
1199 91968 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail415;
1200 91968 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail415;
1201 91968 : {
1202 91968 : tree res_op0;
1203 91968 : res_op0 = captures[1];
1204 91968 : tree res_op1;
1205 91968 : res_op1 = captures[2];
1206 91968 : tree _r;
1207 91968 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1208 91968 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 328, __FILE__, __LINE__, true);
1209 91968 : return _r;
1210 : }
1211 : next_after_fail415:;
1212 : }
1213 : return NULL_TREE;
1214 : }
1215 :
1216 : tree
1217 925683 : generic_simplify_253 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1218 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1219 : const enum tree_code ARG_UNUSED (cmp),
1220 : const enum tree_code ARG_UNUSED (scmp))
1221 : {
1222 925683 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1223 925683 : if (single_use (captures[0])
1224 925683 : && (TREE_CODE (captures[2]) == INTEGER_CST || TREE_CODE (captures[2]) == VECTOR_CST)
1225 : )
1226 : {
1227 925683 : {
1228 925683 : tree otype = TREE_TYPE (captures[2]);
1229 925683 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail427;
1230 925683 : {
1231 925683 : tree res_op0;
1232 925683 : {
1233 925683 : tree _o1[1], _r1;
1234 925683 : _o1[0] = captures[1];
1235 925683 : if (TREE_TYPE (_o1[0]) != otype)
1236 : {
1237 191 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1238 : }
1239 : else
1240 : _r1 = _o1[0];
1241 925683 : res_op0 = _r1;
1242 : }
1243 925683 : tree res_op1;
1244 925683 : {
1245 925683 : tree _o1[1], _r1;
1246 925683 : _o1[0] = captures[2];
1247 925683 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1248 925683 : res_op1 = _r1;
1249 : }
1250 925683 : tree _r;
1251 925683 : _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
1252 925683 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 339, __FILE__, __LINE__, true);
1253 925683 : return _r;
1254 : }
1255 0 : next_after_fail427:;
1256 : }
1257 : }
1258 : return NULL_TREE;
1259 : }
1260 :
1261 : tree
1262 1255 : generic_simplify_260 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1263 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1264 : const enum tree_code ARG_UNUSED (cmp),
1265 : const enum tree_code ARG_UNUSED (icmp))
1266 : {
1267 1255 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1268 1255 : if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1269 1255 : && ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1270 : )
1271 : {
1272 1255 : {
1273 1255 : format_helper fmt (REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (captures[0]))));
1274 1255 : tree type1 = TREE_TYPE (captures[1]);
1275 1255 : bool type1_signed_p = TYPE_SIGN (type1) == SIGNED;
1276 1255 : tree type2 = TREE_TYPE (captures[2]);
1277 1255 : bool type2_signed_p = TYPE_SIGN (type2) == SIGNED;
1278 1255 : if (fmt.can_represent_integral_type_p (type1)
1279 1255 : && fmt.can_represent_integral_type_p (type2)
1280 : )
1281 : {
1282 229 : if (cmp == ORDERED_EXPR || cmp == UNORDERED_EXPR
1283 : )
1284 : {
1285 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail466;
1286 0 : {
1287 0 : tree _r;
1288 0 : _r = constant_boolean_node (cmp == ORDERED_EXPR, type);
1289 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1290 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1291 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1292 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1293 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 377, __FILE__, __LINE__, true);
1294 183 : return _r;
1295 : }
1296 0 : next_after_fail466:;
1297 : }
1298 : else
1299 : {
1300 229 : if (TYPE_PRECISION (type1) > TYPE_PRECISION (type2)
1301 229 : && type1_signed_p >= type2_signed_p
1302 : )
1303 : {
1304 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail467;
1305 0 : {
1306 0 : tree res_op0;
1307 0 : res_op0 = captures[1];
1308 0 : tree res_op1;
1309 0 : {
1310 0 : tree _o1[1], _r1;
1311 0 : _o1[0] = captures[2];
1312 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1313 : {
1314 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1315 : }
1316 : else
1317 : _r1 = _o1[0];
1318 0 : res_op1 = _r1;
1319 : }
1320 0 : tree _r;
1321 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1322 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 378, __FILE__, __LINE__, true);
1323 0 : return _r;
1324 : }
1325 0 : next_after_fail467:;
1326 : }
1327 : else
1328 : {
1329 229 : if (TYPE_PRECISION (type1) < TYPE_PRECISION (type2)
1330 229 : && type1_signed_p <= type2_signed_p
1331 : )
1332 : {
1333 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail468;
1334 7 : {
1335 7 : tree res_op0;
1336 7 : {
1337 7 : tree _o1[1], _r1;
1338 7 : _o1[0] = captures[1];
1339 7 : if (TREE_TYPE (_o1[0]) != type2)
1340 : {
1341 7 : _r1 = fold_build1_loc (loc, NOP_EXPR, type2, _o1[0]);
1342 : }
1343 : else
1344 : _r1 = _o1[0];
1345 7 : res_op0 = _r1;
1346 : }
1347 7 : tree res_op1;
1348 7 : res_op1 = captures[2];
1349 7 : tree _r;
1350 7 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1351 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 379, __FILE__, __LINE__, true);
1352 7 : return _r;
1353 : }
1354 0 : next_after_fail468:;
1355 : }
1356 : else
1357 : {
1358 222 : if (TYPE_PRECISION (type1) == TYPE_PRECISION (type2)
1359 222 : && type1_signed_p == type2_signed_p
1360 : )
1361 : {
1362 176 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail469;
1363 176 : {
1364 176 : tree res_op0;
1365 176 : res_op0 = captures[1];
1366 176 : tree res_op1;
1367 176 : {
1368 176 : tree _o1[1], _r1;
1369 176 : _o1[0] = captures[2];
1370 176 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1371 : {
1372 1 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1373 : }
1374 : else
1375 : _r1 = _o1[0];
1376 176 : res_op1 = _r1;
1377 : }
1378 176 : tree _r;
1379 176 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1380 176 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 380, __FILE__, __LINE__, true);
1381 176 : return _r;
1382 : }
1383 0 : next_after_fail469:;
1384 : }
1385 : }
1386 : }
1387 : }
1388 : }
1389 : }
1390 : }
1391 : return NULL_TREE;
1392 : }
1393 :
1394 : tree
1395 451 : generic_simplify_273 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1396 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1397 : const enum tree_code ARG_UNUSED (cmp))
1398 : {
1399 451 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1400 451 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail503;
1401 451 : {
1402 451 : tree res_op0;
1403 451 : {
1404 451 : tree _o1[2], _r1;
1405 451 : _o1[0] = captures[0];
1406 451 : {
1407 451 : tree _o2[1], _r2;
1408 451 : _o2[0] = captures[1];
1409 451 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
1410 451 : if (EXPR_P (_r2))
1411 443 : goto next_after_fail503;
1412 8 : _o1[1] = _r2;
1413 : }
1414 8 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1415 8 : res_op0 = _r1;
1416 : }
1417 8 : tree res_op1;
1418 8 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1419 8 : tree _r;
1420 8 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1421 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 407, __FILE__, __LINE__, true);
1422 : return _r;
1423 : }
1424 : next_after_fail503:;
1425 : return NULL_TREE;
1426 : }
1427 :
1428 : tree
1429 108570 : generic_simplify_277 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1430 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1431 : const enum tree_code ARG_UNUSED (cmp),
1432 : const enum tree_code ARG_UNUSED (icmp))
1433 : {
1434 108570 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1435 108570 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail507;
1436 108548 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail507;
1437 108548 : {
1438 108548 : tree res_op0;
1439 108548 : res_op0 = captures[0];
1440 108548 : tree res_op1;
1441 108548 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
1442 108548 : tree _r;
1443 108548 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1444 108548 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 411, __FILE__, __LINE__, true);
1445 : return _r;
1446 : }
1447 : next_after_fail507:;
1448 : return NULL_TREE;
1449 : }
1450 :
1451 : tree
1452 18 : generic_simplify_282 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1453 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1454 : const enum tree_code ARG_UNUSED (cmp),
1455 : const enum tree_code ARG_UNUSED (ncmp))
1456 : {
1457 18 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1458 36 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1459 18 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1460 36 : && types_match (captures[0], captures[2])
1461 : )
1462 : {
1463 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail512;
1464 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail512;
1465 2 : {
1466 2 : tree res_op0;
1467 2 : {
1468 2 : tree _o1[2], _r1;
1469 2 : _o1[0] = captures[0];
1470 2 : _o1[1] = captures[2];
1471 2 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1472 2 : res_op0 = _r1;
1473 : }
1474 2 : tree res_op1;
1475 2 : res_op1 = captures[1];
1476 2 : tree _r;
1477 2 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
1478 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 414, __FILE__, __LINE__, true);
1479 2 : return _r;
1480 : }
1481 : next_after_fail512:;
1482 : }
1483 : return NULL_TREE;
1484 : }
1485 :
1486 : tree
1487 0 : generic_simplify_288 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1488 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1489 : const enum tree_code ARG_UNUSED (inner),
1490 : const enum tree_code ARG_UNUSED (outer))
1491 : {
1492 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1493 0 : {
1494 0 : bool cst1 = integer_onep (captures[1]);
1495 0 : bool cst0 = integer_zerop (captures[1]);
1496 0 : bool innereq = inner == EQ_EXPR;
1497 0 : bool outereq = outer == EQ_EXPR;
1498 0 : if (innereq ? cst0 : cst1
1499 : )
1500 : {
1501 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail532;
1502 0 : {
1503 0 : tree _r;
1504 0 : _r = constant_boolean_node (!outereq, type);
1505 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1506 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1507 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1508 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1509 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 426, __FILE__, __LINE__, true);
1510 0 : return _r;
1511 : }
1512 0 : next_after_fail532:;
1513 : }
1514 : else
1515 : {
1516 0 : if (innereq ? cst1 : cst0
1517 : )
1518 : {
1519 0 : {
1520 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
1521 0 : tree ucst1 = build_one_cst (utype);
1522 0 : if (!outereq
1523 : )
1524 : {
1525 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail533;
1526 0 : {
1527 0 : tree res_op0;
1528 0 : {
1529 0 : tree _o1[1], _r1;
1530 0 : _o1[0] = captures[0];
1531 0 : if (TREE_TYPE (_o1[0]) != utype)
1532 : {
1533 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
1534 : }
1535 : else
1536 : _r1 = _o1[0];
1537 0 : res_op0 = _r1;
1538 : }
1539 0 : tree res_op1;
1540 0 : res_op1 = ucst1;
1541 0 : tree _r;
1542 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
1543 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1544 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1545 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 427, __FILE__, __LINE__, true);
1546 0 : return _r;
1547 : }
1548 0 : next_after_fail533:;
1549 : }
1550 : else
1551 : {
1552 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail534;
1553 0 : {
1554 0 : tree res_op0;
1555 0 : {
1556 0 : tree _o1[1], _r1;
1557 0 : _o1[0] = captures[0];
1558 0 : if (TREE_TYPE (_o1[0]) != utype)
1559 : {
1560 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
1561 : }
1562 : else
1563 : _r1 = _o1[0];
1564 0 : res_op0 = _r1;
1565 : }
1566 0 : tree res_op1;
1567 0 : res_op1 = ucst1;
1568 0 : tree _r;
1569 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1570 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1571 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1572 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 428, __FILE__, __LINE__, true);
1573 0 : return _r;
1574 : }
1575 0 : next_after_fail534:;
1576 : }
1577 : }
1578 : }
1579 : else
1580 : {
1581 0 : {
1582 0 : tree value = build_int_cst (TREE_TYPE (captures[0]), !innereq);
1583 0 : if (outereq
1584 : )
1585 : {
1586 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail535;
1587 0 : {
1588 0 : tree res_op0;
1589 0 : res_op0 = captures[0];
1590 0 : tree res_op1;
1591 0 : res_op1 = value;
1592 0 : tree _r;
1593 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
1594 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1595 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1596 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 429, __FILE__, __LINE__, true);
1597 0 : return _r;
1598 : }
1599 0 : next_after_fail535:;
1600 : }
1601 : else
1602 : {
1603 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail536;
1604 0 : {
1605 0 : tree res_op0;
1606 0 : res_op0 = captures[0];
1607 0 : tree res_op1;
1608 0 : res_op1 = value;
1609 0 : tree _r;
1610 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
1611 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1612 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1613 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 430, __FILE__, __LINE__, true);
1614 0 : return _r;
1615 : }
1616 0 : next_after_fail536:;
1617 : }
1618 : }
1619 : }
1620 : }
1621 : }
1622 : return NULL_TREE;
1623 : }
1624 :
1625 : tree
1626 45 : generic_simplify_296 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1627 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1628 : const enum tree_code ARG_UNUSED (cmp),
1629 : const enum tree_code ARG_UNUSED (rep),
1630 : const combined_fn ARG_UNUSED (popcount))
1631 : {
1632 45 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1633 45 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail557;
1634 45 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail557;
1635 45 : {
1636 45 : tree res_op0;
1637 45 : res_op0 = captures[0];
1638 45 : tree res_op1;
1639 45 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1640 45 : tree _r;
1641 45 : _r = fold_build2_loc (loc, rep, type, res_op0, res_op1);
1642 45 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 451, __FILE__, __LINE__, true);
1643 : return _r;
1644 : }
1645 : next_after_fail557:;
1646 : return NULL_TREE;
1647 : }
1648 :
1649 : tree
1650 110969 : generic_simplify_301 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1651 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1652 : const enum tree_code ARG_UNUSED (cmp))
1653 : {
1654 110969 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1655 110969 : if (cmp != NE_EXPR
1656 105776 : || ! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1657 123496 : || ! tree_expr_maybe_nan_p (captures[0])
1658 : )
1659 : {
1660 104256 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail565;
1661 104256 : {
1662 104256 : tree _r;
1663 104256 : _r = constant_boolean_node (false, type);
1664 104256 : if (TREE_SIDE_EFFECTS (captures[0]))
1665 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1666 104256 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 459, __FILE__, __LINE__, true);
1667 104256 : return _r;
1668 : }
1669 0 : next_after_fail565:;
1670 : }
1671 : return NULL_TREE;
1672 : }
1673 :
1674 : tree
1675 0 : generic_simplify_307 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1676 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1677 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
1678 : {
1679 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1680 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail571;
1681 0 : {
1682 0 : tree res_op0;
1683 0 : res_op0 = captures[0];
1684 0 : tree _r;
1685 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
1686 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1687 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1688 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 465, __FILE__, __LINE__, true);
1689 : return _r;
1690 : }
1691 0 : next_after_fail571:;
1692 0 : return NULL_TREE;
1693 : }
1694 :
1695 : tree
1696 1 : generic_simplify_314 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1697 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1698 : const enum tree_code ARG_UNUSED (div))
1699 : {
1700 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1701 1 : if (INTEGRAL_TYPE_P (type)
1702 1 : && TYPE_OVERFLOW_UNDEFINED (type)
1703 1 : && !integer_zerop (captures[0])
1704 2 : && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
1705 : )
1706 : {
1707 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail580;
1708 1 : {
1709 1 : tree res_op0;
1710 1 : {
1711 1 : tree _o1[2], _r1;
1712 1 : _o1[0] = captures[0];
1713 1 : _o1[1] = build_zero_cst (type);
1714 1 : _r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
1715 1 : res_op0 = _r1;
1716 : }
1717 1 : tree res_op1;
1718 1 : res_op1 = build_minus_one_cst (type);
1719 1 : tree res_op2;
1720 1 : res_op2 = build_one_cst (type);
1721 1 : tree _r;
1722 1 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
1723 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 472, __FILE__, __LINE__, true);
1724 1 : return _r;
1725 : }
1726 0 : next_after_fail580:;
1727 : }
1728 : return NULL_TREE;
1729 : }
1730 :
1731 : tree
1732 3 : generic_simplify_320 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1733 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1734 : const enum tree_code ARG_UNUSED (div))
1735 : {
1736 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1737 3 : if (INTEGRAL_TYPE_P (type)
1738 3 : && wi::multiple_of_p (wi::to_widest (captures[2]), wi::to_widest (captures[3]), SIGNED)
1739 : )
1740 : {
1741 3 : if (TYPE_OVERFLOW_UNDEFINED (type) && !TYPE_OVERFLOW_SANITIZED (type)
1742 : )
1743 : {
1744 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail587;
1745 3 : {
1746 3 : tree res_op0;
1747 3 : res_op0 = captures[2];
1748 3 : tree res_op1;
1749 3 : res_op1 = captures[3];
1750 3 : tree _r;
1751 3 : _r = fold_build2_loc (loc, div, type, res_op0, res_op1);
1752 3 : if (TREE_SIDE_EFFECTS (captures[1]))
1753 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1754 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 479, __FILE__, __LINE__, true);
1755 3 : return _r;
1756 : }
1757 0 : next_after_fail587:;
1758 : }
1759 : }
1760 : return NULL_TREE;
1761 : }
1762 :
1763 : tree
1764 1567947 : generic_simplify_328 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1765 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1766 : const enum tree_code ARG_UNUSED (mod))
1767 : {
1768 1567947 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1769 1847698 : if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0]))
1770 1290660 : && INTEGRAL_TYPE_P (type)
1771 1290660 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1772 1290660 : && (TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[1]))
1773 3 : || TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1774 1 : || !TYPE_UNSIGNED (type))
1775 2858607 : && integer_pow2p (captures[2]) && tree_int_cst_sgn (captures[2]) > 0
1776 : )
1777 : {
1778 948521 : {
1779 948521 : tree utype = TREE_TYPE (captures[1]);
1780 948521 : if (!TYPE_OVERFLOW_WRAPS (utype))
1781 303 : utype = unsigned_type_for (utype);
1782 948521 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail595;
1783 948521 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail595;
1784 948521 : {
1785 948521 : tree res_op0;
1786 948521 : res_op0 = captures[0];
1787 948521 : tree res_op1;
1788 948521 : {
1789 948521 : tree _o1[1], _r1;
1790 948521 : {
1791 948521 : tree _o2[2], _r2;
1792 948521 : {
1793 948521 : tree _o3[1], _r3;
1794 948521 : _o3[0] = captures[1];
1795 948521 : if (TREE_TYPE (_o3[0]) != utype)
1796 : {
1797 303 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
1798 : }
1799 : else
1800 : _r3 = _o3[0];
1801 948521 : _o2[0] = _r3;
1802 : }
1803 948521 : _o2[1] = build_one_cst (utype);
1804 948521 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1805 948521 : _o1[0] = _r2;
1806 : }
1807 948521 : if (TREE_TYPE (_o1[0]) != type)
1808 : {
1809 19241 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
1810 : }
1811 : else
1812 : _r1 = _o1[0];
1813 948521 : res_op1 = _r1;
1814 : }
1815 948521 : tree _r;
1816 948521 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
1817 948521 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 487, __FILE__, __LINE__, true);
1818 948521 : return _r;
1819 : }
1820 : next_after_fail595:;
1821 : }
1822 : }
1823 : return NULL_TREE;
1824 : }
1825 :
1826 : tree
1827 39 : generic_simplify_345 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1828 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1829 : const enum tree_code ARG_UNUSED (cmp),
1830 : const enum tree_code ARG_UNUSED (minmax))
1831 : {
1832 39 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1833 39 : {
1834 39 : tree_code code = minmax_from_comparison (cmp, captures[0], captures[1], captures[0], captures[4]);
1835 39 : if ((cmp == LT_EXPR || cmp == LE_EXPR)
1836 15 : && code == MIN_EXPR
1837 43 : && integer_nonzerop (fold_build2 (LE_EXPR, boolean_type_node, captures[3], captures[4]))
1838 : )
1839 : {
1840 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail618;
1841 4 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail618;
1842 4 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail618;
1843 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail618;
1844 4 : {
1845 4 : tree res_op0;
1846 4 : res_op0 = captures[2];
1847 4 : tree res_op1;
1848 4 : res_op1 = captures[4];
1849 4 : tree _r;
1850 4 : _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
1851 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 510, __FILE__, __LINE__, true);
1852 4 : return _r;
1853 : }
1854 : next_after_fail618:;
1855 : }
1856 : else
1857 : {
1858 35 : if ((cmp == GT_EXPR || cmp == GE_EXPR)
1859 24 : && code == MAX_EXPR
1860 59 : && integer_nonzerop (fold_build2 (GE_EXPR, boolean_type_node, captures[3], captures[4]))
1861 : )
1862 : {
1863 10 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail619;
1864 10 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail619;
1865 10 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail619;
1866 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail619;
1867 10 : {
1868 10 : tree res_op0;
1869 10 : res_op0 = captures[2];
1870 10 : tree res_op1;
1871 10 : res_op1 = captures[4];
1872 10 : tree _r;
1873 10 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
1874 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 511, __FILE__, __LINE__, true);
1875 10 : return _r;
1876 : }
1877 : next_after_fail619:;
1878 : }
1879 : }
1880 : }
1881 : return NULL_TREE;
1882 : }
1883 :
1884 : tree
1885 184 : generic_simplify_359 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1886 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1887 : const enum tree_code ARG_UNUSED (op))
1888 : {
1889 184 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1890 184 : if (bitwise_equal_p (captures[0], captures[3])
1891 184 : && expr_no_side_effects_p (captures[2])
1892 : )
1893 : {
1894 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail634;
1895 1 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail634;
1896 1 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail634;
1897 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail634;
1898 1 : {
1899 1 : tree _r;
1900 1 : _r = captures[1];
1901 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 526, __FILE__, __LINE__, true);
1902 1 : return _r;
1903 : }
1904 : next_after_fail634:;
1905 : }
1906 : return NULL_TREE;
1907 : }
1908 :
1909 : tree
1910 6 : generic_simplify_365 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1911 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1912 : const enum tree_code ARG_UNUSED (neeq),
1913 : const combined_fn ARG_UNUSED (sign))
1914 : {
1915 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1916 6 : if (neeq == NE_EXPR
1917 : )
1918 : {
1919 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail640;
1920 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail640;
1921 3 : {
1922 3 : tree res_op0;
1923 3 : res_op0 = captures[0];
1924 3 : tree _r;
1925 3 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
1926 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 532, __FILE__, __LINE__, true);
1927 3 : return _r;
1928 : }
1929 : next_after_fail640:;
1930 : }
1931 : else
1932 : {
1933 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail641;
1934 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail641;
1935 3 : {
1936 3 : tree res_op0;
1937 3 : {
1938 3 : tree _o1[1], _r1;
1939 3 : _o1[0] = captures[0];
1940 3 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1941 3 : res_op0 = _r1;
1942 : }
1943 3 : tree _r;
1944 3 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
1945 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 533, __FILE__, __LINE__, true);
1946 3 : return _r;
1947 : }
1948 : next_after_fail641:;
1949 : }
1950 : return NULL_TREE;
1951 : }
1952 :
1953 : tree
1954 83881 : generic_simplify_378 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1955 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1956 : const enum tree_code ARG_UNUSED (op))
1957 : {
1958 83881 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1959 167762 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1960 83881 : && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1961 167762 : && wi::only_sign_bit_p (wi::to_wide (captures[1]))
1962 : )
1963 : {
1964 5 : {
1965 5 : tree stype = signed_type_for (TREE_TYPE (captures[1]));
1966 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail658;
1967 5 : {
1968 5 : tree res_op0;
1969 5 : {
1970 5 : tree _o1[1], _r1;
1971 5 : _o1[0] = captures[0];
1972 5 : if (TREE_TYPE (_o1[0]) != stype)
1973 : {
1974 5 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
1975 : }
1976 : else
1977 : _r1 = _o1[0];
1978 5 : res_op0 = _r1;
1979 : }
1980 5 : tree res_op1;
1981 5 : {
1982 5 : tree _o1[1], _r1;
1983 5 : _o1[0] = captures[2];
1984 5 : if (TREE_TYPE (_o1[0]) != stype)
1985 : {
1986 5 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
1987 : }
1988 : else
1989 : _r1 = _o1[0];
1990 5 : res_op1 = _r1;
1991 : }
1992 5 : tree _r;
1993 5 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1994 5 : if (TREE_SIDE_EFFECTS (captures[1]))
1995 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1996 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 548, __FILE__, __LINE__, true);
1997 5 : return _r;
1998 : }
1999 0 : next_after_fail658:;
2000 : }
2001 : }
2002 : return NULL_TREE;
2003 : }
2004 :
2005 : tree
2006 9383001 : generic_simplify_388 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2007 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2008 : const enum tree_code ARG_UNUSED (cmp),
2009 : const enum tree_code ARG_UNUSED (acmp))
2010 : {
2011 9383001 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2012 9383001 : {
2013 9383001 : tree cst = uniform_integer_cst_p (captures[1]);
2014 9383001 : if (tree_int_cst_sgn (cst) == 1
2015 : )
2016 : {
2017 3918613 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail669;
2018 3918613 : {
2019 3918613 : tree res_op0;
2020 3918613 : res_op0 = captures[0];
2021 3918613 : tree res_op1;
2022 3918613 : res_op1 = build_uniform_cst (TREE_TYPE (captures[1]),
2023 3918613 : wide_int_to_tree (TREE_TYPE (cst),
2024 3918613 : wi::to_wide (cst) - 1));
2025 3918613 : tree _r;
2026 3918613 : _r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
2027 3918613 : if (TREE_SIDE_EFFECTS (captures[1]))
2028 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2029 3918613 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 559, __FILE__, __LINE__, true);
2030 3918613 : return _r;
2031 : }
2032 0 : next_after_fail669:;
2033 : }
2034 : }
2035 : return NULL_TREE;
2036 : }
2037 :
2038 : tree
2039 0 : generic_simplify_398 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2040 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2041 : const enum tree_code ARG_UNUSED (cmp),
2042 : const enum tree_code ARG_UNUSED (out))
2043 : {
2044 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2045 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2046 0 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
2047 : )
2048 : {
2049 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail711;
2050 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail711;
2051 0 : {
2052 0 : tree res_op0;
2053 0 : {
2054 0 : tree _o1[1], _r1;
2055 0 : _o1[0] = captures[0];
2056 0 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2057 0 : res_op0 = _r1;
2058 : }
2059 0 : tree res_op1;
2060 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2061 0 : tree _r;
2062 0 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2063 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 584, __FILE__, __LINE__, true);
2064 0 : return _r;
2065 : }
2066 : next_after_fail711:;
2067 : }
2068 : return NULL_TREE;
2069 : }
2070 :
2071 : tree
2072 19632298 : generic_simplify_405 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2073 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2074 : const enum tree_code ARG_UNUSED (cmp),
2075 : const enum tree_code ARG_UNUSED (acmp))
2076 : {
2077 19632298 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2078 19632298 : {
2079 19632298 : tree cst = uniform_integer_cst_p (captures[1]);
2080 19632298 : if (tree_int_cst_sgn (cst) == -1
2081 : )
2082 : {
2083 174990 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail725;
2084 174990 : {
2085 174990 : tree res_op0;
2086 174990 : res_op0 = captures[0];
2087 174990 : tree res_op1;
2088 174990 : res_op1 = build_uniform_cst (TREE_TYPE (captures[1]),
2089 174990 : wide_int_to_tree (TREE_TYPE (cst),
2090 174990 : wi::to_wide (cst)
2091 349980 : + 1));
2092 174990 : tree _r;
2093 174990 : _r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
2094 174990 : if (TREE_SIDE_EFFECTS (captures[1]))
2095 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2096 174990 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 598, __FILE__, __LINE__, true);
2097 174990 : return _r;
2098 : }
2099 0 : next_after_fail725:;
2100 : }
2101 : }
2102 : return NULL_TREE;
2103 : }
2104 :
2105 : tree
2106 0 : generic_simplify_408 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2107 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2108 : const enum tree_code ARG_UNUSED (cmp),
2109 : const enum tree_code ARG_UNUSED (out))
2110 : {
2111 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2112 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2113 0 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
2114 : )
2115 : {
2116 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail728;
2117 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail728;
2118 0 : {
2119 0 : tree res_op0;
2120 0 : {
2121 0 : tree _o1[1], _r1;
2122 0 : _o1[0] = captures[0];
2123 0 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2124 0 : res_op0 = _r1;
2125 : }
2126 0 : tree res_op1;
2127 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2128 0 : tree _r;
2129 0 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2130 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 583, __FILE__, __LINE__, true);
2131 0 : return _r;
2132 : }
2133 : next_after_fail728:;
2134 : }
2135 : return NULL_TREE;
2136 : }
2137 :
2138 : tree
2139 43 : generic_simplify_413 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2140 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2141 : const enum tree_code ARG_UNUSED (cmp),
2142 : const enum tree_code ARG_UNUSED (cmp2),
2143 : const enum tree_code ARG_UNUSED (cmp3),
2144 : const enum tree_code ARG_UNUSED (bit_op),
2145 : const combined_fn ARG_UNUSED (ffs))
2146 : {
2147 43 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2148 43 : {
2149 43 : int prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
2150 43 : if (integer_zerop (captures[2])
2151 : )
2152 : {
2153 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail733;
2154 11 : {
2155 11 : tree res_op0;
2156 11 : res_op0 = captures[1];
2157 11 : tree res_op1;
2158 11 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
2159 11 : tree _r;
2160 11 : _r = fold_build2_loc (loc, cmp2, type, res_op0, res_op1);
2161 11 : if (TREE_SIDE_EFFECTS (captures[2]))
2162 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2163 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 602, __FILE__, __LINE__, true);
2164 27 : return _r;
2165 : }
2166 0 : next_after_fail733:;
2167 : }
2168 : else
2169 : {
2170 32 : if (tree_int_cst_sgn (captures[2]) < 0
2171 : )
2172 : {
2173 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail734;
2174 0 : {
2175 0 : tree _r;
2176 0 : _r = constant_boolean_node (cmp == GT_EXPR ? true : false, type);
2177 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2178 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2179 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2180 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2181 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 603, __FILE__, __LINE__, true);
2182 0 : return _r;
2183 : }
2184 0 : next_after_fail734:;
2185 : }
2186 : else
2187 : {
2188 32 : if (wi::to_widest (captures[2]) >= prec
2189 : )
2190 : {
2191 14 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail735;
2192 14 : {
2193 14 : tree _r;
2194 14 : _r = constant_boolean_node (cmp == GT_EXPR ? false : true, type);
2195 14 : if (TREE_SIDE_EFFECTS (captures[1]))
2196 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2197 14 : if (TREE_SIDE_EFFECTS (captures[2]))
2198 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2199 14 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 604, __FILE__, __LINE__, true);
2200 14 : return _r;
2201 : }
2202 0 : next_after_fail735:;
2203 : }
2204 : else
2205 : {
2206 18 : if (wi::to_widest (captures[2]) == prec - 1
2207 : )
2208 : {
2209 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail736;
2210 2 : {
2211 2 : tree res_op0;
2212 2 : res_op0 = captures[1];
2213 2 : tree res_op1;
2214 2 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[1]),
2215 2 : wi::shifted_mask (prec - 1, 1,
2216 : false, prec));
2217 2 : tree _r;
2218 2 : _r = fold_build2_loc (loc, cmp3, type, res_op0, res_op1);
2219 2 : if (TREE_SIDE_EFFECTS (captures[2]))
2220 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2221 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 605, __FILE__, __LINE__, true);
2222 2 : return _r;
2223 : }
2224 0 : next_after_fail736:;
2225 : }
2226 : else
2227 : {
2228 16 : if (single_use (captures[0])
2229 : )
2230 : {
2231 16 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail737;
2232 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail737;
2233 16 : {
2234 16 : if (! tree_invariant_p (captures[1])) goto next_after_fail737;
2235 0 : tree res_op0;
2236 0 : {
2237 0 : tree _o1[2], _r1;
2238 0 : _o1[0] = unshare_expr (captures[1]);
2239 0 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
2240 0 : _r1 = fold_build2_loc (loc, cmp2, type, _o1[0], _o1[1]);
2241 0 : res_op0 = _r1;
2242 : }
2243 0 : tree res_op1;
2244 0 : {
2245 0 : tree _o1[2], _r1;
2246 0 : {
2247 0 : tree _o2[2], _r2;
2248 0 : _o2[0] = captures[1];
2249 0 : _o2[1] = wide_int_to_tree (TREE_TYPE (captures[1]),
2250 0 : wi::mask (tree_to_uhwi (captures[2]),
2251 : false, prec));
2252 0 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2253 0 : _o1[0] = _r2;
2254 : }
2255 0 : _o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
2256 0 : _r1 = fold_build2_loc (loc, cmp3, type, _o1[0], _o1[1]);
2257 0 : res_op1 = _r1;
2258 : }
2259 0 : tree _r;
2260 0 : _r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
2261 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 606, __FILE__, __LINE__, true);
2262 0 : return _r;
2263 : }
2264 16 : next_after_fail737:;
2265 : }
2266 : }
2267 : }
2268 : }
2269 : }
2270 : }
2271 16 : return NULL_TREE;
2272 : }
2273 :
2274 : tree
2275 4783815 : generic_simplify_435 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2276 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2277 : {
2278 4783815 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2279 4783815 : if (INTEGRAL_TYPE_P (type)
2280 2630003 : && TYPE_PRECISION (type) == 1
2281 4797926 : && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
2282 : )
2283 : {
2284 14111 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail780;
2285 14111 : {
2286 14111 : tree res_op0;
2287 14111 : res_op0 = captures[0];
2288 14111 : tree _r;
2289 14111 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2290 14111 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 635, __FILE__, __LINE__, true);
2291 14111 : return _r;
2292 : }
2293 0 : next_after_fail780:;
2294 : }
2295 : return NULL_TREE;
2296 : }
2297 :
2298 : tree
2299 0 : generic_simplify_438 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2300 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2301 : const combined_fn ARG_UNUSED (coshs),
2302 : const combined_fn ARG_UNUSED (atanhs),
2303 : const combined_fn ARG_UNUSED (sqrts))
2304 : {
2305 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2306 0 : if (!flag_errno_math
2307 : )
2308 : {
2309 0 : {
2310 0 : tree t_one = build_one_cst (type);
2311 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail783;
2312 0 : {
2313 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail783;
2314 0 : tree res_op0;
2315 0 : res_op0 = t_one;
2316 0 : tree res_op1;
2317 0 : {
2318 0 : tree _o1[1], _r1;
2319 0 : {
2320 0 : tree _o2[2], _r2;
2321 0 : {
2322 0 : tree _o3[2], _r3;
2323 0 : _o3[0] = t_one;
2324 0 : _o3[1] = unshare_expr (captures[1]);
2325 0 : _r3 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
2326 0 : _o2[0] = _r3;
2327 : }
2328 0 : {
2329 0 : tree _o3[2], _r3;
2330 0 : _o3[0] = t_one;
2331 0 : _o3[1] = captures[1];
2332 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
2333 0 : _o2[1] = _r3;
2334 : }
2335 0 : _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2336 0 : _o1[0] = _r2;
2337 : }
2338 0 : _r1 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o1[0]), 1, _o1[0]);
2339 0 : if (!_r1)
2340 0 : goto next_after_fail783;
2341 0 : res_op1 = _r1;
2342 : }
2343 0 : tree _r;
2344 0 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
2345 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 638, __FILE__, __LINE__, true);
2346 0 : return _r;
2347 : }
2348 : next_after_fail783:;
2349 : }
2350 : }
2351 : return NULL_TREE;
2352 : }
2353 :
2354 : tree
2355 0 : generic_simplify_442 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2356 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2357 : const combined_fn ARG_UNUSED (POW))
2358 : {
2359 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2360 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail787;
2361 0 : {
2362 0 : tree _r;
2363 0 : _r = captures[0];
2364 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2365 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2366 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 642, __FILE__, __LINE__, true);
2367 : return _r;
2368 : }
2369 0 : next_after_fail787:;
2370 0 : return NULL_TREE;
2371 : }
2372 :
2373 : tree
2374 0 : generic_simplify_445 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2375 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2376 : const combined_fn ARG_UNUSED (copysigns),
2377 : const combined_fn ARG_UNUSED (hypots))
2378 : {
2379 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2380 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail790;
2381 0 : {
2382 0 : tree res_op0;
2383 0 : res_op0 = captures[0];
2384 0 : tree res_op1;
2385 0 : res_op1 = captures[1];
2386 0 : tree _r;
2387 0 : _r = maybe_build_call_expr_loc (loc, hypots, type, 2, res_op0, res_op1);
2388 0 : if (!_r)
2389 0 : goto next_after_fail790;
2390 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2391 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2392 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 645, __FILE__, __LINE__, true);
2393 : return _r;
2394 : }
2395 : next_after_fail790:;
2396 : return NULL_TREE;
2397 : }
2398 :
2399 : tree
2400 21 : generic_simplify_450 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2401 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2402 : {
2403 21 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2404 42 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2405 42 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
2406 : )
2407 : {
2408 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail795;
2409 0 : {
2410 0 : tree res_op0;
2411 0 : res_op0 = captures[0];
2412 0 : tree res_op1;
2413 0 : res_op1 = captures[1];
2414 0 : tree _r;
2415 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2416 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 650, __FILE__, __LINE__, true);
2417 0 : return _r;
2418 : }
2419 0 : next_after_fail795:;
2420 : }
2421 : return NULL_TREE;
2422 : }
2423 :
2424 : tree
2425 0 : generic_simplify_455 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2426 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2427 : {
2428 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2429 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail800;
2430 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail800;
2431 0 : {
2432 0 : tree res_op0;
2433 0 : res_op0 = captures[0];
2434 0 : tree res_op1;
2435 0 : {
2436 0 : tree _o1[1], _r1;
2437 0 : _o1[0] = captures[5];
2438 0 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2439 0 : res_op1 = _r1;
2440 : }
2441 0 : tree _r;
2442 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2443 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 654, __FILE__, __LINE__, true);
2444 : return _r;
2445 : }
2446 : next_after_fail800:;
2447 : return NULL_TREE;
2448 : }
2449 :
2450 : tree
2451 0 : generic_simplify_461 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2452 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2453 : {
2454 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2455 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail806;
2456 0 : {
2457 0 : tree res_op0;
2458 0 : res_op0 = captures[0];
2459 0 : tree res_op1;
2460 0 : res_op1 = captures[1];
2461 0 : tree _r;
2462 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
2463 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 660, __FILE__, __LINE__, true);
2464 : return _r;
2465 : }
2466 0 : next_after_fail806:;
2467 0 : return NULL_TREE;
2468 : }
2469 :
2470 : tree
2471 1667 : generic_simplify_464 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2472 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2473 : {
2474 1667 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2475 1667 : {
2476 1667 : bool wascmp;
2477 1667 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
2478 1667 : || bitwise_inverted_equal_p (captures[1], captures[2], wascmp)
2479 : )
2480 : {
2481 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail809;
2482 8 : {
2483 8 : tree _r;
2484 8 : _r = wascmp ? constant_boolean_node (false, type) : build_zero_cst (type);
2485 8 : if (TREE_SIDE_EFFECTS (captures[0]))
2486 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2487 8 : if (TREE_SIDE_EFFECTS (captures[1]))
2488 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2489 8 : if (TREE_SIDE_EFFECTS (captures[2]))
2490 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2491 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 663, __FILE__, __LINE__, true);
2492 8 : return _r;
2493 : }
2494 0 : next_after_fail809:;
2495 : }
2496 : }
2497 1659 : return NULL_TREE;
2498 : }
2499 :
2500 : tree
2501 0 : generic_simplify_476 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2502 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2503 : const enum tree_code ARG_UNUSED (eqne))
2504 : {
2505 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2506 0 : if (eqne == EQ_EXPR
2507 : )
2508 : {
2509 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail842;
2510 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail842;
2511 0 : {
2512 0 : tree _r;
2513 0 : _r = constant_boolean_node (false, type);
2514 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2515 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2516 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 669, __FILE__, __LINE__, true);
2517 0 : return _r;
2518 : }
2519 : next_after_fail842:;
2520 : }
2521 : else
2522 : {
2523 0 : if (eqne == NE_EXPR
2524 : )
2525 : {
2526 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail843;
2527 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail843;
2528 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail843;
2529 0 : {
2530 0 : tree _r;
2531 0 : _r = captures[0];
2532 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 670, __FILE__, __LINE__, true);
2533 0 : return _r;
2534 : }
2535 : next_after_fail843:;
2536 : }
2537 : }
2538 : return NULL_TREE;
2539 : }
2540 :
2541 : tree
2542 4 : generic_simplify_484 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2543 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2544 : {
2545 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2546 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail863;
2547 4 : {
2548 4 : tree res_op0;
2549 4 : res_op0 = captures[1];
2550 4 : tree res_op1;
2551 4 : {
2552 4 : tree _o1[2], _r1;
2553 4 : _o1[0] = captures[2];
2554 4 : _o1[1] = captures[3];
2555 4 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2556 4 : if (EXPR_P (_r1))
2557 2 : goto next_after_fail863;
2558 2 : res_op1 = _r1;
2559 : }
2560 2 : tree _r;
2561 2 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
2562 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 688, __FILE__, __LINE__, true);
2563 : return _r;
2564 : }
2565 : next_after_fail863:;
2566 : return NULL_TREE;
2567 : }
2568 :
2569 : tree
2570 234 : generic_simplify_489 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2571 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2572 : const combined_fn ARG_UNUSED (bswap))
2573 : {
2574 234 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2575 234 : if (BITS_PER_UNIT == 8
2576 234 : && tree_fits_uhwi_p (captures[3])
2577 234 : && tree_fits_uhwi_p (captures[4])
2578 : )
2579 : {
2580 234 : {
2581 234 : unsigned HOST_WIDE_INT prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
2582 234 : unsigned HOST_WIDE_INT bits = tree_to_uhwi (captures[3]);
2583 234 : unsigned HOST_WIDE_INT mask = tree_to_uhwi (captures[4]);
2584 234 : unsigned HOST_WIDE_INT lo = bits & 7;
2585 234 : unsigned HOST_WIDE_INT hi = bits - lo;
2586 234 : if (bits < prec
2587 234 : && mask < (256u>>lo)
2588 468 : && bits < TYPE_PRECISION (TREE_TYPE(captures[0]))
2589 : )
2590 : {
2591 234 : {
2592 234 : unsigned HOST_WIDE_INT ns = (prec - (hi + 8)) + lo;
2593 234 : if (ns == 0
2594 : )
2595 : {
2596 1 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail876;
2597 1 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail876;
2598 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail876;
2599 1 : {
2600 1 : tree res_op0;
2601 1 : {
2602 1 : tree _o1[1], _r1;
2603 1 : _o1[0] = captures[2];
2604 1 : if (TREE_TYPE (_o1[0]) != type)
2605 : {
2606 1 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2607 : }
2608 : else
2609 : _r1 = _o1[0];
2610 1 : res_op0 = _r1;
2611 : }
2612 1 : tree res_op1;
2613 1 : res_op1 = captures[4];
2614 1 : tree _r;
2615 1 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2616 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 692, __FILE__, __LINE__, true);
2617 1 : return _r;
2618 : }
2619 : next_after_fail876:;
2620 : }
2621 : else
2622 : {
2623 233 : {
2624 233 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
2625 233 : tree nst = build_int_cst (integer_type_node, ns);
2626 233 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail877;
2627 233 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail877;
2628 233 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail877;
2629 233 : {
2630 233 : tree res_op0;
2631 233 : {
2632 233 : tree _o1[1], _r1;
2633 233 : {
2634 233 : tree _o2[2], _r2;
2635 233 : {
2636 233 : tree _o3[1], _r3;
2637 233 : _o3[0] = captures[2];
2638 233 : if (TREE_TYPE (_o3[0]) != utype)
2639 : {
2640 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2641 : }
2642 : else
2643 : _r3 = _o3[0];
2644 233 : _o2[0] = _r3;
2645 : }
2646 233 : _o2[1] = nst;
2647 233 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, utype, _o2[0], _o2[1]);
2648 233 : _o1[0] = _r2;
2649 : }
2650 233 : if (TREE_TYPE (_o1[0]) != type)
2651 : {
2652 101 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2653 : }
2654 : else
2655 : _r1 = _o1[0];
2656 233 : res_op0 = _r1;
2657 : }
2658 233 : tree res_op1;
2659 233 : res_op1 = captures[4];
2660 233 : tree _r;
2661 233 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2662 233 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 693, __FILE__, __LINE__, true);
2663 233 : return _r;
2664 : }
2665 : next_after_fail877:;
2666 : }
2667 : }
2668 : }
2669 : }
2670 : }
2671 : }
2672 : return NULL_TREE;
2673 : }
2674 :
2675 : tree
2676 0 : generic_simplify_491 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2677 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2678 : {
2679 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2680 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail879;
2681 0 : {
2682 0 : tree res_op0;
2683 0 : res_op0 = captures[0];
2684 0 : tree res_op1;
2685 0 : res_op1 = captures[1];
2686 0 : tree _r;
2687 0 : _r = fold_build2_loc (loc, LTGT_EXPR, type, res_op0, res_op1);
2688 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 695, __FILE__, __LINE__, true);
2689 : return _r;
2690 : }
2691 0 : next_after_fail879:;
2692 0 : return NULL_TREE;
2693 : }
2694 :
2695 : tree
2696 0 : generic_simplify_492 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2697 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2698 : {
2699 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2700 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail880;
2701 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail880;
2702 0 : {
2703 0 : tree _r;
2704 0 : _r = captures[1];
2705 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 696, __FILE__, __LINE__, true);
2706 : return _r;
2707 : }
2708 : next_after_fail880:;
2709 : return NULL_TREE;
2710 : }
2711 :
2712 : tree
2713 3 : generic_simplify_495 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2714 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2715 : const combined_fn ARG_UNUSED (POPCOUNT),
2716 : const combined_fn ARG_UNUSED (PARITY))
2717 : {
2718 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2719 3 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail884;
2720 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail884;
2721 3 : {
2722 3 : tree res_op0;
2723 3 : res_op0 = captures[0];
2724 3 : tree _r;
2725 3 : _r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
2726 3 : if (!_r)
2727 0 : goto next_after_fail884;
2728 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 699, __FILE__, __LINE__, true);
2729 : return _r;
2730 : }
2731 : next_after_fail884:;
2732 : return NULL_TREE;
2733 : }
2734 :
2735 : tree
2736 3904 : generic_simplify_500 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2737 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2738 : {
2739 3904 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2740 3904 : if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
2741 3904 : || !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2742 : )
2743 : {
2744 3462 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail889;
2745 3462 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail889;
2746 3462 : {
2747 3462 : tree res_op0;
2748 3462 : {
2749 3462 : tree _o1[1], _r1;
2750 3462 : _o1[0] = captures[0];
2751 3462 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2752 3462 : res_op0 = _r1;
2753 : }
2754 3462 : tree _r;
2755 3462 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2756 3462 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 704, __FILE__, __LINE__, true);
2757 3462 : return _r;
2758 : }
2759 : next_after_fail889:;
2760 : }
2761 : return NULL_TREE;
2762 : }
2763 :
2764 : tree
2765 2 : generic_simplify_508 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2766 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2767 : const enum tree_code ARG_UNUSED (rotate))
2768 : {
2769 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2770 2 : if ((element_precision (TREE_TYPE (captures[2]))
2771 2 : <= element_precision (TREE_TYPE (captures[3]))
2772 0 : || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2773 2 : && (element_precision (type) <= element_precision (TREE_TYPE (captures[2]))
2774 0 : || !TYPE_UNSIGNED (TREE_TYPE (captures[2])))
2775 : )
2776 : {
2777 2 : {
2778 2 : tree rotate_type = TREE_TYPE (captures[2]);
2779 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail897;
2780 2 : {
2781 2 : tree res_op0;
2782 2 : {
2783 2 : tree _o1[2], _r1;
2784 2 : {
2785 2 : tree _o2[1], _r2;
2786 2 : _o2[0] = captures[3];
2787 2 : if (TREE_TYPE (_o2[0]) != rotate_type)
2788 : {
2789 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, rotate_type, _o2[0]);
2790 : }
2791 : else
2792 : _r2 = _o2[0];
2793 2 : _o1[0] = _r2;
2794 : }
2795 2 : _o1[1] = captures[4];
2796 2 : _r1 = fold_build2_loc (loc, rotate, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2797 2 : res_op0 = _r1;
2798 : }
2799 2 : tree _r;
2800 2 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2801 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 709, __FILE__, __LINE__, true);
2802 2 : return _r;
2803 : }
2804 0 : next_after_fail897:;
2805 : }
2806 : }
2807 : return NULL_TREE;
2808 : }
2809 :
2810 : tree
2811 2 : generic_simplify_521 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2812 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2813 : {
2814 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2815 2 : if (TREE_CODE (type) != COMPLEX_TYPE
2816 2 : && (! ANY_INTEGRAL_TYPE_P (type)
2817 1 : || TYPE_OVERFLOW_UNDEFINED (type))
2818 : )
2819 : {
2820 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail912;
2821 2 : {
2822 2 : tree res_op0;
2823 2 : {
2824 2 : tree _o1[1], _r1;
2825 2 : _o1[0] = captures[0];
2826 2 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2827 2 : res_op0 = _r1;
2828 : }
2829 2 : tree _r;
2830 2 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
2831 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 724, __FILE__, __LINE__, true);
2832 2 : return _r;
2833 : }
2834 0 : next_after_fail912:;
2835 : }
2836 : return NULL_TREE;
2837 : }
2838 :
2839 : tree
2840 0 : generic_simplify_530 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2841 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2842 : const enum tree_code ARG_UNUSED (minmax),
2843 : const enum tree_code ARG_UNUSED (maxmin))
2844 : {
2845 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2846 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail935;
2847 0 : {
2848 0 : tree res_op0;
2849 0 : {
2850 0 : tree _o1[2], _r1;
2851 0 : _o1[0] = captures[1];
2852 0 : _o1[1] = captures[3];
2853 0 : _r1 = fold_build2_loc (loc, maxmin, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2854 0 : res_op0 = _r1;
2855 : }
2856 0 : tree _r;
2857 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
2858 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 735, __FILE__, __LINE__, true);
2859 : return _r;
2860 : }
2861 0 : next_after_fail935:;
2862 0 : return NULL_TREE;
2863 : }
2864 :
2865 : tree
2866 0 : generic_simplify_535 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2867 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2868 : const combined_fn ARG_UNUSED (minmax))
2869 : {
2870 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2871 0 : if (real_isnan (TREE_REAL_CST_PTR (captures[1]))
2872 0 : && (!HONOR_SNANS (captures[1]) || !TREE_REAL_CST (captures[1]).signalling)
2873 0 : && !tree_expr_maybe_signaling_nan_p (captures[0])
2874 : )
2875 : {
2876 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail940;
2877 0 : {
2878 0 : tree _r;
2879 0 : _r = captures[0];
2880 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2881 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2882 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 740, __FILE__, __LINE__, true);
2883 0 : return _r;
2884 : }
2885 0 : next_after_fail940:;
2886 : }
2887 : return NULL_TREE;
2888 : }
2889 :
2890 : tree
2891 0 : generic_simplify_544 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2892 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2893 : const combined_fn ARG_UNUSED (cond_op))
2894 : {
2895 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2896 0 : {
2897 0 : tree op_type = TREE_TYPE (captures[5]);
2898 0 : if (inverse_conditions_p (captures[0], captures[2])
2899 0 : && element_precision (type) == element_precision (op_type)
2900 : )
2901 : {
2902 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail949;
2903 0 : {
2904 0 : tree res_op0;
2905 0 : {
2906 0 : tree _o1[4], _r1;
2907 0 : _o1[0] = captures[2];
2908 0 : _o1[1] = captures[3];
2909 0 : _o1[2] = captures[4];
2910 0 : {
2911 0 : tree _o2[1], _r2;
2912 0 : _o2[0] = captures[1];
2913 0 : if (TREE_TYPE (_o2[0]) != op_type)
2914 : {
2915 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
2916 : }
2917 : else
2918 : _r2 = _o2[0];
2919 0 : _o1[3] = _r2;
2920 : }
2921 0 : _r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 4, _o1[0], _o1[1], _o1[2], _o1[3]);
2922 0 : if (!_r1)
2923 0 : goto next_after_fail949;
2924 0 : res_op0 = _r1;
2925 : }
2926 0 : tree _r;
2927 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
2928 0 : if (TREE_SIDE_EFFECTS (captures[0]))
2929 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2930 0 : if (TREE_SIDE_EFFECTS (captures[5]))
2931 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
2932 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 744, __FILE__, __LINE__, true);
2933 0 : return _r;
2934 : }
2935 : next_after_fail949:;
2936 : }
2937 : }
2938 : return NULL_TREE;
2939 : }
2940 :
2941 : tree
2942 5786 : generic_simplify_555 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2943 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2944 : {
2945 5786 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2946 11572 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2947 5786 : && TYPE_MAX_VALUE (TREE_TYPE (captures[1]))
2948 5786 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (TREE_TYPE (captures[0])))
2949 8082 : && int_fits_type_p (captures[2], TREE_TYPE (captures[1]))
2950 : )
2951 : {
2952 1904 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2953 : )
2954 : {
2955 929 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail961;
2956 929 : {
2957 929 : tree res_op0;
2958 929 : {
2959 929 : tree _o1[2], _r1;
2960 929 : _o1[0] = captures[1];
2961 929 : {
2962 929 : tree _o2[2], _r2;
2963 929 : _o2[0] = TYPE_MAX_VALUE (TREE_TYPE (captures[1]));
2964 929 : _o2[1] = captures[2];
2965 929 : _r2 = fold_build2_loc (loc, TRUNC_DIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2966 929 : if (EXPR_P (_r2))
2967 0 : goto next_after_fail961;
2968 929 : _o1[1] = _r2;
2969 : }
2970 929 : _r1 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o1[0], _o1[1]);
2971 929 : res_op0 = _r1;
2972 : }
2973 929 : tree _r;
2974 929 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2975 929 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 756, __FILE__, __LINE__, true);
2976 929 : return _r;
2977 : }
2978 : next_after_fail961:;
2979 : }
2980 : else
2981 : {
2982 975 : if (TYPE_MIN_VALUE (TREE_TYPE (captures[1]))
2983 : )
2984 : {
2985 975 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && integer_minus_onep (captures[2])
2986 : )
2987 : {
2988 56 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail962;
2989 56 : {
2990 56 : tree res_op0;
2991 56 : {
2992 56 : tree _o1[2], _r1;
2993 56 : _o1[0] = captures[1];
2994 56 : _o1[1] = TYPE_MIN_VALUE (TREE_TYPE (captures[1]));
2995 56 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
2996 56 : res_op0 = _r1;
2997 : }
2998 56 : tree _r;
2999 56 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3000 56 : if (TREE_SIDE_EFFECTS (captures[2]))
3001 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3002 56 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 757, __FILE__, __LINE__, true);
3003 56 : return _r;
3004 : }
3005 0 : next_after_fail962:;
3006 : }
3007 : else
3008 : {
3009 919 : {
3010 919 : tree div = fold_convert (TREE_TYPE (captures[1]), captures[2]);
3011 1838 : tree lo = int_const_binop (TRUNC_DIV_EXPR,
3012 919 : TYPE_MIN_VALUE (TREE_TYPE (captures[1])), div);
3013 1838 : tree hi = int_const_binop (TRUNC_DIV_EXPR,
3014 919 : TYPE_MAX_VALUE (TREE_TYPE (captures[1])), div);
3015 919 : tree etype = range_check_type (TREE_TYPE (captures[1]));
3016 919 : if (etype)
3017 : {
3018 919 : if (wi::neg_p (wi::to_wide (div)))
3019 88 : std::swap (lo, hi);
3020 919 : lo = fold_convert (etype, lo);
3021 919 : hi = fold_convert (etype, hi);
3022 919 : hi = int_const_binop (MINUS_EXPR, hi, lo);
3023 : }
3024 919 : if (etype
3025 : )
3026 : {
3027 919 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail963;
3028 919 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail963;
3029 919 : {
3030 919 : tree res_op0;
3031 919 : {
3032 919 : tree _o1[2], _r1;
3033 919 : {
3034 919 : tree _o2[2], _r2;
3035 919 : {
3036 919 : tree _o3[1], _r3;
3037 919 : _o3[0] = captures[1];
3038 919 : if (TREE_TYPE (_o3[0]) != etype)
3039 : {
3040 919 : _r3 = fold_build1_loc (loc, NOP_EXPR, etype, _o3[0]);
3041 : }
3042 : else
3043 : _r3 = _o3[0];
3044 919 : _o2[0] = _r3;
3045 : }
3046 919 : _o2[1] = lo;
3047 919 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
3048 919 : _o1[0] = _r2;
3049 : }
3050 919 : _o1[1] = hi;
3051 919 : _r1 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o1[0], _o1[1]);
3052 919 : res_op0 = _r1;
3053 : }
3054 919 : tree _r;
3055 919 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3056 919 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 758, __FILE__, __LINE__, true);
3057 919 : return _r;
3058 : }
3059 : next_after_fail963:;
3060 : }
3061 : }
3062 : }
3063 : }
3064 : }
3065 : }
3066 : return NULL_TREE;
3067 : }
3068 :
3069 : tree
3070 0 : generic_simplify_595 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3071 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
3072 : {
3073 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3074 0 : if (canonicalize_math_after_vectorization_p ()
3075 : )
3076 : {
3077 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1003;
3078 : {
3079 : tree res_op0;
3080 : res_op0 = captures[0];
3081 : tree res_op1;
3082 : res_op1 = captures[1];
3083 : tree res_op2;
3084 : res_op2 = captures[2];
3085 : tree _r;
3086 : _r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
3087 : if (!_r)
3088 : goto next_after_fail1003;
3089 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 798, __FILE__, __LINE__, true);
3090 : return _r;
3091 : }
3092 0 : next_after_fail1003:;
3093 : }
3094 0 : return NULL_TREE;
3095 : }
3096 :
3097 : tree
3098 0 : generic_simplify_605 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3099 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3100 : const combined_fn ARG_UNUSED (ctz))
3101 : {
3102 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3103 0 : {
3104 0 : tree t = TREE_TYPE (captures[0]);
3105 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1013;
3106 0 : {
3107 0 : tree res_op0;
3108 0 : {
3109 0 : tree _o1[1], _r1;
3110 0 : _o1[0] = captures[1];
3111 0 : if (TREE_TYPE (_o1[0]) != t)
3112 : {
3113 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
3114 : }
3115 : else
3116 : _r1 = _o1[0];
3117 0 : res_op0 = _r1;
3118 : }
3119 0 : tree _r;
3120 0 : _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
3121 0 : if (!_r)
3122 0 : goto next_after_fail1013;
3123 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 807, __FILE__, __LINE__, true);
3124 : return _r;
3125 : }
3126 : next_after_fail1013:;
3127 : }
3128 : return NULL_TREE;
3129 : }
3130 :
3131 : tree
3132 0 : generic_simplify_615 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3133 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3134 : const combined_fn ARG_UNUSED (bswap),
3135 : const combined_fn ARG_UNUSED (parity))
3136 : {
3137 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3138 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3139 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3140 0 : && TYPE_PRECISION (TREE_TYPE (captures[0]))
3141 0 : >= TYPE_PRECISION (TREE_TYPE (captures[1]))
3142 : )
3143 : {
3144 0 : {
3145 0 : tree type0 = TREE_TYPE (captures[0]);
3146 0 : tree type1 = TREE_TYPE (captures[1]);
3147 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1024;
3148 0 : {
3149 0 : tree res_op0;
3150 0 : {
3151 0 : tree _o1[1], _r1;
3152 0 : {
3153 0 : tree _o2[1], _r2;
3154 0 : _o2[0] = captures[2];
3155 0 : if (TREE_TYPE (_o2[0]) != type1)
3156 : {
3157 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
3158 : }
3159 : else
3160 : _r2 = _o2[0];
3161 0 : _o1[0] = _r2;
3162 : }
3163 0 : if (TREE_TYPE (_o1[0]) != type0)
3164 : {
3165 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3166 : }
3167 : else
3168 : _r1 = _o1[0];
3169 0 : res_op0 = _r1;
3170 : }
3171 0 : tree _r;
3172 0 : _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
3173 0 : if (!_r)
3174 0 : goto next_after_fail1024;
3175 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 814, __FILE__, __LINE__, true);
3176 0 : return _r;
3177 : }
3178 : next_after_fail1024:;
3179 : }
3180 : }
3181 : return NULL_TREE;
3182 : }
3183 :
3184 : tree
3185 2124169 : generic_simplify_ABS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3186 : {
3187 2124169 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3188 2124169 : switch (TREE_CODE (_p0))
3189 : {
3190 183342 : CASE_CONVERT:
3191 183342 : {
3192 183342 : tree _q20 = TREE_OPERAND (_p0, 0);
3193 183342 : {
3194 183342 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3195 366682 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3196 914 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3197 840 : && element_precision (type) > element_precision (TREE_TYPE (captures[0]))
3198 183567 : && (!VECTOR_TYPE_P (type)
3199 0 : || target_supports_op_p (TREE_TYPE (captures[0]), ABSU_EXPR, optab_vector))
3200 : )
3201 : {
3202 225 : {
3203 225 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
3204 225 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1033;
3205 225 : {
3206 225 : tree res_op0;
3207 225 : {
3208 225 : tree _o1[1], _r1;
3209 225 : _o1[0] = captures[0];
3210 225 : _r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
3211 225 : res_op0 = _r1;
3212 : }
3213 225 : tree _r;
3214 225 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3215 225 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 821, __FILE__, __LINE__, true);
3216 225 : return _r;
3217 : }
3218 0 : next_after_fail1033:;
3219 : }
3220 : }
3221 : }
3222 : break;
3223 : }
3224 12 : case ABS_EXPR:
3225 12 : {
3226 12 : tree _q20 = TREE_OPERAND (_p0, 0);
3227 12 : {
3228 12 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
3229 12 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1034;
3230 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1034;
3231 12 : {
3232 12 : tree _r;
3233 12 : _r = captures[0];
3234 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 822, __FILE__, __LINE__, true);
3235 12 : return _r;
3236 : }
3237 0 : next_after_fail1034:;
3238 : }
3239 0 : break;
3240 : }
3241 57 : case NEGATE_EXPR:
3242 57 : {
3243 57 : tree _q20 = TREE_OPERAND (_p0, 0);
3244 57 : {
3245 57 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3246 57 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1035;
3247 57 : {
3248 57 : tree res_op0;
3249 57 : res_op0 = captures[0];
3250 57 : tree _r;
3251 57 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
3252 57 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 823, __FILE__, __LINE__, true);
3253 2124169 : return _r;
3254 : }
3255 0 : next_after_fail1035:;
3256 : }
3257 0 : break;
3258 : }
3259 317 : case PLUS_EXPR:
3260 317 : {
3261 317 : tree _q20 = TREE_OPERAND (_p0, 0);
3262 317 : tree _q21 = TREE_OPERAND (_p0, 1);
3263 317 : if (real_zerop (_q21))
3264 : {
3265 3 : {
3266 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3267 3 : tree res = generic_simplify_1 (loc, type, _p0, captures, PLUS_EXPR);
3268 3 : if (res) return res;
3269 : }
3270 : }
3271 : break;
3272 : }
3273 7343 : case MINUS_EXPR:
3274 7343 : {
3275 7343 : tree _q20 = TREE_OPERAND (_p0, 0);
3276 7343 : tree _q21 = TREE_OPERAND (_p0, 1);
3277 7343 : if (real_zerop (_q21))
3278 : {
3279 0 : {
3280 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3281 0 : tree res = generic_simplify_1 (loc, type, _p0, captures, MINUS_EXPR);
3282 0 : if (res) return res;
3283 : }
3284 : }
3285 : break;
3286 : }
3287 0 : case VEC_COND_EXPR:
3288 0 : {
3289 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3290 0 : tree _q21 = TREE_OPERAND (_p0, 1);
3291 0 : tree _q22 = TREE_OPERAND (_p0, 2);
3292 0 : {
3293 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3294 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1036;
3295 0 : {
3296 0 : tree res_op0;
3297 0 : res_op0 = captures[1];
3298 0 : tree res_op1;
3299 0 : {
3300 0 : tree _o1[1], _r1;
3301 0 : _o1[0] = captures[2];
3302 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, type, _o1[0]);
3303 0 : if (EXPR_P (_r1))
3304 0 : goto next_after_fail1036;
3305 0 : res_op1 = _r1;
3306 : }
3307 0 : tree res_op2;
3308 0 : {
3309 0 : tree _o1[1], _r1;
3310 0 : _o1[0] = captures[3];
3311 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, type, _o1[0]);
3312 0 : if (EXPR_P (_r1))
3313 0 : goto next_after_fail1036;
3314 0 : res_op2 = _r1;
3315 : }
3316 0 : tree _r;
3317 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
3318 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 824, __FILE__, __LINE__, true);
3319 0 : return _r;
3320 : }
3321 0 : next_after_fail1036:;
3322 : }
3323 0 : break;
3324 : }
3325 702 : case CALL_EXPR:
3326 702 : switch (get_call_combined_fn (_p0))
3327 : {
3328 0 : case CFN_BUILT_IN_COPYSIGNF16:
3329 0 : if (call_expr_nargs (_p0) == 2)
3330 : {
3331 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3332 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3333 0 : {
3334 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3335 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF16);
3336 0 : if (res) return res;
3337 : }
3338 : }
3339 : break;
3340 0 : case CFN_BUILT_IN_COPYSIGNF32:
3341 0 : if (call_expr_nargs (_p0) == 2)
3342 : {
3343 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3344 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3345 0 : {
3346 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3347 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF32);
3348 0 : if (res) return res;
3349 : }
3350 : }
3351 : break;
3352 0 : case CFN_BUILT_IN_COPYSIGNF64:
3353 0 : if (call_expr_nargs (_p0) == 2)
3354 : {
3355 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3356 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3357 0 : {
3358 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3359 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF64);
3360 0 : if (res) return res;
3361 : }
3362 : }
3363 : break;
3364 0 : case CFN_BUILT_IN_COPYSIGNF128X:
3365 0 : if (call_expr_nargs (_p0) == 2)
3366 : {
3367 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3368 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3369 0 : {
3370 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3371 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF128X);
3372 0 : if (res) return res;
3373 : }
3374 : }
3375 : break;
3376 0 : case CFN_BUILT_IN_COPYSIGNF128:
3377 0 : if (call_expr_nargs (_p0) == 2)
3378 : {
3379 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3380 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3381 0 : {
3382 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3383 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF128);
3384 0 : if (res) return res;
3385 : }
3386 : }
3387 : break;
3388 0 : case CFN_BUILT_IN_COPYSIGNF32X:
3389 0 : if (call_expr_nargs (_p0) == 2)
3390 : {
3391 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3392 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3393 0 : {
3394 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3395 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF32X);
3396 0 : if (res) return res;
3397 : }
3398 : }
3399 : break;
3400 0 : case CFN_BUILT_IN_COPYSIGNF64X:
3401 0 : if (call_expr_nargs (_p0) == 2)
3402 : {
3403 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3404 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3405 0 : {
3406 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3407 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF64X);
3408 0 : if (res) return res;
3409 : }
3410 : }
3411 : break;
3412 0 : case CFN_BUILT_IN_COPYSIGN:
3413 0 : if (call_expr_nargs (_p0) == 2)
3414 : {
3415 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3416 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3417 0 : {
3418 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3419 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGN);
3420 0 : if (res) return res;
3421 : }
3422 : }
3423 : break;
3424 1 : case CFN_BUILT_IN_COPYSIGNF:
3425 1 : if (call_expr_nargs (_p0) == 2)
3426 : {
3427 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3428 1 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3429 1 : {
3430 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3431 1 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF);
3432 1 : if (res) return res;
3433 : }
3434 : }
3435 : break;
3436 0 : case CFN_BUILT_IN_COPYSIGNL:
3437 0 : if (call_expr_nargs (_p0) == 2)
3438 : {
3439 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3440 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3441 0 : {
3442 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3443 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNL);
3444 0 : if (res) return res;
3445 : }
3446 : }
3447 : break;
3448 0 : case CFN_COPYSIGN:
3449 0 : if (call_expr_nargs (_p0) == 2)
3450 : {
3451 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3452 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3453 0 : {
3454 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3455 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_COPYSIGN);
3456 0 : if (res) return res;
3457 : }
3458 : }
3459 : break;
3460 : default:;
3461 : }
3462 : break;
3463 2123872 : default:;
3464 : }
3465 2123872 : if (tree_expr_nonnegative_p (_p0))
3466 : {
3467 549 : {
3468 549 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3469 549 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1037;
3470 549 : {
3471 549 : tree _r;
3472 549 : _r = captures[0];
3473 549 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 825, __FILE__, __LINE__, true);
3474 549 : return _r;
3475 : }
3476 0 : next_after_fail1037:;
3477 : }
3478 : }
3479 : return NULL_TREE;
3480 : }
3481 :
3482 : tree
3483 987939 : 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)
3484 : {
3485 987939 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3486 987939 : switch (TREE_CODE (_p0))
3487 : {
3488 102 : case MINUS_EXPR:
3489 102 : {
3490 102 : tree _q20 = TREE_OPERAND (_p0, 0);
3491 102 : tree _q21 = TREE_OPERAND (_p0, 1);
3492 102 : switch (TREE_CODE (_q21))
3493 : {
3494 22 : CASE_CONVERT:
3495 22 : {
3496 22 : tree _q40 = TREE_OPERAND (_q21, 0);
3497 22 : switch (TREE_CODE (_q40))
3498 : {
3499 0 : case LT_EXPR:
3500 0 : {
3501 0 : tree _q50 = TREE_OPERAND (_q40, 0);
3502 0 : tree _q51 = TREE_OPERAND (_q40, 1);
3503 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3504 : {
3505 0 : if (integer_zerop (_q51))
3506 : {
3507 0 : switch (TREE_CODE (_p1))
3508 : {
3509 0 : case NEGATE_EXPR:
3510 0 : {
3511 0 : tree _q80 = TREE_OPERAND (_p1, 0);
3512 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
3513 : {
3514 0 : {
3515 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3516 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3517 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3518 : )
3519 : {
3520 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1156;
3521 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1156;
3522 0 : {
3523 0 : tree res_op0;
3524 0 : res_op0 = captures[0];
3525 0 : tree _r;
3526 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
3527 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
3528 0 : return _r;
3529 : }
3530 0 : next_after_fail1156:;
3531 : }
3532 : }
3533 : }
3534 : break;
3535 : }
3536 : default:;
3537 : }
3538 : }
3539 : }
3540 : break;
3541 : }
3542 : default:;
3543 : }
3544 : break;
3545 : }
3546 : default:;
3547 : }
3548 : break;
3549 : }
3550 142 : case NEGATE_EXPR:
3551 142 : {
3552 142 : tree _q20 = TREE_OPERAND (_p0, 0);
3553 142 : switch (TREE_CODE (_p1))
3554 : {
3555 0 : case MINUS_EXPR:
3556 0 : {
3557 0 : tree _q40 = TREE_OPERAND (_p1, 0);
3558 0 : tree _q41 = TREE_OPERAND (_p1, 1);
3559 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
3560 : {
3561 0 : switch (TREE_CODE (_q41))
3562 : {
3563 0 : CASE_CONVERT:
3564 0 : {
3565 0 : tree _q70 = TREE_OPERAND (_q41, 0);
3566 0 : switch (TREE_CODE (_q70))
3567 : {
3568 0 : case LT_EXPR:
3569 0 : {
3570 0 : tree _q80 = TREE_OPERAND (_q70, 0);
3571 0 : tree _q81 = TREE_OPERAND (_q70, 1);
3572 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
3573 : {
3574 0 : if (integer_zerop (_q81))
3575 : {
3576 0 : {
3577 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
3578 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3579 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3580 : )
3581 : {
3582 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1157;
3583 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1157;
3584 0 : {
3585 0 : tree res_op0;
3586 0 : res_op0 = captures[0];
3587 0 : tree _r;
3588 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
3589 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
3590 0 : return _r;
3591 : }
3592 0 : next_after_fail1157:;
3593 : }
3594 : }
3595 : }
3596 : }
3597 : break;
3598 : }
3599 : default:;
3600 : }
3601 : break;
3602 : }
3603 : default:;
3604 : }
3605 : }
3606 : break;
3607 : }
3608 : default:;
3609 : }
3610 : break;
3611 : }
3612 987939 : default:;
3613 : }
3614 987939 : if (integer_zerop (_p1))
3615 : {
3616 543 : {
3617 543 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3618 543 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1158;
3619 543 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1158;
3620 543 : {
3621 543 : tree res_op0;
3622 543 : res_op0 = captures[0];
3623 543 : tree _r;
3624 543 : _r = non_lvalue_loc (loc, res_op0);
3625 543 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 883, __FILE__, __LINE__, true);
3626 543 : return _r;
3627 : }
3628 : next_after_fail1158:;
3629 : }
3630 : }
3631 987396 : switch (TREE_CODE (_p0))
3632 : {
3633 2967 : case LSHIFT_EXPR:
3634 2967 : {
3635 2967 : tree _q20 = TREE_OPERAND (_p0, 0);
3636 2967 : tree _q21 = TREE_OPERAND (_p0, 1);
3637 2967 : switch (TREE_CODE (_p1))
3638 : {
3639 10 : case LSHIFT_EXPR:
3640 10 : {
3641 10 : tree _q50 = TREE_OPERAND (_p1, 0);
3642 10 : tree _q51 = TREE_OPERAND (_p1, 1);
3643 10 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3644 : {
3645 1 : {
3646 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
3647 1 : tree res = generic_simplify_3 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3648 1 : if (res) return res;
3649 : }
3650 : }
3651 : break;
3652 : }
3653 : default:;
3654 : }
3655 : break;
3656 : }
3657 22336 : case RSHIFT_EXPR:
3658 22336 : {
3659 22336 : tree _q20 = TREE_OPERAND (_p0, 0);
3660 22336 : tree _q21 = TREE_OPERAND (_p0, 1);
3661 22336 : switch (TREE_CODE (_p1))
3662 : {
3663 20 : case RSHIFT_EXPR:
3664 20 : {
3665 20 : tree _q50 = TREE_OPERAND (_p1, 0);
3666 20 : tree _q51 = TREE_OPERAND (_p1, 1);
3667 20 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3668 : {
3669 10 : {
3670 10 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
3671 10 : tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3672 10 : if (res) return res;
3673 : }
3674 : }
3675 : break;
3676 : }
3677 : default:;
3678 : }
3679 : break;
3680 : }
3681 3377 : case BIT_AND_EXPR:
3682 3377 : {
3683 3377 : tree _q20 = TREE_OPERAND (_p0, 0);
3684 3377 : tree _q21 = TREE_OPERAND (_p0, 1);
3685 3377 : switch (TREE_CODE (_p1))
3686 : {
3687 354 : case BIT_AND_EXPR:
3688 354 : {
3689 354 : tree _q50 = TREE_OPERAND (_p1, 0);
3690 354 : tree _q51 = TREE_OPERAND (_p1, 1);
3691 354 : {
3692 354 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
3693 354 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3694 354 : if (res) return res;
3695 : }
3696 354 : {
3697 354 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q50 };
3698 354 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3699 354 : if (res) return res;
3700 : }
3701 354 : {
3702 354 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q51 };
3703 354 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3704 354 : if (res) return res;
3705 : }
3706 354 : {
3707 354 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q50 };
3708 354 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3709 354 : if (res) return res;
3710 : }
3711 354 : break;
3712 : }
3713 3377 : default:;
3714 : }
3715 3377 : switch (TREE_CODE (_q21))
3716 : {
3717 41 : case BIT_NOT_EXPR:
3718 41 : {
3719 41 : tree _q40 = TREE_OPERAND (_q21, 0);
3720 41 : switch (TREE_CODE (_p1))
3721 : {
3722 0 : case BIT_NOT_EXPR:
3723 0 : {
3724 0 : tree _q60 = TREE_OPERAND (_p1, 0);
3725 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
3726 : {
3727 0 : {
3728 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
3729 0 : tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
3730 0 : if (res) return res;
3731 : }
3732 : }
3733 : break;
3734 : }
3735 : default:;
3736 : }
3737 : break;
3738 : }
3739 3377 : default:;
3740 : }
3741 3377 : switch (TREE_CODE (_q20))
3742 : {
3743 90 : case BIT_NOT_EXPR:
3744 90 : {
3745 90 : tree _q30 = TREE_OPERAND (_q20, 0);
3746 90 : switch (TREE_CODE (_p1))
3747 : {
3748 0 : case BIT_NOT_EXPR:
3749 0 : {
3750 0 : tree _q60 = TREE_OPERAND (_p1, 0);
3751 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
3752 : {
3753 0 : {
3754 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q30 };
3755 0 : tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
3756 0 : if (res) return res;
3757 : }
3758 : }
3759 : break;
3760 : }
3761 90 : default:;
3762 : }
3763 90 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
3764 : {
3765 0 : {
3766 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3767 0 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
3768 0 : if (res) return res;
3769 : }
3770 : }
3771 : break;
3772 : }
3773 3377 : default:;
3774 : }
3775 3377 : switch (TREE_CODE (_q21))
3776 : {
3777 41 : case BIT_NOT_EXPR:
3778 41 : {
3779 41 : tree _q40 = TREE_OPERAND (_q21, 0);
3780 41 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
3781 : {
3782 0 : {
3783 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3784 0 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
3785 0 : if (res) return res;
3786 : }
3787 : }
3788 : break;
3789 : }
3790 : default:;
3791 : }
3792 : break;
3793 : }
3794 505 : case BIT_NOT_EXPR:
3795 505 : {
3796 505 : tree _q20 = TREE_OPERAND (_p0, 0);
3797 505 : switch (TREE_CODE (_p1))
3798 : {
3799 51 : case BIT_AND_EXPR:
3800 51 : {
3801 51 : tree _q40 = TREE_OPERAND (_p1, 0);
3802 51 : tree _q41 = TREE_OPERAND (_p1, 1);
3803 51 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
3804 : {
3805 0 : switch (TREE_CODE (_q41))
3806 : {
3807 0 : case BIT_NOT_EXPR:
3808 0 : {
3809 0 : tree _q60 = TREE_OPERAND (_q41, 0);
3810 0 : {
3811 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q60 };
3812 0 : tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
3813 0 : if (res) return res;
3814 : }
3815 0 : break;
3816 : }
3817 : default:;
3818 : }
3819 : }
3820 51 : switch (TREE_CODE (_q40))
3821 : {
3822 7 : case BIT_NOT_EXPR:
3823 7 : {
3824 7 : tree _q50 = TREE_OPERAND (_q40, 0);
3825 7 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
3826 : {
3827 0 : {
3828 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
3829 0 : tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
3830 0 : if (res) return res;
3831 : }
3832 : }
3833 : break;
3834 : }
3835 : default:;
3836 : }
3837 : break;
3838 : }
3839 : default:;
3840 : }
3841 : break;
3842 : }
3843 987385 : default:;
3844 : }
3845 987385 : switch (TREE_CODE (_p1))
3846 : {
3847 789 : case BIT_AND_EXPR:
3848 789 : {
3849 789 : tree _q30 = TREE_OPERAND (_p1, 0);
3850 789 : tree _q31 = TREE_OPERAND (_p1, 1);
3851 789 : switch (TREE_CODE (_q30))
3852 : {
3853 57 : case BIT_NOT_EXPR:
3854 57 : {
3855 57 : tree _q40 = TREE_OPERAND (_q30, 0);
3856 57 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
3857 : {
3858 0 : {
3859 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
3860 0 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
3861 0 : if (res) return res;
3862 : }
3863 : }
3864 : break;
3865 : }
3866 789 : default:;
3867 : }
3868 789 : switch (TREE_CODE (_q31))
3869 : {
3870 8 : case BIT_NOT_EXPR:
3871 8 : {
3872 8 : tree _q50 = TREE_OPERAND (_q31, 0);
3873 8 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
3874 : {
3875 0 : {
3876 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q30 };
3877 0 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
3878 0 : if (res) return res;
3879 : }
3880 : }
3881 : break;
3882 : }
3883 : default:;
3884 : }
3885 : break;
3886 : }
3887 987385 : default:;
3888 : }
3889 987385 : switch (TREE_CODE (_p0))
3890 : {
3891 21417 : case PLUS_EXPR:
3892 21417 : {
3893 21417 : tree _q20 = TREE_OPERAND (_p0, 0);
3894 21417 : tree _q21 = TREE_OPERAND (_p0, 1);
3895 21417 : if (integer_minus_onep (_q21))
3896 : {
3897 10446 : switch (TREE_CODE (_p1))
3898 : {
3899 11 : case NEGATE_EXPR:
3900 11 : {
3901 11 : tree _q50 = TREE_OPERAND (_p1, 0);
3902 11 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3903 : {
3904 11 : {
3905 11 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3906 11 : tree res = generic_simplify_8 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3907 11 : if (res) return res;
3908 : }
3909 : }
3910 : break;
3911 : }
3912 : default:;
3913 : }
3914 : }
3915 : break;
3916 : }
3917 142 : case NEGATE_EXPR:
3918 142 : {
3919 142 : tree _q20 = TREE_OPERAND (_p0, 0);
3920 142 : switch (TREE_CODE (_p1))
3921 : {
3922 0 : case PLUS_EXPR:
3923 0 : {
3924 0 : tree _q40 = TREE_OPERAND (_p1, 0);
3925 0 : tree _q41 = TREE_OPERAND (_p1, 1);
3926 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
3927 : {
3928 0 : if (integer_minus_onep (_q41))
3929 : {
3930 0 : {
3931 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3932 0 : tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3933 0 : if (res) return res;
3934 : }
3935 : }
3936 : }
3937 : break;
3938 : }
3939 0 : case MINUS_EXPR:
3940 0 : {
3941 0 : tree _q40 = TREE_OPERAND (_p1, 0);
3942 0 : tree _q41 = TREE_OPERAND (_p1, 1);
3943 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
3944 : {
3945 0 : if (integer_onep (_q41))
3946 : {
3947 0 : {
3948 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3949 0 : tree res = generic_simplify_10 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3950 0 : if (res) return res;
3951 : }
3952 : }
3953 : }
3954 : break;
3955 : }
3956 : default:;
3957 : }
3958 : break;
3959 : }
3960 102 : case MINUS_EXPR:
3961 102 : {
3962 102 : tree _q20 = TREE_OPERAND (_p0, 0);
3963 102 : tree _q21 = TREE_OPERAND (_p0, 1);
3964 102 : if (integer_onep (_q21))
3965 : {
3966 0 : switch (TREE_CODE (_p1))
3967 : {
3968 0 : case NEGATE_EXPR:
3969 0 : {
3970 0 : tree _q50 = TREE_OPERAND (_p1, 0);
3971 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3972 : {
3973 0 : {
3974 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3975 0 : tree res = generic_simplify_11 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3976 0 : if (res) return res;
3977 : }
3978 : }
3979 : break;
3980 : }
3981 : default:;
3982 : }
3983 : }
3984 : break;
3985 : }
3986 1310 : case BIT_IOR_EXPR:
3987 1310 : {
3988 1310 : tree _q20 = TREE_OPERAND (_p0, 0);
3989 1310 : tree _q21 = TREE_OPERAND (_p0, 1);
3990 1310 : switch (TREE_CODE (_q20))
3991 : {
3992 481 : case BIT_NOT_EXPR:
3993 481 : {
3994 481 : tree _q30 = TREE_OPERAND (_q20, 0);
3995 481 : {
3996 481 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
3997 481 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
3998 481 : if (res) return res;
3999 : }
4000 480 : break;
4001 : }
4002 1309 : default:;
4003 : }
4004 1309 : switch (TREE_CODE (_q21))
4005 : {
4006 62 : case BIT_NOT_EXPR:
4007 62 : {
4008 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4009 62 : {
4010 62 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20, _p1 };
4011 62 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4012 62 : if (res) return res;
4013 : }
4014 62 : break;
4015 : }
4016 : default:;
4017 : }
4018 : break;
4019 : }
4020 987373 : default:;
4021 : }
4022 987373 : switch (TREE_CODE (_p1))
4023 : {
4024 521 : case BIT_IOR_EXPR:
4025 521 : {
4026 521 : tree _q30 = TREE_OPERAND (_p1, 0);
4027 521 : tree _q31 = TREE_OPERAND (_p1, 1);
4028 521 : switch (TREE_CODE (_q30))
4029 : {
4030 21 : case BIT_NOT_EXPR:
4031 21 : {
4032 21 : tree _q40 = TREE_OPERAND (_q30, 0);
4033 21 : {
4034 21 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q31, _p0 };
4035 21 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4036 21 : if (res) return res;
4037 : }
4038 21 : break;
4039 : }
4040 521 : default:;
4041 : }
4042 521 : switch (TREE_CODE (_q31))
4043 : {
4044 25 : case BIT_NOT_EXPR:
4045 25 : {
4046 25 : tree _q50 = TREE_OPERAND (_q31, 0);
4047 25 : {
4048 25 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q31, _q50, _q30, _p0 };
4049 25 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4050 25 : if (res) return res;
4051 : }
4052 25 : break;
4053 : }
4054 : default:;
4055 : }
4056 : break;
4057 : }
4058 987373 : default:;
4059 : }
4060 987373 : switch (TREE_CODE (_p0))
4061 : {
4062 3377 : case BIT_AND_EXPR:
4063 3377 : {
4064 3377 : tree _q20 = TREE_OPERAND (_p0, 0);
4065 3377 : tree _q21 = TREE_OPERAND (_p0, 1);
4066 3377 : switch (TREE_CODE (_q20))
4067 : {
4068 90 : case BIT_NOT_EXPR:
4069 90 : {
4070 90 : tree _q30 = TREE_OPERAND (_q20, 0);
4071 90 : {
4072 90 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
4073 90 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4074 90 : if (res) return res;
4075 : }
4076 89 : break;
4077 : }
4078 3376 : default:;
4079 : }
4080 3376 : switch (TREE_CODE (_q21))
4081 : {
4082 41 : case BIT_NOT_EXPR:
4083 41 : {
4084 41 : tree _q40 = TREE_OPERAND (_q21, 0);
4085 41 : {
4086 41 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20, _p1 };
4087 41 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4088 41 : if (res) return res;
4089 : }
4090 41 : break;
4091 : }
4092 : default:;
4093 : }
4094 : break;
4095 : }
4096 987372 : default:;
4097 : }
4098 987372 : switch (TREE_CODE (_p1))
4099 : {
4100 789 : case BIT_AND_EXPR:
4101 789 : {
4102 789 : tree _q30 = TREE_OPERAND (_p1, 0);
4103 789 : tree _q31 = TREE_OPERAND (_p1, 1);
4104 789 : switch (TREE_CODE (_q30))
4105 : {
4106 57 : case BIT_NOT_EXPR:
4107 57 : {
4108 57 : tree _q40 = TREE_OPERAND (_q30, 0);
4109 57 : {
4110 57 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q31, _p0 };
4111 57 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4112 57 : if (res) return res;
4113 : }
4114 57 : break;
4115 : }
4116 789 : default:;
4117 : }
4118 789 : switch (TREE_CODE (_q31))
4119 : {
4120 8 : case BIT_NOT_EXPR:
4121 8 : {
4122 8 : tree _q50 = TREE_OPERAND (_q31, 0);
4123 8 : {
4124 8 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q31, _q50, _q30, _p0 };
4125 8 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4126 8 : if (res) return res;
4127 : }
4128 8 : break;
4129 : }
4130 : default:;
4131 : }
4132 : break;
4133 : }
4134 987372 : default:;
4135 : }
4136 987372 : switch (TREE_CODE (_p0))
4137 : {
4138 629746 : CASE_CONVERT:
4139 629746 : {
4140 629746 : tree _q20 = TREE_OPERAND (_p0, 0);
4141 629746 : switch (TREE_CODE (_p1))
4142 : {
4143 625579 : CASE_CONVERT:
4144 625579 : {
4145 625579 : tree _q40 = TREE_OPERAND (_p1, 0);
4146 625579 : {
4147 625579 : tree _q40_pops[1];
4148 625579 : if (tree_maybe_bit_not (_q40, _q40_pops))
4149 : {
4150 0 : tree _q50 = _q40_pops[0];
4151 0 : {
4152 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
4153 0 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4154 0 : if (res) return res;
4155 : }
4156 : }
4157 : }
4158 625579 : break;
4159 : }
4160 629746 : default:;
4161 : }
4162 629746 : {
4163 629746 : tree _q20_pops[1];
4164 629746 : if (tree_maybe_bit_not (_q20, _q20_pops))
4165 : {
4166 59710 : tree _q30 = _q20_pops[0];
4167 59710 : switch (TREE_CODE (_p1))
4168 : {
4169 59660 : CASE_CONVERT:
4170 59660 : {
4171 59660 : tree _q50 = TREE_OPERAND (_p1, 0);
4172 59660 : {
4173 59660 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
4174 59660 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4175 59660 : if (res) return res;
4176 : }
4177 59660 : break;
4178 : }
4179 : default:;
4180 : }
4181 : }
4182 : }
4183 629746 : break;
4184 : }
4185 987372 : default:;
4186 : }
4187 987372 : {
4188 987372 : tree _p1_pops[1];
4189 987372 : if (tree_maybe_bit_not (_p1, _p1_pops))
4190 : {
4191 9318 : tree _q30 = _p1_pops[0];
4192 9318 : {
4193 9318 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
4194 9318 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4195 9318 : if (res) return res;
4196 : }
4197 : }
4198 : }
4199 987372 : {
4200 987372 : tree _p0_pops[1];
4201 987372 : if (tree_maybe_bit_not (_p0, _p0_pops))
4202 : {
4203 1052 : tree _q20 = _p0_pops[0];
4204 1052 : {
4205 1052 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
4206 1052 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4207 1052 : if (res) return res;
4208 : }
4209 : }
4210 : }
4211 987351 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4212 : {
4213 149 : {
4214 149 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4215 149 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1159;
4216 149 : {
4217 149 : tree _r;
4218 149 : _r = build_zero_cst (type);
4219 149 : if (TREE_SIDE_EFFECTS (captures[0]))
4220 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4221 149 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 884, __FILE__, __LINE__, true);
4222 149 : return _r;
4223 : }
4224 0 : next_after_fail1159:;
4225 : }
4226 : }
4227 987202 : if (integer_all_onesp (_p1))
4228 : {
4229 1067 : {
4230 1067 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4231 1067 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1160;
4232 1067 : {
4233 1067 : tree res_op0;
4234 1067 : res_op0 = captures[0];
4235 1067 : tree _r;
4236 1067 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4237 1067 : if (TREE_SIDE_EFFECTS (captures[1]))
4238 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4239 1067 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 885, __FILE__, __LINE__, true);
4240 1067 : return _r;
4241 : }
4242 0 : next_after_fail1160:;
4243 : }
4244 : }
4245 986135 : switch (TREE_CODE (_p0))
4246 : {
4247 1302 : case BIT_IOR_EXPR:
4248 1302 : {
4249 1302 : tree _q20 = TREE_OPERAND (_p0, 0);
4250 1302 : tree _q21 = TREE_OPERAND (_p0, 1);
4251 1302 : switch (TREE_CODE (_p1))
4252 : {
4253 179 : case BIT_IOR_EXPR:
4254 179 : {
4255 179 : tree _q50 = TREE_OPERAND (_p1, 0);
4256 179 : tree _q51 = TREE_OPERAND (_p1, 1);
4257 179 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4258 : {
4259 0 : switch (TREE_CODE (_q51))
4260 : {
4261 0 : case BIT_NOT_EXPR:
4262 0 : {
4263 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4264 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
4265 : {
4266 0 : {
4267 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4268 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures);
4269 0 : if (res) return res;
4270 : }
4271 : }
4272 : break;
4273 : }
4274 : default:;
4275 : }
4276 : }
4277 179 : switch (TREE_CODE (_q50))
4278 : {
4279 20 : case BIT_NOT_EXPR:
4280 20 : {
4281 20 : tree _q60 = TREE_OPERAND (_q50, 0);
4282 20 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
4283 : {
4284 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4285 : {
4286 1 : {
4287 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4288 1 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures);
4289 1 : if (res) return res;
4290 : }
4291 : }
4292 : }
4293 19 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4294 : {
4295 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4296 : {
4297 0 : {
4298 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
4299 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures);
4300 0 : if (res) return res;
4301 : }
4302 : }
4303 : }
4304 : break;
4305 : }
4306 178 : default:;
4307 : }
4308 178 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4309 : {
4310 0 : switch (TREE_CODE (_q51))
4311 : {
4312 0 : case BIT_NOT_EXPR:
4313 0 : {
4314 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4315 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4316 : {
4317 0 : {
4318 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
4319 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures);
4320 0 : if (res) return res;
4321 : }
4322 : }
4323 : break;
4324 : }
4325 : default:;
4326 : }
4327 : }
4328 : break;
4329 : }
4330 1301 : default:;
4331 : }
4332 1301 : switch (TREE_CODE (_q21))
4333 : {
4334 62 : case BIT_NOT_EXPR:
4335 62 : {
4336 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4337 62 : switch (TREE_CODE (_p1))
4338 : {
4339 9 : case BIT_IOR_EXPR:
4340 9 : {
4341 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4342 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4343 9 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4344 : {
4345 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
4346 : {
4347 0 : {
4348 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
4349 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures);
4350 0 : if (res) return res;
4351 : }
4352 : }
4353 : }
4354 : break;
4355 : }
4356 : default:;
4357 : }
4358 : break;
4359 : }
4360 1301 : default:;
4361 : }
4362 1301 : switch (TREE_CODE (_q20))
4363 : {
4364 480 : case BIT_NOT_EXPR:
4365 480 : {
4366 480 : tree _q30 = TREE_OPERAND (_q20, 0);
4367 480 : switch (TREE_CODE (_p1))
4368 : {
4369 28 : case BIT_IOR_EXPR:
4370 28 : {
4371 28 : tree _q60 = TREE_OPERAND (_p1, 0);
4372 28 : tree _q61 = TREE_OPERAND (_p1, 1);
4373 28 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
4374 : {
4375 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
4376 : {
4377 0 : {
4378 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
4379 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures);
4380 0 : if (res) return res;
4381 : }
4382 : }
4383 : }
4384 28 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4385 : {
4386 9 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
4387 : {
4388 0 : {
4389 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
4390 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures);
4391 0 : if (res) return res;
4392 : }
4393 : }
4394 9 : switch (TREE_CODE (_q61))
4395 : {
4396 0 : case BIT_NOT_EXPR:
4397 0 : {
4398 0 : tree _q80 = TREE_OPERAND (_q61, 0);
4399 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
4400 : {
4401 0 : {
4402 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
4403 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4404 0 : if (res) return res;
4405 : }
4406 : }
4407 : break;
4408 : }
4409 : default:;
4410 : }
4411 : }
4412 28 : switch (TREE_CODE (_q60))
4413 : {
4414 1 : case BIT_NOT_EXPR:
4415 1 : {
4416 1 : tree _q70 = TREE_OPERAND (_q60, 0);
4417 1 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
4418 : {
4419 1 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
4420 : {
4421 1 : {
4422 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
4423 1 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4424 1 : if (res) return res;
4425 : }
4426 : }
4427 : }
4428 : break;
4429 : }
4430 : default:;
4431 : }
4432 : break;
4433 : }
4434 9 : case BIT_XOR_EXPR:
4435 9 : {
4436 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4437 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4438 9 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4439 : {
4440 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
4441 : {
4442 0 : {
4443 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
4444 0 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
4445 0 : if (res) return res;
4446 : }
4447 : }
4448 : }
4449 : break;
4450 : }
4451 479 : default:;
4452 : }
4453 479 : {
4454 479 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p1 };
4455 479 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
4456 479 : if (res) return res;
4457 : }
4458 431 : break;
4459 : }
4460 1252 : default:;
4461 : }
4462 1252 : switch (TREE_CODE (_q21))
4463 : {
4464 62 : case BIT_NOT_EXPR:
4465 62 : {
4466 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4467 62 : switch (TREE_CODE (_p1))
4468 : {
4469 9 : case BIT_IOR_EXPR:
4470 9 : {
4471 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4472 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4473 9 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
4474 : {
4475 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
4476 : {
4477 0 : {
4478 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
4479 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures);
4480 0 : if (res) return res;
4481 : }
4482 : }
4483 : }
4484 : break;
4485 : }
4486 9 : case BIT_XOR_EXPR:
4487 9 : {
4488 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4489 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4490 9 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
4491 : {
4492 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
4493 : {
4494 0 : {
4495 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
4496 0 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
4497 0 : if (res) return res;
4498 : }
4499 : }
4500 : }
4501 : break;
4502 : }
4503 : default:;
4504 : }
4505 : break;
4506 : }
4507 1252 : default:;
4508 : }
4509 1252 : switch (TREE_CODE (_p1))
4510 : {
4511 65 : case BIT_AND_EXPR:
4512 65 : {
4513 65 : tree _q50 = TREE_OPERAND (_p1, 0);
4514 65 : tree _q51 = TREE_OPERAND (_p1, 1);
4515 65 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4516 : {
4517 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4518 : {
4519 0 : {
4520 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4521 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
4522 0 : if (res) return res;
4523 : }
4524 : }
4525 : }
4526 : break;
4527 : }
4528 36 : case BIT_XOR_EXPR:
4529 36 : {
4530 36 : tree _q50 = TREE_OPERAND (_p1, 0);
4531 36 : tree _q51 = TREE_OPERAND (_p1, 1);
4532 36 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4533 : {
4534 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4535 : {
4536 0 : {
4537 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4538 0 : tree res = generic_simplify_20 (loc, type, _p0, _p1, captures);
4539 0 : if (res) return res;
4540 : }
4541 : }
4542 : }
4543 : break;
4544 : }
4545 1252 : default:;
4546 : }
4547 1252 : switch (TREE_CODE (_q21))
4548 : {
4549 62 : case BIT_NOT_EXPR:
4550 62 : {
4551 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4552 62 : switch (TREE_CODE (_p1))
4553 : {
4554 9 : case BIT_IOR_EXPR:
4555 9 : {
4556 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4557 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4558 9 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
4559 : {
4560 0 : switch (TREE_CODE (_q61))
4561 : {
4562 0 : case BIT_NOT_EXPR:
4563 0 : {
4564 0 : tree _q80 = TREE_OPERAND (_q61, 0);
4565 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
4566 : {
4567 0 : {
4568 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
4569 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4570 0 : if (res) return res;
4571 : }
4572 : }
4573 : break;
4574 : }
4575 : default:;
4576 : }
4577 : }
4578 9 : switch (TREE_CODE (_q60))
4579 : {
4580 0 : case BIT_NOT_EXPR:
4581 0 : {
4582 0 : tree _q70 = TREE_OPERAND (_q60, 0);
4583 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4584 : {
4585 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
4586 : {
4587 0 : {
4588 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
4589 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4590 0 : if (res) return res;
4591 : }
4592 : }
4593 : }
4594 : break;
4595 : }
4596 : default:;
4597 : }
4598 : break;
4599 : }
4600 : default:;
4601 : }
4602 : break;
4603 : }
4604 1252 : default:;
4605 : }
4606 1252 : switch (TREE_CODE (_p1))
4607 : {
4608 24 : CASE_CONVERT:
4609 24 : {
4610 24 : tree _q50 = TREE_OPERAND (_p1, 0);
4611 24 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
4612 : {
4613 0 : {
4614 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
4615 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
4616 0 : if (res) return res;
4617 : }
4618 : }
4619 24 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
4620 : {
4621 0 : {
4622 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q21 };
4623 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
4624 0 : if (res) return res;
4625 : }
4626 : }
4627 : break;
4628 : }
4629 1252 : default:;
4630 : }
4631 1252 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
4632 : {
4633 3 : {
4634 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
4635 3 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
4636 3 : if (res) return res;
4637 : }
4638 : }
4639 1249 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
4640 : {
4641 3 : {
4642 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q21 };
4643 3 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
4644 3 : if (res) return res;
4645 : }
4646 : }
4647 1246 : {
4648 1246 : tree _q20_pops[1];
4649 1246 : if (tree_nop_convert (_q20, _q20_pops))
4650 : {
4651 8 : tree _q30 = _q20_pops[0];
4652 8 : switch (TREE_CODE (_q30))
4653 : {
4654 8 : case BIT_NOT_EXPR:
4655 8 : {
4656 8 : tree _q40 = TREE_OPERAND (_q30, 0);
4657 8 : {
4658 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q21, _p1 };
4659 8 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
4660 8 : if (res) return res;
4661 : }
4662 0 : break;
4663 : }
4664 : default:;
4665 : }
4666 : }
4667 : }
4668 1238 : switch (TREE_CODE (_q21))
4669 : {
4670 62 : case BIT_NOT_EXPR:
4671 62 : {
4672 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4673 62 : {
4674 62 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q20, _p1 };
4675 62 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
4676 62 : if (res) return res;
4677 : }
4678 54 : break;
4679 : }
4680 1230 : default:;
4681 : }
4682 1230 : {
4683 1230 : tree _q21_pops[1];
4684 1230 : if (tree_nop_convert (_q21, _q21_pops))
4685 : {
4686 0 : tree _q40 = _q21_pops[0];
4687 0 : switch (TREE_CODE (_q40))
4688 : {
4689 0 : case BIT_NOT_EXPR:
4690 0 : {
4691 0 : tree _q50 = TREE_OPERAND (_q40, 0);
4692 0 : {
4693 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q20, _p1 };
4694 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
4695 0 : if (res) return res;
4696 : }
4697 0 : break;
4698 : }
4699 : default:;
4700 : }
4701 : }
4702 : }
4703 1230 : break;
4704 : }
4705 3912 : case BIT_XOR_EXPR:
4706 3912 : {
4707 3912 : tree _q20 = TREE_OPERAND (_p0, 0);
4708 3912 : tree _q21 = TREE_OPERAND (_p0, 1);
4709 3912 : switch (TREE_CODE (_p1))
4710 : {
4711 203 : case BIT_IOR_EXPR:
4712 203 : {
4713 203 : tree _q50 = TREE_OPERAND (_p1, 0);
4714 203 : tree _q51 = TREE_OPERAND (_p1, 1);
4715 203 : switch (TREE_CODE (_q50))
4716 : {
4717 1 : case BIT_NOT_EXPR:
4718 1 : {
4719 1 : tree _q60 = TREE_OPERAND (_q50, 0);
4720 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4721 : {
4722 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4723 : {
4724 1 : {
4725 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q21, _p0 };
4726 1 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
4727 1 : if (res) return res;
4728 : }
4729 : }
4730 : }
4731 : break;
4732 : }
4733 202 : default:;
4734 : }
4735 202 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4736 : {
4737 0 : switch (TREE_CODE (_q51))
4738 : {
4739 0 : case BIT_NOT_EXPR:
4740 0 : {
4741 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4742 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4743 : {
4744 0 : {
4745 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q21, _p0 };
4746 0 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
4747 0 : if (res) return res;
4748 : }
4749 : }
4750 : break;
4751 : }
4752 : default:;
4753 : }
4754 : }
4755 202 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4756 : {
4757 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4758 : {
4759 0 : {
4760 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4761 0 : tree res = generic_simplify_20 (loc, type, _p0, _p1, captures);
4762 0 : if (res) return res;
4763 : }
4764 : }
4765 : }
4766 : break;
4767 : }
4768 41 : case BIT_AND_EXPR:
4769 41 : {
4770 41 : tree _q50 = TREE_OPERAND (_p1, 0);
4771 41 : tree _q51 = TREE_OPERAND (_p1, 1);
4772 41 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4773 : {
4774 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4775 : {
4776 0 : {
4777 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4778 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4779 0 : if (res) return res;
4780 : }
4781 : }
4782 : }
4783 : break;
4784 : }
4785 198 : CASE_CONVERT:
4786 198 : {
4787 198 : tree _q50 = TREE_OPERAND (_p1, 0);
4788 198 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
4789 : {
4790 0 : {
4791 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
4792 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
4793 0 : if (res) return res;
4794 : }
4795 : }
4796 198 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
4797 : {
4798 0 : {
4799 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q20 };
4800 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
4801 0 : if (res) return res;
4802 : }
4803 : }
4804 : break;
4805 : }
4806 3911 : default:;
4807 : }
4808 3911 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
4809 : {
4810 0 : {
4811 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
4812 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
4813 0 : if (res) return res;
4814 : }
4815 : }
4816 3911 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
4817 : {
4818 11 : {
4819 11 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q20 };
4820 11 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
4821 11 : if (res) return res;
4822 : }
4823 : }
4824 : break;
4825 : }
4826 3376 : case BIT_AND_EXPR:
4827 3376 : {
4828 3376 : tree _q20 = TREE_OPERAND (_p0, 0);
4829 3376 : tree _q21 = TREE_OPERAND (_p0, 1);
4830 3376 : switch (TREE_CODE (_p1))
4831 : {
4832 74 : case BIT_IOR_EXPR:
4833 74 : {
4834 74 : tree _q50 = TREE_OPERAND (_p1, 0);
4835 74 : tree _q51 = TREE_OPERAND (_p1, 1);
4836 74 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4837 : {
4838 18 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4839 : {
4840 0 : {
4841 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4842 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
4843 0 : if (res) return res;
4844 : }
4845 : }
4846 : }
4847 : break;
4848 : }
4849 30 : case BIT_XOR_EXPR:
4850 30 : {
4851 30 : tree _q50 = TREE_OPERAND (_p1, 0);
4852 30 : tree _q51 = TREE_OPERAND (_p1, 1);
4853 30 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4854 : {
4855 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4856 : {
4857 0 : {
4858 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4859 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4860 0 : if (res) return res;
4861 : }
4862 : }
4863 : }
4864 : break;
4865 : }
4866 3376 : default:;
4867 : }
4868 3376 : switch (TREE_CODE (_q21))
4869 : {
4870 1551 : case INTEGER_CST:
4871 1551 : {
4872 1551 : switch (TREE_CODE (_p1))
4873 : {
4874 15 : CASE_CONVERT:
4875 15 : {
4876 15 : tree _q50 = TREE_OPERAND (_p1, 0);
4877 15 : switch (TREE_CODE (_q50))
4878 : {
4879 0 : case BIT_AND_EXPR:
4880 0 : {
4881 0 : tree _q60 = TREE_OPERAND (_q50, 0);
4882 0 : tree _q61 = TREE_OPERAND (_q50, 1);
4883 0 : switch (TREE_CODE (_q61))
4884 : {
4885 0 : case INTEGER_CST:
4886 0 : {
4887 0 : {
4888 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q60, _q61 };
4889 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4890 0 : if (res) return res;
4891 : }
4892 0 : break;
4893 : }
4894 : default:;
4895 : }
4896 : break;
4897 : }
4898 : default:;
4899 : }
4900 : break;
4901 : }
4902 210 : case BIT_AND_EXPR:
4903 210 : {
4904 210 : tree _q50 = TREE_OPERAND (_p1, 0);
4905 210 : tree _q51 = TREE_OPERAND (_p1, 1);
4906 210 : switch (TREE_CODE (_q51))
4907 : {
4908 210 : case INTEGER_CST:
4909 210 : {
4910 210 : {
4911 210 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
4912 210 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4913 210 : if (res) return res;
4914 : }
4915 209 : break;
4916 : }
4917 : default:;
4918 : }
4919 : break;
4920 : }
4921 : default:;
4922 : }
4923 : break;
4924 : }
4925 : default:;
4926 : }
4927 : break;
4928 : }
4929 629589 : CASE_CONVERT:
4930 629589 : {
4931 629589 : tree _q20 = TREE_OPERAND (_p0, 0);
4932 629589 : switch (TREE_CODE (_q20))
4933 : {
4934 24 : case BIT_AND_EXPR:
4935 24 : {
4936 24 : tree _q30 = TREE_OPERAND (_q20, 0);
4937 24 : tree _q31 = TREE_OPERAND (_q20, 1);
4938 24 : switch (TREE_CODE (_q31))
4939 : {
4940 0 : case INTEGER_CST:
4941 0 : {
4942 0 : switch (TREE_CODE (_p1))
4943 : {
4944 0 : CASE_CONVERT:
4945 0 : {
4946 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4947 0 : switch (TREE_CODE (_q60))
4948 : {
4949 0 : case BIT_AND_EXPR:
4950 0 : {
4951 0 : tree _q70 = TREE_OPERAND (_q60, 0);
4952 0 : tree _q71 = TREE_OPERAND (_q60, 1);
4953 0 : switch (TREE_CODE (_q71))
4954 : {
4955 0 : case INTEGER_CST:
4956 0 : {
4957 0 : {
4958 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q60, _q70, _q71 };
4959 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4960 0 : if (res) return res;
4961 : }
4962 0 : break;
4963 : }
4964 : default:;
4965 : }
4966 : break;
4967 : }
4968 : default:;
4969 : }
4970 : break;
4971 : }
4972 0 : case BIT_AND_EXPR:
4973 0 : {
4974 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4975 0 : tree _q61 = TREE_OPERAND (_p1, 1);
4976 0 : switch (TREE_CODE (_q61))
4977 : {
4978 0 : case INTEGER_CST:
4979 0 : {
4980 0 : {
4981 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1, _q60, _q61 };
4982 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4983 0 : if (res) return res;
4984 : }
4985 0 : break;
4986 : }
4987 : default:;
4988 : }
4989 : break;
4990 : }
4991 : default:;
4992 : }
4993 : break;
4994 : }
4995 : default:;
4996 : }
4997 : break;
4998 : }
4999 24 : case BIT_IOR_EXPR:
5000 24 : {
5001 24 : tree _q30 = TREE_OPERAND (_q20, 0);
5002 24 : tree _q31 = TREE_OPERAND (_q20, 1);
5003 24 : switch (TREE_CODE (_p1))
5004 : {
5005 16 : CASE_CONVERT:
5006 16 : {
5007 16 : tree _q60 = TREE_OPERAND (_p1, 0);
5008 16 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
5009 : {
5010 0 : {
5011 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
5012 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
5013 0 : if (res) return res;
5014 : }
5015 : }
5016 16 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
5017 : {
5018 0 : {
5019 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
5020 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
5021 0 : if (res) return res;
5022 : }
5023 : }
5024 : break;
5025 : }
5026 24 : default:;
5027 : }
5028 24 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
5029 : {
5030 0 : {
5031 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
5032 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
5033 0 : if (res) return res;
5034 : }
5035 : }
5036 24 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
5037 : {
5038 0 : {
5039 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
5040 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
5041 0 : if (res) return res;
5042 : }
5043 : }
5044 : break;
5045 : }
5046 629589 : default:;
5047 : }
5048 629589 : switch (TREE_CODE (_p1))
5049 : {
5050 625572 : CASE_CONVERT:
5051 625572 : {
5052 625572 : tree _q40 = TREE_OPERAND (_p1, 0);
5053 625572 : switch (TREE_CODE (_q40))
5054 : {
5055 0 : case BIT_IOR_EXPR:
5056 0 : {
5057 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5058 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5059 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
5060 : {
5061 0 : {
5062 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
5063 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
5064 0 : if (res) return res;
5065 : }
5066 : }
5067 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
5068 : {
5069 0 : {
5070 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q50, _q20 };
5071 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
5072 0 : if (res) return res;
5073 : }
5074 : }
5075 : break;
5076 : }
5077 : default:;
5078 : }
5079 : break;
5080 : }
5081 26 : case BIT_IOR_EXPR:
5082 26 : {
5083 26 : tree _q40 = TREE_OPERAND (_p1, 0);
5084 26 : tree _q41 = TREE_OPERAND (_p1, 1);
5085 26 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
5086 : {
5087 0 : {
5088 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
5089 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
5090 0 : if (res) return res;
5091 : }
5092 : }
5093 26 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
5094 : {
5095 0 : {
5096 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
5097 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
5098 0 : if (res) return res;
5099 : }
5100 : }
5101 : break;
5102 : }
5103 : default:;
5104 : }
5105 : break;
5106 : }
5107 986050 : default:;
5108 : }
5109 986050 : switch (TREE_CODE (_p1))
5110 : {
5111 753379 : CASE_CONVERT:
5112 753379 : {
5113 753379 : tree _q30 = TREE_OPERAND (_p1, 0);
5114 753379 : switch (TREE_CODE (_q30))
5115 : {
5116 6 : case BIT_IOR_EXPR:
5117 6 : {
5118 6 : tree _q40 = TREE_OPERAND (_q30, 0);
5119 6 : tree _q41 = TREE_OPERAND (_q30, 1);
5120 6 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
5121 : {
5122 0 : {
5123 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _p0 };
5124 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
5125 0 : if (res) return res;
5126 : }
5127 : }
5128 6 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
5129 : {
5130 0 : {
5131 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _p0 };
5132 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
5133 0 : if (res) return res;
5134 : }
5135 : }
5136 : break;
5137 : }
5138 : default:;
5139 : }
5140 : break;
5141 : }
5142 518 : case BIT_IOR_EXPR:
5143 518 : {
5144 518 : tree _q30 = TREE_OPERAND (_p1, 0);
5145 518 : tree _q31 = TREE_OPERAND (_p1, 1);
5146 518 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
5147 : {
5148 1 : {
5149 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
5150 1 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
5151 1 : if (res) return res;
5152 : }
5153 : }
5154 517 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
5155 : {
5156 1 : {
5157 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
5158 1 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
5159 1 : if (res) return res;
5160 : }
5161 : }
5162 : break;
5163 : }
5164 986048 : default:;
5165 : }
5166 986048 : {
5167 986048 : tree _p0_pops[1];
5168 986048 : if (tree_nop_convert (_p0, _p0_pops))
5169 : {
5170 504048 : tree _q20 = _p0_pops[0];
5171 504048 : switch (TREE_CODE (_q20))
5172 : {
5173 16 : case BIT_IOR_EXPR:
5174 16 : {
5175 16 : tree _q30 = TREE_OPERAND (_q20, 0);
5176 16 : tree _q31 = TREE_OPERAND (_q20, 1);
5177 16 : {
5178 16 : tree _q30_pops[1];
5179 16 : if (tree_nop_convert (_q30, _q30_pops))
5180 : {
5181 0 : tree _q40 = _q30_pops[0];
5182 0 : switch (TREE_CODE (_q40))
5183 : {
5184 0 : case BIT_NOT_EXPR:
5185 0 : {
5186 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5187 0 : {
5188 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q31, _p1 };
5189 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
5190 0 : if (res) return res;
5191 : }
5192 0 : break;
5193 : }
5194 : default:;
5195 : }
5196 : }
5197 : }
5198 16 : {
5199 16 : tree _q31_pops[1];
5200 16 : if (tree_nop_convert (_q31, _q31_pops))
5201 : {
5202 0 : tree _q50 = _q31_pops[0];
5203 0 : switch (TREE_CODE (_q50))
5204 : {
5205 0 : case BIT_NOT_EXPR:
5206 0 : {
5207 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5208 0 : {
5209 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q30, _p1 };
5210 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
5211 0 : if (res) return res;
5212 : }
5213 0 : break;
5214 : }
5215 : default:;
5216 : }
5217 : }
5218 : }
5219 16 : switch (TREE_CODE (_q30))
5220 : {
5221 16 : case BIT_NOT_EXPR:
5222 16 : {
5223 16 : tree _q40 = TREE_OPERAND (_q30, 0);
5224 16 : {
5225 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q31, _p1 };
5226 16 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
5227 16 : if (res) return res;
5228 : }
5229 0 : break;
5230 : }
5231 0 : default:;
5232 : }
5233 0 : switch (TREE_CODE (_q31))
5234 : {
5235 0 : case BIT_NOT_EXPR:
5236 0 : {
5237 0 : tree _q50 = TREE_OPERAND (_q31, 0);
5238 0 : {
5239 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q30, _p1 };
5240 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
5241 0 : if (res) return res;
5242 : }
5243 0 : break;
5244 : }
5245 : default:;
5246 : }
5247 : break;
5248 : }
5249 : default:;
5250 : }
5251 : }
5252 : }
5253 986032 : switch (TREE_CODE (_p1))
5254 : {
5255 516 : case BIT_IOR_EXPR:
5256 516 : {
5257 516 : tree _q30 = TREE_OPERAND (_p1, 0);
5258 516 : tree _q31 = TREE_OPERAND (_p1, 1);
5259 516 : {
5260 516 : tree _q30_pops[1];
5261 516 : if (tree_nop_convert (_q30, _q30_pops))
5262 : {
5263 2 : tree _q40 = _q30_pops[0];
5264 2 : switch (TREE_CODE (_q40))
5265 : {
5266 0 : case BIT_NOT_EXPR:
5267 0 : {
5268 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5269 0 : {
5270 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q31, _p0 };
5271 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
5272 0 : if (res) return res;
5273 : }
5274 0 : break;
5275 : }
5276 : default:;
5277 : }
5278 : }
5279 : }
5280 516 : {
5281 516 : tree _q31_pops[1];
5282 516 : if (tree_nop_convert (_q31, _q31_pops))
5283 : {
5284 2 : tree _q50 = _q31_pops[0];
5285 2 : switch (TREE_CODE (_q50))
5286 : {
5287 0 : case BIT_NOT_EXPR:
5288 0 : {
5289 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5290 0 : {
5291 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q30, _p0 };
5292 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
5293 0 : if (res) return res;
5294 : }
5295 0 : break;
5296 : }
5297 : default:;
5298 : }
5299 : }
5300 : }
5301 516 : switch (TREE_CODE (_q30))
5302 : {
5303 18 : case BIT_NOT_EXPR:
5304 18 : {
5305 18 : tree _q40 = TREE_OPERAND (_q30, 0);
5306 18 : {
5307 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q31, _p0 };
5308 18 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
5309 18 : if (res) return res;
5310 : }
5311 18 : break;
5312 : }
5313 516 : default:;
5314 : }
5315 516 : switch (TREE_CODE (_q31))
5316 : {
5317 25 : case BIT_NOT_EXPR:
5318 25 : {
5319 25 : tree _q50 = TREE_OPERAND (_q31, 0);
5320 25 : {
5321 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q30, _p0 };
5322 25 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
5323 25 : if (res) return res;
5324 : }
5325 17 : break;
5326 : }
5327 : default:;
5328 : }
5329 : break;
5330 : }
5331 986024 : default:;
5332 : }
5333 986024 : {
5334 986024 : tree _p1_pops[1];
5335 986024 : if (tree_nop_convert (_p1, _p1_pops))
5336 : {
5337 630382 : tree _q30 = _p1_pops[0];
5338 630382 : switch (TREE_CODE (_q30))
5339 : {
5340 0 : case BIT_IOR_EXPR:
5341 0 : {
5342 0 : tree _q40 = TREE_OPERAND (_q30, 0);
5343 0 : tree _q41 = TREE_OPERAND (_q30, 1);
5344 0 : {
5345 0 : tree _q40_pops[1];
5346 0 : if (tree_nop_convert (_q40, _q40_pops))
5347 : {
5348 0 : tree _q50 = _q40_pops[0];
5349 0 : switch (TREE_CODE (_q50))
5350 : {
5351 0 : case BIT_NOT_EXPR:
5352 0 : {
5353 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5354 0 : {
5355 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q41, _p0 };
5356 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
5357 0 : if (res) return res;
5358 : }
5359 0 : break;
5360 : }
5361 : default:;
5362 : }
5363 : }
5364 : }
5365 0 : {
5366 0 : tree _q41_pops[1];
5367 0 : if (tree_nop_convert (_q41, _q41_pops))
5368 : {
5369 0 : tree _q60 = _q41_pops[0];
5370 0 : switch (TREE_CODE (_q60))
5371 : {
5372 0 : case BIT_NOT_EXPR:
5373 0 : {
5374 0 : tree _q70 = TREE_OPERAND (_q60, 0);
5375 0 : {
5376 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q70, _q40, _p0 };
5377 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
5378 0 : if (res) return res;
5379 : }
5380 0 : break;
5381 : }
5382 : default:;
5383 : }
5384 : }
5385 : }
5386 0 : switch (TREE_CODE (_q40))
5387 : {
5388 0 : case BIT_NOT_EXPR:
5389 0 : {
5390 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5391 0 : {
5392 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q41, _p0 };
5393 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
5394 0 : if (res) return res;
5395 : }
5396 0 : break;
5397 : }
5398 0 : default:;
5399 : }
5400 0 : switch (TREE_CODE (_q41))
5401 : {
5402 0 : case BIT_NOT_EXPR:
5403 0 : {
5404 0 : tree _q60 = TREE_OPERAND (_q41, 0);
5405 0 : {
5406 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q40, _p0 };
5407 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
5408 0 : if (res) return res;
5409 : }
5410 0 : break;
5411 : }
5412 : default:;
5413 : }
5414 : break;
5415 : }
5416 : default:;
5417 : }
5418 : }
5419 : }
5420 986024 : switch (TREE_CODE (_p0))
5421 : {
5422 629565 : CASE_CONVERT:
5423 629565 : {
5424 629565 : tree _q20 = TREE_OPERAND (_p0, 0);
5425 629565 : switch (TREE_CODE (_q20))
5426 : {
5427 50 : case BIT_NOT_EXPR:
5428 50 : {
5429 50 : tree _q30 = TREE_OPERAND (_q20, 0);
5430 50 : switch (TREE_CODE (_p1))
5431 : {
5432 0 : CASE_CONVERT:
5433 0 : {
5434 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5435 0 : switch (TREE_CODE (_q50))
5436 : {
5437 0 : case BIT_NOT_EXPR:
5438 0 : {
5439 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5440 0 : {
5441 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 };
5442 0 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures);
5443 0 : if (res) return res;
5444 : }
5445 0 : break;
5446 : }
5447 : default:;
5448 : }
5449 : break;
5450 : }
5451 0 : case BIT_NOT_EXPR:
5452 0 : {
5453 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5454 0 : {
5455 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
5456 0 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures);
5457 0 : if (res) return res;
5458 : }
5459 0 : break;
5460 : }
5461 26 : case INTEGER_CST:
5462 26 : {
5463 26 : {
5464 26 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 };
5465 26 : tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
5466 26 : if (res) return res;
5467 : }
5468 24 : break;
5469 : }
5470 : default:;
5471 : }
5472 : break;
5473 : }
5474 : default:;
5475 : }
5476 : break;
5477 : }
5478 484 : case BIT_NOT_EXPR:
5479 484 : {
5480 484 : tree _q20 = TREE_OPERAND (_p0, 0);
5481 484 : switch (TREE_CODE (_p1))
5482 : {
5483 18 : CASE_CONVERT:
5484 18 : {
5485 18 : tree _q40 = TREE_OPERAND (_p1, 0);
5486 18 : switch (TREE_CODE (_q40))
5487 : {
5488 0 : case BIT_NOT_EXPR:
5489 0 : {
5490 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5491 0 : {
5492 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
5493 0 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures);
5494 0 : if (res) return res;
5495 : }
5496 0 : break;
5497 : }
5498 : default:;
5499 : }
5500 : break;
5501 : }
5502 10 : case BIT_NOT_EXPR:
5503 10 : {
5504 10 : tree _q40 = TREE_OPERAND (_p1, 0);
5505 10 : {
5506 10 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
5507 10 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures);
5508 10 : if (res) return res;
5509 : }
5510 0 : break;
5511 : }
5512 31 : case INTEGER_CST:
5513 31 : {
5514 31 : {
5515 31 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
5516 31 : tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
5517 31 : if (res) return res;
5518 : }
5519 0 : break;
5520 : }
5521 443 : default:;
5522 : }
5523 443 : {
5524 443 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1 };
5525 443 : tree res = generic_simplify_27 (loc, type, _p0, _p1, captures);
5526 443 : if (res) return res;
5527 : }
5528 0 : break;
5529 : }
5530 3373 : case BIT_AND_EXPR:
5531 3373 : {
5532 3373 : tree _q20 = TREE_OPERAND (_p0, 0);
5533 3373 : tree _q21 = TREE_OPERAND (_p0, 1);
5534 3373 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5535 : {
5536 75 : {
5537 75 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
5538 75 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5539 75 : if (res) return res;
5540 : }
5541 : }
5542 3298 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5543 : {
5544 3 : {
5545 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
5546 3 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5547 3 : if (res) return res;
5548 : }
5549 : }
5550 3295 : switch (TREE_CODE (_p1))
5551 : {
5552 353 : case BIT_AND_EXPR:
5553 353 : {
5554 353 : tree _q50 = TREE_OPERAND (_p1, 0);
5555 353 : tree _q51 = TREE_OPERAND (_p1, 1);
5556 353 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
5557 : {
5558 21 : {
5559 21 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
5560 21 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5561 21 : if (res) return res;
5562 : }
5563 : }
5564 332 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
5565 : {
5566 0 : {
5567 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q20 };
5568 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5569 0 : if (res) return res;
5570 : }
5571 : }
5572 332 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
5573 : {
5574 0 : {
5575 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q21 };
5576 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5577 0 : if (res) return res;
5578 : }
5579 : }
5580 332 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q21, 0))
5581 : {
5582 201 : {
5583 201 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q21 };
5584 201 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5585 201 : if (res) return res;
5586 : }
5587 : }
5588 : break;
5589 : }
5590 : default:;
5591 : }
5592 : break;
5593 : }
5594 985238 : default:;
5595 : }
5596 985238 : switch (TREE_CODE (_p1))
5597 : {
5598 513 : case BIT_AND_EXPR:
5599 513 : {
5600 513 : tree _q30 = TREE_OPERAND (_p1, 0);
5601 513 : tree _q31 = TREE_OPERAND (_p1, 1);
5602 513 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5603 : {
5604 0 : {
5605 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
5606 0 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5607 0 : if (res) return res;
5608 : }
5609 : }
5610 513 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5611 : {
5612 0 : {
5613 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
5614 0 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5615 0 : if (res) return res;
5616 : }
5617 : }
5618 : break;
5619 : }
5620 985238 : default:;
5621 : }
5622 985238 : switch (TREE_CODE (_p0))
5623 : {
5624 629563 : CASE_CONVERT:
5625 629563 : {
5626 629563 : tree _q20 = TREE_OPERAND (_p0, 0);
5627 629563 : switch (TREE_CODE (_q20))
5628 : {
5629 24 : case BIT_AND_EXPR:
5630 24 : {
5631 24 : tree _q30 = TREE_OPERAND (_q20, 0);
5632 24 : tree _q31 = TREE_OPERAND (_q20, 1);
5633 24 : switch (TREE_CODE (_p1))
5634 : {
5635 8 : CASE_CONVERT:
5636 8 : {
5637 8 : tree _q60 = TREE_OPERAND (_p1, 0);
5638 8 : switch (TREE_CODE (_q60))
5639 : {
5640 0 : case BIT_AND_EXPR:
5641 0 : {
5642 0 : tree _q70 = TREE_OPERAND (_q60, 0);
5643 0 : tree _q71 = TREE_OPERAND (_q60, 1);
5644 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
5645 : {
5646 0 : {
5647 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
5648 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5649 0 : if (res) return res;
5650 : }
5651 : }
5652 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
5653 : {
5654 0 : {
5655 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
5656 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5657 0 : if (res) return res;
5658 : }
5659 : }
5660 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
5661 : {
5662 0 : {
5663 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
5664 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5665 0 : if (res) return res;
5666 : }
5667 : }
5668 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
5669 : {
5670 0 : {
5671 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
5672 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5673 0 : if (res) return res;
5674 : }
5675 : }
5676 : break;
5677 : }
5678 : default:;
5679 : }
5680 : break;
5681 : }
5682 : default:;
5683 : }
5684 : break;
5685 : }
5686 59773 : case BIT_XOR_EXPR:
5687 59773 : {
5688 59773 : tree _q30 = TREE_OPERAND (_q20, 0);
5689 59773 : tree _q31 = TREE_OPERAND (_q20, 1);
5690 59773 : switch (TREE_CODE (_p1))
5691 : {
5692 59708 : CASE_CONVERT:
5693 59708 : {
5694 59708 : tree _q60 = TREE_OPERAND (_p1, 0);
5695 59708 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
5696 : {
5697 0 : {
5698 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
5699 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
5700 0 : if (res) return res;
5701 : }
5702 : }
5703 59708 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
5704 : {
5705 0 : {
5706 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q30 };
5707 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
5708 0 : if (res) return res;
5709 : }
5710 : }
5711 : break;
5712 : }
5713 59773 : default:;
5714 : }
5715 59773 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
5716 : {
5717 0 : {
5718 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
5719 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
5720 0 : if (res) return res;
5721 : }
5722 : }
5723 59773 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
5724 : {
5725 0 : {
5726 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q30 };
5727 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
5728 0 : if (res) return res;
5729 : }
5730 : }
5731 : break;
5732 : }
5733 629563 : default:;
5734 : }
5735 629563 : switch (TREE_CODE (_p1))
5736 : {
5737 625556 : CASE_CONVERT:
5738 625556 : {
5739 625556 : tree _q40 = TREE_OPERAND (_p1, 0);
5740 625556 : switch (TREE_CODE (_q40))
5741 : {
5742 0 : case BIT_XOR_EXPR:
5743 0 : {
5744 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5745 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5746 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
5747 : {
5748 0 : {
5749 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
5750 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
5751 0 : if (res) return res;
5752 : }
5753 : }
5754 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
5755 : {
5756 0 : {
5757 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q50, _q20 };
5758 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
5759 0 : if (res) return res;
5760 : }
5761 : }
5762 : break;
5763 : }
5764 : default:;
5765 : }
5766 : break;
5767 : }
5768 2 : case BIT_XOR_EXPR:
5769 2 : {
5770 2 : tree _q40 = TREE_OPERAND (_p1, 0);
5771 2 : tree _q41 = TREE_OPERAND (_p1, 1);
5772 2 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
5773 : {
5774 0 : {
5775 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
5776 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
5777 0 : if (res) return res;
5778 : }
5779 : }
5780 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
5781 : {
5782 0 : {
5783 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
5784 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
5785 0 : if (res) return res;
5786 : }
5787 : }
5788 : break;
5789 : }
5790 : default:;
5791 : }
5792 : break;
5793 : }
5794 985238 : default:;
5795 : }
5796 985238 : switch (TREE_CODE (_p1))
5797 : {
5798 753345 : CASE_CONVERT:
5799 753345 : {
5800 753345 : tree _q30 = TREE_OPERAND (_p1, 0);
5801 753345 : switch (TREE_CODE (_q30))
5802 : {
5803 8 : case BIT_XOR_EXPR:
5804 8 : {
5805 8 : tree _q40 = TREE_OPERAND (_q30, 0);
5806 8 : tree _q41 = TREE_OPERAND (_q30, 1);
5807 8 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
5808 : {
5809 0 : {
5810 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _p0 };
5811 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
5812 0 : if (res) return res;
5813 : }
5814 : }
5815 8 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
5816 : {
5817 0 : {
5818 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _p0 };
5819 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
5820 0 : if (res) return res;
5821 : }
5822 : }
5823 : break;
5824 : }
5825 : default:;
5826 : }
5827 : break;
5828 : }
5829 78 : case BIT_XOR_EXPR:
5830 78 : {
5831 78 : tree _q30 = TREE_OPERAND (_p1, 0);
5832 78 : tree _q31 = TREE_OPERAND (_p1, 1);
5833 78 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
5834 : {
5835 0 : {
5836 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
5837 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
5838 0 : if (res) return res;
5839 : }
5840 : }
5841 78 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
5842 : {
5843 0 : {
5844 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
5845 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures);
5846 0 : if (res) return res;
5847 : }
5848 : }
5849 : break;
5850 : }
5851 985238 : default:;
5852 : }
5853 985238 : switch (TREE_CODE (_p0))
5854 : {
5855 629563 : CASE_CONVERT:
5856 629563 : {
5857 629563 : tree _q20 = TREE_OPERAND (_p0, 0);
5858 629563 : switch (TREE_CODE (_q20))
5859 : {
5860 59773 : case BIT_XOR_EXPR:
5861 59773 : {
5862 59773 : tree _q30 = TREE_OPERAND (_q20, 0);
5863 59773 : tree _q31 = TREE_OPERAND (_q20, 1);
5864 59773 : switch (TREE_CODE (_p1))
5865 : {
5866 59708 : CASE_CONVERT:
5867 59708 : {
5868 59708 : tree _q60 = TREE_OPERAND (_p1, 0);
5869 59708 : switch (TREE_CODE (_q60))
5870 : {
5871 0 : case BIT_XOR_EXPR:
5872 0 : {
5873 0 : tree _q70 = TREE_OPERAND (_q60, 0);
5874 0 : tree _q71 = TREE_OPERAND (_q60, 1);
5875 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
5876 : {
5877 0 : {
5878 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q71 };
5879 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
5880 0 : if (res) return res;
5881 : }
5882 : }
5883 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
5884 : {
5885 0 : {
5886 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q70 };
5887 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
5888 0 : if (res) return res;
5889 : }
5890 : }
5891 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
5892 : {
5893 0 : {
5894 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q71 };
5895 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
5896 0 : if (res) return res;
5897 : }
5898 : }
5899 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
5900 : {
5901 0 : {
5902 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q70 };
5903 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
5904 0 : if (res) return res;
5905 : }
5906 : }
5907 : break;
5908 : }
5909 : default:;
5910 : }
5911 : break;
5912 : }
5913 0 : case BIT_XOR_EXPR:
5914 0 : {
5915 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5916 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5917 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
5918 : {
5919 0 : {
5920 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q61 };
5921 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
5922 0 : if (res) return res;
5923 : }
5924 : }
5925 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
5926 : {
5927 0 : {
5928 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
5929 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
5930 0 : if (res) return res;
5931 : }
5932 : }
5933 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
5934 : {
5935 0 : {
5936 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q61 };
5937 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
5938 0 : if (res) return res;
5939 : }
5940 : }
5941 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
5942 : {
5943 0 : {
5944 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q60 };
5945 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
5946 0 : if (res) return res;
5947 : }
5948 : }
5949 : break;
5950 : }
5951 : default:;
5952 : }
5953 : break;
5954 : }
5955 629563 : default:;
5956 : }
5957 629563 : switch (TREE_CODE (_p1))
5958 : {
5959 625556 : CASE_CONVERT:
5960 625556 : {
5961 625556 : tree _q40 = TREE_OPERAND (_p1, 0);
5962 625556 : {
5963 625556 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
5964 625556 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
5965 625556 : if (res) return res;
5966 : }
5967 539132 : break;
5968 : }
5969 543139 : default:;
5970 : }
5971 543139 : {
5972 543139 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
5973 543139 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
5974 543139 : if (res) return res;
5975 : }
5976 543031 : break;
5977 : }
5978 3900 : case BIT_XOR_EXPR:
5979 3900 : {
5980 3900 : tree _q20 = TREE_OPERAND (_p0, 0);
5981 3900 : tree _q21 = TREE_OPERAND (_p0, 1);
5982 3900 : switch (TREE_CODE (_p1))
5983 : {
5984 198 : CASE_CONVERT:
5985 198 : {
5986 198 : tree _q50 = TREE_OPERAND (_p1, 0);
5987 198 : switch (TREE_CODE (_q50))
5988 : {
5989 0 : case BIT_XOR_EXPR:
5990 0 : {
5991 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5992 0 : tree _q61 = TREE_OPERAND (_q50, 1);
5993 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5994 : {
5995 0 : {
5996 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q61 };
5997 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
5998 0 : if (res) return res;
5999 : }
6000 : }
6001 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
6002 : {
6003 0 : {
6004 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q60 };
6005 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
6006 0 : if (res) return res;
6007 : }
6008 : }
6009 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
6010 : {
6011 0 : {
6012 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q61 };
6013 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
6014 0 : if (res) return res;
6015 : }
6016 : }
6017 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
6018 : {
6019 0 : {
6020 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q60 };
6021 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
6022 0 : if (res) return res;
6023 : }
6024 : }
6025 : break;
6026 : }
6027 : default:;
6028 : }
6029 : break;
6030 : }
6031 10 : case BIT_XOR_EXPR:
6032 10 : {
6033 10 : tree _q50 = TREE_OPERAND (_p1, 0);
6034 10 : tree _q51 = TREE_OPERAND (_p1, 1);
6035 10 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6036 : {
6037 0 : {
6038 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
6039 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
6040 0 : if (res) return res;
6041 : }
6042 : }
6043 10 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6044 : {
6045 0 : {
6046 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6047 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
6048 0 : if (res) return res;
6049 : }
6050 : }
6051 10 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6052 : {
6053 0 : {
6054 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
6055 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
6056 0 : if (res) return res;
6057 : }
6058 : }
6059 10 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6060 : {
6061 0 : {
6062 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
6063 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
6064 0 : if (res) return res;
6065 : }
6066 : }
6067 : break;
6068 : }
6069 3900 : default:;
6070 : }
6071 3900 : if (CONSTANT_CLASS_P (_q21))
6072 : {
6073 49 : if (CONSTANT_CLASS_P (_p1))
6074 : {
6075 30 : {
6076 30 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6077 30 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
6078 30 : if (res) return res;
6079 : }
6080 : }
6081 : }
6082 : break;
6083 : }
6084 70 : case COND_EXPR:
6085 70 : {
6086 70 : tree _q20 = TREE_OPERAND (_p0, 0);
6087 70 : tree _q21 = TREE_OPERAND (_p0, 1);
6088 70 : tree _q22 = TREE_OPERAND (_p0, 2);
6089 70 : if (integer_zerop (_q22))
6090 : {
6091 70 : switch (TREE_CODE (_p1))
6092 : {
6093 4 : case COND_EXPR:
6094 4 : {
6095 4 : tree _q60 = TREE_OPERAND (_p1, 0);
6096 4 : tree _q61 = TREE_OPERAND (_p1, 1);
6097 4 : tree _q62 = TREE_OPERAND (_p1, 2);
6098 4 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6099 : {
6100 0 : if (integer_zerop (_q61))
6101 : {
6102 0 : {
6103 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
6104 0 : const enum tree_code op = BIT_XOR_EXPR;
6105 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1161;
6106 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1161;
6107 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1161;
6108 0 : {
6109 0 : tree res_op0;
6110 0 : res_op0 = captures[1];
6111 0 : tree res_op1;
6112 0 : res_op1 = captures[2];
6113 0 : tree res_op2;
6114 0 : res_op2 = captures[4];
6115 0 : tree _r;
6116 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
6117 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
6118 0 : return _r;
6119 : }
6120 0 : next_after_fail1161:;
6121 : }
6122 : }
6123 : }
6124 : break;
6125 : }
6126 : default:;
6127 : }
6128 : }
6129 70 : if (integer_zerop (_q21))
6130 : {
6131 0 : switch (TREE_CODE (_p1))
6132 : {
6133 0 : case COND_EXPR:
6134 0 : {
6135 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6136 0 : tree _q61 = TREE_OPERAND (_p1, 1);
6137 0 : tree _q62 = TREE_OPERAND (_p1, 2);
6138 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6139 : {
6140 0 : if (integer_zerop (_q62))
6141 : {
6142 0 : {
6143 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
6144 0 : const enum tree_code op = BIT_XOR_EXPR;
6145 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1162;
6146 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1162;
6147 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1162;
6148 0 : {
6149 0 : tree res_op0;
6150 0 : res_op0 = captures[1];
6151 0 : tree res_op1;
6152 0 : res_op1 = captures[2];
6153 0 : tree res_op2;
6154 0 : res_op2 = captures[4];
6155 0 : tree _r;
6156 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
6157 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
6158 0 : return _r;
6159 : }
6160 0 : next_after_fail1162:;
6161 : }
6162 : }
6163 : }
6164 : break;
6165 : }
6166 : default:;
6167 : }
6168 : }
6169 70 : switch (TREE_CODE (_q20))
6170 : {
6171 0 : case LT_EXPR:
6172 0 : {
6173 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6174 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6175 0 : if (zerop (_q22))
6176 : {
6177 0 : switch (TREE_CODE (_p1))
6178 : {
6179 0 : case COND_EXPR:
6180 0 : {
6181 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6182 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6183 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6184 0 : switch (TREE_CODE (_q80))
6185 : {
6186 0 : case GE_EXPR:
6187 0 : {
6188 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6189 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6190 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6191 : {
6192 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6193 : {
6194 0 : if (zerop (_q82))
6195 : {
6196 0 : {
6197 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6198 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LT_EXPR, GE_EXPR);
6199 0 : if (res) return res;
6200 : }
6201 : }
6202 : }
6203 : }
6204 : break;
6205 : }
6206 : default:;
6207 : }
6208 : break;
6209 : }
6210 : default:;
6211 : }
6212 : }
6213 : break;
6214 : }
6215 38 : case LE_EXPR:
6216 38 : {
6217 38 : tree _q30 = TREE_OPERAND (_q20, 0);
6218 38 : tree _q31 = TREE_OPERAND (_q20, 1);
6219 38 : if (zerop (_q22))
6220 : {
6221 38 : switch (TREE_CODE (_p1))
6222 : {
6223 0 : case COND_EXPR:
6224 0 : {
6225 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6226 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6227 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6228 0 : switch (TREE_CODE (_q80))
6229 : {
6230 0 : case GT_EXPR:
6231 0 : {
6232 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6233 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6234 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6235 : {
6236 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6237 : {
6238 0 : if (zerop (_q82))
6239 : {
6240 0 : {
6241 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6242 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LE_EXPR, GT_EXPR);
6243 0 : if (res) return res;
6244 : }
6245 : }
6246 : }
6247 : }
6248 : break;
6249 : }
6250 : default:;
6251 : }
6252 : break;
6253 : }
6254 : default:;
6255 : }
6256 : }
6257 : break;
6258 : }
6259 0 : case EQ_EXPR:
6260 0 : {
6261 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6262 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6263 0 : if (zerop (_q22))
6264 : {
6265 0 : switch (TREE_CODE (_p1))
6266 : {
6267 0 : case COND_EXPR:
6268 0 : {
6269 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6270 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6271 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6272 0 : switch (TREE_CODE (_q80))
6273 : {
6274 0 : case NE_EXPR:
6275 0 : {
6276 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6277 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6278 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6279 : {
6280 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6281 : {
6282 0 : if (zerop (_q82))
6283 : {
6284 0 : {
6285 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6286 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, EQ_EXPR, NE_EXPR);
6287 0 : if (res) return res;
6288 : }
6289 : }
6290 : }
6291 : }
6292 : break;
6293 : }
6294 : default:;
6295 : }
6296 : break;
6297 : }
6298 : default:;
6299 : }
6300 : }
6301 : break;
6302 : }
6303 32 : case NE_EXPR:
6304 32 : {
6305 32 : tree _q30 = TREE_OPERAND (_q20, 0);
6306 32 : tree _q31 = TREE_OPERAND (_q20, 1);
6307 32 : if (zerop (_q22))
6308 : {
6309 32 : switch (TREE_CODE (_p1))
6310 : {
6311 4 : case COND_EXPR:
6312 4 : {
6313 4 : tree _q80 = TREE_OPERAND (_p1, 0);
6314 4 : tree _q81 = TREE_OPERAND (_p1, 1);
6315 4 : tree _q82 = TREE_OPERAND (_p1, 2);
6316 4 : switch (TREE_CODE (_q80))
6317 : {
6318 0 : case EQ_EXPR:
6319 0 : {
6320 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6321 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6322 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6323 : {
6324 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6325 : {
6326 0 : if (zerop (_q82))
6327 : {
6328 0 : {
6329 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6330 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, NE_EXPR, EQ_EXPR);
6331 0 : if (res) return res;
6332 : }
6333 : }
6334 : }
6335 : }
6336 : break;
6337 : }
6338 : default:;
6339 : }
6340 : break;
6341 : }
6342 : default:;
6343 : }
6344 : }
6345 : break;
6346 : }
6347 0 : case GE_EXPR:
6348 0 : {
6349 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6350 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6351 0 : if (zerop (_q22))
6352 : {
6353 0 : switch (TREE_CODE (_p1))
6354 : {
6355 0 : case COND_EXPR:
6356 0 : {
6357 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6358 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6359 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6360 0 : switch (TREE_CODE (_q80))
6361 : {
6362 0 : case LT_EXPR:
6363 0 : {
6364 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6365 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6366 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6367 : {
6368 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6369 : {
6370 0 : if (zerop (_q82))
6371 : {
6372 0 : {
6373 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6374 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GE_EXPR, LT_EXPR);
6375 0 : if (res) return res;
6376 : }
6377 : }
6378 : }
6379 : }
6380 : break;
6381 : }
6382 : default:;
6383 : }
6384 : break;
6385 : }
6386 : default:;
6387 : }
6388 : }
6389 : break;
6390 : }
6391 0 : case GT_EXPR:
6392 0 : {
6393 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6394 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6395 0 : if (zerop (_q22))
6396 : {
6397 0 : switch (TREE_CODE (_p1))
6398 : {
6399 0 : case COND_EXPR:
6400 0 : {
6401 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6402 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6403 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6404 0 : switch (TREE_CODE (_q80))
6405 : {
6406 0 : case LE_EXPR:
6407 0 : {
6408 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6409 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6410 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6411 : {
6412 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6413 : {
6414 0 : if (zerop (_q82))
6415 : {
6416 0 : {
6417 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6418 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GT_EXPR, LE_EXPR);
6419 0 : if (res) return res;
6420 : }
6421 : }
6422 : }
6423 : }
6424 : break;
6425 : }
6426 : default:;
6427 : }
6428 : break;
6429 : }
6430 : default:;
6431 : }
6432 : }
6433 : break;
6434 : }
6435 0 : case UNORDERED_EXPR:
6436 0 : {
6437 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6438 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6439 0 : if (zerop (_q22))
6440 : {
6441 0 : switch (TREE_CODE (_p1))
6442 : {
6443 0 : case COND_EXPR:
6444 0 : {
6445 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6446 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6447 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6448 0 : switch (TREE_CODE (_q80))
6449 : {
6450 0 : case ORDERED_EXPR:
6451 0 : {
6452 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6453 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6454 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6455 : {
6456 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6457 : {
6458 0 : if (zerop (_q82))
6459 : {
6460 0 : {
6461 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6462 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
6463 0 : if (res) return res;
6464 : }
6465 : }
6466 : }
6467 : }
6468 : break;
6469 : }
6470 : default:;
6471 : }
6472 : break;
6473 : }
6474 : default:;
6475 : }
6476 : }
6477 : break;
6478 : }
6479 0 : case ORDERED_EXPR:
6480 0 : {
6481 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6482 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6483 0 : if (zerop (_q22))
6484 : {
6485 0 : switch (TREE_CODE (_p1))
6486 : {
6487 0 : case COND_EXPR:
6488 0 : {
6489 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6490 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6491 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6492 0 : switch (TREE_CODE (_q80))
6493 : {
6494 0 : case UNORDERED_EXPR:
6495 0 : {
6496 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6497 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6498 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6499 : {
6500 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6501 : {
6502 0 : if (zerop (_q82))
6503 : {
6504 0 : {
6505 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6506 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
6507 0 : if (res) return res;
6508 : }
6509 : }
6510 : }
6511 : }
6512 : break;
6513 : }
6514 : default:;
6515 : }
6516 : break;
6517 : }
6518 : default:;
6519 : }
6520 : }
6521 : break;
6522 : }
6523 0 : case UNLT_EXPR:
6524 0 : {
6525 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6526 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6527 0 : if (zerop (_q22))
6528 : {
6529 0 : switch (TREE_CODE (_p1))
6530 : {
6531 0 : case COND_EXPR:
6532 0 : {
6533 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6534 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6535 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6536 0 : switch (TREE_CODE (_q80))
6537 : {
6538 0 : case GE_EXPR:
6539 0 : {
6540 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6541 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6542 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6543 : {
6544 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6545 : {
6546 0 : if (zerop (_q82))
6547 : {
6548 0 : {
6549 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6550 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLT_EXPR, GE_EXPR);
6551 0 : if (res) return res;
6552 : }
6553 : }
6554 : }
6555 : }
6556 : break;
6557 : }
6558 : default:;
6559 : }
6560 : break;
6561 : }
6562 : default:;
6563 : }
6564 : }
6565 : break;
6566 : }
6567 0 : case UNLE_EXPR:
6568 0 : {
6569 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6570 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6571 0 : if (zerop (_q22))
6572 : {
6573 0 : switch (TREE_CODE (_p1))
6574 : {
6575 0 : case COND_EXPR:
6576 0 : {
6577 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6578 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6579 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6580 0 : switch (TREE_CODE (_q80))
6581 : {
6582 0 : case GT_EXPR:
6583 0 : {
6584 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6585 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6586 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6587 : {
6588 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6589 : {
6590 0 : if (zerop (_q82))
6591 : {
6592 0 : {
6593 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6594 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLE_EXPR, GT_EXPR);
6595 0 : if (res) return res;
6596 : }
6597 : }
6598 : }
6599 : }
6600 : break;
6601 : }
6602 : default:;
6603 : }
6604 : break;
6605 : }
6606 : default:;
6607 : }
6608 : }
6609 : break;
6610 : }
6611 0 : case UNGT_EXPR:
6612 0 : {
6613 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6614 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6615 0 : if (zerop (_q22))
6616 : {
6617 0 : switch (TREE_CODE (_p1))
6618 : {
6619 0 : case COND_EXPR:
6620 0 : {
6621 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6622 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6623 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6624 0 : switch (TREE_CODE (_q80))
6625 : {
6626 0 : case LE_EXPR:
6627 0 : {
6628 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6629 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6630 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6631 : {
6632 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6633 : {
6634 0 : if (zerop (_q82))
6635 : {
6636 0 : {
6637 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6638 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGT_EXPR, LE_EXPR);
6639 0 : if (res) return res;
6640 : }
6641 : }
6642 : }
6643 : }
6644 : break;
6645 : }
6646 : default:;
6647 : }
6648 : break;
6649 : }
6650 : default:;
6651 : }
6652 : }
6653 : break;
6654 : }
6655 0 : case UNGE_EXPR:
6656 0 : {
6657 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6658 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6659 0 : if (zerop (_q22))
6660 : {
6661 0 : switch (TREE_CODE (_p1))
6662 : {
6663 0 : case COND_EXPR:
6664 0 : {
6665 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6666 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6667 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6668 0 : switch (TREE_CODE (_q80))
6669 : {
6670 0 : case LT_EXPR:
6671 0 : {
6672 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6673 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6674 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6675 : {
6676 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6677 : {
6678 0 : if (zerop (_q82))
6679 : {
6680 0 : {
6681 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6682 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGE_EXPR, LT_EXPR);
6683 0 : if (res) return res;
6684 : }
6685 : }
6686 : }
6687 : }
6688 : break;
6689 : }
6690 : default:;
6691 : }
6692 : break;
6693 : }
6694 : default:;
6695 : }
6696 : }
6697 : break;
6698 : }
6699 0 : case UNEQ_EXPR:
6700 0 : {
6701 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6702 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6703 0 : if (zerop (_q22))
6704 : {
6705 0 : switch (TREE_CODE (_p1))
6706 : {
6707 0 : case COND_EXPR:
6708 0 : {
6709 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6710 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6711 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6712 0 : switch (TREE_CODE (_q80))
6713 : {
6714 0 : case LTGT_EXPR:
6715 0 : {
6716 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6717 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6718 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6719 : {
6720 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6721 : {
6722 0 : if (zerop (_q82))
6723 : {
6724 0 : {
6725 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6726 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNEQ_EXPR, LTGT_EXPR);
6727 0 : if (res) return res;
6728 : }
6729 : }
6730 : }
6731 : }
6732 : break;
6733 : }
6734 : default:;
6735 : }
6736 : break;
6737 : }
6738 : default:;
6739 : }
6740 : }
6741 : break;
6742 : }
6743 0 : case LTGT_EXPR:
6744 0 : {
6745 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6746 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6747 0 : if (zerop (_q22))
6748 : {
6749 0 : switch (TREE_CODE (_p1))
6750 : {
6751 0 : case COND_EXPR:
6752 0 : {
6753 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6754 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6755 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6756 0 : switch (TREE_CODE (_q80))
6757 : {
6758 0 : case UNEQ_EXPR:
6759 0 : {
6760 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6761 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6762 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6763 : {
6764 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6765 : {
6766 0 : if (zerop (_q82))
6767 : {
6768 0 : {
6769 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6770 0 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LTGT_EXPR, UNEQ_EXPR);
6771 0 : if (res) return res;
6772 : }
6773 : }
6774 : }
6775 : }
6776 : break;
6777 : }
6778 : default:;
6779 : }
6780 : break;
6781 : }
6782 : default:;
6783 : }
6784 : }
6785 : break;
6786 : }
6787 : default:;
6788 : }
6789 : break;
6790 : }
6791 1 : case VEC_COND_EXPR:
6792 1 : {
6793 1 : tree _q20 = TREE_OPERAND (_p0, 0);
6794 1 : tree _q21 = TREE_OPERAND (_p0, 1);
6795 1 : tree _q22 = TREE_OPERAND (_p0, 2);
6796 1 : if (integer_zerop (_q22))
6797 : {
6798 1 : switch (TREE_CODE (_p1))
6799 : {
6800 0 : case VEC_COND_EXPR:
6801 0 : {
6802 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6803 0 : tree _q61 = TREE_OPERAND (_p1, 1);
6804 0 : tree _q62 = TREE_OPERAND (_p1, 2);
6805 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6806 : {
6807 0 : if (integer_zerop (_q61))
6808 : {
6809 0 : {
6810 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
6811 0 : const enum tree_code op = BIT_XOR_EXPR;
6812 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1163;
6813 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1163;
6814 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1163;
6815 0 : {
6816 0 : tree res_op0;
6817 0 : res_op0 = captures[1];
6818 0 : tree res_op1;
6819 0 : res_op1 = captures[2];
6820 0 : tree res_op2;
6821 0 : res_op2 = captures[4];
6822 0 : tree _r;
6823 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
6824 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
6825 0 : return _r;
6826 : }
6827 0 : next_after_fail1163:;
6828 : }
6829 : }
6830 : }
6831 : break;
6832 : }
6833 : default:;
6834 : }
6835 : }
6836 1 : if (integer_zerop (_q21))
6837 : {
6838 0 : switch (TREE_CODE (_p1))
6839 : {
6840 0 : case VEC_COND_EXPR:
6841 0 : {
6842 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6843 0 : tree _q61 = TREE_OPERAND (_p1, 1);
6844 0 : tree _q62 = TREE_OPERAND (_p1, 2);
6845 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6846 : {
6847 0 : if (integer_zerop (_q62))
6848 : {
6849 0 : {
6850 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
6851 0 : const enum tree_code op = BIT_XOR_EXPR;
6852 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1164;
6853 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1164;
6854 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1164;
6855 0 : {
6856 0 : tree res_op0;
6857 0 : res_op0 = captures[1];
6858 0 : tree res_op1;
6859 0 : res_op1 = captures[2];
6860 0 : tree res_op2;
6861 0 : res_op2 = captures[4];
6862 0 : tree _r;
6863 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
6864 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
6865 0 : return _r;
6866 : }
6867 0 : next_after_fail1164:;
6868 : }
6869 : }
6870 : }
6871 : break;
6872 : }
6873 : default:;
6874 : }
6875 : }
6876 1 : switch (TREE_CODE (_q20))
6877 : {
6878 0 : case LT_EXPR:
6879 0 : {
6880 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6881 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6882 0 : if (integer_zerop (_q22))
6883 : {
6884 0 : switch (TREE_CODE (_p1))
6885 : {
6886 0 : case VEC_COND_EXPR:
6887 0 : {
6888 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6889 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6890 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6891 0 : switch (TREE_CODE (_q80))
6892 : {
6893 0 : case GE_EXPR:
6894 0 : {
6895 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6896 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6897 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6898 : {
6899 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6900 : {
6901 0 : if (integer_zerop (_q82))
6902 : {
6903 0 : {
6904 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
6905 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LT_EXPR, GE_EXPR);
6906 0 : if (res) return res;
6907 : }
6908 : }
6909 : }
6910 : }
6911 : break;
6912 : }
6913 : default:;
6914 : }
6915 : break;
6916 : }
6917 : default:;
6918 : }
6919 : }
6920 : break;
6921 : }
6922 0 : case LE_EXPR:
6923 0 : {
6924 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6925 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6926 0 : if (integer_zerop (_q22))
6927 : {
6928 0 : switch (TREE_CODE (_p1))
6929 : {
6930 0 : case VEC_COND_EXPR:
6931 0 : {
6932 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6933 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6934 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6935 0 : switch (TREE_CODE (_q80))
6936 : {
6937 0 : case GT_EXPR:
6938 0 : {
6939 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6940 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6941 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6942 : {
6943 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6944 : {
6945 0 : if (integer_zerop (_q82))
6946 : {
6947 0 : {
6948 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
6949 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LE_EXPR, GT_EXPR);
6950 0 : if (res) return res;
6951 : }
6952 : }
6953 : }
6954 : }
6955 : break;
6956 : }
6957 : default:;
6958 : }
6959 : break;
6960 : }
6961 : default:;
6962 : }
6963 : }
6964 : break;
6965 : }
6966 0 : case EQ_EXPR:
6967 0 : {
6968 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6969 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6970 0 : if (integer_zerop (_q22))
6971 : {
6972 0 : switch (TREE_CODE (_p1))
6973 : {
6974 0 : case VEC_COND_EXPR:
6975 0 : {
6976 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6977 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6978 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6979 0 : switch (TREE_CODE (_q80))
6980 : {
6981 0 : case NE_EXPR:
6982 0 : {
6983 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6984 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6985 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6986 : {
6987 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6988 : {
6989 0 : if (integer_zerop (_q82))
6990 : {
6991 0 : {
6992 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
6993 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, EQ_EXPR, NE_EXPR);
6994 0 : if (res) return res;
6995 : }
6996 : }
6997 : }
6998 : }
6999 : break;
7000 : }
7001 : default:;
7002 : }
7003 : break;
7004 : }
7005 : default:;
7006 : }
7007 : }
7008 : break;
7009 : }
7010 1 : case NE_EXPR:
7011 1 : {
7012 1 : tree _q30 = TREE_OPERAND (_q20, 0);
7013 1 : tree _q31 = TREE_OPERAND (_q20, 1);
7014 1 : if (integer_zerop (_q22))
7015 : {
7016 1 : switch (TREE_CODE (_p1))
7017 : {
7018 0 : case VEC_COND_EXPR:
7019 0 : {
7020 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7021 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7022 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7023 0 : switch (TREE_CODE (_q80))
7024 : {
7025 0 : case EQ_EXPR:
7026 0 : {
7027 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7028 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7029 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7030 : {
7031 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7032 : {
7033 0 : if (integer_zerop (_q82))
7034 : {
7035 0 : {
7036 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7037 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, NE_EXPR, EQ_EXPR);
7038 0 : if (res) return res;
7039 : }
7040 : }
7041 : }
7042 : }
7043 : break;
7044 : }
7045 : default:;
7046 : }
7047 : break;
7048 : }
7049 : default:;
7050 : }
7051 : }
7052 : break;
7053 : }
7054 0 : case GE_EXPR:
7055 0 : {
7056 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7057 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7058 0 : if (integer_zerop (_q22))
7059 : {
7060 0 : switch (TREE_CODE (_p1))
7061 : {
7062 0 : case VEC_COND_EXPR:
7063 0 : {
7064 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7065 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7066 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7067 0 : switch (TREE_CODE (_q80))
7068 : {
7069 0 : case LT_EXPR:
7070 0 : {
7071 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7072 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7073 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7074 : {
7075 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7076 : {
7077 0 : if (integer_zerop (_q82))
7078 : {
7079 0 : {
7080 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7081 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GE_EXPR, LT_EXPR);
7082 0 : if (res) return res;
7083 : }
7084 : }
7085 : }
7086 : }
7087 : break;
7088 : }
7089 : default:;
7090 : }
7091 : break;
7092 : }
7093 : default:;
7094 : }
7095 : }
7096 : break;
7097 : }
7098 0 : case GT_EXPR:
7099 0 : {
7100 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7101 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7102 0 : if (integer_zerop (_q22))
7103 : {
7104 0 : switch (TREE_CODE (_p1))
7105 : {
7106 0 : case VEC_COND_EXPR:
7107 0 : {
7108 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7109 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7110 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7111 0 : switch (TREE_CODE (_q80))
7112 : {
7113 0 : case LE_EXPR:
7114 0 : {
7115 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7116 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7117 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7118 : {
7119 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7120 : {
7121 0 : if (integer_zerop (_q82))
7122 : {
7123 0 : {
7124 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7125 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GT_EXPR, LE_EXPR);
7126 0 : if (res) return res;
7127 : }
7128 : }
7129 : }
7130 : }
7131 : break;
7132 : }
7133 : default:;
7134 : }
7135 : break;
7136 : }
7137 : default:;
7138 : }
7139 : }
7140 : break;
7141 : }
7142 0 : case UNORDERED_EXPR:
7143 0 : {
7144 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7145 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7146 0 : if (integer_zerop (_q22))
7147 : {
7148 0 : switch (TREE_CODE (_p1))
7149 : {
7150 0 : case VEC_COND_EXPR:
7151 0 : {
7152 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7153 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7154 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7155 0 : switch (TREE_CODE (_q80))
7156 : {
7157 0 : case ORDERED_EXPR:
7158 0 : {
7159 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7160 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7161 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7162 : {
7163 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7164 : {
7165 0 : if (integer_zerop (_q82))
7166 : {
7167 0 : {
7168 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7169 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
7170 0 : if (res) return res;
7171 : }
7172 : }
7173 : }
7174 : }
7175 : break;
7176 : }
7177 : default:;
7178 : }
7179 : break;
7180 : }
7181 : default:;
7182 : }
7183 : }
7184 : break;
7185 : }
7186 0 : case ORDERED_EXPR:
7187 0 : {
7188 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7189 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7190 0 : if (integer_zerop (_q22))
7191 : {
7192 0 : switch (TREE_CODE (_p1))
7193 : {
7194 0 : case VEC_COND_EXPR:
7195 0 : {
7196 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7197 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7198 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7199 0 : switch (TREE_CODE (_q80))
7200 : {
7201 0 : case UNORDERED_EXPR:
7202 0 : {
7203 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7204 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7205 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7206 : {
7207 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7208 : {
7209 0 : if (integer_zerop (_q82))
7210 : {
7211 0 : {
7212 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7213 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
7214 0 : if (res) return res;
7215 : }
7216 : }
7217 : }
7218 : }
7219 : break;
7220 : }
7221 : default:;
7222 : }
7223 : break;
7224 : }
7225 : default:;
7226 : }
7227 : }
7228 : break;
7229 : }
7230 0 : case UNLT_EXPR:
7231 0 : {
7232 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7233 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7234 0 : if (integer_zerop (_q22))
7235 : {
7236 0 : switch (TREE_CODE (_p1))
7237 : {
7238 0 : case VEC_COND_EXPR:
7239 0 : {
7240 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7241 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7242 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7243 0 : switch (TREE_CODE (_q80))
7244 : {
7245 0 : case GE_EXPR:
7246 0 : {
7247 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7248 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7249 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7250 : {
7251 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7252 : {
7253 0 : if (integer_zerop (_q82))
7254 : {
7255 0 : {
7256 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7257 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLT_EXPR, GE_EXPR);
7258 0 : if (res) return res;
7259 : }
7260 : }
7261 : }
7262 : }
7263 : break;
7264 : }
7265 : default:;
7266 : }
7267 : break;
7268 : }
7269 : default:;
7270 : }
7271 : }
7272 : break;
7273 : }
7274 0 : case UNLE_EXPR:
7275 0 : {
7276 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7277 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7278 0 : if (integer_zerop (_q22))
7279 : {
7280 0 : switch (TREE_CODE (_p1))
7281 : {
7282 0 : case VEC_COND_EXPR:
7283 0 : {
7284 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7285 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7286 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7287 0 : switch (TREE_CODE (_q80))
7288 : {
7289 0 : case GT_EXPR:
7290 0 : {
7291 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7292 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7293 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7294 : {
7295 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7296 : {
7297 0 : if (integer_zerop (_q82))
7298 : {
7299 0 : {
7300 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7301 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLE_EXPR, GT_EXPR);
7302 0 : if (res) return res;
7303 : }
7304 : }
7305 : }
7306 : }
7307 : break;
7308 : }
7309 : default:;
7310 : }
7311 : break;
7312 : }
7313 : default:;
7314 : }
7315 : }
7316 : break;
7317 : }
7318 0 : case UNGT_EXPR:
7319 0 : {
7320 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7321 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7322 0 : if (integer_zerop (_q22))
7323 : {
7324 0 : switch (TREE_CODE (_p1))
7325 : {
7326 0 : case VEC_COND_EXPR:
7327 0 : {
7328 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7329 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7330 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7331 0 : switch (TREE_CODE (_q80))
7332 : {
7333 0 : case LE_EXPR:
7334 0 : {
7335 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7336 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7337 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7338 : {
7339 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7340 : {
7341 0 : if (integer_zerop (_q82))
7342 : {
7343 0 : {
7344 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7345 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGT_EXPR, LE_EXPR);
7346 0 : if (res) return res;
7347 : }
7348 : }
7349 : }
7350 : }
7351 : break;
7352 : }
7353 : default:;
7354 : }
7355 : break;
7356 : }
7357 : default:;
7358 : }
7359 : }
7360 : break;
7361 : }
7362 0 : case UNGE_EXPR:
7363 0 : {
7364 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7365 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7366 0 : if (integer_zerop (_q22))
7367 : {
7368 0 : switch (TREE_CODE (_p1))
7369 : {
7370 0 : case VEC_COND_EXPR:
7371 0 : {
7372 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7373 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7374 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7375 0 : switch (TREE_CODE (_q80))
7376 : {
7377 0 : case LT_EXPR:
7378 0 : {
7379 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7380 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7381 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7382 : {
7383 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7384 : {
7385 0 : if (integer_zerop (_q82))
7386 : {
7387 0 : {
7388 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7389 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGE_EXPR, LT_EXPR);
7390 0 : if (res) return res;
7391 : }
7392 : }
7393 : }
7394 : }
7395 : break;
7396 : }
7397 : default:;
7398 : }
7399 : break;
7400 : }
7401 : default:;
7402 : }
7403 : }
7404 : break;
7405 : }
7406 0 : case UNEQ_EXPR:
7407 0 : {
7408 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7409 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7410 0 : if (integer_zerop (_q22))
7411 : {
7412 0 : switch (TREE_CODE (_p1))
7413 : {
7414 0 : case VEC_COND_EXPR:
7415 0 : {
7416 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7417 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7418 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7419 0 : switch (TREE_CODE (_q80))
7420 : {
7421 0 : case LTGT_EXPR:
7422 0 : {
7423 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7424 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7425 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7426 : {
7427 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7428 : {
7429 0 : if (integer_zerop (_q82))
7430 : {
7431 0 : {
7432 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7433 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNEQ_EXPR, LTGT_EXPR);
7434 0 : if (res) return res;
7435 : }
7436 : }
7437 : }
7438 : }
7439 : break;
7440 : }
7441 : default:;
7442 : }
7443 : break;
7444 : }
7445 : default:;
7446 : }
7447 : }
7448 : break;
7449 : }
7450 0 : case LTGT_EXPR:
7451 0 : {
7452 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7453 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7454 0 : if (integer_zerop (_q22))
7455 : {
7456 0 : switch (TREE_CODE (_p1))
7457 : {
7458 0 : case VEC_COND_EXPR:
7459 0 : {
7460 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7461 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7462 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7463 0 : switch (TREE_CODE (_q80))
7464 : {
7465 0 : case UNEQ_EXPR:
7466 0 : {
7467 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7468 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7469 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7470 : {
7471 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7472 : {
7473 0 : if (integer_zerop (_q82))
7474 : {
7475 0 : {
7476 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7477 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LTGT_EXPR, UNEQ_EXPR);
7478 0 : if (res) return res;
7479 : }
7480 : }
7481 : }
7482 : }
7483 : break;
7484 : }
7485 : default:;
7486 : }
7487 : break;
7488 : }
7489 : default:;
7490 : }
7491 : }
7492 : break;
7493 : }
7494 : default:;
7495 : }
7496 : break;
7497 : }
7498 3073 : case BIT_AND_EXPR:
7499 3073 : {
7500 3073 : tree _q20 = TREE_OPERAND (_p0, 0);
7501 3073 : tree _q21 = TREE_OPERAND (_p0, 1);
7502 3073 : if (tree_truth_valued_p (_q20))
7503 : {
7504 0 : if (tree_truth_valued_p (_q21))
7505 : {
7506 0 : switch (TREE_CODE (_p1))
7507 : {
7508 0 : case EQ_EXPR:
7509 0 : {
7510 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7511 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7512 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7513 : {
7514 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7515 : {
7516 0 : {
7517 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7518 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1165;
7519 0 : {
7520 0 : tree res_op0;
7521 0 : {
7522 0 : tree _o1[2], _r1;
7523 0 : _o1[0] = captures[0];
7524 0 : _o1[1] = captures[1];
7525 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
7526 0 : res_op0 = _r1;
7527 : }
7528 0 : tree _r;
7529 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
7530 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 887, __FILE__, __LINE__, true);
7531 0 : return _r;
7532 : }
7533 0 : next_after_fail1165:;
7534 : }
7535 : }
7536 : }
7537 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7538 : {
7539 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7540 : {
7541 0 : {
7542 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7543 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1166;
7544 0 : {
7545 0 : tree res_op0;
7546 0 : {
7547 0 : tree _o1[2], _r1;
7548 0 : _o1[0] = captures[0];
7549 0 : _o1[1] = captures[1];
7550 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
7551 0 : res_op0 = _r1;
7552 : }
7553 0 : tree _r;
7554 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
7555 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 887, __FILE__, __LINE__, true);
7556 0 : return _r;
7557 : }
7558 0 : next_after_fail1166:;
7559 : }
7560 : }
7561 : }
7562 : break;
7563 : }
7564 : default:;
7565 : }
7566 : }
7567 : }
7568 : break;
7569 : }
7570 119 : case EQ_EXPR:
7571 119 : {
7572 119 : tree _q20 = TREE_OPERAND (_p0, 0);
7573 119 : tree _q21 = TREE_OPERAND (_p0, 1);
7574 119 : switch (TREE_CODE (_p1))
7575 : {
7576 0 : case BIT_AND_EXPR:
7577 0 : {
7578 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7579 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7580 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7581 : {
7582 0 : if (tree_truth_valued_p (_q50))
7583 : {
7584 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7585 : {
7586 0 : if (tree_truth_valued_p (_q51))
7587 : {
7588 0 : {
7589 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7590 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1167;
7591 0 : {
7592 0 : tree res_op0;
7593 0 : {
7594 0 : tree _o1[2], _r1;
7595 0 : _o1[0] = captures[0];
7596 0 : _o1[1] = captures[1];
7597 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
7598 0 : res_op0 = _r1;
7599 : }
7600 0 : tree _r;
7601 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
7602 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 887, __FILE__, __LINE__, true);
7603 0 : return _r;
7604 : }
7605 0 : next_after_fail1167:;
7606 : }
7607 : }
7608 : }
7609 : }
7610 : }
7611 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7612 : {
7613 0 : if (tree_truth_valued_p (_q50))
7614 : {
7615 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7616 : {
7617 0 : if (tree_truth_valued_p (_q51))
7618 : {
7619 0 : {
7620 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7621 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1168;
7622 0 : {
7623 0 : tree res_op0;
7624 0 : {
7625 0 : tree _o1[2], _r1;
7626 0 : _o1[0] = captures[0];
7627 0 : _o1[1] = captures[1];
7628 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
7629 0 : res_op0 = _r1;
7630 : }
7631 0 : tree _r;
7632 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
7633 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 887, __FILE__, __LINE__, true);
7634 0 : return _r;
7635 : }
7636 0 : next_after_fail1168:;
7637 : }
7638 : }
7639 : }
7640 : }
7641 : }
7642 : break;
7643 : }
7644 : default:;
7645 : }
7646 : break;
7647 : }
7648 898676 : default:;
7649 : }
7650 898676 : {
7651 898676 : tree _p0_pops[1];
7652 898676 : if (tree_logical_inverted_value (_p0, _p0_pops))
7653 : {
7654 46 : tree _q20 = _p0_pops[0];
7655 46 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7656 : {
7657 4 : if (tree_truth_valued_p (_p1))
7658 : {
7659 4 : {
7660 4 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
7661 4 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7662 4 : if (res) return res;
7663 : }
7664 : }
7665 : }
7666 : }
7667 : }
7668 898672 : {
7669 898672 : tree _p0_pops[1];
7670 898672 : if (tree_nop_convert (_p0, _p0_pops))
7671 : {
7672 504030 : tree _q20 = _p0_pops[0];
7673 504030 : switch (TREE_CODE (_q20))
7674 : {
7675 24 : case BIT_NOT_EXPR:
7676 24 : {
7677 24 : tree _q30 = TREE_OPERAND (_q20, 0);
7678 24 : {
7679 24 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1 };
7680 24 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures);
7681 24 : if (res) return res;
7682 : }
7683 0 : break;
7684 : }
7685 20 : case MULT_EXPR:
7686 20 : {
7687 20 : tree _q30 = TREE_OPERAND (_q20, 0);
7688 20 : tree _q31 = TREE_OPERAND (_q20, 1);
7689 20 : {
7690 20 : tree _q30_pops[1];
7691 20 : if (tree_nop_convert (_q30, _q30_pops))
7692 : {
7693 0 : tree _q40 = _q30_pops[0];
7694 0 : switch (TREE_CODE (_q31))
7695 : {
7696 0 : case INTEGER_CST:
7697 0 : {
7698 0 : switch (TREE_CODE (_p1))
7699 : {
7700 0 : case LSHIFT_EXPR:
7701 0 : {
7702 0 : tree _q70 = TREE_OPERAND (_p1, 0);
7703 0 : tree _q71 = TREE_OPERAND (_p1, 1);
7704 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
7705 : {
7706 0 : switch (TREE_CODE (_q71))
7707 : {
7708 0 : case INTEGER_CST:
7709 0 : {
7710 0 : {
7711 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31, _p1, _q71 };
7712 0 : tree res = generic_simplify_39 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7713 0 : if (res) return res;
7714 : }
7715 0 : break;
7716 : }
7717 : default:;
7718 : }
7719 : }
7720 : break;
7721 : }
7722 0 : default:;
7723 : }
7724 0 : {
7725 0 : tree _p1_pops[1];
7726 0 : if (tree_nop_convert (_p1, _p1_pops))
7727 : {
7728 0 : tree _q70 = _p1_pops[0];
7729 0 : switch (TREE_CODE (_q70))
7730 : {
7731 0 : case MULT_EXPR:
7732 0 : {
7733 0 : tree _q80 = TREE_OPERAND (_q70, 0);
7734 0 : tree _q81 = TREE_OPERAND (_q70, 1);
7735 0 : {
7736 0 : tree _q80_pops[1];
7737 0 : if (tree_nop_convert (_q80, _q80_pops))
7738 : {
7739 0 : tree _q90 = _q80_pops[0];
7740 0 : switch (TREE_CODE (_q81))
7741 : {
7742 0 : case INTEGER_CST:
7743 0 : {
7744 0 : {
7745 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31, _p1, _q70, _q90, _q81 };
7746 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7747 0 : if (res) return res;
7748 : }
7749 0 : break;
7750 : }
7751 : default:;
7752 : }
7753 : }
7754 : }
7755 0 : break;
7756 : }
7757 : default:;
7758 : }
7759 : }
7760 : }
7761 0 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
7762 : {
7763 0 : {
7764 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
7765 0 : tree res = generic_simplify_40 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7766 0 : if (res) return res;
7767 : }
7768 : }
7769 : break;
7770 : }
7771 : default:;
7772 : }
7773 : }
7774 : }
7775 20 : break;
7776 : }
7777 : default:;
7778 : }
7779 : }
7780 : }
7781 898648 : if (tree_truth_valued_p (_p0))
7782 : {
7783 133823 : {
7784 133823 : tree _p1_pops[1];
7785 133823 : if (tree_logical_inverted_value (_p1, _p1_pops))
7786 : {
7787 7 : tree _q30 = _p1_pops[0];
7788 7 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7789 : {
7790 0 : {
7791 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
7792 0 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7793 0 : if (res) return res;
7794 : }
7795 : }
7796 : }
7797 : }
7798 : }
7799 898648 : switch (TREE_CODE (_p1))
7800 : {
7801 288 : case BIT_NOT_EXPR:
7802 288 : {
7803 288 : tree _q30 = TREE_OPERAND (_p1, 0);
7804 288 : {
7805 288 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
7806 288 : tree res = generic_simplify_27 (loc, type, _p0, _p1, captures);
7807 288 : if (res) return res;
7808 : }
7809 0 : break;
7810 : }
7811 898360 : default:;
7812 : }
7813 898360 : {
7814 898360 : tree _p1_pops[1];
7815 898360 : if (tree_nop_convert (_p1, _p1_pops))
7816 : {
7817 630373 : tree _q30 = _p1_pops[0];
7818 630373 : switch (TREE_CODE (_q30))
7819 : {
7820 0 : case BIT_NOT_EXPR:
7821 0 : {
7822 0 : tree _q40 = TREE_OPERAND (_q30, 0);
7823 0 : {
7824 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
7825 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures);
7826 0 : if (res) return res;
7827 : }
7828 0 : break;
7829 : }
7830 : default:;
7831 : }
7832 : }
7833 : }
7834 898360 : switch (TREE_CODE (_p0))
7835 : {
7836 1131 : case BIT_IOR_EXPR:
7837 1131 : {
7838 1131 : tree _q20 = TREE_OPERAND (_p0, 0);
7839 1131 : tree _q21 = TREE_OPERAND (_p0, 1);
7840 1131 : switch (TREE_CODE (_q21))
7841 : {
7842 23 : case INTEGER_CST:
7843 23 : {
7844 23 : switch (TREE_CODE (_p1))
7845 : {
7846 23 : case INTEGER_CST:
7847 23 : {
7848 23 : {
7849 23 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
7850 23 : tree res = generic_simplify_41 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_XOR_EXPR);
7851 23 : if (res) return res;
7852 : }
7853 23 : break;
7854 : }
7855 : default:;
7856 : }
7857 : break;
7858 : }
7859 : default:;
7860 : }
7861 : break;
7862 : }
7863 90 : case LT_EXPR:
7864 90 : {
7865 90 : tree _q20 = TREE_OPERAND (_p0, 0);
7866 90 : tree _q21 = TREE_OPERAND (_p0, 1);
7867 90 : switch (TREE_CODE (_p1))
7868 : {
7869 0 : case GT_EXPR:
7870 0 : {
7871 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7872 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7873 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7874 : {
7875 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7876 : {
7877 0 : {
7878 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7879 0 : const enum tree_code cmp1 = LT_EXPR;
7880 0 : const enum tree_code cmp2 = GT_EXPR;
7881 0 : const enum tree_code rcmp = NE_EXPR;
7882 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
7883 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
7884 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
7885 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
7886 : )
7887 : {
7888 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1169;
7889 0 : {
7890 0 : tree res_op0;
7891 0 : res_op0 = captures[0];
7892 0 : tree res_op1;
7893 0 : res_op1 = captures[1];
7894 0 : tree _r;
7895 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
7896 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
7897 0 : return _r;
7898 : }
7899 0 : next_after_fail1169:;
7900 : }
7901 : }
7902 : }
7903 : }
7904 : break;
7905 : }
7906 0 : case EQ_EXPR:
7907 0 : {
7908 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7909 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7910 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7911 : {
7912 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7913 : {
7914 0 : {
7915 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7916 0 : const enum tree_code cmp1 = LT_EXPR;
7917 0 : const enum tree_code cmp2 = EQ_EXPR;
7918 0 : const enum tree_code rcmp = LE_EXPR;
7919 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
7920 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
7921 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
7922 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
7923 : )
7924 : {
7925 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1170;
7926 0 : {
7927 0 : tree res_op0;
7928 0 : res_op0 = captures[0];
7929 0 : tree res_op1;
7930 0 : res_op1 = captures[1];
7931 0 : tree _r;
7932 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
7933 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
7934 0 : return _r;
7935 : }
7936 0 : next_after_fail1170:;
7937 : }
7938 : }
7939 : }
7940 : }
7941 : break;
7942 : }
7943 0 : case NE_EXPR:
7944 0 : {
7945 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7946 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7947 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7948 : {
7949 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7950 : {
7951 0 : {
7952 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7953 0 : const enum tree_code cmp1 = LT_EXPR;
7954 0 : const enum tree_code cmp2 = NE_EXPR;
7955 0 : const enum tree_code rcmp = GT_EXPR;
7956 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
7957 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
7958 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
7959 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
7960 : )
7961 : {
7962 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1171;
7963 0 : {
7964 0 : tree res_op0;
7965 0 : res_op0 = captures[0];
7966 0 : tree res_op1;
7967 0 : res_op1 = captures[1];
7968 0 : tree _r;
7969 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
7970 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
7971 0 : return _r;
7972 : }
7973 0 : next_after_fail1171:;
7974 : }
7975 : }
7976 : }
7977 : }
7978 : break;
7979 : }
7980 : default:;
7981 : }
7982 : break;
7983 : }
7984 85 : case LE_EXPR:
7985 85 : {
7986 85 : tree _q20 = TREE_OPERAND (_p0, 0);
7987 85 : tree _q21 = TREE_OPERAND (_p0, 1);
7988 85 : switch (TREE_CODE (_p1))
7989 : {
7990 0 : case GE_EXPR:
7991 0 : {
7992 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7993 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7994 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7995 : {
7996 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7997 : {
7998 0 : {
7999 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8000 0 : const enum tree_code cmp1 = LE_EXPR;
8001 0 : const enum tree_code cmp2 = GE_EXPR;
8002 0 : const enum tree_code rcmp = NE_EXPR;
8003 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8004 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8005 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8006 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8007 : )
8008 : {
8009 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1172;
8010 0 : {
8011 0 : tree res_op0;
8012 0 : res_op0 = captures[0];
8013 0 : tree res_op1;
8014 0 : res_op1 = captures[1];
8015 0 : tree _r;
8016 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8017 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8018 0 : return _r;
8019 : }
8020 0 : next_after_fail1172:;
8021 : }
8022 : }
8023 : }
8024 : }
8025 : break;
8026 : }
8027 0 : case EQ_EXPR:
8028 0 : {
8029 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8030 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8031 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8032 : {
8033 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8034 : {
8035 0 : {
8036 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8037 0 : const enum tree_code cmp1 = LE_EXPR;
8038 0 : const enum tree_code cmp2 = EQ_EXPR;
8039 0 : const enum tree_code rcmp = LT_EXPR;
8040 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8041 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8042 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8043 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8044 : )
8045 : {
8046 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1173;
8047 0 : {
8048 0 : tree res_op0;
8049 0 : res_op0 = captures[0];
8050 0 : tree res_op1;
8051 0 : res_op1 = captures[1];
8052 0 : tree _r;
8053 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8054 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8055 0 : return _r;
8056 : }
8057 0 : next_after_fail1173:;
8058 : }
8059 : }
8060 : }
8061 : }
8062 : break;
8063 : }
8064 0 : case NE_EXPR:
8065 0 : {
8066 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8067 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8068 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8069 : {
8070 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8071 : {
8072 0 : {
8073 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8074 0 : const enum tree_code cmp1 = LE_EXPR;
8075 0 : const enum tree_code cmp2 = NE_EXPR;
8076 0 : const enum tree_code rcmp = GE_EXPR;
8077 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8078 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8079 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8080 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8081 : )
8082 : {
8083 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1174;
8084 0 : {
8085 0 : tree res_op0;
8086 0 : res_op0 = captures[0];
8087 0 : tree res_op1;
8088 0 : res_op1 = captures[1];
8089 0 : tree _r;
8090 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8091 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8092 0 : return _r;
8093 : }
8094 0 : next_after_fail1174:;
8095 : }
8096 : }
8097 : }
8098 : }
8099 : break;
8100 : }
8101 : default:;
8102 : }
8103 : break;
8104 : }
8105 100 : case GT_EXPR:
8106 100 : {
8107 100 : tree _q20 = TREE_OPERAND (_p0, 0);
8108 100 : tree _q21 = TREE_OPERAND (_p0, 1);
8109 100 : switch (TREE_CODE (_p1))
8110 : {
8111 0 : case GT_EXPR:
8112 0 : {
8113 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8114 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8115 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8116 : {
8117 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8118 : {
8119 0 : {
8120 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8121 0 : const enum tree_code cmp1 = LT_EXPR;
8122 0 : const enum tree_code cmp2 = GT_EXPR;
8123 0 : const enum tree_code rcmp = NE_EXPR;
8124 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8125 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8126 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8127 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8128 : )
8129 : {
8130 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1175;
8131 0 : {
8132 0 : tree res_op0;
8133 0 : res_op0 = captures[0];
8134 0 : tree res_op1;
8135 0 : res_op1 = captures[1];
8136 0 : tree _r;
8137 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8138 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8139 0 : return _r;
8140 : }
8141 0 : next_after_fail1175:;
8142 : }
8143 : }
8144 0 : {
8145 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8146 0 : const enum tree_code cmp1 = LT_EXPR;
8147 0 : const enum tree_code cmp2 = GT_EXPR;
8148 0 : const enum tree_code rcmp = NE_EXPR;
8149 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8150 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8151 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8152 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8153 : )
8154 : {
8155 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1176;
8156 0 : {
8157 0 : tree res_op0;
8158 0 : res_op0 = captures[0];
8159 0 : tree res_op1;
8160 0 : res_op1 = captures[1];
8161 0 : tree _r;
8162 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8163 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8164 0 : return _r;
8165 : }
8166 0 : next_after_fail1176:;
8167 : }
8168 : }
8169 : }
8170 : }
8171 : break;
8172 : }
8173 0 : case EQ_EXPR:
8174 0 : {
8175 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8176 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8177 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8178 : {
8179 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8180 : {
8181 0 : {
8182 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8183 0 : const enum tree_code cmp1 = LT_EXPR;
8184 0 : const enum tree_code cmp2 = EQ_EXPR;
8185 0 : const enum tree_code rcmp = LE_EXPR;
8186 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8187 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8188 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8189 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8190 : )
8191 : {
8192 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1177;
8193 0 : {
8194 0 : tree res_op0;
8195 0 : res_op0 = captures[0];
8196 0 : tree res_op1;
8197 0 : res_op1 = captures[1];
8198 0 : tree _r;
8199 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8200 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8201 0 : return _r;
8202 : }
8203 0 : next_after_fail1177:;
8204 : }
8205 : }
8206 : }
8207 : }
8208 : break;
8209 : }
8210 12 : case NE_EXPR:
8211 12 : {
8212 12 : tree _q50 = TREE_OPERAND (_p1, 0);
8213 12 : tree _q51 = TREE_OPERAND (_p1, 1);
8214 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8215 : {
8216 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8217 : {
8218 0 : {
8219 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8220 0 : const enum tree_code cmp1 = LT_EXPR;
8221 0 : const enum tree_code cmp2 = NE_EXPR;
8222 0 : const enum tree_code rcmp = GT_EXPR;
8223 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8224 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8225 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8226 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8227 : )
8228 : {
8229 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1178;
8230 0 : {
8231 0 : tree res_op0;
8232 0 : res_op0 = captures[0];
8233 0 : tree res_op1;
8234 0 : res_op1 = captures[1];
8235 0 : tree _r;
8236 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8237 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8238 0 : return _r;
8239 : }
8240 0 : next_after_fail1178:;
8241 : }
8242 : }
8243 : }
8244 : }
8245 : break;
8246 : }
8247 0 : case LT_EXPR:
8248 0 : {
8249 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8250 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8251 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8252 : {
8253 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8254 : {
8255 0 : {
8256 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8257 0 : const enum tree_code cmp1 = LT_EXPR;
8258 0 : const enum tree_code cmp2 = GT_EXPR;
8259 0 : const enum tree_code rcmp = NE_EXPR;
8260 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8261 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8262 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8263 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8264 : )
8265 : {
8266 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1179;
8267 0 : {
8268 0 : tree res_op0;
8269 0 : res_op0 = captures[0];
8270 0 : tree res_op1;
8271 0 : res_op1 = captures[1];
8272 0 : tree _r;
8273 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8274 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8275 0 : return _r;
8276 : }
8277 0 : next_after_fail1179:;
8278 : }
8279 : }
8280 : }
8281 : }
8282 : break;
8283 : }
8284 : default:;
8285 : }
8286 : break;
8287 : }
8288 62 : case GE_EXPR:
8289 62 : {
8290 62 : tree _q20 = TREE_OPERAND (_p0, 0);
8291 62 : tree _q21 = TREE_OPERAND (_p0, 1);
8292 62 : switch (TREE_CODE (_p1))
8293 : {
8294 1 : case GE_EXPR:
8295 1 : {
8296 1 : tree _q50 = TREE_OPERAND (_p1, 0);
8297 1 : tree _q51 = TREE_OPERAND (_p1, 1);
8298 1 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8299 : {
8300 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8301 : {
8302 0 : {
8303 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8304 0 : const enum tree_code cmp1 = LE_EXPR;
8305 0 : const enum tree_code cmp2 = GE_EXPR;
8306 0 : const enum tree_code rcmp = NE_EXPR;
8307 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8308 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8309 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8310 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8311 : )
8312 : {
8313 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1180;
8314 0 : {
8315 0 : tree res_op0;
8316 0 : res_op0 = captures[0];
8317 0 : tree res_op1;
8318 0 : res_op1 = captures[1];
8319 0 : tree _r;
8320 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8321 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8322 0 : return _r;
8323 : }
8324 0 : next_after_fail1180:;
8325 : }
8326 : }
8327 0 : {
8328 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8329 0 : const enum tree_code cmp1 = LE_EXPR;
8330 0 : const enum tree_code cmp2 = GE_EXPR;
8331 0 : const enum tree_code rcmp = NE_EXPR;
8332 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8333 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8334 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8335 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8336 : )
8337 : {
8338 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1181;
8339 0 : {
8340 0 : tree res_op0;
8341 0 : res_op0 = captures[0];
8342 0 : tree res_op1;
8343 0 : res_op1 = captures[1];
8344 0 : tree _r;
8345 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8346 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8347 0 : return _r;
8348 : }
8349 0 : next_after_fail1181:;
8350 : }
8351 : }
8352 : }
8353 : }
8354 : break;
8355 : }
8356 0 : case EQ_EXPR:
8357 0 : {
8358 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8359 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8360 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8361 : {
8362 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8363 : {
8364 0 : {
8365 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8366 0 : const enum tree_code cmp1 = LE_EXPR;
8367 0 : const enum tree_code cmp2 = EQ_EXPR;
8368 0 : const enum tree_code rcmp = LT_EXPR;
8369 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8370 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8371 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8372 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8373 : )
8374 : {
8375 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1182;
8376 0 : {
8377 0 : tree res_op0;
8378 0 : res_op0 = captures[0];
8379 0 : tree res_op1;
8380 0 : res_op1 = captures[1];
8381 0 : tree _r;
8382 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8383 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8384 0 : return _r;
8385 : }
8386 0 : next_after_fail1182:;
8387 : }
8388 : }
8389 : }
8390 : }
8391 : break;
8392 : }
8393 8 : case NE_EXPR:
8394 8 : {
8395 8 : tree _q50 = TREE_OPERAND (_p1, 0);
8396 8 : tree _q51 = TREE_OPERAND (_p1, 1);
8397 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8398 : {
8399 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8400 : {
8401 0 : {
8402 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8403 0 : const enum tree_code cmp1 = LE_EXPR;
8404 0 : const enum tree_code cmp2 = NE_EXPR;
8405 0 : const enum tree_code rcmp = GE_EXPR;
8406 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8407 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8408 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8409 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8410 : )
8411 : {
8412 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1183;
8413 0 : {
8414 0 : tree res_op0;
8415 0 : res_op0 = captures[0];
8416 0 : tree res_op1;
8417 0 : res_op1 = captures[1];
8418 0 : tree _r;
8419 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8420 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8421 0 : return _r;
8422 : }
8423 0 : next_after_fail1183:;
8424 : }
8425 : }
8426 : }
8427 : }
8428 : break;
8429 : }
8430 0 : case LE_EXPR:
8431 0 : {
8432 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8433 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8434 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8435 : {
8436 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8437 : {
8438 0 : {
8439 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8440 0 : const enum tree_code cmp1 = LE_EXPR;
8441 0 : const enum tree_code cmp2 = GE_EXPR;
8442 0 : const enum tree_code rcmp = NE_EXPR;
8443 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8444 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8445 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8446 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8447 : )
8448 : {
8449 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1184;
8450 0 : {
8451 0 : tree res_op0;
8452 0 : res_op0 = captures[0];
8453 0 : tree res_op1;
8454 0 : res_op1 = captures[1];
8455 0 : tree _r;
8456 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8457 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8458 0 : return _r;
8459 : }
8460 0 : next_after_fail1184:;
8461 : }
8462 : }
8463 : }
8464 : }
8465 : break;
8466 : }
8467 : default:;
8468 : }
8469 : break;
8470 : }
8471 119 : case EQ_EXPR:
8472 119 : {
8473 119 : tree _q20 = TREE_OPERAND (_p0, 0);
8474 119 : tree _q21 = TREE_OPERAND (_p0, 1);
8475 119 : switch (TREE_CODE (_p1))
8476 : {
8477 0 : case LT_EXPR:
8478 0 : {
8479 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8480 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8481 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8482 : {
8483 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8484 : {
8485 0 : {
8486 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8487 0 : const enum tree_code cmp1 = LT_EXPR;
8488 0 : const enum tree_code cmp2 = EQ_EXPR;
8489 0 : const enum tree_code rcmp = LE_EXPR;
8490 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8491 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8492 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8493 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8494 : )
8495 : {
8496 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1185;
8497 0 : {
8498 0 : tree res_op0;
8499 0 : res_op0 = captures[0];
8500 0 : tree res_op1;
8501 0 : res_op1 = captures[1];
8502 0 : tree _r;
8503 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8504 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8505 0 : return _r;
8506 : }
8507 0 : next_after_fail1185:;
8508 : }
8509 : }
8510 : }
8511 : }
8512 : break;
8513 : }
8514 0 : case LE_EXPR:
8515 0 : {
8516 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8517 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8518 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8519 : {
8520 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8521 : {
8522 0 : {
8523 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8524 0 : const enum tree_code cmp1 = LE_EXPR;
8525 0 : const enum tree_code cmp2 = EQ_EXPR;
8526 0 : const enum tree_code rcmp = LT_EXPR;
8527 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8528 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8529 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8530 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8531 : )
8532 : {
8533 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1186;
8534 0 : {
8535 0 : tree res_op0;
8536 0 : res_op0 = captures[0];
8537 0 : tree res_op1;
8538 0 : res_op1 = captures[1];
8539 0 : tree _r;
8540 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8541 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8542 0 : return _r;
8543 : }
8544 0 : next_after_fail1186:;
8545 : }
8546 : }
8547 : }
8548 : }
8549 : break;
8550 : }
8551 0 : case GT_EXPR:
8552 0 : {
8553 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8554 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8555 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8556 : {
8557 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8558 : {
8559 0 : {
8560 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8561 0 : const enum tree_code cmp1 = LT_EXPR;
8562 0 : const enum tree_code cmp2 = EQ_EXPR;
8563 0 : const enum tree_code rcmp = LE_EXPR;
8564 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8565 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8566 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8567 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8568 : )
8569 : {
8570 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1187;
8571 0 : {
8572 0 : tree res_op0;
8573 0 : res_op0 = captures[0];
8574 0 : tree res_op1;
8575 0 : res_op1 = captures[1];
8576 0 : tree _r;
8577 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8578 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8579 0 : return _r;
8580 : }
8581 0 : next_after_fail1187:;
8582 : }
8583 : }
8584 : }
8585 : }
8586 : break;
8587 : }
8588 8 : case GE_EXPR:
8589 8 : {
8590 8 : tree _q50 = TREE_OPERAND (_p1, 0);
8591 8 : tree _q51 = TREE_OPERAND (_p1, 1);
8592 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8593 : {
8594 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8595 : {
8596 0 : {
8597 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8598 0 : const enum tree_code cmp1 = LE_EXPR;
8599 0 : const enum tree_code cmp2 = EQ_EXPR;
8600 0 : const enum tree_code rcmp = LT_EXPR;
8601 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8602 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8603 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8604 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8605 : )
8606 : {
8607 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1188;
8608 0 : {
8609 0 : tree res_op0;
8610 0 : res_op0 = captures[0];
8611 0 : tree res_op1;
8612 0 : res_op1 = captures[1];
8613 0 : tree _r;
8614 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8615 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8616 0 : return _r;
8617 : }
8618 0 : next_after_fail1188:;
8619 : }
8620 : }
8621 : }
8622 : }
8623 : break;
8624 : }
8625 : default:;
8626 : }
8627 : break;
8628 : }
8629 113 : case NE_EXPR:
8630 113 : {
8631 113 : tree _q20 = TREE_OPERAND (_p0, 0);
8632 113 : tree _q21 = TREE_OPERAND (_p0, 1);
8633 113 : switch (TREE_CODE (_p1))
8634 : {
8635 0 : case LT_EXPR:
8636 0 : {
8637 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8638 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8639 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8640 : {
8641 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8642 : {
8643 0 : {
8644 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8645 0 : const enum tree_code cmp1 = LT_EXPR;
8646 0 : const enum tree_code cmp2 = NE_EXPR;
8647 0 : const enum tree_code rcmp = GT_EXPR;
8648 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8649 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8650 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8651 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8652 : )
8653 : {
8654 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1189;
8655 0 : {
8656 0 : tree res_op0;
8657 0 : res_op0 = captures[0];
8658 0 : tree res_op1;
8659 0 : res_op1 = captures[1];
8660 0 : tree _r;
8661 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8662 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8663 0 : return _r;
8664 : }
8665 0 : next_after_fail1189:;
8666 : }
8667 : }
8668 : }
8669 : }
8670 : break;
8671 : }
8672 0 : case LE_EXPR:
8673 0 : {
8674 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8675 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8676 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8677 : {
8678 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8679 : {
8680 0 : {
8681 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8682 0 : const enum tree_code cmp1 = LE_EXPR;
8683 0 : const enum tree_code cmp2 = NE_EXPR;
8684 0 : const enum tree_code rcmp = GE_EXPR;
8685 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8686 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8687 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8688 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8689 : )
8690 : {
8691 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1190;
8692 0 : {
8693 0 : tree res_op0;
8694 0 : res_op0 = captures[0];
8695 0 : tree res_op1;
8696 0 : res_op1 = captures[1];
8697 0 : tree _r;
8698 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8699 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8700 0 : return _r;
8701 : }
8702 0 : next_after_fail1190:;
8703 : }
8704 : }
8705 : }
8706 : }
8707 : break;
8708 : }
8709 0 : case GT_EXPR:
8710 0 : {
8711 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8712 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8713 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8714 : {
8715 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8716 : {
8717 0 : {
8718 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8719 0 : const enum tree_code cmp1 = LT_EXPR;
8720 0 : const enum tree_code cmp2 = NE_EXPR;
8721 0 : const enum tree_code rcmp = GT_EXPR;
8722 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8723 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8724 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8725 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8726 : )
8727 : {
8728 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1191;
8729 0 : {
8730 0 : tree res_op0;
8731 0 : res_op0 = captures[0];
8732 0 : tree res_op1;
8733 0 : res_op1 = captures[1];
8734 0 : tree _r;
8735 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8736 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8737 0 : return _r;
8738 : }
8739 0 : next_after_fail1191:;
8740 : }
8741 : }
8742 : }
8743 : }
8744 : break;
8745 : }
8746 6 : case GE_EXPR:
8747 6 : {
8748 6 : tree _q50 = TREE_OPERAND (_p1, 0);
8749 6 : tree _q51 = TREE_OPERAND (_p1, 1);
8750 6 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8751 : {
8752 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8753 : {
8754 0 : {
8755 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8756 0 : const enum tree_code cmp1 = LE_EXPR;
8757 0 : const enum tree_code cmp2 = NE_EXPR;
8758 0 : const enum tree_code rcmp = GE_EXPR;
8759 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8760 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8761 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8762 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8763 : )
8764 : {
8765 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1192;
8766 0 : {
8767 0 : tree res_op0;
8768 0 : res_op0 = captures[0];
8769 0 : tree res_op1;
8770 0 : res_op1 = captures[1];
8771 0 : tree _r;
8772 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8773 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
8774 0 : return _r;
8775 : }
8776 0 : next_after_fail1192:;
8777 : }
8778 : }
8779 : }
8780 : }
8781 : break;
8782 : }
8783 : default:;
8784 : }
8785 : break;
8786 : }
8787 523 : case MULT_EXPR:
8788 523 : {
8789 523 : tree _q20 = TREE_OPERAND (_p0, 0);
8790 523 : tree _q21 = TREE_OPERAND (_p0, 1);
8791 523 : switch (TREE_CODE (_q21))
8792 : {
8793 498 : case INTEGER_CST:
8794 498 : {
8795 498 : switch (TREE_CODE (_p1))
8796 : {
8797 12 : case MULT_EXPR:
8798 12 : {
8799 12 : tree _q50 = TREE_OPERAND (_p1, 0);
8800 12 : tree _q51 = TREE_OPERAND (_p1, 1);
8801 12 : switch (TREE_CODE (_q51))
8802 : {
8803 12 : case INTEGER_CST:
8804 12 : {
8805 12 : {
8806 12 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q50, _q51 };
8807 12 : tree res = generic_simplify_42 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
8808 12 : if (res) return res;
8809 : }
8810 12 : break;
8811 : }
8812 : default:;
8813 : }
8814 : break;
8815 : }
8816 0 : case LSHIFT_EXPR:
8817 0 : {
8818 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8819 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8820 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8821 : {
8822 0 : switch (TREE_CODE (_q51))
8823 : {
8824 0 : case INTEGER_CST:
8825 0 : {
8826 0 : {
8827 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q51 };
8828 0 : tree res = generic_simplify_43 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
8829 0 : if (res) return res;
8830 : }
8831 0 : break;
8832 : }
8833 : default:;
8834 : }
8835 : }
8836 : break;
8837 : }
8838 498 : default:;
8839 : }
8840 498 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8841 : {
8842 18 : {
8843 18 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
8844 18 : tree res = generic_simplify_44 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
8845 18 : if (res) return res;
8846 : }
8847 : }
8848 : break;
8849 : }
8850 523 : default:;
8851 : }
8852 523 : switch (TREE_CODE (_q20))
8853 : {
8854 0 : case BIT_XOR_EXPR:
8855 0 : {
8856 0 : tree _q30 = TREE_OPERAND (_q20, 0);
8857 0 : tree _q31 = TREE_OPERAND (_q20, 1);
8858 0 : if (tree_zero_one_valued_p (_q21))
8859 : {
8860 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
8861 : {
8862 0 : {
8863 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
8864 0 : tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
8865 0 : if (res) return res;
8866 : }
8867 : }
8868 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
8869 : {
8870 0 : {
8871 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q21 };
8872 0 : tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
8873 0 : if (res) return res;
8874 : }
8875 : }
8876 : }
8877 : break;
8878 : }
8879 523 : default:;
8880 : }
8881 523 : if (tree_zero_one_valued_p (_q20))
8882 : {
8883 8 : switch (TREE_CODE (_q21))
8884 : {
8885 2 : case BIT_XOR_EXPR:
8886 2 : {
8887 2 : tree _q40 = TREE_OPERAND (_q21, 0);
8888 2 : tree _q41 = TREE_OPERAND (_q21, 1);
8889 2 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
8890 : {
8891 2 : {
8892 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
8893 2 : tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
8894 2 : if (res) return res;
8895 : }
8896 : }
8897 0 : if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q41, 0) && types_match (_p1, _q41)))
8898 : {
8899 0 : {
8900 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
8901 0 : tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
8902 0 : if (res) return res;
8903 : }
8904 : }
8905 : break;
8906 : }
8907 : default:;
8908 : }
8909 : }
8910 : break;
8911 : }
8912 2503 : case LSHIFT_EXPR:
8913 2503 : {
8914 2503 : tree _q20 = TREE_OPERAND (_p0, 0);
8915 2503 : tree _q21 = TREE_OPERAND (_p0, 1);
8916 2503 : switch (TREE_CODE (_q21))
8917 : {
8918 1122 : case INTEGER_CST:
8919 1122 : {
8920 1122 : switch (TREE_CODE (_p1))
8921 : {
8922 0 : case MULT_EXPR:
8923 0 : {
8924 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8925 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8926 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8927 : {
8928 0 : switch (TREE_CODE (_q51))
8929 : {
8930 0 : case INTEGER_CST:
8931 0 : {
8932 0 : {
8933 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q51, _p0, _q21 };
8934 0 : tree res = generic_simplify_43 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
8935 0 : if (res) return res;
8936 : }
8937 0 : break;
8938 : }
8939 : default:;
8940 : }
8941 : }
8942 : break;
8943 : }
8944 1122 : default:;
8945 : }
8946 1122 : {
8947 1122 : tree _p1_pops[1];
8948 1122 : if (tree_nop_convert (_p1, _p1_pops))
8949 : {
8950 23 : tree _q50 = _p1_pops[0];
8951 23 : switch (TREE_CODE (_q50))
8952 : {
8953 0 : case MULT_EXPR:
8954 0 : {
8955 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8956 0 : tree _q61 = TREE_OPERAND (_q50, 1);
8957 0 : {
8958 0 : tree _q60_pops[1];
8959 0 : if (tree_nop_convert (_q60, _q60_pops))
8960 : {
8961 0 : tree _q70 = _q60_pops[0];
8962 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
8963 : {
8964 0 : switch (TREE_CODE (_q61))
8965 : {
8966 0 : case INTEGER_CST:
8967 0 : {
8968 0 : {
8969 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q61, _p0, _q21 };
8970 0 : tree res = generic_simplify_39 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
8971 0 : if (res) return res;
8972 : }
8973 0 : break;
8974 : }
8975 : default:;
8976 : }
8977 : }
8978 : }
8979 : }
8980 0 : break;
8981 : }
8982 : default:;
8983 : }
8984 : }
8985 : }
8986 1122 : break;
8987 : }
8988 : default:;
8989 : }
8990 : break;
8991 : }
8992 898358 : default:;
8993 : }
8994 898358 : switch (TREE_CODE (_p1))
8995 : {
8996 243 : case MULT_EXPR:
8997 243 : {
8998 243 : tree _q30 = TREE_OPERAND (_p1, 0);
8999 243 : tree _q31 = TREE_OPERAND (_p1, 1);
9000 243 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9001 : {
9002 0 : switch (TREE_CODE (_q31))
9003 : {
9004 0 : case INTEGER_CST:
9005 0 : {
9006 0 : {
9007 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
9008 0 : tree res = generic_simplify_44 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9009 0 : if (res) return res;
9010 : }
9011 0 : break;
9012 : }
9013 : default:;
9014 : }
9015 : }
9016 : break;
9017 : }
9018 898358 : default:;
9019 : }
9020 898358 : {
9021 898358 : tree _p1_pops[1];
9022 898358 : if (tree_nop_convert (_p1, _p1_pops))
9023 : {
9024 630373 : tree _q30 = _p1_pops[0];
9025 630373 : switch (TREE_CODE (_q30))
9026 : {
9027 17 : case MULT_EXPR:
9028 17 : {
9029 17 : tree _q40 = TREE_OPERAND (_q30, 0);
9030 17 : tree _q41 = TREE_OPERAND (_q30, 1);
9031 17 : {
9032 17 : tree _q40_pops[1];
9033 17 : if (tree_nop_convert (_q40, _q40_pops))
9034 : {
9035 0 : tree _q50 = _q40_pops[0];
9036 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
9037 : {
9038 0 : switch (TREE_CODE (_q41))
9039 : {
9040 0 : case INTEGER_CST:
9041 0 : {
9042 0 : {
9043 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
9044 0 : tree res = generic_simplify_40 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9045 0 : if (res) return res;
9046 : }
9047 0 : break;
9048 : }
9049 : default:;
9050 : }
9051 : }
9052 : }
9053 : }
9054 17 : break;
9055 : }
9056 : default:;
9057 : }
9058 : }
9059 : }
9060 898358 : switch (TREE_CODE (_p0))
9061 : {
9062 2503 : case LSHIFT_EXPR:
9063 2503 : {
9064 2503 : tree _q20 = TREE_OPERAND (_p0, 0);
9065 2503 : tree _q21 = TREE_OPERAND (_p0, 1);
9066 2503 : switch (TREE_CODE (_q21))
9067 : {
9068 1122 : case INTEGER_CST:
9069 1122 : {
9070 1122 : switch (TREE_CODE (_p1))
9071 : {
9072 9 : case LSHIFT_EXPR:
9073 9 : {
9074 9 : tree _q50 = TREE_OPERAND (_p1, 0);
9075 9 : tree _q51 = TREE_OPERAND (_p1, 1);
9076 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9077 : {
9078 3 : switch (TREE_CODE (_q51))
9079 : {
9080 3 : case INTEGER_CST:
9081 3 : {
9082 3 : {
9083 3 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
9084 3 : tree res = generic_simplify_46 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9085 3 : if (res) return res;
9086 : }
9087 1 : break;
9088 : }
9089 : default:;
9090 : }
9091 : }
9092 : break;
9093 : }
9094 1120 : default:;
9095 : }
9096 1120 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9097 : {
9098 57 : {
9099 57 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9100 57 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9101 57 : if (res) return res;
9102 : }
9103 : }
9104 : break;
9105 : }
9106 : default:;
9107 : }
9108 : break;
9109 : }
9110 898356 : default:;
9111 : }
9112 898356 : switch (TREE_CODE (_p1))
9113 : {
9114 1982 : case LSHIFT_EXPR:
9115 1982 : {
9116 1982 : tree _q30 = TREE_OPERAND (_p1, 0);
9117 1982 : tree _q31 = TREE_OPERAND (_p1, 1);
9118 1982 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9119 : {
9120 3 : switch (TREE_CODE (_q31))
9121 : {
9122 3 : case INTEGER_CST:
9123 3 : {
9124 3 : {
9125 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
9126 3 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9127 3 : if (res) return res;
9128 : }
9129 0 : break;
9130 : }
9131 : default:;
9132 : }
9133 : }
9134 : break;
9135 : }
9136 898353 : default:;
9137 : }
9138 898353 : switch (TREE_CODE (_p0))
9139 : {
9140 0 : case MIN_EXPR:
9141 0 : {
9142 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9143 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9144 0 : switch (TREE_CODE (_p1))
9145 : {
9146 0 : case MAX_EXPR:
9147 0 : {
9148 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9149 0 : tree _q51 = TREE_OPERAND (_p1, 1);
9150 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9151 : {
9152 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9153 : {
9154 0 : {
9155 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9156 0 : if (!HONOR_NANS (captures[0])
9157 : )
9158 : {
9159 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1193;
9160 0 : {
9161 0 : tree res_op0;
9162 0 : res_op0 = captures[0];
9163 0 : tree res_op1;
9164 0 : res_op1 = captures[1];
9165 0 : tree _r;
9166 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
9167 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
9168 0 : return _r;
9169 : }
9170 0 : next_after_fail1193:;
9171 : }
9172 : }
9173 : }
9174 : }
9175 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9176 : {
9177 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9178 : {
9179 0 : {
9180 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9181 0 : if (!HONOR_NANS (captures[0])
9182 : )
9183 : {
9184 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1194;
9185 0 : {
9186 0 : tree res_op0;
9187 0 : res_op0 = captures[0];
9188 0 : tree res_op1;
9189 0 : res_op1 = captures[1];
9190 0 : tree _r;
9191 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
9192 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
9193 0 : return _r;
9194 : }
9195 0 : next_after_fail1194:;
9196 : }
9197 : }
9198 : }
9199 : }
9200 : break;
9201 : }
9202 : default:;
9203 : }
9204 : break;
9205 : }
9206 0 : case MAX_EXPR:
9207 0 : {
9208 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9209 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9210 0 : switch (TREE_CODE (_p1))
9211 : {
9212 0 : case MIN_EXPR:
9213 0 : {
9214 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9215 0 : tree _q51 = TREE_OPERAND (_p1, 1);
9216 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9217 : {
9218 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9219 : {
9220 0 : {
9221 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9222 0 : if (!HONOR_NANS (captures[0])
9223 : )
9224 : {
9225 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1195;
9226 0 : {
9227 0 : tree res_op0;
9228 0 : res_op0 = captures[0];
9229 0 : tree res_op1;
9230 0 : res_op1 = captures[1];
9231 0 : tree _r;
9232 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
9233 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
9234 0 : return _r;
9235 : }
9236 0 : next_after_fail1195:;
9237 : }
9238 : }
9239 : }
9240 : }
9241 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9242 : {
9243 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9244 : {
9245 0 : {
9246 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9247 0 : if (!HONOR_NANS (captures[0])
9248 : )
9249 : {
9250 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1196;
9251 0 : {
9252 0 : tree res_op0;
9253 0 : res_op0 = captures[0];
9254 0 : tree res_op1;
9255 0 : res_op1 = captures[1];
9256 0 : tree _r;
9257 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
9258 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
9259 0 : return _r;
9260 : }
9261 0 : next_after_fail1196:;
9262 : }
9263 : }
9264 : }
9265 : }
9266 : break;
9267 : }
9268 : default:;
9269 : }
9270 : break;
9271 : }
9272 898353 : default:;
9273 : }
9274 898353 : switch (TREE_CODE (_p1))
9275 : {
9276 243 : case MULT_EXPR:
9277 243 : {
9278 243 : tree _q30 = TREE_OPERAND (_p1, 0);
9279 243 : tree _q31 = TREE_OPERAND (_p1, 1);
9280 243 : switch (TREE_CODE (_q30))
9281 : {
9282 0 : case BIT_XOR_EXPR:
9283 0 : {
9284 0 : tree _q40 = TREE_OPERAND (_q30, 0);
9285 0 : tree _q41 = TREE_OPERAND (_q30, 1);
9286 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
9287 : {
9288 0 : if (tree_zero_one_valued_p (_q31))
9289 : {
9290 0 : {
9291 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q31 };
9292 0 : tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
9293 0 : if (res) return res;
9294 : }
9295 : }
9296 : }
9297 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
9298 : {
9299 0 : if (tree_zero_one_valued_p (_q31))
9300 : {
9301 0 : {
9302 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q31 };
9303 0 : tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
9304 0 : if (res) return res;
9305 : }
9306 : }
9307 : }
9308 : break;
9309 : }
9310 243 : default:;
9311 : }
9312 243 : if (tree_zero_one_valued_p (_q30))
9313 : {
9314 17 : switch (TREE_CODE (_q31))
9315 : {
9316 0 : case BIT_XOR_EXPR:
9317 0 : {
9318 0 : tree _q50 = TREE_OPERAND (_q31, 0);
9319 0 : tree _q51 = TREE_OPERAND (_q31, 1);
9320 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
9321 : {
9322 0 : {
9323 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q51, _q30 };
9324 0 : tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
9325 0 : if (res) return res;
9326 : }
9327 : }
9328 0 : if ((_q51 == _p0 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _p0, 0) && types_match (_q51, _p0)))
9329 : {
9330 0 : {
9331 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q50, _q30 };
9332 0 : tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
9333 0 : if (res) return res;
9334 : }
9335 : }
9336 : break;
9337 : }
9338 : default:;
9339 : }
9340 : }
9341 : break;
9342 : }
9343 898353 : default:;
9344 : }
9345 898353 : switch (TREE_CODE (_p0))
9346 : {
9347 1 : case VEC_COND_EXPR:
9348 1 : {
9349 1 : tree _q20 = TREE_OPERAND (_p0, 0);
9350 1 : tree _q21 = TREE_OPERAND (_p0, 1);
9351 1 : tree _q22 = TREE_OPERAND (_p0, 2);
9352 1 : switch (TREE_CODE (_p1))
9353 : {
9354 0 : case VEC_COND_EXPR:
9355 0 : {
9356 0 : tree _q60 = TREE_OPERAND (_p1, 0);
9357 0 : tree _q61 = TREE_OPERAND (_p1, 1);
9358 0 : tree _q62 = TREE_OPERAND (_p1, 2);
9359 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9360 : {
9361 0 : {
9362 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
9363 0 : if (VECTOR_TYPE_P (type)
9364 0 : && (TREE_CODE_CLASS (BIT_XOR_EXPR) != tcc_comparison
9365 : || types_match (type, TREE_TYPE (captures[2]))
9366 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
9367 : || (optimize_vectors_before_lowering_p ()
9368 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
9369 : )
9370 : {
9371 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1197;
9372 0 : {
9373 0 : tree res_op0;
9374 0 : res_op0 = captures[1];
9375 0 : tree res_op1;
9376 0 : {
9377 0 : tree _o1[2], _r1;
9378 0 : _o1[0] = captures[2];
9379 0 : _o1[1] = captures[5];
9380 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
9381 0 : if (EXPR_P (_r1))
9382 0 : goto next_after_fail1197;
9383 0 : res_op1 = _r1;
9384 : }
9385 0 : tree res_op2;
9386 0 : {
9387 0 : tree _o1[2], _r1;
9388 0 : _o1[0] = captures[3];
9389 0 : _o1[1] = captures[6];
9390 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
9391 0 : if (EXPR_P (_r1))
9392 0 : goto next_after_fail1197;
9393 0 : res_op2 = _r1;
9394 : }
9395 0 : tree _r;
9396 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9397 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
9398 0 : return _r;
9399 : }
9400 0 : next_after_fail1197:;
9401 : }
9402 : }
9403 : }
9404 : break;
9405 : }
9406 1 : default:;
9407 : }
9408 1 : if (integer_minus_onep (_q21))
9409 : {
9410 1 : if (integer_zerop (_q22))
9411 : {
9412 1 : switch (TREE_CODE (_p1))
9413 : {
9414 0 : case VEC_COND_EXPR:
9415 0 : {
9416 0 : tree _q60 = TREE_OPERAND (_p1, 0);
9417 0 : tree _q61 = TREE_OPERAND (_p1, 1);
9418 0 : tree _q62 = TREE_OPERAND (_p1, 2);
9419 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
9420 : {
9421 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
9422 : {
9423 0 : {
9424 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9425 0 : const enum tree_code lop = BIT_XOR_EXPR;
9426 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9427 : )
9428 : {
9429 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1198;
9430 0 : {
9431 0 : tree res_op0;
9432 0 : {
9433 0 : tree _o1[2], _r1;
9434 0 : _o1[0] = captures[0];
9435 0 : _o1[1] = captures[3];
9436 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9437 0 : res_op0 = _r1;
9438 : }
9439 0 : tree res_op1;
9440 0 : res_op1 = captures[1];
9441 0 : tree res_op2;
9442 0 : res_op2 = captures[2];
9443 0 : tree _r;
9444 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9445 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9446 0 : return _r;
9447 : }
9448 0 : next_after_fail1198:;
9449 : }
9450 : }
9451 0 : {
9452 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9453 0 : const enum tree_code lop = BIT_XOR_EXPR;
9454 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9455 : )
9456 : {
9457 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1199;
9458 0 : {
9459 0 : tree res_op0;
9460 0 : {
9461 0 : tree _o1[2], _r1;
9462 0 : _o1[0] = captures[0];
9463 0 : _o1[1] = captures[3];
9464 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9465 0 : res_op0 = _r1;
9466 : }
9467 0 : tree res_op1;
9468 0 : res_op1 = captures[1];
9469 0 : tree res_op2;
9470 0 : res_op2 = captures[2];
9471 0 : tree _r;
9472 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9473 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9474 0 : return _r;
9475 : }
9476 0 : next_after_fail1199:;
9477 : }
9478 : }
9479 0 : {
9480 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9481 0 : const enum tree_code lop = BIT_XOR_EXPR;
9482 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9483 : )
9484 : {
9485 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1200;
9486 0 : {
9487 0 : tree res_op0;
9488 0 : {
9489 0 : tree _o1[2], _r1;
9490 0 : _o1[0] = captures[0];
9491 0 : _o1[1] = captures[3];
9492 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9493 0 : res_op0 = _r1;
9494 : }
9495 0 : tree res_op1;
9496 0 : res_op1 = captures[1];
9497 0 : tree res_op2;
9498 0 : res_op2 = captures[2];
9499 0 : tree _r;
9500 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9501 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9502 0 : return _r;
9503 : }
9504 0 : next_after_fail1200:;
9505 : }
9506 : }
9507 0 : {
9508 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9509 0 : const enum tree_code lop = BIT_XOR_EXPR;
9510 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9511 : )
9512 : {
9513 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1201;
9514 0 : {
9515 0 : tree res_op0;
9516 0 : {
9517 0 : tree _o1[2], _r1;
9518 0 : _o1[0] = captures[0];
9519 0 : _o1[1] = captures[3];
9520 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9521 0 : res_op0 = _r1;
9522 : }
9523 0 : tree res_op1;
9524 0 : res_op1 = captures[1];
9525 0 : tree res_op2;
9526 0 : res_op2 = captures[2];
9527 0 : tree _r;
9528 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9529 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9530 0 : return _r;
9531 : }
9532 0 : next_after_fail1201:;
9533 : }
9534 : }
9535 0 : {
9536 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9537 0 : const enum tree_code lop = BIT_XOR_EXPR;
9538 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9539 : )
9540 : {
9541 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1202;
9542 0 : {
9543 0 : tree res_op0;
9544 0 : {
9545 0 : tree _o1[2], _r1;
9546 0 : _o1[0] = captures[0];
9547 0 : _o1[1] = captures[3];
9548 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9549 0 : res_op0 = _r1;
9550 : }
9551 0 : tree res_op1;
9552 0 : res_op1 = captures[1];
9553 0 : tree res_op2;
9554 0 : res_op2 = captures[2];
9555 0 : tree _r;
9556 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9557 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9558 0 : return _r;
9559 : }
9560 0 : next_after_fail1202:;
9561 : }
9562 : }
9563 0 : {
9564 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9565 0 : const enum tree_code lop = BIT_XOR_EXPR;
9566 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9567 : )
9568 : {
9569 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1203;
9570 0 : {
9571 0 : tree res_op0;
9572 0 : {
9573 0 : tree _o1[2], _r1;
9574 0 : _o1[0] = captures[0];
9575 0 : _o1[1] = captures[3];
9576 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9577 0 : res_op0 = _r1;
9578 : }
9579 0 : tree res_op1;
9580 0 : res_op1 = captures[1];
9581 0 : tree res_op2;
9582 0 : res_op2 = captures[2];
9583 0 : tree _r;
9584 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9585 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9586 0 : return _r;
9587 : }
9588 0 : next_after_fail1203:;
9589 : }
9590 : }
9591 0 : {
9592 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9593 0 : const enum tree_code lop = BIT_XOR_EXPR;
9594 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9595 : )
9596 : {
9597 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1204;
9598 0 : {
9599 0 : tree res_op0;
9600 0 : {
9601 0 : tree _o1[2], _r1;
9602 0 : _o1[0] = captures[0];
9603 0 : _o1[1] = captures[3];
9604 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9605 0 : res_op0 = _r1;
9606 : }
9607 0 : tree res_op1;
9608 0 : res_op1 = captures[1];
9609 0 : tree res_op2;
9610 0 : res_op2 = captures[2];
9611 0 : tree _r;
9612 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9613 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9614 0 : return _r;
9615 : }
9616 0 : next_after_fail1204:;
9617 : }
9618 : }
9619 0 : {
9620 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9621 0 : const enum tree_code lop = BIT_XOR_EXPR;
9622 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9623 : )
9624 : {
9625 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1205;
9626 0 : {
9627 0 : tree res_op0;
9628 0 : {
9629 0 : tree _o1[2], _r1;
9630 0 : _o1[0] = captures[0];
9631 0 : _o1[1] = captures[3];
9632 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9633 0 : res_op0 = _r1;
9634 : }
9635 0 : tree res_op1;
9636 0 : res_op1 = captures[1];
9637 0 : tree res_op2;
9638 0 : res_op2 = captures[2];
9639 0 : tree _r;
9640 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9641 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9642 0 : return _r;
9643 : }
9644 0 : next_after_fail1205:;
9645 : }
9646 : }
9647 0 : {
9648 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9649 0 : const enum tree_code lop = BIT_XOR_EXPR;
9650 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9651 : )
9652 : {
9653 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1206;
9654 0 : {
9655 0 : tree res_op0;
9656 0 : {
9657 0 : tree _o1[2], _r1;
9658 0 : _o1[0] = captures[0];
9659 0 : _o1[1] = captures[3];
9660 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9661 0 : res_op0 = _r1;
9662 : }
9663 0 : tree res_op1;
9664 0 : res_op1 = captures[1];
9665 0 : tree res_op2;
9666 0 : res_op2 = captures[2];
9667 0 : tree _r;
9668 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9669 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9670 0 : return _r;
9671 : }
9672 0 : next_after_fail1206:;
9673 : }
9674 : }
9675 0 : {
9676 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9677 0 : const enum tree_code lop = BIT_XOR_EXPR;
9678 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9679 : )
9680 : {
9681 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1207;
9682 0 : {
9683 0 : tree res_op0;
9684 0 : {
9685 0 : tree _o1[2], _r1;
9686 0 : _o1[0] = captures[0];
9687 0 : _o1[1] = captures[3];
9688 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9689 0 : res_op0 = _r1;
9690 : }
9691 0 : tree res_op1;
9692 0 : res_op1 = captures[1];
9693 0 : tree res_op2;
9694 0 : res_op2 = captures[2];
9695 0 : tree _r;
9696 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9697 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9698 0 : return _r;
9699 : }
9700 0 : next_after_fail1207:;
9701 : }
9702 : }
9703 0 : {
9704 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9705 0 : const enum tree_code lop = BIT_XOR_EXPR;
9706 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9707 : )
9708 : {
9709 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1208;
9710 0 : {
9711 0 : tree res_op0;
9712 0 : {
9713 0 : tree _o1[2], _r1;
9714 0 : _o1[0] = captures[0];
9715 0 : _o1[1] = captures[3];
9716 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9717 0 : res_op0 = _r1;
9718 : }
9719 0 : tree res_op1;
9720 0 : res_op1 = captures[1];
9721 0 : tree res_op2;
9722 0 : res_op2 = captures[2];
9723 0 : tree _r;
9724 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9725 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9726 0 : return _r;
9727 : }
9728 0 : next_after_fail1208:;
9729 : }
9730 : }
9731 0 : {
9732 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9733 0 : const enum tree_code lop = BIT_XOR_EXPR;
9734 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9735 : )
9736 : {
9737 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1209;
9738 0 : {
9739 0 : tree res_op0;
9740 0 : {
9741 0 : tree _o1[2], _r1;
9742 0 : _o1[0] = captures[0];
9743 0 : _o1[1] = captures[3];
9744 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9745 0 : res_op0 = _r1;
9746 : }
9747 0 : tree res_op1;
9748 0 : res_op1 = captures[1];
9749 0 : tree res_op2;
9750 0 : res_op2 = captures[2];
9751 0 : tree _r;
9752 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9753 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9754 0 : return _r;
9755 : }
9756 0 : next_after_fail1209:;
9757 : }
9758 : }
9759 0 : {
9760 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9761 0 : const enum tree_code lop = BIT_XOR_EXPR;
9762 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9763 : )
9764 : {
9765 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1210;
9766 0 : {
9767 0 : tree res_op0;
9768 0 : {
9769 0 : tree _o1[2], _r1;
9770 0 : _o1[0] = captures[0];
9771 0 : _o1[1] = captures[3];
9772 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9773 0 : res_op0 = _r1;
9774 : }
9775 0 : tree res_op1;
9776 0 : res_op1 = captures[1];
9777 0 : tree res_op2;
9778 0 : res_op2 = captures[2];
9779 0 : tree _r;
9780 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9781 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9782 0 : return _r;
9783 : }
9784 0 : next_after_fail1210:;
9785 : }
9786 : }
9787 0 : {
9788 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9789 0 : const enum tree_code lop = BIT_XOR_EXPR;
9790 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9791 : )
9792 : {
9793 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1211;
9794 0 : {
9795 0 : tree res_op0;
9796 0 : {
9797 0 : tree _o1[2], _r1;
9798 0 : _o1[0] = captures[0];
9799 0 : _o1[1] = captures[3];
9800 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9801 0 : res_op0 = _r1;
9802 : }
9803 0 : tree res_op1;
9804 0 : res_op1 = captures[1];
9805 0 : tree res_op2;
9806 0 : res_op2 = captures[2];
9807 0 : tree _r;
9808 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9809 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9810 0 : return _r;
9811 : }
9812 0 : next_after_fail1211:;
9813 : }
9814 : }
9815 0 : {
9816 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9817 0 : const enum tree_code lop = BIT_XOR_EXPR;
9818 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9819 : )
9820 : {
9821 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1212;
9822 0 : {
9823 0 : tree res_op0;
9824 0 : {
9825 0 : tree _o1[2], _r1;
9826 0 : _o1[0] = captures[0];
9827 0 : _o1[1] = captures[3];
9828 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9829 0 : res_op0 = _r1;
9830 : }
9831 0 : tree res_op1;
9832 0 : res_op1 = captures[1];
9833 0 : tree res_op2;
9834 0 : res_op2 = captures[2];
9835 0 : tree _r;
9836 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9837 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9838 0 : return _r;
9839 : }
9840 0 : next_after_fail1212:;
9841 : }
9842 : }
9843 0 : {
9844 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9845 0 : const enum tree_code lop = BIT_XOR_EXPR;
9846 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9847 : )
9848 : {
9849 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1213;
9850 0 : {
9851 0 : tree res_op0;
9852 0 : {
9853 0 : tree _o1[2], _r1;
9854 0 : _o1[0] = captures[0];
9855 0 : _o1[1] = captures[3];
9856 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9857 0 : res_op0 = _r1;
9858 : }
9859 0 : tree res_op1;
9860 0 : res_op1 = captures[1];
9861 0 : tree res_op2;
9862 0 : res_op2 = captures[2];
9863 0 : tree _r;
9864 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9865 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9866 0 : return _r;
9867 : }
9868 0 : next_after_fail1213:;
9869 : }
9870 : }
9871 0 : {
9872 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9873 0 : const enum tree_code lop = BIT_XOR_EXPR;
9874 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9875 : )
9876 : {
9877 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1214;
9878 0 : {
9879 0 : tree res_op0;
9880 0 : {
9881 0 : tree _o1[2], _r1;
9882 0 : _o1[0] = captures[0];
9883 0 : _o1[1] = captures[3];
9884 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9885 0 : res_op0 = _r1;
9886 : }
9887 0 : tree res_op1;
9888 0 : res_op1 = captures[1];
9889 0 : tree res_op2;
9890 0 : res_op2 = captures[2];
9891 0 : tree _r;
9892 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9893 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9894 0 : return _r;
9895 : }
9896 0 : next_after_fail1214:;
9897 : }
9898 : }
9899 0 : {
9900 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9901 0 : const enum tree_code lop = BIT_XOR_EXPR;
9902 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9903 : )
9904 : {
9905 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1215;
9906 0 : {
9907 0 : tree res_op0;
9908 0 : {
9909 0 : tree _o1[2], _r1;
9910 0 : _o1[0] = captures[0];
9911 0 : _o1[1] = captures[3];
9912 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9913 0 : res_op0 = _r1;
9914 : }
9915 0 : tree res_op1;
9916 0 : res_op1 = captures[1];
9917 0 : tree res_op2;
9918 0 : res_op2 = captures[2];
9919 0 : tree _r;
9920 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9921 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9922 0 : return _r;
9923 : }
9924 0 : next_after_fail1215:;
9925 : }
9926 : }
9927 0 : {
9928 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9929 0 : const enum tree_code lop = BIT_XOR_EXPR;
9930 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9931 : )
9932 : {
9933 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1216;
9934 0 : {
9935 0 : tree res_op0;
9936 0 : {
9937 0 : tree _o1[2], _r1;
9938 0 : _o1[0] = captures[0];
9939 0 : _o1[1] = captures[3];
9940 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9941 0 : res_op0 = _r1;
9942 : }
9943 0 : tree res_op1;
9944 0 : res_op1 = captures[1];
9945 0 : tree res_op2;
9946 0 : res_op2 = captures[2];
9947 0 : tree _r;
9948 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9949 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9950 0 : return _r;
9951 : }
9952 0 : next_after_fail1216:;
9953 : }
9954 : }
9955 0 : {
9956 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9957 0 : const enum tree_code lop = BIT_XOR_EXPR;
9958 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9959 : )
9960 : {
9961 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1217;
9962 0 : {
9963 0 : tree res_op0;
9964 0 : {
9965 0 : tree _o1[2], _r1;
9966 0 : _o1[0] = captures[0];
9967 0 : _o1[1] = captures[3];
9968 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9969 0 : res_op0 = _r1;
9970 : }
9971 0 : tree res_op1;
9972 0 : res_op1 = captures[1];
9973 0 : tree res_op2;
9974 0 : res_op2 = captures[2];
9975 0 : tree _r;
9976 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9977 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
9978 0 : return _r;
9979 : }
9980 0 : next_after_fail1217:;
9981 : }
9982 : }
9983 0 : {
9984 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9985 0 : const enum tree_code lop = BIT_XOR_EXPR;
9986 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9987 : )
9988 : {
9989 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1218;
9990 0 : {
9991 0 : tree res_op0;
9992 0 : {
9993 0 : tree _o1[2], _r1;
9994 0 : _o1[0] = captures[0];
9995 0 : _o1[1] = captures[3];
9996 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9997 0 : res_op0 = _r1;
9998 : }
9999 0 : tree res_op1;
10000 0 : res_op1 = captures[1];
10001 0 : tree res_op2;
10002 0 : res_op2 = captures[2];
10003 0 : tree _r;
10004 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10005 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10006 0 : return _r;
10007 : }
10008 0 : next_after_fail1218:;
10009 : }
10010 : }
10011 0 : {
10012 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10013 0 : const enum tree_code lop = BIT_XOR_EXPR;
10014 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10015 : )
10016 : {
10017 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1219;
10018 0 : {
10019 0 : tree res_op0;
10020 0 : {
10021 0 : tree _o1[2], _r1;
10022 0 : _o1[0] = captures[0];
10023 0 : _o1[1] = captures[3];
10024 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10025 0 : res_op0 = _r1;
10026 : }
10027 0 : tree res_op1;
10028 0 : res_op1 = captures[1];
10029 0 : tree res_op2;
10030 0 : res_op2 = captures[2];
10031 0 : tree _r;
10032 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10033 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10034 0 : return _r;
10035 : }
10036 0 : next_after_fail1219:;
10037 : }
10038 : }
10039 0 : {
10040 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10041 0 : const enum tree_code lop = BIT_XOR_EXPR;
10042 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10043 : )
10044 : {
10045 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1220;
10046 0 : {
10047 0 : tree res_op0;
10048 0 : {
10049 0 : tree _o1[2], _r1;
10050 0 : _o1[0] = captures[0];
10051 0 : _o1[1] = captures[3];
10052 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10053 0 : res_op0 = _r1;
10054 : }
10055 0 : tree res_op1;
10056 0 : res_op1 = captures[1];
10057 0 : tree res_op2;
10058 0 : res_op2 = captures[2];
10059 0 : tree _r;
10060 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10061 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10062 0 : return _r;
10063 : }
10064 0 : next_after_fail1220:;
10065 : }
10066 : }
10067 0 : {
10068 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10069 0 : const enum tree_code lop = BIT_XOR_EXPR;
10070 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10071 : )
10072 : {
10073 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1221;
10074 0 : {
10075 0 : tree res_op0;
10076 0 : {
10077 0 : tree _o1[2], _r1;
10078 0 : _o1[0] = captures[0];
10079 0 : _o1[1] = captures[3];
10080 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10081 0 : res_op0 = _r1;
10082 : }
10083 0 : tree res_op1;
10084 0 : res_op1 = captures[1];
10085 0 : tree res_op2;
10086 0 : res_op2 = captures[2];
10087 0 : tree _r;
10088 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10089 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10090 0 : return _r;
10091 : }
10092 0 : next_after_fail1221:;
10093 : }
10094 : }
10095 0 : {
10096 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10097 0 : const enum tree_code lop = BIT_XOR_EXPR;
10098 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10099 : )
10100 : {
10101 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1222;
10102 0 : {
10103 0 : tree res_op0;
10104 0 : {
10105 0 : tree _o1[2], _r1;
10106 0 : _o1[0] = captures[0];
10107 0 : _o1[1] = captures[3];
10108 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10109 0 : res_op0 = _r1;
10110 : }
10111 0 : tree res_op1;
10112 0 : res_op1 = captures[1];
10113 0 : tree res_op2;
10114 0 : res_op2 = captures[2];
10115 0 : tree _r;
10116 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10117 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10118 0 : return _r;
10119 : }
10120 0 : next_after_fail1222:;
10121 : }
10122 : }
10123 0 : {
10124 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10125 0 : const enum tree_code lop = BIT_XOR_EXPR;
10126 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10127 : )
10128 : {
10129 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1223;
10130 0 : {
10131 0 : tree res_op0;
10132 0 : {
10133 0 : tree _o1[2], _r1;
10134 0 : _o1[0] = captures[0];
10135 0 : _o1[1] = captures[3];
10136 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10137 0 : res_op0 = _r1;
10138 : }
10139 0 : tree res_op1;
10140 0 : res_op1 = captures[1];
10141 0 : tree res_op2;
10142 0 : res_op2 = captures[2];
10143 0 : tree _r;
10144 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10145 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10146 0 : return _r;
10147 : }
10148 0 : next_after_fail1223:;
10149 : }
10150 : }
10151 0 : {
10152 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10153 0 : const enum tree_code lop = BIT_XOR_EXPR;
10154 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10155 : )
10156 : {
10157 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1224;
10158 0 : {
10159 0 : tree res_op0;
10160 0 : {
10161 0 : tree _o1[2], _r1;
10162 0 : _o1[0] = captures[0];
10163 0 : _o1[1] = captures[3];
10164 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10165 0 : res_op0 = _r1;
10166 : }
10167 0 : tree res_op1;
10168 0 : res_op1 = captures[1];
10169 0 : tree res_op2;
10170 0 : res_op2 = captures[2];
10171 0 : tree _r;
10172 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10173 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10174 0 : return _r;
10175 : }
10176 0 : next_after_fail1224:;
10177 : }
10178 : }
10179 0 : {
10180 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10181 0 : const enum tree_code lop = BIT_XOR_EXPR;
10182 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10183 : )
10184 : {
10185 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1225;
10186 0 : {
10187 0 : tree res_op0;
10188 0 : {
10189 0 : tree _o1[2], _r1;
10190 0 : _o1[0] = captures[0];
10191 0 : _o1[1] = captures[3];
10192 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10193 0 : res_op0 = _r1;
10194 : }
10195 0 : tree res_op1;
10196 0 : res_op1 = captures[1];
10197 0 : tree res_op2;
10198 0 : res_op2 = captures[2];
10199 0 : tree _r;
10200 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10201 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10202 0 : return _r;
10203 : }
10204 0 : next_after_fail1225:;
10205 : }
10206 : }
10207 0 : {
10208 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10209 0 : const enum tree_code lop = BIT_XOR_EXPR;
10210 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10211 : )
10212 : {
10213 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1226;
10214 0 : {
10215 0 : tree res_op0;
10216 0 : {
10217 0 : tree _o1[2], _r1;
10218 0 : _o1[0] = captures[0];
10219 0 : _o1[1] = captures[3];
10220 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10221 0 : res_op0 = _r1;
10222 : }
10223 0 : tree res_op1;
10224 0 : res_op1 = captures[1];
10225 0 : tree res_op2;
10226 0 : res_op2 = captures[2];
10227 0 : tree _r;
10228 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10229 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10230 0 : return _r;
10231 : }
10232 0 : next_after_fail1226:;
10233 : }
10234 : }
10235 0 : {
10236 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10237 0 : const enum tree_code lop = BIT_XOR_EXPR;
10238 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10239 : )
10240 : {
10241 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1227;
10242 0 : {
10243 0 : tree res_op0;
10244 0 : {
10245 0 : tree _o1[2], _r1;
10246 0 : _o1[0] = captures[0];
10247 0 : _o1[1] = captures[3];
10248 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10249 0 : res_op0 = _r1;
10250 : }
10251 0 : tree res_op1;
10252 0 : res_op1 = captures[1];
10253 0 : tree res_op2;
10254 0 : res_op2 = captures[2];
10255 0 : tree _r;
10256 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10257 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10258 0 : return _r;
10259 : }
10260 0 : next_after_fail1227:;
10261 : }
10262 : }
10263 0 : {
10264 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10265 0 : const enum tree_code lop = BIT_XOR_EXPR;
10266 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10267 : )
10268 : {
10269 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1228;
10270 0 : {
10271 0 : tree res_op0;
10272 0 : {
10273 0 : tree _o1[2], _r1;
10274 0 : _o1[0] = captures[0];
10275 0 : _o1[1] = captures[3];
10276 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10277 0 : res_op0 = _r1;
10278 : }
10279 0 : tree res_op1;
10280 0 : res_op1 = captures[1];
10281 0 : tree res_op2;
10282 0 : res_op2 = captures[2];
10283 0 : tree _r;
10284 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10285 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10286 0 : return _r;
10287 : }
10288 0 : next_after_fail1228:;
10289 : }
10290 : }
10291 0 : {
10292 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10293 0 : const enum tree_code lop = BIT_XOR_EXPR;
10294 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10295 : )
10296 : {
10297 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1229;
10298 0 : {
10299 0 : tree res_op0;
10300 0 : {
10301 0 : tree _o1[2], _r1;
10302 0 : _o1[0] = captures[0];
10303 0 : _o1[1] = captures[3];
10304 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10305 0 : res_op0 = _r1;
10306 : }
10307 0 : tree res_op1;
10308 0 : res_op1 = captures[1];
10309 0 : tree res_op2;
10310 0 : res_op2 = captures[2];
10311 0 : tree _r;
10312 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10313 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10314 0 : return _r;
10315 : }
10316 0 : next_after_fail1229:;
10317 : }
10318 : }
10319 0 : {
10320 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10321 0 : const enum tree_code lop = BIT_XOR_EXPR;
10322 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10323 : )
10324 : {
10325 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1230;
10326 0 : {
10327 0 : tree res_op0;
10328 0 : {
10329 0 : tree _o1[2], _r1;
10330 0 : _o1[0] = captures[0];
10331 0 : _o1[1] = captures[3];
10332 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10333 0 : res_op0 = _r1;
10334 : }
10335 0 : tree res_op1;
10336 0 : res_op1 = captures[1];
10337 0 : tree res_op2;
10338 0 : res_op2 = captures[2];
10339 0 : tree _r;
10340 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10341 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10342 0 : return _r;
10343 : }
10344 0 : next_after_fail1230:;
10345 : }
10346 : }
10347 0 : {
10348 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10349 0 : const enum tree_code lop = BIT_XOR_EXPR;
10350 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10351 : )
10352 : {
10353 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1231;
10354 0 : {
10355 0 : tree res_op0;
10356 0 : {
10357 0 : tree _o1[2], _r1;
10358 0 : _o1[0] = captures[0];
10359 0 : _o1[1] = captures[3];
10360 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10361 0 : res_op0 = _r1;
10362 : }
10363 0 : tree res_op1;
10364 0 : res_op1 = captures[1];
10365 0 : tree res_op2;
10366 0 : res_op2 = captures[2];
10367 0 : tree _r;
10368 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10369 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
10370 0 : return _r;
10371 : }
10372 0 : next_after_fail1231:;
10373 : }
10374 : }
10375 : }
10376 : }
10377 : break;
10378 : }
10379 : default:;
10380 : }
10381 : }
10382 : }
10383 1 : {
10384 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
10385 1 : if (VECTOR_TYPE_P (type)
10386 1 : && (TREE_CODE_CLASS (BIT_XOR_EXPR) != tcc_comparison
10387 : || types_match (type, TREE_TYPE (captures[2]))
10388 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10389 : || (optimize_vectors_before_lowering_p ()
10390 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10391 : )
10392 : {
10393 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1232;
10394 1 : {
10395 1 : if (! tree_invariant_p (captures[4])) goto next_after_fail1232;
10396 0 : tree res_op0;
10397 0 : res_op0 = captures[1];
10398 0 : tree res_op1;
10399 0 : {
10400 0 : tree _o1[2], _r1;
10401 0 : _o1[0] = captures[2];
10402 0 : _o1[1] = unshare_expr (captures[4]);
10403 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
10404 0 : if (EXPR_P (_r1))
10405 0 : goto next_after_fail1232;
10406 0 : res_op1 = _r1;
10407 : }
10408 0 : tree res_op2;
10409 0 : {
10410 0 : tree _o1[2], _r1;
10411 0 : _o1[0] = captures[3];
10412 0 : _o1[1] = captures[4];
10413 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
10414 0 : if (EXPR_P (_r1))
10415 0 : goto next_after_fail1232;
10416 0 : res_op2 = _r1;
10417 : }
10418 0 : tree _r;
10419 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10420 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
10421 0 : return _r;
10422 : }
10423 1 : next_after_fail1232:;
10424 : }
10425 : }
10426 1 : break;
10427 : }
10428 898353 : default:;
10429 : }
10430 898353 : switch (TREE_CODE (_p1))
10431 : {
10432 0 : case VEC_COND_EXPR:
10433 0 : {
10434 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10435 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10436 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10437 0 : {
10438 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
10439 0 : if (VECTOR_TYPE_P (type)
10440 0 : && (TREE_CODE_CLASS (BIT_XOR_EXPR) != tcc_comparison
10441 : || types_match (type, TREE_TYPE (captures[3]))
10442 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
10443 : || (optimize_vectors_before_lowering_p ()
10444 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
10445 : )
10446 : {
10447 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1233;
10448 0 : {
10449 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1233;
10450 0 : tree res_op0;
10451 0 : res_op0 = captures[2];
10452 0 : tree res_op1;
10453 0 : {
10454 0 : tree _o1[2], _r1;
10455 0 : _o1[0] = unshare_expr (captures[0]);
10456 0 : _o1[1] = captures[3];
10457 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
10458 0 : if (EXPR_P (_r1))
10459 0 : goto next_after_fail1233;
10460 0 : res_op1 = _r1;
10461 : }
10462 0 : tree res_op2;
10463 0 : {
10464 0 : tree _o1[2], _r1;
10465 0 : _o1[0] = captures[0];
10466 0 : _o1[1] = captures[4];
10467 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
10468 0 : if (EXPR_P (_r1))
10469 0 : goto next_after_fail1233;
10470 0 : res_op2 = _r1;
10471 : }
10472 0 : tree _r;
10473 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10474 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
10475 0 : return _r;
10476 : }
10477 0 : next_after_fail1233:;
10478 : }
10479 : }
10480 0 : break;
10481 : }
10482 898353 : default:;
10483 : }
10484 898353 : switch (TREE_CODE (_p0))
10485 : {
10486 90 : case LT_EXPR:
10487 90 : {
10488 90 : tree _q20 = TREE_OPERAND (_p0, 0);
10489 90 : tree _q21 = TREE_OPERAND (_p0, 1);
10490 90 : if (integer_truep (_p1))
10491 : {
10492 14 : {
10493 14 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10494 14 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
10495 14 : if (res) return res;
10496 : }
10497 : }
10498 76 : if (integer_zerop (_q21))
10499 : {
10500 24 : switch (TREE_CODE (_p1))
10501 : {
10502 17 : case LT_EXPR:
10503 17 : {
10504 17 : tree _q50 = TREE_OPERAND (_p1, 0);
10505 17 : tree _q51 = TREE_OPERAND (_p1, 1);
10506 17 : if (integer_zerop (_q51))
10507 : {
10508 17 : {
10509 17 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
10510 17 : tree res = generic_simplify_49 (loc, type, _p0, _p1, captures, LT_EXPR);
10511 17 : if (res) return res;
10512 : }
10513 : }
10514 : break;
10515 : }
10516 0 : case GE_EXPR:
10517 0 : {
10518 0 : tree _q50 = TREE_OPERAND (_p1, 0);
10519 0 : tree _q51 = TREE_OPERAND (_p1, 1);
10520 0 : if (integer_zerop (_q51))
10521 : {
10522 0 : {
10523 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
10524 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures);
10525 0 : if (res) return res;
10526 : }
10527 : }
10528 : break;
10529 : }
10530 : default:;
10531 : }
10532 : }
10533 : break;
10534 : }
10535 85 : case LE_EXPR:
10536 85 : {
10537 85 : tree _q20 = TREE_OPERAND (_p0, 0);
10538 85 : tree _q21 = TREE_OPERAND (_p0, 1);
10539 85 : if (integer_truep (_p1))
10540 : {
10541 15 : {
10542 15 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10543 15 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
10544 15 : if (res) return res;
10545 : }
10546 : }
10547 : break;
10548 : }
10549 119 : case EQ_EXPR:
10550 119 : {
10551 119 : tree _q20 = TREE_OPERAND (_p0, 0);
10552 119 : tree _q21 = TREE_OPERAND (_p0, 1);
10553 119 : if (integer_truep (_p1))
10554 : {
10555 14 : {
10556 14 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10557 14 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
10558 14 : if (res) return res;
10559 : }
10560 : }
10561 : break;
10562 : }
10563 113 : case NE_EXPR:
10564 113 : {
10565 113 : tree _q20 = TREE_OPERAND (_p0, 0);
10566 113 : tree _q21 = TREE_OPERAND (_p0, 1);
10567 113 : if (integer_truep (_p1))
10568 : {
10569 7 : {
10570 7 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10571 7 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
10572 7 : if (res) return res;
10573 : }
10574 : }
10575 : break;
10576 : }
10577 62 : case GE_EXPR:
10578 62 : {
10579 62 : tree _q20 = TREE_OPERAND (_p0, 0);
10580 62 : tree _q21 = TREE_OPERAND (_p0, 1);
10581 62 : if (integer_truep (_p1))
10582 : {
10583 0 : {
10584 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10585 0 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
10586 0 : if (res) return res;
10587 : }
10588 : }
10589 62 : if (integer_zerop (_q21))
10590 : {
10591 26 : switch (TREE_CODE (_p1))
10592 : {
10593 1 : case GE_EXPR:
10594 1 : {
10595 1 : tree _q50 = TREE_OPERAND (_p1, 0);
10596 1 : tree _q51 = TREE_OPERAND (_p1, 1);
10597 1 : if (integer_zerop (_q51))
10598 : {
10599 1 : {
10600 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
10601 1 : tree res = generic_simplify_49 (loc, type, _p0, _p1, captures, GE_EXPR);
10602 1 : if (res) return res;
10603 : }
10604 : }
10605 : break;
10606 : }
10607 5 : case LT_EXPR:
10608 5 : {
10609 5 : tree _q50 = TREE_OPERAND (_p1, 0);
10610 5 : tree _q51 = TREE_OPERAND (_p1, 1);
10611 5 : if (integer_zerop (_q51))
10612 : {
10613 5 : {
10614 5 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _p0, _q20 };
10615 5 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures);
10616 5 : if (res) return res;
10617 : }
10618 : }
10619 : break;
10620 : }
10621 : default:;
10622 : }
10623 : }
10624 : break;
10625 : }
10626 100 : case GT_EXPR:
10627 100 : {
10628 100 : tree _q20 = TREE_OPERAND (_p0, 0);
10629 100 : tree _q21 = TREE_OPERAND (_p0, 1);
10630 100 : if (integer_truep (_p1))
10631 : {
10632 14 : {
10633 14 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10634 14 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
10635 14 : if (res) return res;
10636 : }
10637 : }
10638 : break;
10639 : }
10640 0 : case UNORDERED_EXPR:
10641 0 : {
10642 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10643 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10644 0 : if (integer_truep (_p1))
10645 : {
10646 0 : {
10647 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10648 0 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
10649 0 : if (res) return res;
10650 : }
10651 : }
10652 : break;
10653 : }
10654 0 : case ORDERED_EXPR:
10655 0 : {
10656 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10657 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10658 0 : if (integer_truep (_p1))
10659 : {
10660 0 : {
10661 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10662 0 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
10663 0 : if (res) return res;
10664 : }
10665 : }
10666 : break;
10667 : }
10668 0 : case UNLT_EXPR:
10669 0 : {
10670 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10671 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10672 0 : if (integer_truep (_p1))
10673 : {
10674 0 : {
10675 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10676 0 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
10677 0 : if (res) return res;
10678 : }
10679 : }
10680 : break;
10681 : }
10682 0 : case UNLE_EXPR:
10683 0 : {
10684 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10685 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10686 0 : if (integer_truep (_p1))
10687 : {
10688 0 : {
10689 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10690 0 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
10691 0 : if (res) return res;
10692 : }
10693 : }
10694 : break;
10695 : }
10696 0 : case UNGT_EXPR:
10697 0 : {
10698 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10699 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10700 0 : if (integer_truep (_p1))
10701 : {
10702 0 : {
10703 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10704 0 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
10705 0 : if (res) return res;
10706 : }
10707 : }
10708 : break;
10709 : }
10710 0 : case UNGE_EXPR:
10711 0 : {
10712 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10713 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10714 0 : if (integer_truep (_p1))
10715 : {
10716 0 : {
10717 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10718 0 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
10719 0 : if (res) return res;
10720 : }
10721 : }
10722 : break;
10723 : }
10724 0 : case UNEQ_EXPR:
10725 0 : {
10726 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10727 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10728 0 : if (integer_truep (_p1))
10729 : {
10730 0 : {
10731 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10732 0 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
10733 0 : if (res) return res;
10734 : }
10735 : }
10736 : break;
10737 : }
10738 0 : case LTGT_EXPR:
10739 0 : {
10740 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10741 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10742 0 : if (integer_truep (_p1))
10743 : {
10744 0 : {
10745 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10746 0 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
10747 0 : if (res) return res;
10748 : }
10749 : }
10750 : break;
10751 : }
10752 7 : case VEC_PERM_EXPR:
10753 7 : {
10754 7 : tree _q20 = TREE_OPERAND (_p0, 0);
10755 7 : tree _q21 = TREE_OPERAND (_p0, 1);
10756 7 : tree _q22 = TREE_OPERAND (_p0, 2);
10757 7 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
10758 : {
10759 0 : switch (TREE_CODE (_p1))
10760 : {
10761 0 : case VEC_PERM_EXPR:
10762 0 : {
10763 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10764 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10765 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10766 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
10767 : {
10768 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
10769 : {
10770 0 : {
10771 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
10772 0 : if (VECTOR_INTEGER_TYPE_P (type)
10773 : )
10774 : {
10775 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1234;
10776 0 : {
10777 0 : tree res_op0;
10778 0 : {
10779 0 : tree _o1[2], _r1;
10780 0 : _o1[0] = captures[0];
10781 0 : _o1[1] = captures[2];
10782 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10783 0 : captures[3] = _r1;
10784 : }
10785 0 : res_op0 = unshare_expr (captures[3]);
10786 0 : tree res_op1;
10787 0 : res_op1 = captures[3];
10788 0 : tree res_op2;
10789 0 : res_op2 = captures[1];
10790 0 : tree _r;
10791 0 : _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
10792 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
10793 0 : return _r;
10794 : }
10795 0 : next_after_fail1234:;
10796 : }
10797 : }
10798 : }
10799 : }
10800 : break;
10801 : }
10802 : default:;
10803 : }
10804 : }
10805 : break;
10806 : }
10807 2925 : case CALL_EXPR:
10808 2925 : switch (get_call_combined_fn (_p0))
10809 : {
10810 1 : case CFN_PARITY:
10811 1 : if (call_expr_nargs (_p0) == 1)
10812 : {
10813 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10814 1 : switch (TREE_CODE (_p1))
10815 : {
10816 1 : case CALL_EXPR:
10817 1 : switch (get_call_combined_fn (_p1))
10818 : {
10819 1 : case CFN_PARITY:
10820 1 : if (call_expr_nargs (_p1) == 1)
10821 : {
10822 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10823 1 : {
10824 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10825 1 : tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_PARITY);
10826 1 : if (res) return res;
10827 : }
10828 : }
10829 : break;
10830 : default:;
10831 : }
10832 : break;
10833 : default:;
10834 : }
10835 : }
10836 : break;
10837 1 : case CFN_BUILT_IN_PARITYL:
10838 1 : if (call_expr_nargs (_p0) == 1)
10839 : {
10840 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10841 1 : switch (TREE_CODE (_p1))
10842 : {
10843 1 : case CALL_EXPR:
10844 1 : switch (get_call_combined_fn (_p1))
10845 : {
10846 1 : case CFN_BUILT_IN_PARITYL:
10847 1 : if (call_expr_nargs (_p1) == 1)
10848 : {
10849 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10850 1 : {
10851 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10852 1 : tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYL);
10853 1 : if (res) return res;
10854 : }
10855 : }
10856 : break;
10857 : default:;
10858 : }
10859 : break;
10860 : default:;
10861 : }
10862 : }
10863 : break;
10864 0 : case CFN_BUILT_IN_PARITYIMAX:
10865 0 : if (call_expr_nargs (_p0) == 1)
10866 : {
10867 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10868 0 : switch (TREE_CODE (_p1))
10869 : {
10870 0 : case CALL_EXPR:
10871 0 : switch (get_call_combined_fn (_p1))
10872 : {
10873 0 : case CFN_BUILT_IN_PARITYIMAX:
10874 0 : if (call_expr_nargs (_p1) == 1)
10875 : {
10876 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10877 0 : {
10878 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10879 0 : tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYIMAX);
10880 0 : if (res) return res;
10881 : }
10882 : }
10883 : break;
10884 : default:;
10885 : }
10886 : break;
10887 : default:;
10888 : }
10889 : }
10890 : break;
10891 1 : case CFN_BUILT_IN_PARITY:
10892 1 : if (call_expr_nargs (_p0) == 1)
10893 : {
10894 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10895 1 : switch (TREE_CODE (_p1))
10896 : {
10897 1 : case CALL_EXPR:
10898 1 : switch (get_call_combined_fn (_p1))
10899 : {
10900 1 : case CFN_BUILT_IN_PARITY:
10901 1 : if (call_expr_nargs (_p1) == 1)
10902 : {
10903 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10904 1 : {
10905 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10906 1 : tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITY);
10907 1 : if (res) return res;
10908 : }
10909 : }
10910 : break;
10911 : default:;
10912 : }
10913 : break;
10914 : default:;
10915 : }
10916 : }
10917 : break;
10918 8 : case CFN_BUILT_IN_PARITYLL:
10919 8 : if (call_expr_nargs (_p0) == 1)
10920 : {
10921 8 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10922 8 : switch (TREE_CODE (_p1))
10923 : {
10924 8 : case CALL_EXPR:
10925 8 : switch (get_call_combined_fn (_p1))
10926 : {
10927 8 : case CFN_BUILT_IN_PARITYLL:
10928 8 : if (call_expr_nargs (_p1) == 1)
10929 : {
10930 8 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10931 8 : {
10932 8 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
10933 8 : tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYLL);
10934 8 : if (res) return res;
10935 : }
10936 : }
10937 : break;
10938 : default:;
10939 : }
10940 : break;
10941 : default:;
10942 : }
10943 : }
10944 : break;
10945 : default:;
10946 : }
10947 : break;
10948 : default:;
10949 : }
10950 : return NULL_TREE;
10951 : }
10952 :
10953 : tree
10954 34933093 : generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree _p0, tree _p1, tree _p2)
10955 : {
10956 34933093 : switch (code)
10957 : {
10958 12440909 : case COND_EXPR:
10959 12440909 : return generic_simplify_COND_EXPR (loc, code, type, _p0, _p1, _p2);
10960 390879 : case VEC_COND_EXPR:
10961 390879 : return generic_simplify_VEC_COND_EXPR (loc, code, type, _p0, _p1, _p2);
10962 763724 : case BIT_FIELD_REF:
10963 763724 : return generic_simplify_BIT_FIELD_REF (loc, code, type, _p0, _p1, _p2);
10964 14829 : case BIT_INSERT_EXPR:
10965 14829 : return generic_simplify_BIT_INSERT_EXPR (loc, code, type, _p0, _p1, _p2);
10966 773029 : case VEC_PERM_EXPR:
10967 773029 : return generic_simplify_VEC_PERM_EXPR (loc, code, type, _p0, _p1, _p2);
10968 : default:;
10969 : }
10970 : return NULL_TREE;
10971 : }
10972 :
10973 : tree
10974 0 : generic_simplify (location_t, enum tree_code,
10975 : const tree, tree, tree, tree, tree)
10976 : {
10977 0 : return NULL_TREE;
10978 : }
10979 :
10980 : tree
10981 0 : generic_simplify (location_t, enum tree_code,
10982 : const tree, tree, tree, tree, tree, tree)
10983 : {
10984 0 : return NULL_TREE;
10985 : }
10986 :
10987 : tree
10988 0 : generic_simplify (location_t, enum tree_code,
10989 : const tree, tree, tree, tree, tree, tree, tree)
10990 : {
10991 0 : return NULL_TREE;
10992 : }
10993 :
10994 : tree
10995 0 : generic_simplify (location_t, enum tree_code,
10996 : const tree, tree, tree, tree, tree, tree, tree, tree)
10997 : {
10998 0 : return NULL_TREE;
10999 : }
11000 : void
11001 18347 : generic_dump_logs (const char *file1, int line1_id, const char *file2, int line2, bool simplify)
11002 : {
11003 18347 : static int dbg_line_numbers[1108] = {
11004 : /* 0 */ 161, 164, 173, 175, 178, 181, 183, 189, 197, 195,
11005 : /* 10 */ 199, 201, 970, 972, 2154, 2160, 2162, 2165, 2170, 2173,
11006 : /* 20 */ 2416, 2420, 2422, 2424, 2426, 2428, 2430, 2432, 2459, 2475,
11007 : /* 30 */ 2483, 2465, 3078, 3080, 3082, 3089, 3086, 3096, 3098, 3105,
11008 : /* 40 */ 3102, 3313, 3323, 5668, 9080, 9101, 11344, 11347, 11352, 2121,
11009 : /* 50 */ 8900, 1345, 1349, 1509, 1524, 1529, 1576, 1577, 1581, 1582,
11010 : /* 60 */ 1640, 1645, 1738, 1862, 1952, 1872, 2016, 1882, 1887, 2010,
11011 : /* 70 */ 1895, 2062, 2004, 2023, 2029, 2691, 2036, 2050, 2096, 2313,
11012 : /* 80 */ 2397, 2408, 2411, 2443, 2549, 2581, 4350, 4363, 4373, 3155,
11013 : /* 90 */ 3157, 4713, 4387, 4399, 7060, 7062, 7127, 7135, 10414, 10420,
11014 : /* 100 */ 264, 291, 292, 503, 1339, 1845, 1900, 1963, 3845, 3783,
11015 : /* 110 */ 3888, 3889, 3893, 3894, 3904, 3908, 3912, 3927, 3930, 3934,
11016 : /* 120 */ 3860, 3863, 3868, 4014, 4020, 4026, 4206, 4207, 4236, 4257,
11017 : /* 130 */ 4276, 4701, 5567, 6991, 7076, 7078, 8528, 8603, 10255, 10303,
11018 : /* 140 */ 10317, 11371, 11796, 954, 960, 1489, 1498, 1981, 1972, 1919,
11019 : /* 150 */ 2717, 3796, 3836, 3841, 3842, 3850, 3851, 3854, 3871, 3946,
11020 : /* 160 */ 3949, 3953, 4034, 4056, 4094, 4105, 4144, 4159, 4707, 7001,
11021 : /* 170 */ 8608, 10313, 11375, 1475, 1484, 1514, 1519, 1561, 1546, 1553,
11022 : /* 180 */ 1603, 2058, 1608, 1615, 1635, 1762, 1852, 1857, 1867, 1877,
11023 : /* 190 */ 1991, 2078, 2088, 2090, 2349, 2357, 2362, 2367, 2383, 2373,
11024 : /* 200 */ 2374, 2532, 2561, 2563, 2568, 2570, 2710, 3369, 3384, 3402,
11025 : /* 210 */ 3602, 3603, 3604, 3612, 3620, 3629, 3638, 3670, 3671, 3676,
11026 : /* 220 */ 3677, 3682, 3687, 3691, 3746, 3760, 3374, 3393, 3395, 3379,
11027 : /* 230 */ 7664, 9478, 11894, 11909, 471, 477, 509, 1284, 1304, 1309,
11028 : /* 240 */ 2146, 2147, 2184, 2726, 5252, 5553, 5560, 5610, 5613, 5663,
11029 : /* 250 */ 8521, 8935, 8765, 8772, 8929, 8974, 8979, 339, 916, 1357,
11030 : /* 260 */ 2997, 2793, 2799, 2802, 2807, 2448, 2705, 2501, 2643, 2881,
11031 : /* 270 */ 2744, 2754, 2823, 2825, 2826, 2829, 2831, 2832, 2834, 2836,
11032 : /* 280 */ 2838, 2840, 2842, 2844, 2858, 2859, 2915, 3003, 3028, 2944,
11033 : /* 290 */ 2971, 3011, 3016, 3041, 3048, 3114, 3718, 4643, 4651, 4654,
11034 : /* 300 */ 4660, 4663, 4690, 5044, 5045, 5079, 5083, 5212, 5052, 5053,
11035 : /* 310 */ 5097, 5100, 5101, 5106, 5109, 5112, 5113, 5065, 5068, 5285,
11036 : /* 320 */ 5289, 5294, 5578, 5730, 5734, 7087, 7103, 7105, 7117, 7147,
11037 : /* 330 */ 7153, 7154, 7169, 7170, 7174, 7192, 7197, 7229, 7237, 7247,
11038 : /* 340 */ 7256, 7260, 7266, 7273, 7289, 7293, 7297, 7304, 7305, 7310,
11039 : /* 350 */ 7311, 7318, 7319, 7321, 7322, 7338, 7349, 7361, 7365, 7367,
11040 : /* 360 */ 7372, 7375, 7378, 7386, 7448, 7449, 7453, 7454, 7461, 7465,
11041 : /* 370 */ 7469, 7472, 7478, 7479, 7483, 7486, 7493, 7513, 7516, 7519,
11042 : /* 380 */ 7522, 7571, 7574, 7578, 7585, 7591, 7599, 7608, 7609, 7707,
11043 : /* 390 */ 7717, 7756, 7762, 7778, 7791, 7793, 7795, 7821, 7863, 7842,
11044 : /* 400 */ 7843, 7850, 7852, 7868, 7874, 7879, 7888, 7894, 7900, 7905,
11045 : /* 410 */ 7910, 7942, 8005, 7924, 7934, 8034, 8053, 8055, 8057, 8059,
11046 : /* 420 */ 8061, 8063, 8067, 8069, 8092, 8115, 8227, 8234, 8235, 8243,
11047 : /* 430 */ 8244, 8441, 9522, 9524, 9602, 9604, 9605, 9611, 9627, 9629,
11048 : /* 440 */ 9631, 9649, 9650, 10040, 10043, 10057, 10066, 10130, 10131, 10185,
11049 : /* 450 */ 10187, 10263, 10686, 10688, 10690, 11124, 7083, 7094, 7096, 7204,
11050 : /* 460 */ 483, 1257, 1278, 8885, 8890, 8895, 543, 544, 555, 560,
11051 : /* 470 */ 567, 576, 584, 593, 639, 642, 851, 1005, 1033, 1064,
11052 : /* 480 */ 604, 881, 885, 890, 896, 900, 908, 997, 755, 765,
11053 : /* 490 */ 767, 769, 8515, 8940, 8962, 8945, 8950, 8955, 8969, 9003,
11054 : /* 500 */ 9008, 826, 6311, 6379, 6381, 6383, 6483, 6486, 6660, 6662,
11055 : /* 510 */ 6676, 6680, 6703, 6709, 6720, 6778, 6793, 4737, 4757, 4764,
11056 : /* 520 */ 4770, 4776, 4782, 6784, 4750, 4793, 4806, 6292, 6593, 6597,
11057 : /* 530 */ 6605, 6930, 9495, 9496, 6940, 10474, 10482, 11937, 7958, 7959,
11058 : /* 540 */ 7973, 7974, 838, 841, 1713, 2767, 2770, 2889, 2901, 2986,
11059 : /* 550 */ 2930, 2957, 3069, 3072, 4513, 4524, 4673, 4681, 4960, 7025,
11060 : /* 560 */ 8371, 7621, 7624, 7650, 7651, 8140, 8142, 8144, 8146, 8150,
11061 : /* 570 */ 8152, 8154, 8156, 8160, 8165, 8172, 8177, 8197, 8199, 8201,
11062 : /* 580 */ 8203, 8384, 8392, 8402, 8410, 8420, 8542, 8544, 9536, 9545,
11063 : /* 590 */ 9585, 10108, 10110, 10111, 10166, 10169, 10171, 2783, 7015, 7694,
11064 : /* 600 */ 8616, 8621, 10707, 10709, 10711, 10713, 10717, 943, 979, 1329,
11065 : /* 610 */ 4841, 4911, 4914, 4922, 5013, 5015, 5016, 5017, 5224, 4892,
11066 : /* 620 */ 4901, 5784, 5787, 5788, 5796, 2324, 2334, 2341, 3729, 3734,
11067 : /* 630 */ 4585, 9361, 9363, 9394, 9429, 11740, 1221, 8833, 8854, 1230,
11068 : /* 640 */ 8577, 8583, 8880, 9308, 1244, 1248, 8875, 9058, 1457, 1541,
11069 : /* 650 */ 1589, 1534, 1566, 1597, 1630, 1671, 1682, 1693, 1705, 2593,
11070 : /* 660 */ 1934, 1942, 1947, 2070, 2438, 2732, 3309, 3339, 3341, 3351,
11071 : /* 670 */ 3353, 3460, 3461, 3462, 3470, 3478, 3487, 3496, 3530, 3531,
11072 : /* 680 */ 3536, 3537, 3542, 3547, 3551, 3359, 3364, 3409, 4718, 5183,
11073 : /* 690 */ 5201, 5202, 5755, 5761, 5809, 7219, 7667, 9464, 9466, 10298,
11074 : /* 700 */ 1620, 1625, 2670, 1793, 2675, 5263, 2650, 2681, 2685, 5277,
11075 : /* 710 */ 4628, 7052, 7054, 2191, 2205, 2655, 3821, 2230, 2253, 2254,
11076 : /* 720 */ 9925, 4406, 4410, 4420, 4438, 4469, 4478, 4537, 4540, 4549,
11077 : /* 730 */ 4550, 4568, 4570, 4572, 4574, 4623, 9486, 4424, 4431, 4416,
11078 : /* 740 */ 4595, 4604, 4607, 10916, 10922, 10930, 10936, 10945, 10951, 10959,
11079 : /* 750 */ 10965, 11011, 11019, 4828, 4985, 4995, 8470, 8473, 8492, 5706,
11080 : /* 760 */ 5718, 5721, 5725, 8259, 7212, 7208, 8451, 8458, 8593, 8598,
11081 : /* 770 */ 8699, 8796, 8813, 8845, 8865, 8870, 9121, 9098, 9077, 8906,
11082 : /* 780 */ 8910, 9201, 9211, 9218, 9227, 9245, 9252, 9233, 9501, 9507,
11083 : /* 790 */ 9915, 9921, 9918, 9929, 9935, 9943, 9949, 9957, 9963, 9973,
11084 : /* 800 */ 9979, 9987, 9993, 10001, 10007, 10015, 10021, 10075, 10278, 10293,
11085 : /* 810 */ 10329, 10573, 10576, 10381, 10395, 10408, 11093, 11108, 11199, 11200,
11086 : /* 820 */ 11849, 221, 2102, 2112, 5841, 2130, 1171, 2604, 3290, 5305,
11087 : /* 830 */ 5307, 5317, 5434, 5445, 5458, 5481, 5491, 5500, 5512, 5538,
11088 : /* 840 */ 5851, 6298, 1790, 1804, 1811, 1833, 1840, 2453, 2698, 2107,
11089 : /* 850 */ 2125, 2134, 2200, 2236, 2242, 3808, 6978, 3816, 9983, 9939,
11090 : /* 860 */ 9997, 10011, 10025, 9953, 9967, 5322, 5332, 5341, 5368, 5378,
11091 : /* 870 */ 5384, 5862, 5393, 5390, 5676, 5684, 5692, 5696, 5679, 5687,
11092 : /* 880 */ 5700, 5712, 239, 247, 1746, 1751, 2517, 2663, 3706, 4503,
11093 : /* 890 */ 5880, 5889, 5900, 5909, 11755, 737, 5625, 5631, 5633, 3162,
11094 : /* 900 */ 3166, 252, 3183, 3187, 3218, 3226, 3199, 3213, 270, 307,
11095 : /* 910 */ 1493, 1799, 1907, 1914, 1924, 1929, 2211, 3234, 3246, 3240,
11096 : /* 920 */ 3252, 2222, 2910, 2938, 2965, 2949, 2976, 4068, 4040, 4115,
11097 : /* 930 */ 4124, 4167, 4178, 5638, 5649, 11721, 11722, 1718, 1723, 7657,
11098 : /* 940 */ 11070, 11074, 257, 310, 2919, 2922, 3259, 3266, 3273, 3279,
11099 : /* 950 */ 4077, 3284, 4133, 4187, 5641, 383, 314, 351, 360, 368,
11100 : /* 960 */ 442, 457, 465, 656, 696, 1014, 1209, 1214, 1312, 1315,
11101 : /* 970 */ 1449, 2507, 5654, 8550, 8556, 8747, 8997, 2624, 6088, 6098,
11102 : /* 980 */ 7724, 8291, 8351, 8352, 2614, 8285, 619, 622, 746, 775,
11103 : /* 990 */ 781, 787, 795, 800, 805, 869, 873, 8562, 8568, 8209,
11104 : /* 1000 */ 927, 1404, 4857, 1393, 1396, 1428, 1439, 4834, 4906, 5023,
11105 : /* 1010 */ 1463, 1652, 1728, 1756, 2388, 5029, 5030, 7661, 11728, 4445,
11106 : /* 1020 */ 4449, 4495, 4496, 4616, 4456, 4460, 4486, 4487, 4966, 5673,
11107 : /* 1030 */ 8267, 8269, 8276, 8278, 7216, 6800, 4724, 5920, 4821, 5929,
11108 : /* 1040 */ 6612, 6617, 6753, 6759, 6768, 6769, 5827, 5829, 6806, 6809,
11109 : /* 1050 */ 6818, 6822, 6827, 6856, 6861, 6927, 6869, 6874, 6937, 7988,
11110 : /* 1060 */ 7990, 6893, 6894, 6895, 6950, 6917, 6918, 6919, 6965, 6966,
11111 : /* 1070 */ 8019, 8024, 6835, 5833, 5835, 6109, 6111, 9657, 9663, 9668,
11112 : /* 1080 */ 9677, 9679, 9699, 9744, 9747, 9748, 9780, 9786, 9788, 9789,
11113 : /* 1090 */ 9845, 9846, 9867, 9872, 9877, 9907, 11224, 11226, 11261, 11336,
11114 : /* 1100 */ 11339, 11424, 11359, 11365, 11493, 11495, 11557, 11559
11115 : };
11116 :
11117 27401 : fprintf (dump_file, "%s %s:%d, %s:%d\n",
11118 : simplify ? "Applying pattern" : "Matching expression", file1, dbg_line_numbers[line1_id], file2, line2);
11119 18347 : }
11120 :
11121 : #pragma GCC diagnostic pop
|