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 112464302 : tree_bit_xor_cst (tree t, tree *res_ops)
11 : {
12 112464302 : const tree type = TREE_TYPE (t);
13 112464302 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 112464302 : if (TREE_SIDE_EFFECTS (t)) return false;
15 112464302 : switch (TREE_CODE (t))
16 : {
17 93178 : case BIT_XOR_EXPR:
18 93178 : {
19 93178 : tree _p0 = TREE_OPERAND (t, 0);
20 93178 : tree _p1 = TREE_OPERAND (t, 1);
21 93178 : if (uniform_integer_cst_p (_p1))
22 : {
23 1601 : {
24 1601 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
25 1601 : {
26 1601 : res_ops[0] = captures[0];
27 1601 : res_ops[1] = captures[1];
28 1601 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 4, __FILE__, __LINE__, false);
29 1601 : return true;
30 : }
31 : }
32 : }
33 : break;
34 : }
35 : default:;
36 : }
37 : return false;
38 : }
39 :
40 : bool
41 77743013 : tree_with_possible_nonzero_bits_1 (tree t)
42 : {
43 77743013 : const tree type = TREE_TYPE (t);
44 77743013 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
45 77743013 : if (TREE_SIDE_EFFECTS (t)) return false;
46 77743013 : switch (TREE_CODE (t))
47 : {
48 16589038 : case INTEGER_CST:
49 16589038 : {
50 16589038 : {
51 16589038 : tree captures[1] ATTRIBUTE_UNUSED = { t };
52 16589038 : {
53 16589038 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 32, __FILE__, __LINE__, false);
54 16589038 : return true;
55 : }
56 : }
57 0 : break;
58 : }
59 0 : case POLY_INT_CST:
60 0 : {
61 0 : {
62 0 : tree captures[1] ATTRIBUTE_UNUSED = { t };
63 0 : {
64 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 33, __FILE__, __LINE__, false);
65 0 : return true;
66 : }
67 : }
68 26220177 : break;
69 : }
70 26220177 : case SSA_NAME:
71 26220177 : {
72 26220177 : {
73 26220177 : tree captures[1] ATTRIBUTE_UNUSED = { t };
74 26220177 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0]))
75 : )
76 : {
77 25704447 : {
78 25704447 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 34, __FILE__, __LINE__, false);
79 25704447 : return true;
80 : }
81 : }
82 : }
83 : break;
84 : }
85 : default:;
86 : }
87 : return false;
88 : }
89 :
90 : bool
91 2335 : tree_max_value (tree t)
92 : {
93 2335 : const tree type = TREE_TYPE (t);
94 2335 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
95 2335 : if (TREE_SIDE_EFFECTS (t)) return false;
96 2327 : if (uniform_integer_cst_p (t))
97 : {
98 2062 : {
99 2062 : {
100 2062 : tree int_cst = uniform_integer_cst_p (t);
101 2062 : tree itype = TREE_TYPE (int_cst);
102 4124 : if ((INTEGRAL_TYPE_P (itype)
103 17 : || POINTER_TYPE_P (itype))
104 4141 : && wi::eq_p (wi::to_wide (int_cst), wi::max_value (itype))
105 : )
106 : {
107 24 : {
108 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 42, __FILE__, __LINE__, false);
109 24 : return true;
110 : }
111 : }
112 : }
113 : }
114 : }
115 : return false;
116 : }
117 :
118 : tree
119 72220 : generic_simplify_5 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
120 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
121 : const enum tree_code ARG_UNUSED (op))
122 : {
123 72220 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
124 72220 : {
125 72220 : bool wascmp0, wascmp1;
126 72220 : if (bitwise_inverted_equal_p (captures[1], captures[3], wascmp0)
127 1194 : && bitwise_inverted_equal_p (captures[0], captures[2], wascmp1)
128 72224 : && ((!wascmp0 && !wascmp1)
129 0 : || element_precision (type) == 1)
130 : )
131 : {
132 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail76;
133 4 : {
134 4 : tree res_op0;
135 4 : res_op0 = captures[0];
136 4 : tree res_op1;
137 4 : res_op1 = captures[3];
138 4 : tree _r;
139 4 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
140 4 : if (TREE_SIDE_EFFECTS (captures[1]))
141 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
142 4 : if (TREE_SIDE_EFFECTS (captures[2]))
143 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
144 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 53, __FILE__, __LINE__, true);
145 4 : return _r;
146 : }
147 0 : next_after_fail76:;
148 : }
149 : }
150 72216 : return NULL_TREE;
151 : }
152 :
153 : tree
154 1 : generic_simplify_16 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
155 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
156 : {
157 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
158 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail91;
159 1 : {
160 1 : tree res_op0;
161 1 : res_op0 = captures[0];
162 1 : tree _r;
163 1 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
164 1 : if (TREE_SIDE_EFFECTS (captures[1]))
165 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
166 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 64, __FILE__, __LINE__, true);
167 : return _r;
168 : }
169 0 : next_after_fail91:;
170 0 : return NULL_TREE;
171 : }
172 :
173 : tree
174 8 : generic_simplify_22 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
175 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
176 : {
177 8 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
178 8 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
179 : )
180 : {
181 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail97;
182 8 : {
183 8 : tree res_op0;
184 8 : {
185 8 : tree _o1[2], _r1;
186 8 : _o1[0] = captures[1];
187 8 : {
188 8 : tree _o2[1], _r2;
189 8 : _o2[0] = captures[0];
190 8 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
191 8 : _o1[1] = _r2;
192 : }
193 8 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
194 8 : res_op0 = _r1;
195 : }
196 8 : tree _r;
197 8 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
198 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 70, __FILE__, __LINE__, true);
199 8 : return _r;
200 : }
201 0 : next_after_fail97:;
202 : }
203 : return NULL_TREE;
204 : }
205 :
206 : tree
207 1980612 : generic_simplify_32 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
208 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
209 : const enum tree_code ARG_UNUSED (bitop))
210 : {
211 1980612 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
212 1980612 : if (((TREE_CODE (captures[3]) == INTEGER_CST
213 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
214 0 : && (int_fits_type_p (captures[3], TREE_TYPE (captures[1]))
215 0 : || tree_nop_conversion_p (TREE_TYPE (captures[1]), type)))
216 1980612 : || types_match (captures[1], captures[3]))
217 1847083 : && !POINTER_TYPE_P (TREE_TYPE (captures[1]))
218 1846820 : && !VECTOR_TYPE_P (TREE_TYPE (captures[1]))
219 1846757 : && TREE_CODE (TREE_TYPE (captures[1])) != OFFSET_TYPE
220 1846757 : && (bitop != BIT_AND_EXPR ||
221 :
222 : )
223 1980612 : && (
224 1076467 : TYPE_PRECISION (TREE_TYPE (captures[1])) < TYPE_PRECISION (type)
225 : || (
226 :
227 : && TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (type))
228 987125 : || GET_MODE_CLASS (TYPE_MODE (type)) != MODE_INT
229 987125 : || !type_has_mode_precision_p (type)
230 987125 : || (
231 :
232 : && TREE_CODE (captures[3]) != INTEGER_CST
233 : && tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
234 : && single_use (captures[0])
235 : && single_use (captures[2])))
236 : )
237 : {
238 89342 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail107;
239 89342 : {
240 89342 : tree res_op0;
241 89342 : {
242 89342 : tree _o1[2], _r1;
243 89342 : _o1[0] = captures[1];
244 89342 : {
245 89342 : tree _o2[1], _r2;
246 89342 : _o2[0] = captures[3];
247 89342 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
248 : {
249 51348 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
250 : }
251 : else
252 : _r2 = _o2[0];
253 89342 : _o1[1] = _r2;
254 : }
255 89342 : _r1 = fold_build2_loc (loc, bitop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
256 89342 : res_op0 = _r1;
257 : }
258 89342 : tree _r;
259 89342 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
260 89342 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 80, __FILE__, __LINE__, true);
261 89342 : return _r;
262 : }
263 0 : next_after_fail107:;
264 : }
265 : return NULL_TREE;
266 : }
267 :
268 : tree
269 18 : generic_simplify_46 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
270 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
271 : const enum tree_code ARG_UNUSED (op))
272 : {
273 18 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
274 36 : if (INTEGRAL_TYPE_P (type)
275 54 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[2])) == 0
276 : )
277 : {
278 0 : {
279 0 : tree t = type;
280 0 : if (!TYPE_OVERFLOW_WRAPS (t))
281 0 : t = unsigned_type_for (t);
282 0 : wide_int c = wi::add (wi::to_wide (captures[3]), 1);
283 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail124;
284 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail124;
285 0 : {
286 0 : tree res_op0;
287 0 : {
288 0 : tree _o1[2], _r1;
289 0 : {
290 0 : tree _o2[1], _r2;
291 0 : _o2[0] = captures[2];
292 0 : if (TREE_TYPE (_o2[0]) != t)
293 : {
294 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
295 : }
296 : else
297 : _r2 = _o2[0];
298 0 : _o1[0] = _r2;
299 : }
300 0 : _o1[1] = wide_int_to_tree (t, c);
301 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
302 0 : res_op0 = _r1;
303 : }
304 0 : tree _r;
305 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
306 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 90, __FILE__, __LINE__, true);
307 0 : return _r;
308 : }
309 0 : next_after_fail124:;
310 0 : }
311 : }
312 : return NULL_TREE;
313 : }
314 :
315 : tree
316 66 : generic_simplify_56 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
317 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
318 : {
319 66 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
320 66 : if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type)
321 : )
322 : {
323 66 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail137;
324 66 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail137;
325 66 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail137;
326 66 : {
327 66 : tree res_op0;
328 66 : res_op0 = captures[0];
329 66 : tree _r;
330 66 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
331 66 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 105, __FILE__, __LINE__, true);
332 66 : return _r;
333 : }
334 : next_after_fail137:;
335 : }
336 : return NULL_TREE;
337 : }
338 :
339 : tree
340 2 : generic_simplify_60 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
341 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
342 : {
343 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
344 2 : if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
345 2 : && !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
346 2 : && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[0]))
347 4 : && !TYPE_SATURATING (TREE_TYPE (captures[0]))
348 : )
349 : {
350 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail141;
351 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail141;
352 2 : {
353 2 : tree res_op0;
354 2 : {
355 2 : tree _o1[1], _r1;
356 2 : {
357 2 : tree _o2[2], _r2;
358 2 : _o2[0] = captures[1];
359 2 : _o2[1] = captures[2];
360 2 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
361 2 : _o1[0] = _r2;
362 : }
363 2 : if (TREE_TYPE (_o1[0]) != type)
364 : {
365 1 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
366 : }
367 : else
368 : _r1 = _o1[0];
369 2 : res_op0 = _r1;
370 : }
371 2 : tree _r;
372 2 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
373 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 109, __FILE__, __LINE__, true);
374 2 : return _r;
375 : }
376 : next_after_fail141:;
377 : }
378 : return NULL_TREE;
379 : }
380 :
381 : tree
382 2235719 : generic_simplify_71 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
383 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
384 : const enum tree_code ARG_UNUSED (plusminus))
385 : {
386 2235719 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
387 2235719 : if (!TYPE_SATURATING (type)
388 2235719 : && (!FLOAT_TYPE_P (type) || flag_associative_math)
389 : )
390 : {
391 110 : if (!ANY_INTEGRAL_TYPE_P (type)
392 2235495 : || TYPE_OVERFLOW_WRAPS (type)
393 3938789 : || (INTEGRAL_TYPE_P (type)
394 1703184 : && tree_expr_nonzero_p (captures[1])
395 3144170 : && expr_not_equal_to (captures[1], wi::minus_one (TYPE_PRECISION (type)),
396 : gimple_match_ctx (captures[0])))
397 : )
398 : {
399 1440847 : if (single_use (captures[0]) || single_use (captures[3])
400 : )
401 : {
402 1440847 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail160;
403 1440847 : {
404 1440847 : tree res_op0;
405 1440847 : {
406 1440847 : tree _o1[2], _r1;
407 1440847 : _o1[0] = captures[2];
408 1440847 : _o1[1] = captures[4];
409 1440847 : _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
410 1440847 : res_op0 = _r1;
411 : }
412 1440847 : tree res_op1;
413 1440847 : res_op1 = captures[1];
414 1440847 : tree _r;
415 1440847 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
416 1440847 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 128, __FILE__, __LINE__, true);
417 1440847 : return _r;
418 : }
419 0 : next_after_fail160:;
420 : }
421 : else
422 : {
423 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail161;
424 : {
425 : tree res_op0;
426 : {
427 : tree _o1[2], _r1;
428 : _o1[0] = captures[2];
429 : _o1[1] = captures[4];
430 : _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
431 : res_op0 = _r1;
432 : }
433 : tree res_op1;
434 : res_op1 = captures[1];
435 : tree _r;
436 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
437 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 129, __FILE__, __LINE__, true);
438 : return _r;
439 : }
440 : next_after_fail161:;
441 : }
442 : }
443 : }
444 : return NULL_TREE;
445 : }
446 :
447 : tree
448 4 : generic_simplify_82 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
449 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
450 : const combined_fn ARG_UNUSED (POPCOUNT))
451 : {
452 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
453 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail173;
454 4 : {
455 4 : tree res_op0;
456 4 : {
457 4 : tree _o1[1], _r1;
458 4 : _o1[0] = captures[2];
459 4 : _r1 = maybe_build_call_expr_loc (loc, POPCOUNT, type, 1, _o1[0]);
460 4 : if (!_r1)
461 0 : goto next_after_fail173;
462 4 : res_op0 = _r1;
463 : }
464 4 : tree res_op1;
465 4 : {
466 4 : tree _o1[1], _r1;
467 4 : _o1[0] = captures[3];
468 4 : _r1 = maybe_build_call_expr_loc (loc, POPCOUNT, type, 1, _o1[0]);
469 4 : if (!_r1)
470 0 : goto next_after_fail173;
471 4 : res_op1 = _r1;
472 : }
473 4 : tree _r;
474 4 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
475 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 141, __FILE__, __LINE__, true);
476 : return _r;
477 : }
478 : next_after_fail173:;
479 : return NULL_TREE;
480 : }
481 :
482 : tree
483 2 : generic_simplify_90 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
484 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
485 : {
486 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
487 2 : if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
488 2 : && !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2]))
489 2 : && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[2]))
490 4 : && !TYPE_SATURATING (TREE_TYPE (captures[2]))
491 : )
492 : {
493 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail181;
494 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail181;
495 2 : {
496 2 : tree res_op0;
497 2 : {
498 2 : tree _o1[1], _r1;
499 2 : {
500 2 : tree _o2[2], _r2;
501 2 : _o2[0] = captures[0];
502 2 : _o2[1] = captures[1];
503 2 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
504 2 : _o1[0] = _r2;
505 : }
506 2 : if (TREE_TYPE (_o1[0]) != type)
507 : {
508 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
509 : }
510 : else
511 : _r1 = _o1[0];
512 2 : res_op0 = _r1;
513 : }
514 2 : tree _r;
515 2 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
516 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 149, __FILE__, __LINE__, true);
517 2 : return _r;
518 : }
519 : next_after_fail181:;
520 : }
521 : return NULL_TREE;
522 : }
523 :
524 : tree
525 0 : generic_simplify_100 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
526 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
527 : {
528 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
529 0 : if (!TYPE_SATURATING (type)
530 : )
531 : {
532 0 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
533 0 : && !FIXED_POINT_TYPE_P (type)
534 : )
535 : {
536 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail193;
537 0 : {
538 0 : tree res_op0;
539 0 : res_op0 = captures[1];
540 0 : tree res_op1;
541 0 : res_op1 = captures[2];
542 0 : tree _r;
543 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
544 0 : if (TREE_SIDE_EFFECTS (captures[0]))
545 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
546 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 160, __FILE__, __LINE__, true);
547 0 : return _r;
548 : }
549 0 : next_after_fail193:;
550 : }
551 : }
552 : return NULL_TREE;
553 : }
554 :
555 : tree
556 0 : generic_simplify_107 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
557 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
558 : {
559 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
560 0 : if (VECTOR_TYPE_P (type)
561 0 : && known_eq (TYPE_VECTOR_SUBPARTS (type),
562 : TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[3])))
563 0 : && (TYPE_MODE (TREE_TYPE (type))
564 0 : == TYPE_MODE (TREE_TYPE (TREE_TYPE (captures[3]))))
565 : )
566 : {
567 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail204;
568 0 : {
569 0 : tree res_op0;
570 0 : res_op0 = captures[0];
571 0 : tree res_op1;
572 0 : {
573 0 : tree _o1[1], _r1;
574 0 : {
575 0 : tree _o2[3], _r2;
576 0 : _o2[0] = captures[2];
577 0 : {
578 0 : tree _o3[1], _r3;
579 0 : _o3[0] = captures[3];
580 0 : _r3 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o3[0]), _o3[0]);
581 0 : _o2[1] = _r3;
582 : }
583 0 : _o2[2] = captures[4];
584 0 : _r2 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o2[1]), _o2[0], _o2[1], _o2[2]);
585 0 : _o1[0] = _r2;
586 : }
587 0 : if (TREE_TYPE (_o1[0]) != type)
588 : {
589 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
590 : }
591 : else
592 : _r1 = _o1[0];
593 0 : res_op1 = _r1;
594 : }
595 0 : tree _r;
596 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
597 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 171, __FILE__, __LINE__, true);
598 0 : return _r;
599 : }
600 0 : next_after_fail204:;
601 : }
602 : return NULL_TREE;
603 : }
604 :
605 : tree
606 16 : generic_simplify_114 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
607 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
608 : {
609 16 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
610 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail211;
611 16 : {
612 16 : tree res_op0;
613 16 : res_op0 = captures[0];
614 16 : tree res_op1;
615 16 : res_op1 = captures[1];
616 16 : tree _r;
617 16 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
618 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 178, __FILE__, __LINE__, true);
619 : return _r;
620 : }
621 0 : next_after_fail211:;
622 0 : return NULL_TREE;
623 : }
624 :
625 : tree
626 0 : generic_simplify_121 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
627 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
628 : const enum tree_code ARG_UNUSED (op))
629 : {
630 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
631 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail218;
632 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail218;
633 0 : {
634 0 : tree _r;
635 0 : _r = captures[0];
636 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 184, __FILE__, __LINE__, true);
637 : return _r;
638 : }
639 : next_after_fail218:;
640 : return NULL_TREE;
641 : }
642 :
643 : tree
644 0 : generic_simplify_127 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
645 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
646 : {
647 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
648 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail224;
649 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail224;
650 0 : {
651 0 : tree _r;
652 0 : _r = captures[2];
653 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 185, __FILE__, __LINE__, true);
654 : return _r;
655 : }
656 : next_after_fail224:;
657 : return NULL_TREE;
658 : }
659 :
660 : tree
661 0 : generic_simplify_135 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
662 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
663 : {
664 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
665 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail232;
666 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail232;
667 0 : {
668 0 : tree _r;
669 0 : _r = captures[0];
670 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 190, __FILE__, __LINE__, true);
671 : return _r;
672 : }
673 : next_after_fail232:;
674 : return NULL_TREE;
675 : }
676 :
677 : tree
678 2 : generic_simplify_144 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
679 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
680 : const enum tree_code ARG_UNUSED (bitop),
681 : const enum tree_code ARG_UNUSED (rbitop))
682 : {
683 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
684 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail245;
685 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail245;
686 2 : {
687 2 : tree res_op0;
688 2 : res_op0 = captures[0];
689 2 : tree res_op1;
690 2 : res_op1 = captures[2];
691 2 : tree _r;
692 2 : _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
693 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 199, __FILE__, __LINE__, true);
694 : return _r;
695 : }
696 : next_after_fail245:;
697 : return NULL_TREE;
698 : }
699 :
700 : tree
701 700 : generic_simplify_149 (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 700 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
706 700 : if (bitwise_equal_p (captures[4], captures[7])
707 : )
708 : {
709 40 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail251;
710 40 : {
711 40 : tree res_op0;
712 40 : {
713 40 : tree _o1[2], _r1;
714 40 : {
715 40 : tree _o2[2], _r2;
716 40 : _o2[0] = captures[5];
717 40 : {
718 40 : tree _o3[1], _r3;
719 40 : _o3[0] = captures[6];
720 40 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
721 : {
722 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
723 : }
724 : else
725 : _r3 = _o3[0];
726 40 : _o2[1] = _r3;
727 : }
728 40 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
729 40 : _o1[0] = _r2;
730 : }
731 40 : {
732 40 : tree _o2[1], _r2;
733 40 : _o2[0] = captures[4];
734 40 : 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 40 : _o1[1] = _r2;
741 : }
742 40 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
743 40 : res_op0 = _r1;
744 : }
745 40 : tree _r;
746 40 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
747 40 : if (TREE_SIDE_EFFECTS (captures[7]))
748 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
749 40 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 202, __FILE__, __LINE__, true);
750 40 : return _r;
751 : }
752 0 : next_after_fail251:;
753 : }
754 : return NULL_TREE;
755 : }
756 :
757 : tree
758 31 : generic_simplify_160 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
759 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
760 : const enum tree_code ARG_UNUSED (code2),
761 : const enum tree_code ARG_UNUSED (code1))
762 : {
763 31 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
764 31 : if ((TREE_CODE (captures[2]) == INTEGER_CST
765 7 : && TREE_CODE (captures[4]) == INTEGER_CST)
766 31 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
767 24 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
768 0 : && operand_equal_p (captures[2], captures[4]))
769 : )
770 : {
771 7 : {
772 7 : int cmp = 0;
773 7 : if (TREE_CODE (captures[2]) == INTEGER_CST
774 7 : && TREE_CODE (captures[4]) == INTEGER_CST)
775 7 : cmp = tree_int_cst_compare (captures[2], captures[4]);
776 7 : if ((code1 == LT_EXPR || code1 == LE_EXPR)
777 7 : && (code2 == LT_EXPR || code2 == LE_EXPR)
778 : )
779 : {
780 7 : if ((cmp < 0) || (cmp == 0 && code1 == LT_EXPR)
781 : )
782 : {
783 7 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail277;
784 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail277;
785 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail277;
786 7 : {
787 7 : tree _r;
788 7 : _r = captures[3];
789 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 219, __FILE__, __LINE__, true);
790 7 : return _r;
791 : }
792 : next_after_fail277:;
793 : }
794 : else
795 : {
796 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail278;
797 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail278;
798 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail278;
799 0 : {
800 0 : tree _r;
801 0 : _r = captures[0];
802 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 220, __FILE__, __LINE__, true);
803 0 : return _r;
804 : }
805 : next_after_fail278:;
806 : }
807 : }
808 : else
809 : {
810 0 : if ((code1 == GT_EXPR || code1 == GE_EXPR)
811 0 : && (code2 == GT_EXPR || code2 == GE_EXPR)
812 : )
813 : {
814 0 : if ((cmp > 0) || (cmp == 0 && code1 == GT_EXPR)
815 : )
816 : {
817 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail279;
818 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail279;
819 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail279;
820 0 : {
821 0 : tree _r;
822 0 : _r = captures[3];
823 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 221, __FILE__, __LINE__, true);
824 0 : return _r;
825 : }
826 : next_after_fail279:;
827 : }
828 : else
829 : {
830 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail280;
831 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail280;
832 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail280;
833 0 : {
834 0 : tree _r;
835 0 : _r = captures[0];
836 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 222, __FILE__, __LINE__, true);
837 0 : return _r;
838 : }
839 : next_after_fail280:;
840 : }
841 : }
842 : else
843 : {
844 0 : if (cmp == 0
845 0 : && ((code1 == LT_EXPR && code2 == GT_EXPR)
846 0 : || (code1 == GT_EXPR && code2 == LT_EXPR))
847 : )
848 : {
849 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail281;
850 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail281;
851 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail281;
852 0 : {
853 0 : tree res_op0;
854 0 : res_op0 = captures[1];
855 0 : tree res_op1;
856 0 : res_op1 = captures[4];
857 0 : tree _r;
858 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
859 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 223, __FILE__, __LINE__, true);
860 0 : return _r;
861 : }
862 : next_after_fail281:;
863 : }
864 : else
865 : {
866 0 : if (cmp >= 0
867 0 : && (code1 == LT_EXPR || code1 == LE_EXPR)
868 0 : && (code2 == GT_EXPR || code2 == GE_EXPR)
869 : )
870 : {
871 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail282;
872 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail282;
873 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail282;
874 0 : {
875 0 : tree _r;
876 0 : _r = constant_boolean_node (true, type);
877 0 : if (TREE_SIDE_EFFECTS (captures[1]))
878 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
879 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 224, __FILE__, __LINE__, true);
880 0 : return _r;
881 : }
882 : next_after_fail282:;
883 : }
884 : else
885 : {
886 0 : if (cmp <= 0
887 0 : && (code1 == GT_EXPR || code1 == GE_EXPR)
888 0 : && (code2 == LT_EXPR || code2 == LE_EXPR)
889 : )
890 : {
891 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail283;
892 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail283;
893 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail283;
894 0 : {
895 0 : tree _r;
896 0 : _r = constant_boolean_node (true, type);
897 0 : if (TREE_SIDE_EFFECTS (captures[1]))
898 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
899 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 225, __FILE__, __LINE__, true);
900 0 : return _r;
901 : }
902 : next_after_fail283:;
903 : }
904 : }
905 : }
906 : }
907 : }
908 : }
909 : }
910 : return NULL_TREE;
911 : }
912 :
913 : tree
914 1206 : generic_simplify_191 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
915 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
916 : const enum tree_code ARG_UNUSED (cmp))
917 : {
918 1206 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
919 1206 : if (fold_before_rtl_expansion_p ()
920 : )
921 : {
922 0 : if (INTEGRAL_TYPE_P (type)
923 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
924 : )
925 : {
926 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail330;
927 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail330;
928 0 : {
929 0 : tree res_op0;
930 0 : res_op0 = captures[0];
931 0 : tree res_op1;
932 0 : res_op1 = captures[3];
933 0 : tree res_op2;
934 0 : res_op2 = build_zero_cst (type);
935 0 : tree _r;
936 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
937 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 246, __FILE__, __LINE__, true);
938 0 : return _r;
939 : }
940 : next_after_fail330:;
941 : }
942 : }
943 : return NULL_TREE;
944 : }
945 :
946 : tree
947 168808 : generic_simplify_196 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
948 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
949 : {
950 168808 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
951 168808 : {
952 168808 : poly_widest_int factor;
953 168808 : if (multiple_p (wi::to_poly_widest (captures[2]), wi::to_widest (captures[1]), &factor)
954 : )
955 : {
956 53206 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail335;
957 53206 : {
958 53206 : tree res_op0;
959 53206 : {
960 53206 : tree _o1[1], _r1;
961 53206 : _o1[0] = captures[0];
962 53206 : if (TREE_TYPE (_o1[0]) != type)
963 : {
964 9793 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
965 : }
966 : else
967 : _r1 = _o1[0];
968 53206 : res_op0 = _r1;
969 : }
970 53206 : tree res_op1;
971 53206 : res_op1 = wide_int_to_tree (type, factor);
972 53206 : tree _r;
973 53206 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
974 53206 : if (TREE_SIDE_EFFECTS (captures[1]))
975 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
976 53206 : if (TREE_SIDE_EFFECTS (captures[2]))
977 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
978 53206 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 250, __FILE__, __LINE__, true);
979 53206 : return _r;
980 : }
981 0 : next_after_fail335:;
982 : }
983 168808 : }
984 115602 : return NULL_TREE;
985 : }
986 :
987 : tree
988 2 : generic_simplify_205 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
989 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
990 : const combined_fn ARG_UNUSED (POW))
991 : {
992 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
993 2 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
994 : )
995 : {
996 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail345;
997 2 : {
998 2 : tree res_op0;
999 2 : {
1000 2 : tree _o1[2], _r1;
1001 2 : _o1[0] = captures[1];
1002 2 : _o1[1] = captures[4];
1003 2 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1004 2 : res_op0 = _r1;
1005 : }
1006 2 : tree res_op1;
1007 2 : res_op1 = captures[2];
1008 2 : tree _r;
1009 2 : _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
1010 2 : if (!_r)
1011 0 : goto next_after_fail345;
1012 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 260, __FILE__, __LINE__, true);
1013 2 : return _r;
1014 : }
1015 : next_after_fail345:;
1016 : }
1017 : return NULL_TREE;
1018 : }
1019 :
1020 : tree
1021 0 : generic_simplify_214 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1022 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1023 : const enum tree_code ARG_UNUSED (neeq))
1024 : {
1025 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1026 0 : if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
1027 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
1028 0 : && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1029 : )
1030 : {
1031 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail357;
1032 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail357;
1033 0 : {
1034 0 : tree res_op0;
1035 0 : res_op0 = captures[1];
1036 0 : tree res_op1;
1037 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
1038 0 : tree _r;
1039 0 : _r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
1040 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 271, __FILE__, __LINE__, true);
1041 0 : return _r;
1042 : }
1043 : next_after_fail357:;
1044 : }
1045 : return NULL_TREE;
1046 : }
1047 :
1048 : tree
1049 1744558 : generic_simplify_219 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1050 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1051 : const enum tree_code ARG_UNUSED (cmp))
1052 : {
1053 1744558 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1054 3489116 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1055 1744558 : && integer_nonzerop (captures[2])
1056 1742769 : && !TREE_OVERFLOW (captures[2])
1057 3487327 : && !TREE_OVERFLOW (captures[3])
1058 : )
1059 : {
1060 1742769 : {
1061 1742769 : tree lo, hi; bool neg_overflow;
1062 1742769 : enum tree_code code = fold_div_compare (cmp, captures[2], captures[3], &lo, &hi,
1063 : &neg_overflow);
1064 1742769 : if (code == LT_EXPR || code == GE_EXPR
1065 : )
1066 : {
1067 40184 : if (TREE_OVERFLOW (lo)
1068 : )
1069 : {
1070 4830 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail362;
1071 4830 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail362;
1072 4830 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail362;
1073 4830 : {
1074 4830 : tree _r;
1075 4830 : _r = build_int_cst (type, (code == LT_EXPR) ^ neg_overflow);
1076 4830 : if (TREE_SIDE_EFFECTS (captures[1]))
1077 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1078 4830 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 276, __FILE__, __LINE__, true);
1079 1742766 : return _r;
1080 : }
1081 3 : next_after_fail362:;
1082 : }
1083 : else
1084 : {
1085 35354 : if (code == LT_EXPR
1086 : )
1087 : {
1088 722 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail363;
1089 722 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail363;
1090 722 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail363;
1091 722 : {
1092 722 : tree res_op0;
1093 722 : res_op0 = captures[1];
1094 722 : tree res_op1;
1095 722 : res_op1 = lo;
1096 722 : tree _r;
1097 722 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
1098 722 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 277, __FILE__, __LINE__, true);
1099 722 : return _r;
1100 : }
1101 3 : next_after_fail363:;
1102 : }
1103 : else
1104 : {
1105 34632 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail364;
1106 34632 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail364;
1107 34632 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail364;
1108 34632 : {
1109 34632 : tree res_op0;
1110 34632 : res_op0 = captures[1];
1111 34632 : tree res_op1;
1112 34632 : res_op1 = lo;
1113 34632 : tree _r;
1114 34632 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
1115 34632 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 278, __FILE__, __LINE__, true);
1116 34632 : return _r;
1117 : }
1118 3 : next_after_fail364:;
1119 : }
1120 : }
1121 : }
1122 : else
1123 : {
1124 1702585 : if (code == LE_EXPR || code == GT_EXPR
1125 : )
1126 : {
1127 1699502 : if (TREE_OVERFLOW (hi)
1128 : )
1129 : {
1130 534259 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail365;
1131 534259 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail365;
1132 534259 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail365;
1133 534259 : {
1134 534259 : tree _r;
1135 534259 : _r = build_int_cst (type, (code == LE_EXPR) ^ neg_overflow);
1136 534259 : if (TREE_SIDE_EFFECTS (captures[1]))
1137 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1138 534259 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 279, __FILE__, __LINE__, true);
1139 534259 : return _r;
1140 : }
1141 3 : next_after_fail365:;
1142 : }
1143 : else
1144 : {
1145 1165243 : if (code == LE_EXPR
1146 : )
1147 : {
1148 638 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail366;
1149 638 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail366;
1150 638 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail366;
1151 638 : {
1152 638 : tree res_op0;
1153 638 : res_op0 = captures[1];
1154 638 : tree res_op1;
1155 638 : res_op1 = hi;
1156 638 : tree _r;
1157 638 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1158 638 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 280, __FILE__, __LINE__, true);
1159 638 : return _r;
1160 : }
1161 3 : next_after_fail366:;
1162 : }
1163 : else
1164 : {
1165 1164605 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail367;
1166 1164605 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail367;
1167 1164605 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail367;
1168 1164605 : {
1169 1164605 : tree res_op0;
1170 1164605 : res_op0 = captures[1];
1171 1164605 : tree res_op1;
1172 1164605 : res_op1 = hi;
1173 1164605 : tree _r;
1174 1164605 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
1175 1164605 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 281, __FILE__, __LINE__, true);
1176 1164605 : return _r;
1177 : }
1178 3 : next_after_fail367:;
1179 : }
1180 : }
1181 : }
1182 : else
1183 : {
1184 3083 : if (!lo && !hi
1185 : )
1186 : {
1187 40 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail368;
1188 40 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail368;
1189 40 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail368;
1190 40 : {
1191 40 : tree _r;
1192 40 : _r = build_int_cst (type, code == NE_EXPR);
1193 40 : if (TREE_SIDE_EFFECTS (captures[1]))
1194 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1195 40 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 282, __FILE__, __LINE__, true);
1196 40 : return _r;
1197 : }
1198 3 : next_after_fail368:;
1199 : }
1200 : else
1201 : {
1202 3043 : if (code == EQ_EXPR && !hi
1203 : )
1204 : {
1205 15 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail369;
1206 15 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail369;
1207 15 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail369;
1208 15 : {
1209 15 : tree res_op0;
1210 15 : res_op0 = captures[1];
1211 15 : tree res_op1;
1212 15 : res_op1 = lo;
1213 15 : tree _r;
1214 15 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
1215 15 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 283, __FILE__, __LINE__, true);
1216 15 : return _r;
1217 : }
1218 3 : next_after_fail369:;
1219 : }
1220 : else
1221 : {
1222 930 : if (code == EQ_EXPR && !lo
1223 : )
1224 : {
1225 11 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail370;
1226 11 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail370;
1227 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail370;
1228 11 : {
1229 11 : tree res_op0;
1230 11 : res_op0 = captures[1];
1231 11 : tree res_op1;
1232 11 : res_op1 = hi;
1233 11 : tree _r;
1234 11 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1235 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 284, __FILE__, __LINE__, true);
1236 11 : return _r;
1237 : }
1238 3 : next_after_fail370:;
1239 : }
1240 : else
1241 : {
1242 3017 : if (code == NE_EXPR && !hi
1243 : )
1244 : {
1245 4 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail371;
1246 4 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail371;
1247 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail371;
1248 4 : {
1249 4 : tree res_op0;
1250 4 : res_op0 = captures[1];
1251 4 : tree res_op1;
1252 4 : res_op1 = lo;
1253 4 : tree _r;
1254 4 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
1255 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 285, __FILE__, __LINE__, true);
1256 4 : return _r;
1257 : }
1258 3 : next_after_fail371:;
1259 : }
1260 : else
1261 : {
1262 2094 : if (code == NE_EXPR && !lo
1263 : )
1264 : {
1265 18 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail372;
1266 18 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail372;
1267 18 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail372;
1268 18 : {
1269 18 : tree res_op0;
1270 18 : res_op0 = captures[1];
1271 18 : tree res_op1;
1272 18 : res_op1 = hi;
1273 18 : tree _r;
1274 18 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
1275 18 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 286, __FILE__, __LINE__, true);
1276 18 : return _r;
1277 : }
1278 3 : next_after_fail372:;
1279 : }
1280 : else
1281 : {
1282 2995 : if (1
1283 : )
1284 : {
1285 2995 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail373;
1286 2992 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail373;
1287 2992 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail373;
1288 2992 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail373;
1289 2992 : {
1290 2992 : tree _r;
1291 2992 : _r = build_range_check (UNKNOWN_LOCATION, type, captures[1], code == EQ_EXPR,
1292 : lo, hi);
1293 2992 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 287, __FILE__, __LINE__, true);
1294 2992 : return _r;
1295 : }
1296 3 : next_after_fail373:;
1297 : }
1298 : else
1299 : {
1300 : {
1301 : tree etype = range_check_type (TREE_TYPE (captures[1]));
1302 : if (etype)
1303 : {
1304 : hi = fold_convert (etype, hi);
1305 : lo = fold_convert (etype, lo);
1306 : hi = const_binop (MINUS_EXPR, etype, hi, lo);
1307 : }
1308 : if (etype && hi && !TREE_OVERFLOW (hi)
1309 : )
1310 : {
1311 : if (code == EQ_EXPR
1312 : )
1313 : {
1314 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail374;
1315 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail374;
1316 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail374;
1317 : {
1318 : tree res_op0;
1319 : {
1320 : tree _o1[2], _r1;
1321 : {
1322 : tree _o2[1], _r2;
1323 : _o2[0] = captures[1];
1324 : if (TREE_TYPE (_o2[0]) != etype)
1325 : {
1326 : _r2 = fold_build1_loc (loc, NOP_EXPR, etype, _o2[0]);
1327 : }
1328 : else
1329 : _r2 = _o2[0];
1330 : _o1[0] = _r2;
1331 : }
1332 : _o1[1] = lo;
1333 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1334 : res_op0 = _r1;
1335 : }
1336 : tree res_op1;
1337 : res_op1 = hi;
1338 : tree _r;
1339 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1340 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 288, __FILE__, __LINE__, true);
1341 : return _r;
1342 : }
1343 : next_after_fail374:;
1344 : }
1345 : else
1346 : {
1347 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail375;
1348 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail375;
1349 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail375;
1350 : {
1351 : tree res_op0;
1352 : {
1353 : tree _o1[2], _r1;
1354 : {
1355 : tree _o2[1], _r2;
1356 : _o2[0] = captures[1];
1357 : if (TREE_TYPE (_o2[0]) != etype)
1358 : {
1359 : _r2 = fold_build1_loc (loc, NOP_EXPR, etype, _o2[0]);
1360 : }
1361 : else
1362 : _r2 = _o2[0];
1363 : _o1[0] = _r2;
1364 : }
1365 : _o1[1] = lo;
1366 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1367 : res_op0 = _r1;
1368 : }
1369 : tree res_op1;
1370 : res_op1 = hi;
1371 : tree _r;
1372 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
1373 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 289, __FILE__, __LINE__, true);
1374 : return _r;
1375 : }
1376 : next_after_fail375:;
1377 : }
1378 : }
1379 : }
1380 : }
1381 : }
1382 : }
1383 : }
1384 : }
1385 : }
1386 : }
1387 : }
1388 : }
1389 : }
1390 : return NULL_TREE;
1391 : }
1392 :
1393 : tree
1394 451 : generic_simplify_277 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1395 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1396 : const enum tree_code ARG_UNUSED (cmp))
1397 : {
1398 451 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1399 451 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail509;
1400 451 : {
1401 451 : tree res_op0;
1402 451 : {
1403 451 : tree _o1[2], _r1;
1404 451 : _o1[0] = captures[0];
1405 451 : {
1406 451 : tree _o2[1], _r2;
1407 451 : _o2[0] = captures[1];
1408 451 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
1409 451 : if (EXPR_P (_r2))
1410 443 : goto next_after_fail509;
1411 8 : _o1[1] = _r2;
1412 : }
1413 8 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1414 8 : res_op0 = _r1;
1415 : }
1416 8 : tree res_op1;
1417 8 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1418 8 : tree _r;
1419 8 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1420 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 412, __FILE__, __LINE__, true);
1421 : return _r;
1422 : }
1423 : next_after_fail509:;
1424 : return NULL_TREE;
1425 : }
1426 :
1427 : tree
1428 108442 : generic_simplify_281 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1429 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1430 : const enum tree_code ARG_UNUSED (cmp),
1431 : const enum tree_code ARG_UNUSED (icmp))
1432 : {
1433 108442 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1434 108442 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail513;
1435 108418 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail513;
1436 108418 : {
1437 108418 : tree res_op0;
1438 108418 : res_op0 = captures[0];
1439 108418 : tree res_op1;
1440 108418 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
1441 108418 : tree _r;
1442 108418 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1443 108418 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 416, __FILE__, __LINE__, true);
1444 : return _r;
1445 : }
1446 : next_after_fail513:;
1447 : return NULL_TREE;
1448 : }
1449 :
1450 : tree
1451 18 : generic_simplify_286 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1452 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1453 : const enum tree_code ARG_UNUSED (cmp),
1454 : const enum tree_code ARG_UNUSED (ncmp))
1455 : {
1456 18 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1457 36 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1458 18 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1459 36 : && types_match (captures[0], captures[2])
1460 : )
1461 : {
1462 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail518;
1463 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail518;
1464 2 : {
1465 2 : tree res_op0;
1466 2 : {
1467 2 : tree _o1[2], _r1;
1468 2 : _o1[0] = captures[0];
1469 2 : _o1[1] = captures[2];
1470 2 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1471 2 : res_op0 = _r1;
1472 : }
1473 2 : tree res_op1;
1474 2 : res_op1 = captures[1];
1475 2 : tree _r;
1476 2 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
1477 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 419, __FILE__, __LINE__, true);
1478 2 : return _r;
1479 : }
1480 : next_after_fail518:;
1481 : }
1482 : return NULL_TREE;
1483 : }
1484 :
1485 : tree
1486 0 : generic_simplify_292 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1487 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1488 : const enum tree_code ARG_UNUSED (inner),
1489 : const enum tree_code ARG_UNUSED (outer))
1490 : {
1491 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1492 0 : {
1493 0 : bool cst1 = integer_onep (captures[1]);
1494 0 : bool cst0 = integer_zerop (captures[1]);
1495 0 : bool innereq = inner == EQ_EXPR;
1496 0 : bool outereq = outer == EQ_EXPR;
1497 0 : if (innereq ? cst0 : cst1
1498 : )
1499 : {
1500 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail538;
1501 0 : {
1502 0 : tree _r;
1503 0 : _r = constant_boolean_node (!outereq, type);
1504 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1505 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1506 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1507 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1508 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 431, __FILE__, __LINE__, true);
1509 0 : return _r;
1510 : }
1511 0 : next_after_fail538:;
1512 : }
1513 : else
1514 : {
1515 0 : if (innereq ? cst1 : cst0
1516 : )
1517 : {
1518 0 : {
1519 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
1520 0 : tree ucst1 = build_one_cst (utype);
1521 0 : if (!outereq
1522 : )
1523 : {
1524 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail539;
1525 0 : {
1526 0 : tree res_op0;
1527 0 : {
1528 0 : tree _o1[1], _r1;
1529 0 : _o1[0] = captures[0];
1530 0 : if (TREE_TYPE (_o1[0]) != utype)
1531 : {
1532 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
1533 : }
1534 : else
1535 : _r1 = _o1[0];
1536 0 : res_op0 = _r1;
1537 : }
1538 0 : tree res_op1;
1539 0 : res_op1 = ucst1;
1540 0 : tree _r;
1541 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
1542 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1543 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1544 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 432, __FILE__, __LINE__, true);
1545 0 : return _r;
1546 : }
1547 0 : next_after_fail539:;
1548 : }
1549 : else
1550 : {
1551 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail540;
1552 0 : {
1553 0 : tree res_op0;
1554 0 : {
1555 0 : tree _o1[1], _r1;
1556 0 : _o1[0] = captures[0];
1557 0 : if (TREE_TYPE (_o1[0]) != utype)
1558 : {
1559 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
1560 : }
1561 : else
1562 : _r1 = _o1[0];
1563 0 : res_op0 = _r1;
1564 : }
1565 0 : tree res_op1;
1566 0 : res_op1 = ucst1;
1567 0 : tree _r;
1568 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1569 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1570 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1571 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 433, __FILE__, __LINE__, true);
1572 0 : return _r;
1573 : }
1574 0 : next_after_fail540:;
1575 : }
1576 : }
1577 : }
1578 : else
1579 : {
1580 0 : {
1581 0 : tree value = build_int_cst (TREE_TYPE (captures[0]), !innereq);
1582 0 : if (outereq
1583 : )
1584 : {
1585 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail541;
1586 0 : {
1587 0 : tree res_op0;
1588 0 : res_op0 = captures[0];
1589 0 : tree res_op1;
1590 0 : res_op1 = value;
1591 0 : tree _r;
1592 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
1593 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1594 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1595 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 434, __FILE__, __LINE__, true);
1596 0 : return _r;
1597 : }
1598 0 : next_after_fail541:;
1599 : }
1600 : else
1601 : {
1602 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail542;
1603 0 : {
1604 0 : tree res_op0;
1605 0 : res_op0 = captures[0];
1606 0 : tree res_op1;
1607 0 : res_op1 = value;
1608 0 : tree _r;
1609 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
1610 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1611 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1612 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 435, __FILE__, __LINE__, true);
1613 0 : return _r;
1614 : }
1615 0 : next_after_fail542:;
1616 : }
1617 : }
1618 : }
1619 : }
1620 : }
1621 : return NULL_TREE;
1622 : }
1623 :
1624 : tree
1625 374 : generic_simplify_298 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1626 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1627 : const enum tree_code ARG_UNUSED (op),
1628 : const combined_fn ARG_UNUSED (ctz))
1629 : {
1630 374 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1631 374 : {
1632 374 : tree type0 = TREE_TYPE (captures[1]);
1633 374 : int prec = TYPE_PRECISION (type0);
1634 374 : bool ok = true;
1635 374 : if (sanitize_flags_p (SANITIZE_BUILTIN)
1636 374 : && (!cfun
1637 64 : || (cfun->curr_properties & PROP_ssa) == 0))
1638 : ok = false;
1639 620 : if (ok && prec <= MAX_FIXED_MODE_SIZE
1640 : )
1641 : {
1642 310 : if (tree_int_cst_sgn (captures[2]) < 0 || wi::to_widest (captures[2]) >= prec
1643 : )
1644 : {
1645 36 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail559;
1646 36 : {
1647 36 : tree _r;
1648 36 : _r = constant_boolean_node (op == EQ_EXPR ? false : true, type);
1649 36 : if (TREE_SIDE_EFFECTS (captures[1]))
1650 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1651 36 : if (TREE_SIDE_EFFECTS (captures[2]))
1652 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1653 36 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 452, __FILE__, __LINE__, true);
1654 310 : return _r;
1655 : }
1656 0 : next_after_fail559:;
1657 : }
1658 : else
1659 : {
1660 274 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail560;
1661 274 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail560;
1662 274 : {
1663 274 : tree res_op0;
1664 274 : {
1665 274 : tree _o1[2], _r1;
1666 274 : _o1[0] = captures[1];
1667 274 : _o1[1] = wide_int_to_tree (type0,
1668 274 : wi::mask (tree_to_uhwi (captures[2]) + 1,
1669 : false, prec));
1670 274 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1671 274 : res_op0 = _r1;
1672 : }
1673 274 : tree res_op1;
1674 274 : res_op1 = wide_int_to_tree (type0,
1675 274 : wi::shifted_mask (tree_to_uhwi (captures[2]), 1,
1676 : false, prec));
1677 274 : tree _r;
1678 274 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1679 274 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 453, __FILE__, __LINE__, true);
1680 274 : return _r;
1681 : }
1682 64 : next_after_fail560:;
1683 : }
1684 : }
1685 : }
1686 64 : return NULL_TREE;
1687 : }
1688 :
1689 : tree
1690 0 : generic_simplify_310 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1691 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1692 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
1693 : {
1694 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1695 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail576;
1696 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail576;
1697 0 : {
1698 0 : tree _r;
1699 0 : _r = captures[1];
1700 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 469, __FILE__, __LINE__, true);
1701 : return _r;
1702 : }
1703 : next_after_fail576:;
1704 : return NULL_TREE;
1705 : }
1706 :
1707 : tree
1708 893 : generic_simplify_317 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1709 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1710 : const enum tree_code ARG_UNUSED (div))
1711 : {
1712 893 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1713 1786 : if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
1714 893 : && !integer_zerop (captures[0])
1715 1160 : && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
1716 : )
1717 : {
1718 111 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail585;
1719 111 : {
1720 111 : tree _r;
1721 111 : _r = build_one_cst (type);
1722 111 : if (TREE_SIDE_EFFECTS (captures[0]))
1723 2 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1724 111 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 476, __FILE__, __LINE__, true);
1725 111 : return _r;
1726 : }
1727 0 : next_after_fail585:;
1728 : }
1729 : return NULL_TREE;
1730 : }
1731 :
1732 : tree
1733 192 : generic_simplify_323 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1734 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1735 : const enum tree_code ARG_UNUSED (div))
1736 : {
1737 192 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1738 192 : if (ANY_INTEGRAL_TYPE_P (type)
1739 : )
1740 : {
1741 192 : if (TYPE_OVERFLOW_UNDEFINED (type) && !TYPE_OVERFLOW_SANITIZED (type)
1742 : )
1743 : {
1744 164 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail592;
1745 164 : {
1746 164 : tree _r;
1747 164 : _r = captures[1];
1748 164 : if (TREE_SIDE_EFFECTS (captures[2]))
1749 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1750 164 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 483, __FILE__, __LINE__, true);
1751 164 : return _r;
1752 : }
1753 0 : next_after_fail592:;
1754 : }
1755 : }
1756 : return NULL_TREE;
1757 : }
1758 :
1759 : tree
1760 212870 : generic_simplify_327 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1761 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1762 : const enum tree_code ARG_UNUSED (mod))
1763 : {
1764 212870 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1765 212870 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail596;
1766 212870 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail596;
1767 212870 : {
1768 212870 : tree _r;
1769 212870 : _r = build_zero_cst (type);
1770 212870 : if (TREE_SIDE_EFFECTS (captures[0]))
1771 47 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1772 212870 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 487, __FILE__, __LINE__, true);
1773 : return _r;
1774 : }
1775 : next_after_fail596:;
1776 : return NULL_TREE;
1777 : }
1778 :
1779 : tree
1780 6 : generic_simplify_337 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1781 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1782 : const combined_fn ARG_UNUSED (SIN),
1783 : const combined_fn ARG_UNUSED (TAN),
1784 : const combined_fn ARG_UNUSED (COS))
1785 : {
1786 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1787 6 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1788 : )
1789 : {
1790 6 : if (! HONOR_NANS (captures[1])
1791 6 : && ! HONOR_INFINITIES (captures[1])
1792 : )
1793 : {
1794 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail608;
1795 6 : {
1796 6 : tree res_op0;
1797 6 : res_op0 = captures[1];
1798 6 : tree _r;
1799 6 : _r = maybe_build_call_expr_loc (loc, COS, type, 1, res_op0);
1800 6 : if (!_r)
1801 0 : goto next_after_fail608;
1802 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 499, __FILE__, __LINE__, true);
1803 6 : return _r;
1804 : }
1805 : next_after_fail608:;
1806 : }
1807 : }
1808 : return NULL_TREE;
1809 : }
1810 :
1811 : tree
1812 161905 : generic_simplify_345 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1813 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1814 : const enum tree_code ARG_UNUSED (cmp))
1815 : {
1816 161905 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1817 161905 : {
1818 161905 : tree from_type = TREE_TYPE (captures[0]);
1819 161905 : tree c1_type = TREE_TYPE (captures[1]), c2_type = TREE_TYPE (captures[2]);
1820 161905 : enum tree_code code = ERROR_MARK;
1821 161905 : if (integer_zerop (captures[1])
1822 67417 : && INTEGRAL_TYPE_P (from_type)
1823 65106 : && (cmp == GE_EXPR || cmp == LT_EXPR)
1824 17333 : && TYPE_UNSIGNED (from_type)
1825 1764 : && !TYPE_UNSIGNED (c1_type)
1826 1764 : && TYPE_PRECISION (from_type) == TYPE_PRECISION (c1_type)
1827 587 : && int_fits_type_p (captures[2], from_type)
1828 162492 : && (types_match (c2_type, from_type)
1829 0 : || (TYPE_PRECISION (c2_type) > TYPE_PRECISION (from_type)
1830 0 : && (TYPE_UNSIGNED (from_type)
1831 0 : || TYPE_SIGN (c2_type) == TYPE_SIGN (from_type)))))
1832 : {
1833 587 : tree_code ncmp = cmp == GE_EXPR ? LE_EXPR : GT_EXPR;
1834 587 : widest_int c1 = wi::mask<widest_int>(TYPE_PRECISION (type) - 1, 0);
1835 587 : code = minmax_from_comparison (ncmp, captures[0], c1, wi::to_widest (captures[2]));
1836 587 : }
1837 587 : if (code == ERROR_MARK
1838 161900 : && INTEGRAL_TYPE_P (from_type)
1839 159589 : && int_fits_type_p (captures[2], from_type)
1840 159588 : && (types_match (c1_type, from_type)
1841 6904 : || (TYPE_PRECISION (c1_type) > TYPE_PRECISION (from_type)
1842 0 : && (TYPE_UNSIGNED (from_type)
1843 0 : || TYPE_SIGN (c1_type) == TYPE_SIGN (from_type))))
1844 153271 : && (types_match (c2_type, from_type)
1845 60902 : || (TYPE_PRECISION (c2_type) > TYPE_PRECISION (from_type)
1846 18808 : && (TYPE_UNSIGNED (from_type)
1847 691 : || TYPE_SIGN (c2_type) == TYPE_SIGN (from_type)))))
1848 : {
1849 109980 : if (cmp != EQ_EXPR)
1850 109968 : code = minmax_from_comparison (cmp, captures[0], captures[1], captures[0], captures[2]);
1851 12 : else if (int_fits_type_p (captures[1], from_type))
1852 : code = EQ_EXPR;
1853 : }
1854 161893 : if (code == MAX_EXPR
1855 : )
1856 : {
1857 19648 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail616;
1858 19648 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail616;
1859 19648 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail616;
1860 19648 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail616;
1861 19648 : {
1862 19648 : tree res_op0;
1863 19648 : {
1864 19648 : tree _o1[2], _r1;
1865 19648 : _o1[0] = captures[0];
1866 19648 : {
1867 19648 : tree _o2[1], _r2;
1868 19648 : _o2[0] = captures[2];
1869 19648 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
1870 : {
1871 308 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
1872 : }
1873 : else
1874 : _r2 = _o2[0];
1875 19648 : _o1[1] = _r2;
1876 : }
1877 19648 : _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1878 19648 : res_op0 = _r1;
1879 : }
1880 19648 : tree _r;
1881 19648 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1882 19648 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 507, __FILE__, __LINE__, true);
1883 19648 : return _r;
1884 : }
1885 : next_after_fail616:;
1886 : }
1887 : else
1888 : {
1889 142257 : if (code == MIN_EXPR
1890 : )
1891 : {
1892 258 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail617;
1893 258 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail617;
1894 258 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail617;
1895 258 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail617;
1896 258 : {
1897 258 : tree res_op0;
1898 258 : {
1899 258 : tree _o1[2], _r1;
1900 258 : _o1[0] = captures[0];
1901 258 : {
1902 258 : tree _o2[1], _r2;
1903 258 : _o2[0] = captures[2];
1904 258 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
1905 : {
1906 100 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
1907 : }
1908 : else
1909 : _r2 = _o2[0];
1910 258 : _o1[1] = _r2;
1911 : }
1912 258 : _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1913 258 : res_op0 = _r1;
1914 : }
1915 258 : tree _r;
1916 258 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1917 258 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 508, __FILE__, __LINE__, true);
1918 258 : return _r;
1919 : }
1920 : next_after_fail617:;
1921 : }
1922 : else
1923 : {
1924 141999 : if (code == EQ_EXPR
1925 : )
1926 : {
1927 12 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail618;
1928 12 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail618;
1929 12 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail618;
1930 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail618;
1931 12 : {
1932 12 : if (! tree_invariant_p (captures[1])) goto next_after_fail618;
1933 12 : tree res_op0;
1934 12 : {
1935 12 : tree _o1[3], _r1;
1936 12 : {
1937 12 : tree _o2[2], _r2;
1938 12 : _o2[0] = captures[0];
1939 12 : {
1940 12 : tree _o3[1], _r3;
1941 12 : _o3[0] = unshare_expr (captures[1]);
1942 12 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
1943 : {
1944 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
1945 : }
1946 : else
1947 : _r3 = _o3[0];
1948 12 : _o2[1] = _r3;
1949 : }
1950 12 : _r2 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o2[0], _o2[1]);
1951 12 : _o1[0] = _r2;
1952 : }
1953 12 : {
1954 12 : tree _o2[1], _r2;
1955 12 : _o2[0] = captures[1];
1956 12 : if (TREE_TYPE (_o2[0]) != from_type)
1957 : {
1958 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, from_type, _o2[0]);
1959 : }
1960 : else
1961 : _r2 = _o2[0];
1962 12 : _o1[1] = _r2;
1963 : }
1964 12 : {
1965 12 : tree _o2[1], _r2;
1966 12 : _o2[0] = captures[2];
1967 12 : if (TREE_TYPE (_o2[0]) != from_type)
1968 : {
1969 7 : _r2 = fold_build1_loc (loc, NOP_EXPR, from_type, _o2[0]);
1970 : }
1971 : else
1972 : _r2 = _o2[0];
1973 12 : _o1[2] = _r2;
1974 : }
1975 12 : _r1 = fold_build3_loc (loc, COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
1976 12 : res_op0 = _r1;
1977 : }
1978 12 : tree _r;
1979 12 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1980 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 509, __FILE__, __LINE__, true);
1981 12 : return _r;
1982 : }
1983 : next_after_fail618:;
1984 : }
1985 : }
1986 : }
1987 : }
1988 : return NULL_TREE;
1989 : }
1990 :
1991 : tree
1992 0 : generic_simplify_386 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1993 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1994 : const enum tree_code ARG_UNUSED (legt))
1995 : {
1996 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1997 0 : if (!HONOR_NANS (captures[0])
1998 : )
1999 : {
2000 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail669;
2001 0 : {
2002 0 : tree _r;
2003 0 : _r = constant_boolean_node (legt == LE_EXPR, type);
2004 0 : if (TREE_SIDE_EFFECTS (captures[0]))
2005 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2006 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2007 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2008 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 558, __FILE__, __LINE__, true);
2009 0 : return _r;
2010 : }
2011 0 : next_after_fail669:;
2012 : }
2013 : return NULL_TREE;
2014 : }
2015 :
2016 : tree
2017 0 : generic_simplify_394 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2018 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2019 : const enum tree_code ARG_UNUSED (cmp),
2020 : const enum tree_code ARG_UNUSED (cmp2))
2021 : {
2022 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2023 0 : if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
2024 0 : && TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2025 0 : && wi::gt_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1])))
2026 : )
2027 : {
2028 0 : {
2029 0 : tree utype = TREE_TYPE (captures[2]);
2030 0 : wide_int denom = wi::to_wide (captures[1]);
2031 0 : wide_int right = wi::to_wide (captures[2]);
2032 0 : wide_int smax = wi::sdiv_trunc (wi::max_value (TREE_TYPE (captures[0])), denom);
2033 0 : wide_int smin = wi::sdiv_trunc (wi::min_value (TREE_TYPE (captures[0])), denom);
2034 0 : bool small = wi::leu_p (right, smax);
2035 0 : bool large = wi::geu_p (right, smin);
2036 0 : if (small || large
2037 : )
2038 : {
2039 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail678;
2040 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail678;
2041 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail678;
2042 0 : {
2043 0 : tree res_op0;
2044 0 : {
2045 0 : tree _o1[1], _r1;
2046 0 : _o1[0] = captures[0];
2047 0 : if (TREE_TYPE (_o1[0]) != utype)
2048 : {
2049 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
2050 : }
2051 : else
2052 : _r1 = _o1[0];
2053 0 : res_op0 = _r1;
2054 : }
2055 0 : tree res_op1;
2056 0 : {
2057 0 : tree _o1[2], _r1;
2058 0 : _o1[0] = captures[2];
2059 0 : {
2060 0 : tree _o2[1], _r2;
2061 0 : _o2[0] = captures[1];
2062 0 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (res_op0))
2063 : {
2064 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o2[0]);
2065 : }
2066 : else
2067 : _r2 = _o2[0];
2068 0 : _o1[1] = _r2;
2069 : }
2070 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2071 0 : res_op1 = _r1;
2072 : }
2073 0 : tree _r;
2074 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2075 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 567, __FILE__, __LINE__, true);
2076 0 : return _r;
2077 : }
2078 0 : next_after_fail678:;
2079 : }
2080 : else
2081 : {
2082 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail679;
2083 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail679;
2084 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail679;
2085 0 : {
2086 0 : tree res_op0;
2087 0 : res_op0 = captures[0];
2088 0 : tree res_op1;
2089 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
2090 0 : tree _r;
2091 0 : _r = fold_build2_loc (loc, cmp2, type, res_op0, res_op1);
2092 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 568, __FILE__, __LINE__, true);
2093 0 : return _r;
2094 : }
2095 0 : next_after_fail679:;
2096 : }
2097 0 : }
2098 : }
2099 : return NULL_TREE;
2100 : }
2101 :
2102 : tree
2103 0 : generic_simplify_410 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2104 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2105 : const enum tree_code ARG_UNUSED (cmp))
2106 : {
2107 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2108 0 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2109 0 : && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2110 : )
2111 : {
2112 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail732;
2113 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail732;
2114 0 : {
2115 0 : tree res_op0;
2116 0 : res_op0 = captures[1];
2117 0 : tree res_op1;
2118 0 : res_op1 = captures[0];
2119 0 : tree _r;
2120 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2121 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 586, __FILE__, __LINE__, true);
2122 0 : return _r;
2123 : }
2124 : next_after_fail732:;
2125 : }
2126 : return NULL_TREE;
2127 : }
2128 :
2129 : tree
2130 0 : generic_simplify_414 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2131 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2132 : const combined_fn ARG_UNUSED (logs),
2133 : const combined_fn ARG_UNUSED (exps),
2134 : const enum tree_code ARG_UNUSED (cmp))
2135 : {
2136 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2137 0 : if (flag_unsafe_math_optimizations
2138 : )
2139 : {
2140 0 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
2141 0 : && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
2142 0 : && ! flag_trapping_math
2143 0 : && ! flag_errno_math
2144 : )
2145 : {
2146 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail736;
2147 0 : {
2148 0 : tree res_op0;
2149 0 : res_op0 = captures[1];
2150 0 : tree res_op1;
2151 0 : {
2152 0 : tree _o1[1], _r1;
2153 0 : _o1[0] = captures[2];
2154 0 : _r1 = maybe_build_call_expr_loc (loc, exps, TREE_TYPE (_o1[0]), 1, _o1[0]);
2155 0 : if (!_r1)
2156 0 : goto next_after_fail736;
2157 0 : if (EXPR_P (_r1))
2158 0 : goto next_after_fail736;
2159 0 : res_op1 = _r1;
2160 : }
2161 0 : tree _r;
2162 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2163 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 604, __FILE__, __LINE__, true);
2164 0 : return _r;
2165 : }
2166 : next_after_fail736:;
2167 : }
2168 : }
2169 : return NULL_TREE;
2170 : }
2171 :
2172 : tree
2173 330 : generic_simplify_422 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2174 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2175 : const enum tree_code ARG_UNUSED (shiftrotate))
2176 : {
2177 330 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2178 330 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail748;
2179 330 : {
2180 330 : tree _r;
2181 330 : _r = captures[0];
2182 330 : if (TREE_SIDE_EFFECTS (captures[1]))
2183 42 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2184 330 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 616, __FILE__, __LINE__, true);
2185 : return _r;
2186 : }
2187 0 : next_after_fail748:;
2188 0 : return NULL_TREE;
2189 : }
2190 :
2191 : tree
2192 18 : generic_simplify_426 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2193 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2194 : const enum tree_code ARG_UNUSED (bit_op),
2195 : const enum tree_code ARG_UNUSED (shift))
2196 : {
2197 18 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2198 18 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
2199 : )
2200 : {
2201 16 : {
2202 16 : tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
2203 16 : if (mask
2204 : )
2205 : {
2206 16 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail755;
2207 16 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail755;
2208 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail755;
2209 16 : {
2210 16 : tree res_op0;
2211 16 : {
2212 16 : tree _o1[2], _r1;
2213 16 : {
2214 16 : tree _o2[1], _r2;
2215 16 : _o2[0] = captures[2];
2216 16 : if (TREE_TYPE (_o2[0]) != type)
2217 : {
2218 16 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
2219 : }
2220 : else
2221 : _r2 = _o2[0];
2222 16 : _o1[0] = _r2;
2223 : }
2224 16 : _o1[1] = captures[4];
2225 16 : _r1 = fold_build2_loc (loc, shift, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2226 16 : res_op0 = _r1;
2227 : }
2228 16 : tree res_op1;
2229 16 : res_op1 = mask;
2230 16 : tree _r;
2231 16 : _r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
2232 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 622, __FILE__, __LINE__, true);
2233 16 : return _r;
2234 : }
2235 : next_after_fail755:;
2236 : }
2237 : }
2238 : }
2239 : return NULL_TREE;
2240 : }
2241 :
2242 : tree
2243 2157 : generic_simplify_432 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2244 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2245 : const enum tree_code ARG_UNUSED (eqne))
2246 : {
2247 2157 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2248 2157 : if ((integer_zerop (captures[1]) || integer_onep (captures[1]))
2249 : )
2250 : {
2251 2155 : if ((eqne == EQ_EXPR) ^ integer_zerop (captures[1])
2252 : )
2253 : {
2254 1545 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail766;
2255 1545 : {
2256 1545 : tree res_op0;
2257 1545 : res_op0 = captures[0];
2258 1545 : tree _r;
2259 1545 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2260 1545 : if (TREE_SIDE_EFFECTS (captures[1]))
2261 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2262 1545 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 632, __FILE__, __LINE__, true);
2263 1545 : return _r;
2264 : }
2265 0 : next_after_fail766:;
2266 : }
2267 : else
2268 : {
2269 610 : if (types_match (type, TREE_TYPE (captures[0]))
2270 : )
2271 : {
2272 41 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail767;
2273 41 : {
2274 41 : tree res_op0;
2275 41 : res_op0 = captures[0];
2276 41 : tree res_op1;
2277 41 : res_op1 = build_one_cst (type);
2278 41 : tree _r;
2279 41 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
2280 41 : if (TREE_SIDE_EFFECTS (captures[1]))
2281 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2282 41 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 633, __FILE__, __LINE__, true);
2283 41 : return _r;
2284 : }
2285 0 : next_after_fail767:;
2286 : }
2287 : }
2288 : }
2289 : return NULL_TREE;
2290 : }
2291 :
2292 : tree
2293 0 : generic_simplify_440 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2294 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2295 : const combined_fn ARG_UNUSED (copysigns),
2296 : const combined_fn ARG_UNUSED (coss))
2297 : {
2298 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2299 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail787;
2300 0 : {
2301 0 : tree res_op0;
2302 0 : res_op0 = captures[0];
2303 0 : tree _r;
2304 0 : _r = maybe_build_call_expr_loc (loc, coss, type, 1, res_op0);
2305 0 : if (!_r)
2306 0 : goto next_after_fail787;
2307 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2308 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2309 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 641, __FILE__, __LINE__, true);
2310 : return _r;
2311 : }
2312 : next_after_fail787:;
2313 : return NULL_TREE;
2314 : }
2315 :
2316 : tree
2317 0 : generic_simplify_443 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2318 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2319 : const combined_fn ARG_UNUSED (copysigns),
2320 : const combined_fn ARG_UNUSED (pows))
2321 : {
2322 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2323 0 : {
2324 0 : HOST_WIDE_INT n;
2325 0 : if (real_isinteger (&TREE_REAL_CST (captures[2]), &n) && (n & 1) == 0
2326 : )
2327 : {
2328 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail790;
2329 0 : {
2330 0 : tree res_op0;
2331 0 : res_op0 = captures[0];
2332 0 : tree res_op1;
2333 0 : res_op1 = captures[2];
2334 0 : tree _r;
2335 0 : _r = maybe_build_call_expr_loc (loc, pows, type, 2, res_op0, res_op1);
2336 0 : if (!_r)
2337 0 : goto next_after_fail790;
2338 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2339 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2340 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 644, __FILE__, __LINE__, true);
2341 0 : return _r;
2342 : }
2343 0 : next_after_fail790:;
2344 : }
2345 : }
2346 0 : return NULL_TREE;
2347 : }
2348 :
2349 : tree
2350 0 : generic_simplify_445 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2351 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2352 : const combined_fn ARG_UNUSED (pow))
2353 : {
2354 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2355 0 : if (flag_unsafe_math_optimizations
2356 : )
2357 : {
2358 0 : if (! HONOR_INFINITIES (type)
2359 0 : && ! flag_trapping_math
2360 0 : && ! flag_errno_math
2361 : )
2362 : {
2363 0 : if (! HONOR_NANS (type) && ! HONOR_SIGNED_ZEROS (type)
2364 : )
2365 : {
2366 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail792;
2367 0 : {
2368 0 : tree _r;
2369 0 : _r = captures[0];
2370 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2371 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2372 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 646, __FILE__, __LINE__, true);
2373 0 : return _r;
2374 : }
2375 0 : next_after_fail792:;
2376 : }
2377 : }
2378 : }
2379 : return NULL_TREE;
2380 : }
2381 :
2382 : tree
2383 0 : generic_simplify_448 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2384 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2385 : const combined_fn ARG_UNUSED (copysigns),
2386 : const combined_fn ARG_UNUSED (hypots))
2387 : {
2388 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2389 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail795;
2390 0 : {
2391 0 : tree res_op0;
2392 0 : res_op0 = captures[0];
2393 0 : tree res_op1;
2394 0 : res_op1 = captures[2];
2395 0 : tree _r;
2396 0 : _r = maybe_build_call_expr_loc (loc, hypots, type, 2, res_op0, res_op1);
2397 0 : if (!_r)
2398 0 : goto next_after_fail795;
2399 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2400 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2401 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 649, __FILE__, __LINE__, true);
2402 : return _r;
2403 : }
2404 : next_after_fail795:;
2405 : return NULL_TREE;
2406 : }
2407 :
2408 : tree
2409 4932724 : generic_simplify_452 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2410 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2411 : {
2412 4932724 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2413 4932724 : {
2414 4932724 : bool wascmp;
2415 4932724 : if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
2416 4932724 : && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
2417 : )
2418 : {
2419 115 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail799;
2420 115 : {
2421 115 : tree _r;
2422 115 : _r = wascmp ? constant_boolean_node (false, type) : build_zero_cst (type);
2423 115 : if (TREE_SIDE_EFFECTS (captures[0]))
2424 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2425 115 : if (TREE_SIDE_EFFECTS (captures[1]))
2426 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2427 115 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 653, __FILE__, __LINE__, true);
2428 115 : return _r;
2429 : }
2430 0 : next_after_fail799:;
2431 : }
2432 : }
2433 4932609 : return NULL_TREE;
2434 : }
2435 :
2436 : tree
2437 354 : generic_simplify_461 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2438 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2439 : const enum tree_code ARG_UNUSED (bitop),
2440 : const enum tree_code ARG_UNUSED (op))
2441 : {
2442 354 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2443 354 : {
2444 354 : tree pmop[2];
2445 354 : tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[5], op, captures[1], ERROR_MARK,
2446 : NULL_TREE, NULL_TREE, captures[2], bitop, captures[3],
2447 : captures[4], pmop);
2448 354 : if (utype
2449 : )
2450 : {
2451 353 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail808;
2452 353 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail808;
2453 353 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail808;
2454 353 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail808;
2455 353 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail808;
2456 353 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail808;
2457 353 : {
2458 353 : tree res_op0;
2459 353 : {
2460 353 : tree _o1[2], _r1;
2461 353 : {
2462 353 : tree _o2[2], _r2;
2463 353 : {
2464 353 : tree _o3[1], _r3;
2465 353 : _o3[0] = pmop[0];
2466 353 : if (TREE_TYPE (_o3[0]) != utype)
2467 : {
2468 14 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2469 : }
2470 : else
2471 : _r3 = _o3[0];
2472 353 : _o2[0] = _r3;
2473 : }
2474 353 : {
2475 353 : tree _o3[1], _r3;
2476 353 : _o3[0] = pmop[1];
2477 353 : if (TREE_TYPE (_o3[0]) != utype)
2478 : {
2479 74 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2480 : }
2481 : else
2482 : _r3 = _o3[0];
2483 353 : _o2[1] = _r3;
2484 : }
2485 353 : _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2486 353 : _o1[0] = _r2;
2487 : }
2488 353 : {
2489 353 : tree _o2[1], _r2;
2490 353 : _o2[0] = captures[5];
2491 353 : if (TREE_TYPE (_o2[0]) != utype)
2492 : {
2493 14 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2494 : }
2495 : else
2496 : _r2 = _o2[0];
2497 353 : _o1[1] = _r2;
2498 : }
2499 353 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2500 353 : res_op0 = _r1;
2501 : }
2502 353 : tree _r;
2503 353 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2504 353 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 661, __FILE__, __LINE__, true);
2505 353 : return _r;
2506 : }
2507 1 : next_after_fail808:;
2508 : }
2509 : }
2510 1 : return NULL_TREE;
2511 : }
2512 :
2513 : tree
2514 202 : generic_simplify_476 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2515 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2516 : const enum tree_code ARG_UNUSED (code2),
2517 : const enum tree_code ARG_UNUSED (code1))
2518 : {
2519 202 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2520 202 : if ((TREE_CODE (captures[2]) == INTEGER_CST
2521 2 : && TREE_CODE (captures[5]) == INTEGER_CST)
2522 202 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2523 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
2524 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
2525 0 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
2526 200 : && bitwise_equal_p (captures[2], captures[5]))
2527 : )
2528 : {
2529 2 : {
2530 2 : bool one_before = false;
2531 2 : bool one_after = false;
2532 2 : int cmp = 0;
2533 2 : bool allbits = true;
2534 2 : if (TREE_CODE (captures[2]) == INTEGER_CST
2535 2 : && TREE_CODE (captures[5]) == INTEGER_CST)
2536 : {
2537 2 : allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
2538 2 : auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
2539 2 : auto t2 = wi::to_wide (captures[5]);
2540 2 : cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
2541 2 : if (cmp < 0
2542 2 : && t1 == t2 - 1)
2543 : one_before = true;
2544 2 : if (cmp > 0
2545 2 : && t1 == t2 + 1)
2546 : one_after = true;
2547 : }
2548 2 : bool val;
2549 2 : switch (code2)
2550 : {
2551 0 : case EQ_EXPR: val = (cmp == 0); break;
2552 2 : case NE_EXPR: val = (cmp != 0); break;
2553 0 : case LT_EXPR: val = (cmp < 0); break;
2554 0 : case GT_EXPR: val = (cmp > 0); break;
2555 0 : case LE_EXPR: val = (cmp <= 0); break;
2556 0 : case GE_EXPR: val = (cmp >= 0); break;
2557 0 : default: gcc_unreachable ();
2558 : }
2559 2 : if (code1 == EQ_EXPR && val
2560 : )
2561 : {
2562 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail831;
2563 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail831;
2564 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail831;
2565 0 : {
2566 0 : tree _r;
2567 0 : _r = captures[0];
2568 0 : if (TREE_SIDE_EFFECTS (captures[4]))
2569 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
2570 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 676, __FILE__, __LINE__, true);
2571 0 : return _r;
2572 : }
2573 : next_after_fail831:;
2574 : }
2575 : else
2576 : {
2577 2 : if (code1 == EQ_EXPR && !val
2578 : )
2579 : {
2580 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail832;
2581 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail832;
2582 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail832;
2583 0 : {
2584 0 : tree _r;
2585 0 : _r = constant_boolean_node (false, type);
2586 0 : if (TREE_SIDE_EFFECTS (captures[4]))
2587 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
2588 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 677, __FILE__, __LINE__, true);
2589 0 : return _r;
2590 : }
2591 : next_after_fail832:;
2592 : }
2593 : else
2594 : {
2595 2 : if (code1 == NE_EXPR && !val && allbits
2596 : )
2597 : {
2598 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail833;
2599 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail833;
2600 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail833;
2601 0 : {
2602 0 : tree _r;
2603 0 : _r = captures[3];
2604 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 678, __FILE__, __LINE__, true);
2605 0 : return _r;
2606 : }
2607 : next_after_fail833:;
2608 : }
2609 : else
2610 : {
2611 2 : if ((code1 == NE_EXPR
2612 2 : && code2 == GE_EXPR
2613 0 : && cmp == 0
2614 0 : && allbits)
2615 2 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2616 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
2617 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2618 : )
2619 : {
2620 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail834;
2621 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail834;
2622 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail834;
2623 0 : {
2624 0 : tree res_op0;
2625 0 : res_op0 = captures[4];
2626 0 : tree res_op1;
2627 0 : {
2628 0 : tree _o1[1], _r1;
2629 0 : _o1[0] = captures[2];
2630 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2631 : {
2632 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2633 : }
2634 : else
2635 : _r1 = _o1[0];
2636 0 : res_op1 = _r1;
2637 : }
2638 0 : tree _r;
2639 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2640 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 679, __FILE__, __LINE__, true);
2641 0 : return _r;
2642 : }
2643 : next_after_fail834:;
2644 : }
2645 : else
2646 : {
2647 2 : if ((code1 == NE_EXPR
2648 2 : && code2 == LE_EXPR
2649 0 : && cmp == 0
2650 0 : && allbits)
2651 2 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2652 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
2653 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2654 : )
2655 : {
2656 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail835;
2657 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail835;
2658 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail835;
2659 0 : {
2660 0 : tree res_op0;
2661 0 : res_op0 = captures[4];
2662 0 : tree res_op1;
2663 0 : {
2664 0 : tree _o1[1], _r1;
2665 0 : _o1[0] = captures[2];
2666 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2667 : {
2668 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2669 : }
2670 : else
2671 : _r1 = _o1[0];
2672 0 : res_op1 = _r1;
2673 : }
2674 0 : tree _r;
2675 0 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2676 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 680, __FILE__, __LINE__, true);
2677 0 : return _r;
2678 : }
2679 : next_after_fail835:;
2680 : }
2681 : else
2682 : {
2683 2 : if ((code1 == NE_EXPR
2684 2 : && code2 == GT_EXPR
2685 : && one_after
2686 0 : && allbits)
2687 2 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2688 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
2689 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2690 : )
2691 : {
2692 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail836;
2693 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail836;
2694 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail836;
2695 0 : {
2696 0 : tree res_op0;
2697 0 : res_op0 = captures[4];
2698 0 : tree res_op1;
2699 0 : {
2700 0 : tree _o1[1], _r1;
2701 0 : _o1[0] = captures[2];
2702 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2703 : {
2704 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2705 : }
2706 : else
2707 : _r1 = _o1[0];
2708 0 : res_op1 = _r1;
2709 : }
2710 0 : tree _r;
2711 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2712 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 681, __FILE__, __LINE__, true);
2713 0 : return _r;
2714 : }
2715 : next_after_fail836:;
2716 : }
2717 : else
2718 : {
2719 2 : if ((code1 == NE_EXPR
2720 2 : && code2 == LT_EXPR
2721 : && one_before
2722 0 : && allbits)
2723 2 : && ((VECTOR_BOOLEAN_TYPE_P (type)
2724 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
2725 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
2726 : )
2727 : {
2728 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail837;
2729 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail837;
2730 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail837;
2731 0 : {
2732 0 : tree res_op0;
2733 0 : res_op0 = captures[4];
2734 0 : tree res_op1;
2735 0 : {
2736 0 : tree _o1[1], _r1;
2737 0 : _o1[0] = captures[2];
2738 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
2739 : {
2740 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
2741 : }
2742 : else
2743 : _r1 = _o1[0];
2744 0 : res_op1 = _r1;
2745 : }
2746 0 : tree _r;
2747 0 : _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
2748 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 682, __FILE__, __LINE__, true);
2749 0 : return _r;
2750 : }
2751 : next_after_fail837:;
2752 : }
2753 : }
2754 : }
2755 : }
2756 : }
2757 : }
2758 : }
2759 : }
2760 : }
2761 : return NULL_TREE;
2762 : }
2763 :
2764 : tree
2765 29 : generic_simplify_507 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2766 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2767 : {
2768 29 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2769 29 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
2770 : )
2771 : {
2772 29 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail898;
2773 29 : {
2774 29 : tree res_op0;
2775 29 : {
2776 29 : tree _o1[2], _r1;
2777 29 : _o1[0] = captures[0];
2778 29 : {
2779 29 : tree _o2[1], _r2;
2780 29 : _o2[0] = captures[1];
2781 29 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
2782 29 : _o1[1] = _r2;
2783 : }
2784 29 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2785 29 : res_op0 = _r1;
2786 : }
2787 29 : tree _r;
2788 29 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2789 29 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 712, __FILE__, __LINE__, true);
2790 29 : return _r;
2791 : }
2792 0 : next_after_fail898:;
2793 : }
2794 : return NULL_TREE;
2795 : }
2796 :
2797 : tree
2798 16 : generic_simplify_515 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2799 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2800 : {
2801 16 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2802 16 : if (ANY_INTEGRAL_TYPE_P (type) && !TYPE_OVERFLOW_SANITIZED (type)
2803 : )
2804 : {
2805 16 : {
2806 16 : tree ptrdifftype = TREE_TYPE (captures[0]);
2807 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail907;
2808 16 : {
2809 16 : tree res_op0;
2810 16 : {
2811 16 : tree _o1[2], _r1;
2812 16 : _o1[0] = captures[2];
2813 16 : _o1[1] = captures[1];
2814 16 : _r1 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ptrdifftype, _o1[0], _o1[1]);
2815 16 : res_op0 = _r1;
2816 : }
2817 16 : tree _r;
2818 16 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2819 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 719, __FILE__, __LINE__, true);
2820 16 : return _r;
2821 : }
2822 0 : next_after_fail907:;
2823 : }
2824 : }
2825 : return NULL_TREE;
2826 : }
2827 :
2828 : tree
2829 0 : generic_simplify_522 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2830 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2831 : const enum tree_code ARG_UNUSED (minmax))
2832 : {
2833 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2834 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail915;
2835 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail915;
2836 0 : {
2837 0 : tree _r;
2838 0 : _r = captures[0];
2839 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 727, __FILE__, __LINE__, true);
2840 : return _r;
2841 : }
2842 : next_after_fail915:;
2843 : return NULL_TREE;
2844 : }
2845 :
2846 : tree
2847 47 : generic_simplify_530 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2848 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2849 : const enum tree_code ARG_UNUSED (minmax),
2850 : const enum tree_code ARG_UNUSED (cmp))
2851 : {
2852 47 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2853 47 : {
2854 47 : poly_int64 off0, off1;
2855 47 : tree base0, base1;
2856 47 : int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
2857 : off0, off1,
2858 : 1
2859 : );
2860 47 : if (equal == 1
2861 : )
2862 : {
2863 0 : if (minmax == MIN_EXPR
2864 : )
2865 : {
2866 0 : if (known_le (off0, off1)
2867 : )
2868 : {
2869 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail925;
2870 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail925;
2871 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail925;
2872 0 : {
2873 0 : tree _r;
2874 0 : _r = captures[0];
2875 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 736, __FILE__, __LINE__, true);
2876 0 : return _r;
2877 : }
2878 47 : next_after_fail925:;
2879 : }
2880 : else
2881 : {
2882 0 : if (known_gt (off0, off1)
2883 : )
2884 : {
2885 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail926;
2886 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail926;
2887 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail926;
2888 0 : {
2889 0 : tree _r;
2890 0 : _r = captures[2];
2891 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 737, __FILE__, __LINE__, true);
2892 0 : return _r;
2893 : }
2894 47 : next_after_fail926:;
2895 : }
2896 : }
2897 : }
2898 : else
2899 : {
2900 0 : if (known_ge (off0, off1)
2901 : )
2902 : {
2903 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail927;
2904 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail927;
2905 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail927;
2906 0 : {
2907 0 : tree _r;
2908 0 : _r = captures[0];
2909 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 738, __FILE__, __LINE__, true);
2910 0 : return _r;
2911 : }
2912 47 : next_after_fail927:;
2913 : }
2914 : else
2915 : {
2916 0 : if (known_lt (off0, off1)
2917 : )
2918 : {
2919 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail928;
2920 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail928;
2921 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail928;
2922 0 : {
2923 0 : tree _r;
2924 0 : _r = captures[2];
2925 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 739, __FILE__, __LINE__, true);
2926 0 : return _r;
2927 : }
2928 47 : next_after_fail928:;
2929 : }
2930 : }
2931 : }
2932 : }
2933 : }
2934 47 : return NULL_TREE;
2935 : }
2936 :
2937 : tree
2938 0 : generic_simplify_551 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2939 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2940 : const combined_fn ARG_UNUSED (cond_len_op))
2941 : {
2942 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2943 0 : {
2944 0 : tree op_type = TREE_TYPE (captures[3]);
2945 0 : if (element_precision (type) == element_precision (op_type)
2946 : )
2947 : {
2948 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail958;
2949 0 : {
2950 0 : tree res_op0;
2951 0 : {
2952 0 : tree _o1[6], _r1;
2953 0 : _o1[0] = captures[0];
2954 0 : _o1[1] = captures[1];
2955 0 : _o1[2] = captures[2];
2956 0 : {
2957 0 : tree _o2[1], _r2;
2958 0 : _o2[0] = captures[6];
2959 0 : if (TREE_TYPE (_o2[0]) != op_type)
2960 : {
2961 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
2962 : }
2963 : else
2964 : _r2 = _o2[0];
2965 0 : _o1[3] = _r2;
2966 : }
2967 0 : _o1[4] = captures[4];
2968 0 : _o1[5] = captures[5];
2969 0 : _r1 = maybe_build_call_expr_loc (loc, cond_len_op, TREE_TYPE (_o1[1]), 6, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4], _o1[5]);
2970 0 : if (!_r1)
2971 0 : goto next_after_fail958;
2972 0 : res_op0 = _r1;
2973 : }
2974 0 : tree _r;
2975 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
2976 0 : if (TREE_SIDE_EFFECTS (captures[3]))
2977 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
2978 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 752, __FILE__, __LINE__, true);
2979 0 : return _r;
2980 : }
2981 : next_after_fail958:;
2982 : }
2983 : }
2984 : return NULL_TREE;
2985 : }
2986 :
2987 : tree
2988 0 : generic_simplify_561 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2989 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2990 : const combined_fn ARG_UNUSED (bswap))
2991 : {
2992 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2993 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail971;
2994 0 : {
2995 0 : tree _r;
2996 0 : _r = captures[0];
2997 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 765, __FILE__, __LINE__, true);
2998 : return _r;
2999 : }
3000 0 : next_after_fail971:;
3001 0 : return NULL_TREE;
3002 : }
3003 :
3004 : tree
3005 0 : generic_simplify_568 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3006 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
3007 : const combined_fn ARG_UNUSED (ovf))
3008 : {
3009 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3010 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
3011 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3012 0 : && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
3013 0 : && (!TYPE_UNSIGNED (TREE_TYPE (captures[1])) || TYPE_UNSIGNED (TREE_TYPE (captures[2])))
3014 : )
3015 : {
3016 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail978;
3017 0 : {
3018 0 : tree res_op0;
3019 0 : res_op0 = captures[0];
3020 0 : tree res_op1;
3021 0 : res_op1 = captures[2];
3022 0 : tree _r;
3023 0 : _r = maybe_build_call_expr_loc (loc, ovf, type, 2, res_op0, res_op1);
3024 0 : if (!_r)
3025 0 : goto next_after_fail978;
3026 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 772, __FILE__, __LINE__, true);
3027 0 : return _r;
3028 : }
3029 : next_after_fail978:;
3030 : }
3031 : return NULL_TREE;
3032 : }
3033 :
3034 : tree
3035 0 : generic_simplify_576 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3036 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3037 : const combined_fn ARG_UNUSED (fns))
3038 : {
3039 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3040 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail986;
3041 0 : {
3042 0 : tree _r;
3043 0 : _r = captures[0];
3044 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 780, __FILE__, __LINE__, true);
3045 : return _r;
3046 : }
3047 0 : next_after_fail986:;
3048 0 : return NULL_TREE;
3049 : }
3050 :
3051 : tree
3052 0 : generic_simplify_581 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3053 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
3054 : {
3055 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3056 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail991;
3057 0 : {
3058 0 : tree _r;
3059 0 : _r = captures[0];
3060 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3061 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3062 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 785, __FILE__, __LINE__, true);
3063 : return _r;
3064 : }
3065 0 : next_after_fail991:;
3066 0 : return NULL_TREE;
3067 : }
3068 :
3069 : tree
3070 0 : generic_simplify_588 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3071 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3072 : const combined_fn ARG_UNUSED (rints))
3073 : {
3074 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3075 0 : if (canonicalize_math_p ()
3076 : )
3077 : {
3078 0 : if (!flag_errno_math
3079 : )
3080 : {
3081 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail998;
3082 0 : {
3083 0 : tree res_op0;
3084 0 : res_op0 = captures[0];
3085 0 : tree _r;
3086 0 : _r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
3087 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 792, __FILE__, __LINE__, true);
3088 0 : return _r;
3089 : }
3090 0 : next_after_fail998:;
3091 : }
3092 : }
3093 : return NULL_TREE;
3094 : }
3095 :
3096 : tree
3097 0 : generic_simplify_594 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3098 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
3099 : const combined_fn ARG_UNUSED (fmas))
3100 : {
3101 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3102 0 : if (canonicalize_math_after_vectorization_p ()
3103 : )
3104 : {
3105 : {
3106 : tree t = TREE_TYPE (captures[0]);
3107 : if ((!ANY_INTEGRAL_TYPE_P (type)
3108 : || TYPE_UNSIGNED (type)
3109 : || !TYPE_OVERFLOW_SANITIZED (type))
3110 : && (!ANY_INTEGRAL_TYPE_P (t)
3111 : || TYPE_UNSIGNED (t)
3112 : || !TYPE_OVERFLOW_SANITIZED (type))
3113 : )
3114 : {
3115 : {
3116 : tree utype = unsigned_type_for (type);
3117 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1004;
3118 : {
3119 : tree res_op0;
3120 : {
3121 : tree _o1[3], _r1;
3122 : {
3123 : tree _o2[1], _r2;
3124 : _o2[0] = captures[0];
3125 : if (TREE_TYPE (_o2[0]) != utype)
3126 : {
3127 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
3128 : }
3129 : else
3130 : _r2 = _o2[0];
3131 : _o1[0] = _r2;
3132 : }
3133 : {
3134 : tree _o2[1], _r2;
3135 : _o2[0] = captures[1];
3136 : if (TREE_TYPE (_o2[0]) != utype)
3137 : {
3138 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
3139 : }
3140 : else
3141 : _r2 = _o2[0];
3142 : _o1[1] = _r2;
3143 : }
3144 : {
3145 : tree _o2[1], _r2;
3146 : _o2[0] = captures[2];
3147 : if (TREE_TYPE (_o2[0]) != utype)
3148 : {
3149 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
3150 : }
3151 : else
3152 : _r2 = _o2[0];
3153 : _o1[2] = _r2;
3154 : }
3155 : _r1 = maybe_build_call_expr_loc (loc, CFN_FNMA, TREE_TYPE (_o1[0]), 3, _o1[0], _o1[1], _o1[2]);
3156 : if (!_r1)
3157 : goto next_after_fail1004;
3158 : res_op0 = _r1;
3159 : }
3160 : tree _r;
3161 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3162 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 798, __FILE__, __LINE__, true);
3163 : return _r;
3164 : }
3165 0 : next_after_fail1004:;
3166 : }
3167 : }
3168 : }
3169 : }
3170 0 : return NULL_TREE;
3171 : }
3172 :
3173 : tree
3174 0 : generic_simplify_616 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3175 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3176 : const combined_fn ARG_UNUSED (bswap),
3177 : const combined_fn ARG_UNUSED (popcount))
3178 : {
3179 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3180 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3181 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3182 : )
3183 : {
3184 0 : {
3185 0 : tree type0 = TREE_TYPE (captures[0]);
3186 0 : tree type1 = TREE_TYPE (captures[1]);
3187 0 : unsigned int prec0 = TYPE_PRECISION (type0);
3188 0 : unsigned int prec1 = TYPE_PRECISION (type1);
3189 0 : if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
3190 : )
3191 : {
3192 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1026;
3193 0 : {
3194 0 : tree res_op0;
3195 0 : {
3196 0 : tree _o1[1], _r1;
3197 0 : {
3198 0 : tree _o2[1], _r2;
3199 0 : _o2[0] = captures[2];
3200 0 : if (TREE_TYPE (_o2[0]) != type1)
3201 : {
3202 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
3203 : }
3204 : else
3205 : _r2 = _o2[0];
3206 0 : _o1[0] = _r2;
3207 : }
3208 0 : if (TREE_TYPE (_o1[0]) != type0)
3209 : {
3210 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3211 : }
3212 : else
3213 : _r1 = _o1[0];
3214 0 : res_op0 = _r1;
3215 : }
3216 0 : tree _r;
3217 0 : _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
3218 0 : if (!_r)
3219 0 : goto next_after_fail1026;
3220 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 814, __FILE__, __LINE__, true);
3221 0 : return _r;
3222 : }
3223 : next_after_fail1026:;
3224 : }
3225 : }
3226 : }
3227 : return NULL_TREE;
3228 : }
3229 :
3230 : tree
3231 2161745 : generic_simplify_ABS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3232 : {
3233 2161745 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3234 2161745 : switch (TREE_CODE (_p0))
3235 : {
3236 196587 : CASE_CONVERT:
3237 196587 : {
3238 196587 : tree _q20 = TREE_OPERAND (_p0, 0);
3239 196587 : {
3240 196587 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3241 393172 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3242 915 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3243 841 : && element_precision (type) > element_precision (TREE_TYPE (captures[0]))
3244 196813 : && (!VECTOR_TYPE_P (type)
3245 0 : || target_supports_op_p (TREE_TYPE (captures[0]), ABSU_EXPR, optab_vector))
3246 : )
3247 : {
3248 226 : {
3249 226 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
3250 226 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1040;
3251 226 : {
3252 226 : tree res_op0;
3253 226 : {
3254 226 : tree _o1[1], _r1;
3255 226 : _o1[0] = captures[0];
3256 226 : _r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
3257 226 : res_op0 = _r1;
3258 : }
3259 226 : tree _r;
3260 226 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3261 226 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 827, __FILE__, __LINE__, true);
3262 226 : return _r;
3263 : }
3264 0 : next_after_fail1040:;
3265 : }
3266 : }
3267 : }
3268 : break;
3269 : }
3270 12 : case ABS_EXPR:
3271 12 : {
3272 12 : tree _q20 = TREE_OPERAND (_p0, 0);
3273 12 : {
3274 12 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
3275 12 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1041;
3276 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1041;
3277 12 : {
3278 12 : tree _r;
3279 12 : _r = captures[0];
3280 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 828, __FILE__, __LINE__, true);
3281 12 : return _r;
3282 : }
3283 0 : next_after_fail1041:;
3284 : }
3285 0 : break;
3286 : }
3287 57 : case NEGATE_EXPR:
3288 57 : {
3289 57 : tree _q20 = TREE_OPERAND (_p0, 0);
3290 57 : {
3291 57 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3292 57 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1042;
3293 57 : {
3294 57 : tree res_op0;
3295 57 : res_op0 = captures[0];
3296 57 : tree _r;
3297 57 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
3298 57 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 829, __FILE__, __LINE__, true);
3299 2161745 : return _r;
3300 : }
3301 0 : next_after_fail1042:;
3302 : }
3303 0 : break;
3304 : }
3305 317 : case PLUS_EXPR:
3306 317 : {
3307 317 : tree _q20 = TREE_OPERAND (_p0, 0);
3308 317 : tree _q21 = TREE_OPERAND (_p0, 1);
3309 317 : if (real_zerop (_q21))
3310 : {
3311 3 : {
3312 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3313 3 : tree res = generic_simplify_1 (loc, type, _p0, captures, PLUS_EXPR);
3314 3 : if (res) return res;
3315 : }
3316 : }
3317 : break;
3318 : }
3319 7853 : case MINUS_EXPR:
3320 7853 : {
3321 7853 : tree _q20 = TREE_OPERAND (_p0, 0);
3322 7853 : tree _q21 = TREE_OPERAND (_p0, 1);
3323 7853 : if (real_zerop (_q21))
3324 : {
3325 0 : {
3326 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3327 0 : tree res = generic_simplify_1 (loc, type, _p0, captures, MINUS_EXPR);
3328 0 : if (res) return res;
3329 : }
3330 : }
3331 : break;
3332 : }
3333 0 : case VEC_COND_EXPR:
3334 0 : {
3335 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3336 0 : tree _q21 = TREE_OPERAND (_p0, 1);
3337 0 : tree _q22 = TREE_OPERAND (_p0, 2);
3338 0 : {
3339 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3340 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1043;
3341 0 : {
3342 0 : tree res_op0;
3343 0 : res_op0 = captures[1];
3344 0 : tree res_op1;
3345 0 : {
3346 0 : tree _o1[1], _r1;
3347 0 : _o1[0] = captures[2];
3348 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, type, _o1[0]);
3349 0 : if (EXPR_P (_r1))
3350 0 : goto next_after_fail1043;
3351 0 : res_op1 = _r1;
3352 : }
3353 0 : tree res_op2;
3354 0 : {
3355 0 : tree _o1[1], _r1;
3356 0 : _o1[0] = captures[3];
3357 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, type, _o1[0]);
3358 0 : if (EXPR_P (_r1))
3359 0 : goto next_after_fail1043;
3360 0 : res_op2 = _r1;
3361 : }
3362 0 : tree _r;
3363 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
3364 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 830, __FILE__, __LINE__, true);
3365 0 : return _r;
3366 : }
3367 0 : next_after_fail1043:;
3368 : }
3369 0 : break;
3370 : }
3371 702 : case CALL_EXPR:
3372 702 : switch (get_call_combined_fn (_p0))
3373 : {
3374 0 : case CFN_BUILT_IN_COPYSIGNF16:
3375 0 : if (call_expr_nargs (_p0) == 2)
3376 : {
3377 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3378 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3379 0 : {
3380 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3381 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF16);
3382 0 : if (res) return res;
3383 : }
3384 : }
3385 : break;
3386 0 : case CFN_BUILT_IN_COPYSIGNF32:
3387 0 : if (call_expr_nargs (_p0) == 2)
3388 : {
3389 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3390 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3391 0 : {
3392 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3393 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF32);
3394 0 : if (res) return res;
3395 : }
3396 : }
3397 : break;
3398 0 : case CFN_BUILT_IN_COPYSIGNF64:
3399 0 : if (call_expr_nargs (_p0) == 2)
3400 : {
3401 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3402 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3403 0 : {
3404 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3405 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF64);
3406 0 : if (res) return res;
3407 : }
3408 : }
3409 : break;
3410 0 : case CFN_BUILT_IN_COPYSIGNF128X:
3411 0 : if (call_expr_nargs (_p0) == 2)
3412 : {
3413 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3414 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3415 0 : {
3416 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3417 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF128X);
3418 0 : if (res) return res;
3419 : }
3420 : }
3421 : break;
3422 0 : case CFN_BUILT_IN_COPYSIGNF128:
3423 0 : if (call_expr_nargs (_p0) == 2)
3424 : {
3425 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3426 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3427 0 : {
3428 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3429 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF128);
3430 0 : if (res) return res;
3431 : }
3432 : }
3433 : break;
3434 0 : case CFN_BUILT_IN_COPYSIGNF32X:
3435 0 : if (call_expr_nargs (_p0) == 2)
3436 : {
3437 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3438 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3439 0 : {
3440 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3441 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF32X);
3442 0 : if (res) return res;
3443 : }
3444 : }
3445 : break;
3446 0 : case CFN_BUILT_IN_COPYSIGNF64X:
3447 0 : if (call_expr_nargs (_p0) == 2)
3448 : {
3449 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3450 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3451 0 : {
3452 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3453 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF64X);
3454 0 : if (res) return res;
3455 : }
3456 : }
3457 : break;
3458 0 : case CFN_BUILT_IN_COPYSIGN:
3459 0 : if (call_expr_nargs (_p0) == 2)
3460 : {
3461 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3462 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3463 0 : {
3464 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3465 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGN);
3466 0 : if (res) return res;
3467 : }
3468 : }
3469 : break;
3470 1 : case CFN_BUILT_IN_COPYSIGNF:
3471 1 : if (call_expr_nargs (_p0) == 2)
3472 : {
3473 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3474 1 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3475 1 : {
3476 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3477 1 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF);
3478 1 : if (res) return res;
3479 : }
3480 : }
3481 : break;
3482 0 : case CFN_BUILT_IN_COPYSIGNL:
3483 0 : if (call_expr_nargs (_p0) == 2)
3484 : {
3485 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3486 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3487 0 : {
3488 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3489 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNL);
3490 0 : if (res) return res;
3491 : }
3492 : }
3493 : break;
3494 0 : case CFN_COPYSIGN:
3495 0 : if (call_expr_nargs (_p0) == 2)
3496 : {
3497 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3498 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3499 0 : {
3500 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3501 0 : tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_COPYSIGN);
3502 0 : if (res) return res;
3503 : }
3504 : }
3505 : break;
3506 : default:;
3507 : }
3508 : break;
3509 2161447 : default:;
3510 : }
3511 2161447 : if (tree_expr_nonnegative_p (_p0))
3512 : {
3513 548 : {
3514 548 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3515 548 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1044;
3516 548 : {
3517 548 : tree _r;
3518 548 : _r = captures[0];
3519 548 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 831, __FILE__, __LINE__, true);
3520 548 : return _r;
3521 : }
3522 0 : next_after_fail1044:;
3523 : }
3524 : }
3525 : return NULL_TREE;
3526 : }
3527 :
3528 : tree
3529 998904 : 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)
3530 : {
3531 998904 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3532 998904 : switch (TREE_CODE (_p0))
3533 : {
3534 102 : case MINUS_EXPR:
3535 102 : {
3536 102 : tree _q20 = TREE_OPERAND (_p0, 0);
3537 102 : tree _q21 = TREE_OPERAND (_p0, 1);
3538 102 : switch (TREE_CODE (_q21))
3539 : {
3540 22 : CASE_CONVERT:
3541 22 : {
3542 22 : tree _q40 = TREE_OPERAND (_q21, 0);
3543 22 : switch (TREE_CODE (_q40))
3544 : {
3545 0 : case LT_EXPR:
3546 0 : {
3547 0 : tree _q50 = TREE_OPERAND (_q40, 0);
3548 0 : tree _q51 = TREE_OPERAND (_q40, 1);
3549 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3550 : {
3551 0 : if (integer_zerop (_q51))
3552 : {
3553 0 : switch (TREE_CODE (_p1))
3554 : {
3555 0 : case NEGATE_EXPR:
3556 0 : {
3557 0 : tree _q80 = TREE_OPERAND (_p1, 0);
3558 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
3559 : {
3560 0 : {
3561 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3562 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3563 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3564 : )
3565 : {
3566 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1163;
3567 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1163;
3568 0 : {
3569 0 : tree res_op0;
3570 0 : res_op0 = captures[0];
3571 0 : tree _r;
3572 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
3573 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
3574 0 : return _r;
3575 : }
3576 0 : next_after_fail1163:;
3577 : }
3578 : }
3579 : }
3580 : break;
3581 : }
3582 : default:;
3583 : }
3584 : }
3585 : }
3586 : break;
3587 : }
3588 : default:;
3589 : }
3590 : break;
3591 : }
3592 : default:;
3593 : }
3594 : break;
3595 : }
3596 142 : case NEGATE_EXPR:
3597 142 : {
3598 142 : tree _q20 = TREE_OPERAND (_p0, 0);
3599 142 : switch (TREE_CODE (_p1))
3600 : {
3601 0 : case MINUS_EXPR:
3602 0 : {
3603 0 : tree _q40 = TREE_OPERAND (_p1, 0);
3604 0 : tree _q41 = TREE_OPERAND (_p1, 1);
3605 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
3606 : {
3607 0 : switch (TREE_CODE (_q41))
3608 : {
3609 0 : CASE_CONVERT:
3610 0 : {
3611 0 : tree _q70 = TREE_OPERAND (_q41, 0);
3612 0 : switch (TREE_CODE (_q70))
3613 : {
3614 0 : case LT_EXPR:
3615 0 : {
3616 0 : tree _q80 = TREE_OPERAND (_q70, 0);
3617 0 : tree _q81 = TREE_OPERAND (_q70, 1);
3618 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
3619 : {
3620 0 : if (integer_zerop (_q81))
3621 : {
3622 0 : {
3623 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
3624 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3625 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3626 : )
3627 : {
3628 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1164;
3629 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1164;
3630 0 : {
3631 0 : tree res_op0;
3632 0 : res_op0 = captures[0];
3633 0 : tree _r;
3634 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
3635 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
3636 0 : return _r;
3637 : }
3638 0 : next_after_fail1164:;
3639 : }
3640 : }
3641 : }
3642 : }
3643 : break;
3644 : }
3645 : default:;
3646 : }
3647 : break;
3648 : }
3649 : default:;
3650 : }
3651 : }
3652 : break;
3653 : }
3654 : default:;
3655 : }
3656 : break;
3657 : }
3658 998904 : default:;
3659 : }
3660 998904 : if (integer_zerop (_p1))
3661 : {
3662 543 : {
3663 543 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3664 543 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1165;
3665 543 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1165;
3666 543 : {
3667 543 : tree res_op0;
3668 543 : res_op0 = captures[0];
3669 543 : tree _r;
3670 543 : _r = non_lvalue_loc (loc, res_op0);
3671 543 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
3672 543 : return _r;
3673 : }
3674 : next_after_fail1165:;
3675 : }
3676 : }
3677 998361 : switch (TREE_CODE (_p0))
3678 : {
3679 2976 : case LSHIFT_EXPR:
3680 2976 : {
3681 2976 : tree _q20 = TREE_OPERAND (_p0, 0);
3682 2976 : tree _q21 = TREE_OPERAND (_p0, 1);
3683 2976 : switch (TREE_CODE (_p1))
3684 : {
3685 10 : case LSHIFT_EXPR:
3686 10 : {
3687 10 : tree _q50 = TREE_OPERAND (_p1, 0);
3688 10 : tree _q51 = TREE_OPERAND (_p1, 1);
3689 10 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3690 : {
3691 1 : {
3692 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
3693 1 : tree res = generic_simplify_3 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3694 1 : if (res) return res;
3695 : }
3696 : }
3697 : break;
3698 : }
3699 : default:;
3700 : }
3701 : break;
3702 : }
3703 22302 : case RSHIFT_EXPR:
3704 22302 : {
3705 22302 : tree _q20 = TREE_OPERAND (_p0, 0);
3706 22302 : tree _q21 = TREE_OPERAND (_p0, 1);
3707 22302 : switch (TREE_CODE (_p1))
3708 : {
3709 20 : case RSHIFT_EXPR:
3710 20 : {
3711 20 : tree _q50 = TREE_OPERAND (_p1, 0);
3712 20 : tree _q51 = TREE_OPERAND (_p1, 1);
3713 20 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
3714 : {
3715 10 : {
3716 10 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
3717 10 : tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3718 10 : if (res) return res;
3719 : }
3720 : }
3721 : break;
3722 : }
3723 : default:;
3724 : }
3725 : break;
3726 : }
3727 3380 : case BIT_AND_EXPR:
3728 3380 : {
3729 3380 : tree _q20 = TREE_OPERAND (_p0, 0);
3730 3380 : tree _q21 = TREE_OPERAND (_p0, 1);
3731 3380 : switch (TREE_CODE (_p1))
3732 : {
3733 354 : case BIT_AND_EXPR:
3734 354 : {
3735 354 : tree _q50 = TREE_OPERAND (_p1, 0);
3736 354 : tree _q51 = TREE_OPERAND (_p1, 1);
3737 354 : {
3738 354 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
3739 354 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3740 354 : if (res) return res;
3741 : }
3742 354 : {
3743 354 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q50 };
3744 354 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3745 354 : if (res) return res;
3746 : }
3747 354 : {
3748 354 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q51 };
3749 354 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3750 354 : if (res) return res;
3751 : }
3752 354 : {
3753 354 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q50 };
3754 354 : tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3755 354 : if (res) return res;
3756 : }
3757 354 : break;
3758 : }
3759 3380 : default:;
3760 : }
3761 3380 : switch (TREE_CODE (_q21))
3762 : {
3763 41 : case BIT_NOT_EXPR:
3764 41 : {
3765 41 : tree _q40 = TREE_OPERAND (_q21, 0);
3766 41 : switch (TREE_CODE (_p1))
3767 : {
3768 0 : case BIT_NOT_EXPR:
3769 0 : {
3770 0 : tree _q60 = TREE_OPERAND (_p1, 0);
3771 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
3772 : {
3773 0 : {
3774 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
3775 0 : tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
3776 0 : if (res) return res;
3777 : }
3778 : }
3779 : break;
3780 : }
3781 : default:;
3782 : }
3783 : break;
3784 : }
3785 3380 : default:;
3786 : }
3787 3380 : switch (TREE_CODE (_q20))
3788 : {
3789 90 : case BIT_NOT_EXPR:
3790 90 : {
3791 90 : tree _q30 = TREE_OPERAND (_q20, 0);
3792 90 : switch (TREE_CODE (_p1))
3793 : {
3794 0 : case BIT_NOT_EXPR:
3795 0 : {
3796 0 : tree _q60 = TREE_OPERAND (_p1, 0);
3797 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
3798 : {
3799 0 : {
3800 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q30 };
3801 0 : tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
3802 0 : if (res) return res;
3803 : }
3804 : }
3805 : break;
3806 : }
3807 90 : default:;
3808 : }
3809 90 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
3810 : {
3811 0 : {
3812 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
3813 0 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
3814 0 : if (res) return res;
3815 : }
3816 : }
3817 : break;
3818 : }
3819 3380 : default:;
3820 : }
3821 3380 : switch (TREE_CODE (_q21))
3822 : {
3823 41 : case BIT_NOT_EXPR:
3824 41 : {
3825 41 : tree _q40 = TREE_OPERAND (_q21, 0);
3826 41 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
3827 : {
3828 0 : {
3829 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
3830 0 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
3831 0 : if (res) return res;
3832 : }
3833 : }
3834 : break;
3835 : }
3836 : default:;
3837 : }
3838 : break;
3839 : }
3840 505 : case BIT_NOT_EXPR:
3841 505 : {
3842 505 : tree _q20 = TREE_OPERAND (_p0, 0);
3843 505 : switch (TREE_CODE (_p1))
3844 : {
3845 51 : case BIT_AND_EXPR:
3846 51 : {
3847 51 : tree _q40 = TREE_OPERAND (_p1, 0);
3848 51 : tree _q41 = TREE_OPERAND (_p1, 1);
3849 51 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
3850 : {
3851 0 : switch (TREE_CODE (_q41))
3852 : {
3853 0 : case BIT_NOT_EXPR:
3854 0 : {
3855 0 : tree _q60 = TREE_OPERAND (_q41, 0);
3856 0 : {
3857 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q60 };
3858 0 : tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
3859 0 : if (res) return res;
3860 : }
3861 0 : break;
3862 : }
3863 : default:;
3864 : }
3865 : }
3866 51 : switch (TREE_CODE (_q40))
3867 : {
3868 7 : case BIT_NOT_EXPR:
3869 7 : {
3870 7 : tree _q50 = TREE_OPERAND (_q40, 0);
3871 7 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
3872 : {
3873 0 : {
3874 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
3875 0 : tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
3876 0 : if (res) return res;
3877 : }
3878 : }
3879 : break;
3880 : }
3881 : default:;
3882 : }
3883 : break;
3884 : }
3885 : default:;
3886 : }
3887 : break;
3888 : }
3889 998350 : default:;
3890 : }
3891 998350 : switch (TREE_CODE (_p1))
3892 : {
3893 790 : case BIT_AND_EXPR:
3894 790 : {
3895 790 : tree _q30 = TREE_OPERAND (_p1, 0);
3896 790 : tree _q31 = TREE_OPERAND (_p1, 1);
3897 790 : switch (TREE_CODE (_q30))
3898 : {
3899 57 : case BIT_NOT_EXPR:
3900 57 : {
3901 57 : tree _q40 = TREE_OPERAND (_q30, 0);
3902 57 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
3903 : {
3904 0 : {
3905 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
3906 0 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
3907 0 : if (res) return res;
3908 : }
3909 : }
3910 : break;
3911 : }
3912 790 : default:;
3913 : }
3914 790 : switch (TREE_CODE (_q31))
3915 : {
3916 8 : case BIT_NOT_EXPR:
3917 8 : {
3918 8 : tree _q50 = TREE_OPERAND (_q31, 0);
3919 8 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
3920 : {
3921 0 : {
3922 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q30 };
3923 0 : tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
3924 0 : if (res) return res;
3925 : }
3926 : }
3927 : break;
3928 : }
3929 : default:;
3930 : }
3931 : break;
3932 : }
3933 998350 : default:;
3934 : }
3935 998350 : switch (TREE_CODE (_p0))
3936 : {
3937 21591 : case PLUS_EXPR:
3938 21591 : {
3939 21591 : tree _q20 = TREE_OPERAND (_p0, 0);
3940 21591 : tree _q21 = TREE_OPERAND (_p0, 1);
3941 21591 : if (integer_minus_onep (_q21))
3942 : {
3943 10450 : switch (TREE_CODE (_p1))
3944 : {
3945 11 : case NEGATE_EXPR:
3946 11 : {
3947 11 : tree _q50 = TREE_OPERAND (_p1, 0);
3948 11 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
3949 : {
3950 11 : {
3951 11 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3952 11 : tree res = generic_simplify_8 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3953 11 : if (res) return res;
3954 : }
3955 : }
3956 : break;
3957 : }
3958 : default:;
3959 : }
3960 : }
3961 : break;
3962 : }
3963 142 : case NEGATE_EXPR:
3964 142 : {
3965 142 : tree _q20 = TREE_OPERAND (_p0, 0);
3966 142 : switch (TREE_CODE (_p1))
3967 : {
3968 0 : case PLUS_EXPR:
3969 0 : {
3970 0 : tree _q40 = TREE_OPERAND (_p1, 0);
3971 0 : tree _q41 = TREE_OPERAND (_p1, 1);
3972 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
3973 : {
3974 0 : if (integer_minus_onep (_q41))
3975 : {
3976 0 : {
3977 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3978 0 : tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3979 0 : if (res) return res;
3980 : }
3981 : }
3982 : }
3983 : break;
3984 : }
3985 0 : case MINUS_EXPR:
3986 0 : {
3987 0 : tree _q40 = TREE_OPERAND (_p1, 0);
3988 0 : tree _q41 = TREE_OPERAND (_p1, 1);
3989 0 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
3990 : {
3991 0 : if (integer_onep (_q41))
3992 : {
3993 0 : {
3994 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3995 0 : tree res = generic_simplify_10 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
3996 0 : if (res) return res;
3997 : }
3998 : }
3999 : }
4000 : break;
4001 : }
4002 : default:;
4003 : }
4004 : break;
4005 : }
4006 102 : case MINUS_EXPR:
4007 102 : {
4008 102 : tree _q20 = TREE_OPERAND (_p0, 0);
4009 102 : tree _q21 = TREE_OPERAND (_p0, 1);
4010 102 : if (integer_onep (_q21))
4011 : {
4012 0 : switch (TREE_CODE (_p1))
4013 : {
4014 0 : case NEGATE_EXPR:
4015 0 : {
4016 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4017 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4018 : {
4019 0 : {
4020 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4021 0 : tree res = generic_simplify_11 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4022 0 : if (res) return res;
4023 : }
4024 : }
4025 : break;
4026 : }
4027 : default:;
4028 : }
4029 : }
4030 : break;
4031 : }
4032 1310 : case BIT_IOR_EXPR:
4033 1310 : {
4034 1310 : tree _q20 = TREE_OPERAND (_p0, 0);
4035 1310 : tree _q21 = TREE_OPERAND (_p0, 1);
4036 1310 : switch (TREE_CODE (_p1))
4037 : {
4038 65 : case BIT_AND_EXPR:
4039 65 : {
4040 65 : tree _q50 = TREE_OPERAND (_p1, 0);
4041 65 : tree _q51 = TREE_OPERAND (_p1, 1);
4042 65 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4043 : {
4044 15 : {
4045 15 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4046 15 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4047 15 : if (res) return res;
4048 : }
4049 : }
4050 65 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4051 : {
4052 12 : {
4053 12 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
4054 12 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4055 12 : if (res) return res;
4056 : }
4057 : }
4058 65 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4059 : {
4060 3 : {
4061 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
4062 3 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4063 3 : if (res) return res;
4064 : }
4065 : }
4066 65 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4067 : {
4068 6 : {
4069 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
4070 6 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4071 6 : if (res) return res;
4072 : }
4073 : }
4074 : break;
4075 : }
4076 1310 : default:;
4077 : }
4078 1310 : switch (TREE_CODE (_q20))
4079 : {
4080 481 : case BIT_NOT_EXPR:
4081 481 : {
4082 481 : tree _q30 = TREE_OPERAND (_q20, 0);
4083 481 : {
4084 481 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
4085 481 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4086 481 : if (res) return res;
4087 : }
4088 480 : break;
4089 : }
4090 1309 : default:;
4091 : }
4092 1309 : switch (TREE_CODE (_q21))
4093 : {
4094 62 : case BIT_NOT_EXPR:
4095 62 : {
4096 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4097 62 : {
4098 62 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20, _p1 };
4099 62 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4100 62 : if (res) return res;
4101 : }
4102 62 : break;
4103 : }
4104 : default:;
4105 : }
4106 : break;
4107 : }
4108 3380 : case BIT_AND_EXPR:
4109 3380 : {
4110 3380 : tree _q20 = TREE_OPERAND (_p0, 0);
4111 3380 : tree _q21 = TREE_OPERAND (_p0, 1);
4112 3380 : switch (TREE_CODE (_p1))
4113 : {
4114 74 : case BIT_IOR_EXPR:
4115 74 : {
4116 74 : tree _q50 = TREE_OPERAND (_p1, 0);
4117 74 : tree _q51 = TREE_OPERAND (_p1, 1);
4118 74 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4119 : {
4120 18 : {
4121 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q21, _q20 };
4122 18 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4123 18 : if (res) return res;
4124 : }
4125 : }
4126 74 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4127 : {
4128 9 : {
4129 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q20, _q21 };
4130 9 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4131 9 : if (res) return res;
4132 : }
4133 : }
4134 74 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4135 : {
4136 9 : {
4137 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q21, _q20 };
4138 9 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4139 9 : if (res) return res;
4140 : }
4141 : }
4142 74 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4143 : {
4144 18 : {
4145 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q20, _q21 };
4146 18 : tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
4147 18 : if (res) return res;
4148 : }
4149 : }
4150 : break;
4151 : }
4152 : default:;
4153 : }
4154 : break;
4155 : }
4156 998338 : default:;
4157 : }
4158 998338 : switch (TREE_CODE (_p1))
4159 : {
4160 521 : case BIT_IOR_EXPR:
4161 521 : {
4162 521 : tree _q30 = TREE_OPERAND (_p1, 0);
4163 521 : tree _q31 = TREE_OPERAND (_p1, 1);
4164 521 : switch (TREE_CODE (_q30))
4165 : {
4166 21 : case BIT_NOT_EXPR:
4167 21 : {
4168 21 : tree _q40 = TREE_OPERAND (_q30, 0);
4169 21 : {
4170 21 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q31, _p0 };
4171 21 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4172 21 : if (res) return res;
4173 : }
4174 21 : break;
4175 : }
4176 521 : default:;
4177 : }
4178 521 : switch (TREE_CODE (_q31))
4179 : {
4180 25 : case BIT_NOT_EXPR:
4181 25 : {
4182 25 : tree _q50 = TREE_OPERAND (_q31, 0);
4183 25 : {
4184 25 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q31, _q50, _q30, _p0 };
4185 25 : tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
4186 25 : if (res) return res;
4187 : }
4188 25 : break;
4189 : }
4190 : default:;
4191 : }
4192 : break;
4193 : }
4194 998338 : default:;
4195 : }
4196 998338 : switch (TREE_CODE (_p0))
4197 : {
4198 3380 : case BIT_AND_EXPR:
4199 3380 : {
4200 3380 : tree _q20 = TREE_OPERAND (_p0, 0);
4201 3380 : tree _q21 = TREE_OPERAND (_p0, 1);
4202 3380 : switch (TREE_CODE (_q20))
4203 : {
4204 90 : case BIT_NOT_EXPR:
4205 90 : {
4206 90 : tree _q30 = TREE_OPERAND (_q20, 0);
4207 90 : {
4208 90 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
4209 90 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
4210 90 : if (res) return res;
4211 : }
4212 89 : break;
4213 : }
4214 3379 : default:;
4215 : }
4216 3379 : switch (TREE_CODE (_q21))
4217 : {
4218 41 : case BIT_NOT_EXPR:
4219 41 : {
4220 41 : tree _q40 = TREE_OPERAND (_q21, 0);
4221 41 : {
4222 41 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20, _p1 };
4223 41 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
4224 41 : if (res) return res;
4225 : }
4226 41 : break;
4227 : }
4228 : default:;
4229 : }
4230 : break;
4231 : }
4232 998337 : default:;
4233 : }
4234 998337 : switch (TREE_CODE (_p1))
4235 : {
4236 790 : case BIT_AND_EXPR:
4237 790 : {
4238 790 : tree _q30 = TREE_OPERAND (_p1, 0);
4239 790 : tree _q31 = TREE_OPERAND (_p1, 1);
4240 790 : switch (TREE_CODE (_q30))
4241 : {
4242 57 : case BIT_NOT_EXPR:
4243 57 : {
4244 57 : tree _q40 = TREE_OPERAND (_q30, 0);
4245 57 : {
4246 57 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q31, _p0 };
4247 57 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
4248 57 : if (res) return res;
4249 : }
4250 57 : break;
4251 : }
4252 790 : default:;
4253 : }
4254 790 : switch (TREE_CODE (_q31))
4255 : {
4256 8 : case BIT_NOT_EXPR:
4257 8 : {
4258 8 : tree _q50 = TREE_OPERAND (_q31, 0);
4259 8 : {
4260 8 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q31, _q50, _q30, _p0 };
4261 8 : tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
4262 8 : if (res) return res;
4263 : }
4264 8 : break;
4265 : }
4266 : default:;
4267 : }
4268 : break;
4269 : }
4270 998337 : default:;
4271 : }
4272 998337 : switch (TREE_CODE (_p0))
4273 : {
4274 635943 : CASE_CONVERT:
4275 635943 : {
4276 635943 : tree _q20 = TREE_OPERAND (_p0, 0);
4277 635943 : switch (TREE_CODE (_p1))
4278 : {
4279 631867 : CASE_CONVERT:
4280 631867 : {
4281 631867 : tree _q40 = TREE_OPERAND (_p1, 0);
4282 631867 : {
4283 631867 : tree _q40_pops[1];
4284 631867 : if (tree_maybe_bit_not (_q40, _q40_pops))
4285 : {
4286 0 : tree _q50 = _q40_pops[0];
4287 0 : {
4288 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
4289 0 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4290 0 : if (res) return res;
4291 : }
4292 : }
4293 : }
4294 631867 : break;
4295 : }
4296 635943 : default:;
4297 : }
4298 635943 : {
4299 635943 : tree _q20_pops[1];
4300 635943 : if (tree_maybe_bit_not (_q20, _q20_pops))
4301 : {
4302 61165 : tree _q30 = _q20_pops[0];
4303 61165 : switch (TREE_CODE (_p1))
4304 : {
4305 61115 : CASE_CONVERT:
4306 61115 : {
4307 61115 : tree _q50 = TREE_OPERAND (_p1, 0);
4308 61115 : {
4309 61115 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
4310 61115 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4311 61115 : if (res) return res;
4312 : }
4313 61115 : break;
4314 : }
4315 : default:;
4316 : }
4317 : }
4318 : }
4319 635943 : break;
4320 : }
4321 998337 : default:;
4322 : }
4323 998337 : {
4324 998337 : tree _p1_pops[1];
4325 998337 : if (tree_maybe_bit_not (_p1, _p1_pops))
4326 : {
4327 9357 : tree _q30 = _p1_pops[0];
4328 9357 : {
4329 9357 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
4330 9357 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4331 9357 : if (res) return res;
4332 : }
4333 : }
4334 : }
4335 998337 : {
4336 998337 : tree _p0_pops[1];
4337 998337 : if (tree_maybe_bit_not (_p0, _p0_pops))
4338 : {
4339 1052 : tree _q20 = _p0_pops[0];
4340 1052 : {
4341 1052 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
4342 1052 : tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4343 1052 : if (res) return res;
4344 : }
4345 : }
4346 : }
4347 998316 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
4348 : {
4349 149 : {
4350 149 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4351 149 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1166;
4352 149 : {
4353 149 : tree _r;
4354 149 : _r = build_zero_cst (type);
4355 149 : if (TREE_SIDE_EFFECTS (captures[0]))
4356 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
4357 149 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
4358 149 : return _r;
4359 : }
4360 0 : next_after_fail1166:;
4361 : }
4362 : }
4363 998167 : if (integer_all_onesp (_p1))
4364 : {
4365 1093 : {
4366 1093 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
4367 1093 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1167;
4368 1093 : {
4369 1093 : tree res_op0;
4370 1093 : res_op0 = captures[0];
4371 1093 : tree _r;
4372 1093 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4373 1093 : if (TREE_SIDE_EFFECTS (captures[1]))
4374 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4375 1093 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
4376 1093 : return _r;
4377 : }
4378 0 : next_after_fail1167:;
4379 : }
4380 : }
4381 997074 : switch (TREE_CODE (_p0))
4382 : {
4383 1302 : case BIT_IOR_EXPR:
4384 1302 : {
4385 1302 : tree _q20 = TREE_OPERAND (_p0, 0);
4386 1302 : tree _q21 = TREE_OPERAND (_p0, 1);
4387 1302 : switch (TREE_CODE (_p1))
4388 : {
4389 179 : case BIT_IOR_EXPR:
4390 179 : {
4391 179 : tree _q50 = TREE_OPERAND (_p1, 0);
4392 179 : tree _q51 = TREE_OPERAND (_p1, 1);
4393 179 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4394 : {
4395 0 : switch (TREE_CODE (_q51))
4396 : {
4397 0 : case BIT_NOT_EXPR:
4398 0 : {
4399 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4400 0 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
4401 : {
4402 0 : {
4403 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4404 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4405 0 : if (res) return res;
4406 : }
4407 : }
4408 : break;
4409 : }
4410 : default:;
4411 : }
4412 : }
4413 179 : switch (TREE_CODE (_q50))
4414 : {
4415 20 : case BIT_NOT_EXPR:
4416 20 : {
4417 20 : tree _q60 = TREE_OPERAND (_q50, 0);
4418 20 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
4419 : {
4420 2 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4421 : {
4422 1 : {
4423 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4424 1 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4425 1 : if (res) return res;
4426 : }
4427 : }
4428 : }
4429 19 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4430 : {
4431 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4432 : {
4433 0 : {
4434 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
4435 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4436 0 : if (res) return res;
4437 : }
4438 : }
4439 : }
4440 : break;
4441 : }
4442 178 : default:;
4443 : }
4444 178 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4445 : {
4446 0 : switch (TREE_CODE (_q51))
4447 : {
4448 0 : case BIT_NOT_EXPR:
4449 0 : {
4450 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4451 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4452 : {
4453 0 : {
4454 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
4455 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4456 0 : if (res) return res;
4457 : }
4458 : }
4459 : break;
4460 : }
4461 : default:;
4462 : }
4463 : }
4464 : break;
4465 : }
4466 1301 : default:;
4467 : }
4468 1301 : switch (TREE_CODE (_q21))
4469 : {
4470 62 : case BIT_NOT_EXPR:
4471 62 : {
4472 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4473 62 : switch (TREE_CODE (_p1))
4474 : {
4475 9 : case BIT_IOR_EXPR:
4476 9 : {
4477 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4478 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4479 9 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4480 : {
4481 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
4482 : {
4483 0 : {
4484 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
4485 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4486 0 : if (res) return res;
4487 : }
4488 : }
4489 : }
4490 : break;
4491 : }
4492 : default:;
4493 : }
4494 : break;
4495 : }
4496 1301 : default:;
4497 : }
4498 1301 : switch (TREE_CODE (_q20))
4499 : {
4500 480 : case BIT_NOT_EXPR:
4501 480 : {
4502 480 : tree _q30 = TREE_OPERAND (_q20, 0);
4503 480 : switch (TREE_CODE (_p1))
4504 : {
4505 28 : case BIT_IOR_EXPR:
4506 28 : {
4507 28 : tree _q60 = TREE_OPERAND (_p1, 0);
4508 28 : tree _q61 = TREE_OPERAND (_p1, 1);
4509 28 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
4510 : {
4511 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
4512 : {
4513 0 : {
4514 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
4515 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4516 0 : if (res) return res;
4517 : }
4518 : }
4519 : }
4520 28 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4521 : {
4522 9 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
4523 : {
4524 0 : {
4525 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
4526 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4527 0 : if (res) return res;
4528 : }
4529 : }
4530 9 : switch (TREE_CODE (_q61))
4531 : {
4532 0 : case BIT_NOT_EXPR:
4533 0 : {
4534 0 : tree _q80 = TREE_OPERAND (_q61, 0);
4535 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
4536 : {
4537 0 : {
4538 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
4539 0 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
4540 0 : if (res) return res;
4541 : }
4542 : }
4543 : break;
4544 : }
4545 : default:;
4546 : }
4547 : }
4548 28 : switch (TREE_CODE (_q60))
4549 : {
4550 1 : case BIT_NOT_EXPR:
4551 1 : {
4552 1 : tree _q70 = TREE_OPERAND (_q60, 0);
4553 1 : if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
4554 : {
4555 1 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
4556 : {
4557 1 : {
4558 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
4559 1 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
4560 1 : if (res) return res;
4561 : }
4562 : }
4563 : }
4564 : break;
4565 : }
4566 : default:;
4567 : }
4568 : break;
4569 : }
4570 9 : case BIT_XOR_EXPR:
4571 9 : {
4572 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4573 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4574 9 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4575 : {
4576 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
4577 : {
4578 0 : {
4579 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
4580 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
4581 0 : if (res) return res;
4582 : }
4583 : }
4584 : }
4585 : break;
4586 : }
4587 479 : default:;
4588 : }
4589 479 : {
4590 479 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p1 };
4591 479 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
4592 479 : if (res) return res;
4593 : }
4594 431 : break;
4595 : }
4596 1252 : default:;
4597 : }
4598 1252 : switch (TREE_CODE (_q21))
4599 : {
4600 62 : case BIT_NOT_EXPR:
4601 62 : {
4602 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4603 62 : switch (TREE_CODE (_p1))
4604 : {
4605 9 : case BIT_IOR_EXPR:
4606 9 : {
4607 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4608 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4609 9 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
4610 : {
4611 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
4612 : {
4613 0 : {
4614 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
4615 0 : tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
4616 0 : if (res) return res;
4617 : }
4618 : }
4619 : }
4620 : break;
4621 : }
4622 9 : case BIT_XOR_EXPR:
4623 9 : {
4624 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4625 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4626 9 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
4627 : {
4628 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
4629 : {
4630 0 : {
4631 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
4632 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
4633 0 : if (res) return res;
4634 : }
4635 : }
4636 : }
4637 : break;
4638 : }
4639 : default:;
4640 : }
4641 : break;
4642 : }
4643 1252 : default:;
4644 : }
4645 1252 : switch (TREE_CODE (_p1))
4646 : {
4647 65 : case BIT_AND_EXPR:
4648 65 : {
4649 65 : tree _q50 = TREE_OPERAND (_p1, 0);
4650 65 : tree _q51 = TREE_OPERAND (_p1, 1);
4651 65 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4652 : {
4653 6 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4654 : {
4655 0 : {
4656 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4657 0 : tree res = generic_simplify_20 (loc, type, _p0, _p1, captures);
4658 0 : if (res) return res;
4659 : }
4660 : }
4661 : }
4662 : break;
4663 : }
4664 36 : case BIT_XOR_EXPR:
4665 36 : {
4666 36 : tree _q50 = TREE_OPERAND (_p1, 0);
4667 36 : tree _q51 = TREE_OPERAND (_p1, 1);
4668 36 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4669 : {
4670 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4671 : {
4672 0 : {
4673 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4674 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
4675 0 : if (res) return res;
4676 : }
4677 : }
4678 : }
4679 : break;
4680 : }
4681 1252 : default:;
4682 : }
4683 1252 : switch (TREE_CODE (_q21))
4684 : {
4685 62 : case BIT_NOT_EXPR:
4686 62 : {
4687 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4688 62 : switch (TREE_CODE (_p1))
4689 : {
4690 9 : case BIT_IOR_EXPR:
4691 9 : {
4692 9 : tree _q60 = TREE_OPERAND (_p1, 0);
4693 9 : tree _q61 = TREE_OPERAND (_p1, 1);
4694 9 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
4695 : {
4696 0 : switch (TREE_CODE (_q61))
4697 : {
4698 0 : case BIT_NOT_EXPR:
4699 0 : {
4700 0 : tree _q80 = TREE_OPERAND (_q61, 0);
4701 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
4702 : {
4703 0 : {
4704 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
4705 0 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
4706 0 : if (res) return res;
4707 : }
4708 : }
4709 : break;
4710 : }
4711 : default:;
4712 : }
4713 : }
4714 9 : switch (TREE_CODE (_q60))
4715 : {
4716 0 : case BIT_NOT_EXPR:
4717 0 : {
4718 0 : tree _q70 = TREE_OPERAND (_q60, 0);
4719 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4720 : {
4721 0 : if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
4722 : {
4723 0 : {
4724 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
4725 0 : tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
4726 0 : if (res) return res;
4727 : }
4728 : }
4729 : }
4730 : break;
4731 : }
4732 : default:;
4733 : }
4734 : break;
4735 : }
4736 : default:;
4737 : }
4738 : break;
4739 : }
4740 1252 : default:;
4741 : }
4742 1252 : switch (TREE_CODE (_p1))
4743 : {
4744 24 : CASE_CONVERT:
4745 24 : {
4746 24 : tree _q50 = TREE_OPERAND (_p1, 0);
4747 24 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
4748 : {
4749 0 : {
4750 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
4751 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
4752 0 : if (res) return res;
4753 : }
4754 : }
4755 24 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
4756 : {
4757 0 : {
4758 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q21 };
4759 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
4760 0 : if (res) return res;
4761 : }
4762 : }
4763 : break;
4764 : }
4765 1252 : default:;
4766 : }
4767 1252 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
4768 : {
4769 3 : {
4770 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
4771 3 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
4772 3 : if (res) return res;
4773 : }
4774 : }
4775 1249 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
4776 : {
4777 3 : {
4778 3 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q21 };
4779 3 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
4780 3 : if (res) return res;
4781 : }
4782 : }
4783 1246 : {
4784 1246 : tree _q20_pops[1];
4785 1246 : if (tree_nop_convert (_q20, _q20_pops))
4786 : {
4787 8 : tree _q30 = _q20_pops[0];
4788 8 : switch (TREE_CODE (_q30))
4789 : {
4790 8 : case BIT_NOT_EXPR:
4791 8 : {
4792 8 : tree _q40 = TREE_OPERAND (_q30, 0);
4793 8 : {
4794 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q21, _p1 };
4795 8 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
4796 8 : if (res) return res;
4797 : }
4798 0 : break;
4799 : }
4800 : default:;
4801 : }
4802 : }
4803 : }
4804 1238 : switch (TREE_CODE (_q21))
4805 : {
4806 62 : case BIT_NOT_EXPR:
4807 62 : {
4808 62 : tree _q40 = TREE_OPERAND (_q21, 0);
4809 62 : {
4810 62 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q20, _p1 };
4811 62 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
4812 62 : if (res) return res;
4813 : }
4814 54 : break;
4815 : }
4816 1230 : default:;
4817 : }
4818 1230 : {
4819 1230 : tree _q21_pops[1];
4820 1230 : if (tree_nop_convert (_q21, _q21_pops))
4821 : {
4822 0 : tree _q40 = _q21_pops[0];
4823 0 : switch (TREE_CODE (_q40))
4824 : {
4825 0 : case BIT_NOT_EXPR:
4826 0 : {
4827 0 : tree _q50 = TREE_OPERAND (_q40, 0);
4828 0 : {
4829 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q20, _p1 };
4830 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
4831 0 : if (res) return res;
4832 : }
4833 0 : break;
4834 : }
4835 : default:;
4836 : }
4837 : }
4838 : }
4839 1230 : break;
4840 : }
4841 3935 : case BIT_XOR_EXPR:
4842 3935 : {
4843 3935 : tree _q20 = TREE_OPERAND (_p0, 0);
4844 3935 : tree _q21 = TREE_OPERAND (_p0, 1);
4845 3935 : switch (TREE_CODE (_p1))
4846 : {
4847 203 : case BIT_IOR_EXPR:
4848 203 : {
4849 203 : tree _q50 = TREE_OPERAND (_p1, 0);
4850 203 : tree _q51 = TREE_OPERAND (_p1, 1);
4851 203 : switch (TREE_CODE (_q50))
4852 : {
4853 1 : case BIT_NOT_EXPR:
4854 1 : {
4855 1 : tree _q60 = TREE_OPERAND (_q50, 0);
4856 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4857 : {
4858 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4859 : {
4860 1 : {
4861 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q21, _p0 };
4862 1 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
4863 1 : if (res) return res;
4864 : }
4865 : }
4866 : }
4867 : break;
4868 : }
4869 202 : default:;
4870 : }
4871 202 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4872 : {
4873 0 : switch (TREE_CODE (_q51))
4874 : {
4875 0 : case BIT_NOT_EXPR:
4876 0 : {
4877 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4878 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4879 : {
4880 0 : {
4881 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q21, _p0 };
4882 0 : tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
4883 0 : if (res) return res;
4884 : }
4885 : }
4886 : break;
4887 : }
4888 : default:;
4889 : }
4890 : }
4891 202 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4892 : {
4893 1 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4894 : {
4895 0 : {
4896 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4897 0 : tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
4898 0 : if (res) return res;
4899 : }
4900 : }
4901 : }
4902 : break;
4903 : }
4904 41 : case BIT_AND_EXPR:
4905 41 : {
4906 41 : tree _q50 = TREE_OPERAND (_p1, 0);
4907 41 : tree _q51 = TREE_OPERAND (_p1, 1);
4908 41 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4909 : {
4910 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4911 : {
4912 0 : {
4913 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4914 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4915 0 : if (res) return res;
4916 : }
4917 : }
4918 : }
4919 : break;
4920 : }
4921 198 : CASE_CONVERT:
4922 198 : {
4923 198 : tree _q50 = TREE_OPERAND (_p1, 0);
4924 198 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
4925 : {
4926 0 : {
4927 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
4928 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
4929 0 : if (res) return res;
4930 : }
4931 : }
4932 198 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
4933 : {
4934 0 : {
4935 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q20 };
4936 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
4937 0 : if (res) return res;
4938 : }
4939 : }
4940 : break;
4941 : }
4942 3934 : default:;
4943 : }
4944 3934 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
4945 : {
4946 0 : {
4947 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
4948 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
4949 0 : if (res) return res;
4950 : }
4951 : }
4952 3934 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
4953 : {
4954 11 : {
4955 11 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q20 };
4956 11 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
4957 11 : if (res) return res;
4958 : }
4959 : }
4960 : break;
4961 : }
4962 3379 : case BIT_AND_EXPR:
4963 3379 : {
4964 3379 : tree _q20 = TREE_OPERAND (_p0, 0);
4965 3379 : tree _q21 = TREE_OPERAND (_p0, 1);
4966 3379 : switch (TREE_CODE (_p1))
4967 : {
4968 74 : case BIT_IOR_EXPR:
4969 74 : {
4970 74 : tree _q50 = TREE_OPERAND (_p1, 0);
4971 74 : tree _q51 = TREE_OPERAND (_p1, 1);
4972 74 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4973 : {
4974 18 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4975 : {
4976 0 : {
4977 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4978 0 : tree res = generic_simplify_20 (loc, type, _p0, _p1, captures);
4979 0 : if (res) return res;
4980 : }
4981 : }
4982 : }
4983 : break;
4984 : }
4985 30 : case BIT_XOR_EXPR:
4986 30 : {
4987 30 : tree _q50 = TREE_OPERAND (_p1, 0);
4988 30 : tree _q51 = TREE_OPERAND (_p1, 1);
4989 30 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4990 : {
4991 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4992 : {
4993 0 : {
4994 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4995 0 : tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
4996 0 : if (res) return res;
4997 : }
4998 : }
4999 : }
5000 : break;
5001 : }
5002 3379 : default:;
5003 : }
5004 3379 : switch (TREE_CODE (_q21))
5005 : {
5006 1554 : case INTEGER_CST:
5007 1554 : {
5008 1554 : switch (TREE_CODE (_p1))
5009 : {
5010 15 : CASE_CONVERT:
5011 15 : {
5012 15 : tree _q50 = TREE_OPERAND (_p1, 0);
5013 15 : switch (TREE_CODE (_q50))
5014 : {
5015 0 : case BIT_AND_EXPR:
5016 0 : {
5017 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5018 0 : tree _q61 = TREE_OPERAND (_q50, 1);
5019 0 : switch (TREE_CODE (_q61))
5020 : {
5021 0 : case INTEGER_CST:
5022 0 : {
5023 0 : {
5024 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q60, _q61 };
5025 0 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
5026 0 : if (res) return res;
5027 : }
5028 0 : break;
5029 : }
5030 : default:;
5031 : }
5032 : break;
5033 : }
5034 : default:;
5035 : }
5036 : break;
5037 : }
5038 210 : case BIT_AND_EXPR:
5039 210 : {
5040 210 : tree _q50 = TREE_OPERAND (_p1, 0);
5041 210 : tree _q51 = TREE_OPERAND (_p1, 1);
5042 210 : switch (TREE_CODE (_q51))
5043 : {
5044 210 : case INTEGER_CST:
5045 210 : {
5046 210 : {
5047 210 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
5048 210 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
5049 210 : if (res) return res;
5050 : }
5051 209 : break;
5052 : }
5053 : default:;
5054 : }
5055 : break;
5056 : }
5057 : default:;
5058 : }
5059 : break;
5060 : }
5061 : default:;
5062 : }
5063 : break;
5064 : }
5065 635786 : CASE_CONVERT:
5066 635786 : {
5067 635786 : tree _q20 = TREE_OPERAND (_p0, 0);
5068 635786 : switch (TREE_CODE (_q20))
5069 : {
5070 24 : case BIT_AND_EXPR:
5071 24 : {
5072 24 : tree _q30 = TREE_OPERAND (_q20, 0);
5073 24 : tree _q31 = TREE_OPERAND (_q20, 1);
5074 24 : switch (TREE_CODE (_q31))
5075 : {
5076 0 : case INTEGER_CST:
5077 0 : {
5078 0 : switch (TREE_CODE (_p1))
5079 : {
5080 0 : CASE_CONVERT:
5081 0 : {
5082 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5083 0 : switch (TREE_CODE (_q60))
5084 : {
5085 0 : case BIT_AND_EXPR:
5086 0 : {
5087 0 : tree _q70 = TREE_OPERAND (_q60, 0);
5088 0 : tree _q71 = TREE_OPERAND (_q60, 1);
5089 0 : switch (TREE_CODE (_q71))
5090 : {
5091 0 : case INTEGER_CST:
5092 0 : {
5093 0 : {
5094 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q60, _q70, _q71 };
5095 0 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
5096 0 : if (res) return res;
5097 : }
5098 0 : break;
5099 : }
5100 : default:;
5101 : }
5102 : break;
5103 : }
5104 : default:;
5105 : }
5106 : break;
5107 : }
5108 0 : case BIT_AND_EXPR:
5109 0 : {
5110 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5111 0 : tree _q61 = TREE_OPERAND (_p1, 1);
5112 0 : switch (TREE_CODE (_q61))
5113 : {
5114 0 : case INTEGER_CST:
5115 0 : {
5116 0 : {
5117 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1, _q60, _q61 };
5118 0 : tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
5119 0 : if (res) return res;
5120 : }
5121 0 : break;
5122 : }
5123 : default:;
5124 : }
5125 : break;
5126 : }
5127 : default:;
5128 : }
5129 : break;
5130 : }
5131 : default:;
5132 : }
5133 : break;
5134 : }
5135 24 : case BIT_IOR_EXPR:
5136 24 : {
5137 24 : tree _q30 = TREE_OPERAND (_q20, 0);
5138 24 : tree _q31 = TREE_OPERAND (_q20, 1);
5139 24 : switch (TREE_CODE (_p1))
5140 : {
5141 16 : CASE_CONVERT:
5142 16 : {
5143 16 : tree _q60 = TREE_OPERAND (_p1, 0);
5144 16 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
5145 : {
5146 0 : {
5147 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
5148 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5149 0 : if (res) return res;
5150 : }
5151 : }
5152 16 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
5153 : {
5154 0 : {
5155 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
5156 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5157 0 : if (res) return res;
5158 : }
5159 : }
5160 : break;
5161 : }
5162 24 : default:;
5163 : }
5164 24 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
5165 : {
5166 0 : {
5167 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
5168 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5169 0 : if (res) return res;
5170 : }
5171 : }
5172 24 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
5173 : {
5174 0 : {
5175 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
5176 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5177 0 : if (res) return res;
5178 : }
5179 : }
5180 : break;
5181 : }
5182 635786 : default:;
5183 : }
5184 635786 : switch (TREE_CODE (_p1))
5185 : {
5186 631860 : CASE_CONVERT:
5187 631860 : {
5188 631860 : tree _q40 = TREE_OPERAND (_p1, 0);
5189 631860 : switch (TREE_CODE (_q40))
5190 : {
5191 0 : case BIT_IOR_EXPR:
5192 0 : {
5193 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5194 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5195 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
5196 : {
5197 0 : {
5198 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
5199 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5200 0 : if (res) return res;
5201 : }
5202 : }
5203 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
5204 : {
5205 0 : {
5206 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q50, _q20 };
5207 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5208 0 : if (res) return res;
5209 : }
5210 : }
5211 : break;
5212 : }
5213 : default:;
5214 : }
5215 : break;
5216 : }
5217 26 : case BIT_IOR_EXPR:
5218 26 : {
5219 26 : tree _q40 = TREE_OPERAND (_p1, 0);
5220 26 : tree _q41 = TREE_OPERAND (_p1, 1);
5221 26 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
5222 : {
5223 0 : {
5224 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
5225 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5226 0 : if (res) return res;
5227 : }
5228 : }
5229 26 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
5230 : {
5231 0 : {
5232 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
5233 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5234 0 : if (res) return res;
5235 : }
5236 : }
5237 : break;
5238 : }
5239 : default:;
5240 : }
5241 : break;
5242 : }
5243 996989 : default:;
5244 : }
5245 996989 : switch (TREE_CODE (_p1))
5246 : {
5247 761894 : CASE_CONVERT:
5248 761894 : {
5249 761894 : tree _q30 = TREE_OPERAND (_p1, 0);
5250 761894 : switch (TREE_CODE (_q30))
5251 : {
5252 6 : case BIT_IOR_EXPR:
5253 6 : {
5254 6 : tree _q40 = TREE_OPERAND (_q30, 0);
5255 6 : tree _q41 = TREE_OPERAND (_q30, 1);
5256 6 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
5257 : {
5258 0 : {
5259 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _p0 };
5260 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5261 0 : if (res) return res;
5262 : }
5263 : }
5264 6 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
5265 : {
5266 0 : {
5267 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _p0 };
5268 0 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5269 0 : if (res) return res;
5270 : }
5271 : }
5272 : break;
5273 : }
5274 : default:;
5275 : }
5276 : break;
5277 : }
5278 518 : case BIT_IOR_EXPR:
5279 518 : {
5280 518 : tree _q30 = TREE_OPERAND (_p1, 0);
5281 518 : tree _q31 = TREE_OPERAND (_p1, 1);
5282 518 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
5283 : {
5284 1 : {
5285 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
5286 1 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5287 1 : if (res) return res;
5288 : }
5289 : }
5290 517 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
5291 : {
5292 1 : {
5293 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
5294 1 : tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
5295 1 : if (res) return res;
5296 : }
5297 : }
5298 : break;
5299 : }
5300 996987 : default:;
5301 : }
5302 996987 : {
5303 996987 : tree _p0_pops[1];
5304 996987 : if (tree_nop_convert (_p0, _p0_pops))
5305 : {
5306 506893 : tree _q20 = _p0_pops[0];
5307 506893 : switch (TREE_CODE (_q20))
5308 : {
5309 16 : case BIT_IOR_EXPR:
5310 16 : {
5311 16 : tree _q30 = TREE_OPERAND (_q20, 0);
5312 16 : tree _q31 = TREE_OPERAND (_q20, 1);
5313 16 : {
5314 16 : tree _q30_pops[1];
5315 16 : if (tree_nop_convert (_q30, _q30_pops))
5316 : {
5317 0 : tree _q40 = _q30_pops[0];
5318 0 : switch (TREE_CODE (_q40))
5319 : {
5320 0 : case BIT_NOT_EXPR:
5321 0 : {
5322 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5323 0 : {
5324 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q31, _p1 };
5325 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5326 0 : if (res) return res;
5327 : }
5328 0 : break;
5329 : }
5330 : default:;
5331 : }
5332 : }
5333 : }
5334 16 : {
5335 16 : tree _q31_pops[1];
5336 16 : if (tree_nop_convert (_q31, _q31_pops))
5337 : {
5338 0 : tree _q50 = _q31_pops[0];
5339 0 : switch (TREE_CODE (_q50))
5340 : {
5341 0 : case BIT_NOT_EXPR:
5342 0 : {
5343 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5344 0 : {
5345 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q30, _p1 };
5346 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5347 0 : if (res) return res;
5348 : }
5349 0 : break;
5350 : }
5351 : default:;
5352 : }
5353 : }
5354 : }
5355 16 : switch (TREE_CODE (_q30))
5356 : {
5357 16 : case BIT_NOT_EXPR:
5358 16 : {
5359 16 : tree _q40 = TREE_OPERAND (_q30, 0);
5360 16 : {
5361 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q31, _p1 };
5362 16 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5363 16 : if (res) return res;
5364 : }
5365 0 : break;
5366 : }
5367 0 : default:;
5368 : }
5369 0 : switch (TREE_CODE (_q31))
5370 : {
5371 0 : case BIT_NOT_EXPR:
5372 0 : {
5373 0 : tree _q50 = TREE_OPERAND (_q31, 0);
5374 0 : {
5375 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q30, _p1 };
5376 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5377 0 : if (res) return res;
5378 : }
5379 0 : break;
5380 : }
5381 : default:;
5382 : }
5383 : break;
5384 : }
5385 : default:;
5386 : }
5387 : }
5388 : }
5389 996971 : switch (TREE_CODE (_p1))
5390 : {
5391 516 : case BIT_IOR_EXPR:
5392 516 : {
5393 516 : tree _q30 = TREE_OPERAND (_p1, 0);
5394 516 : tree _q31 = TREE_OPERAND (_p1, 1);
5395 516 : {
5396 516 : tree _q30_pops[1];
5397 516 : if (tree_nop_convert (_q30, _q30_pops))
5398 : {
5399 2 : tree _q40 = _q30_pops[0];
5400 2 : switch (TREE_CODE (_q40))
5401 : {
5402 0 : case BIT_NOT_EXPR:
5403 0 : {
5404 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5405 0 : {
5406 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q31, _p0 };
5407 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5408 0 : if (res) return res;
5409 : }
5410 0 : break;
5411 : }
5412 : default:;
5413 : }
5414 : }
5415 : }
5416 516 : {
5417 516 : tree _q31_pops[1];
5418 516 : if (tree_nop_convert (_q31, _q31_pops))
5419 : {
5420 2 : tree _q50 = _q31_pops[0];
5421 2 : switch (TREE_CODE (_q50))
5422 : {
5423 0 : case BIT_NOT_EXPR:
5424 0 : {
5425 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5426 0 : {
5427 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q30, _p0 };
5428 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5429 0 : if (res) return res;
5430 : }
5431 0 : break;
5432 : }
5433 : default:;
5434 : }
5435 : }
5436 : }
5437 516 : switch (TREE_CODE (_q30))
5438 : {
5439 18 : case BIT_NOT_EXPR:
5440 18 : {
5441 18 : tree _q40 = TREE_OPERAND (_q30, 0);
5442 18 : {
5443 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q31, _p0 };
5444 18 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5445 18 : if (res) return res;
5446 : }
5447 18 : break;
5448 : }
5449 516 : default:;
5450 : }
5451 516 : switch (TREE_CODE (_q31))
5452 : {
5453 25 : case BIT_NOT_EXPR:
5454 25 : {
5455 25 : tree _q50 = TREE_OPERAND (_q31, 0);
5456 25 : {
5457 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q30, _p0 };
5458 25 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5459 25 : if (res) return res;
5460 : }
5461 17 : break;
5462 : }
5463 : default:;
5464 : }
5465 : break;
5466 : }
5467 996963 : default:;
5468 : }
5469 996963 : {
5470 996963 : tree _p1_pops[1];
5471 996963 : if (tree_nop_convert (_p1, _p1_pops))
5472 : {
5473 635451 : tree _q30 = _p1_pops[0];
5474 635451 : switch (TREE_CODE (_q30))
5475 : {
5476 0 : case BIT_IOR_EXPR:
5477 0 : {
5478 0 : tree _q40 = TREE_OPERAND (_q30, 0);
5479 0 : tree _q41 = TREE_OPERAND (_q30, 1);
5480 0 : {
5481 0 : tree _q40_pops[1];
5482 0 : if (tree_nop_convert (_q40, _q40_pops))
5483 : {
5484 0 : tree _q50 = _q40_pops[0];
5485 0 : switch (TREE_CODE (_q50))
5486 : {
5487 0 : case BIT_NOT_EXPR:
5488 0 : {
5489 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5490 0 : {
5491 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q41, _p0 };
5492 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5493 0 : if (res) return res;
5494 : }
5495 0 : break;
5496 : }
5497 : default:;
5498 : }
5499 : }
5500 : }
5501 0 : {
5502 0 : tree _q41_pops[1];
5503 0 : if (tree_nop_convert (_q41, _q41_pops))
5504 : {
5505 0 : tree _q60 = _q41_pops[0];
5506 0 : switch (TREE_CODE (_q60))
5507 : {
5508 0 : case BIT_NOT_EXPR:
5509 0 : {
5510 0 : tree _q70 = TREE_OPERAND (_q60, 0);
5511 0 : {
5512 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q70, _q40, _p0 };
5513 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5514 0 : if (res) return res;
5515 : }
5516 0 : break;
5517 : }
5518 : default:;
5519 : }
5520 : }
5521 : }
5522 0 : switch (TREE_CODE (_q40))
5523 : {
5524 0 : case BIT_NOT_EXPR:
5525 0 : {
5526 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5527 0 : {
5528 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q41, _p0 };
5529 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5530 0 : if (res) return res;
5531 : }
5532 0 : break;
5533 : }
5534 0 : default:;
5535 : }
5536 0 : switch (TREE_CODE (_q41))
5537 : {
5538 0 : case BIT_NOT_EXPR:
5539 0 : {
5540 0 : tree _q60 = TREE_OPERAND (_q41, 0);
5541 0 : {
5542 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q40, _p0 };
5543 0 : tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
5544 0 : if (res) return res;
5545 : }
5546 0 : break;
5547 : }
5548 : default:;
5549 : }
5550 : break;
5551 : }
5552 : default:;
5553 : }
5554 : }
5555 : }
5556 996963 : switch (TREE_CODE (_p0))
5557 : {
5558 635762 : CASE_CONVERT:
5559 635762 : {
5560 635762 : tree _q20 = TREE_OPERAND (_p0, 0);
5561 635762 : switch (TREE_CODE (_q20))
5562 : {
5563 50 : case BIT_NOT_EXPR:
5564 50 : {
5565 50 : tree _q30 = TREE_OPERAND (_q20, 0);
5566 50 : switch (TREE_CODE (_p1))
5567 : {
5568 0 : CASE_CONVERT:
5569 0 : {
5570 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5571 0 : switch (TREE_CODE (_q50))
5572 : {
5573 0 : case BIT_NOT_EXPR:
5574 0 : {
5575 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5576 0 : {
5577 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 };
5578 0 : tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
5579 0 : if (res) return res;
5580 : }
5581 0 : break;
5582 : }
5583 : default:;
5584 : }
5585 : break;
5586 : }
5587 0 : case BIT_NOT_EXPR:
5588 0 : {
5589 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5590 0 : {
5591 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
5592 0 : tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
5593 0 : if (res) return res;
5594 : }
5595 0 : break;
5596 : }
5597 26 : case INTEGER_CST:
5598 26 : {
5599 26 : {
5600 26 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 };
5601 26 : tree res = generic_simplify_27 (loc, type, _p0, _p1, captures);
5602 26 : if (res) return res;
5603 : }
5604 24 : break;
5605 : }
5606 : default:;
5607 : }
5608 : break;
5609 : }
5610 : default:;
5611 : }
5612 : break;
5613 : }
5614 484 : case BIT_NOT_EXPR:
5615 484 : {
5616 484 : tree _q20 = TREE_OPERAND (_p0, 0);
5617 484 : switch (TREE_CODE (_p1))
5618 : {
5619 18 : CASE_CONVERT:
5620 18 : {
5621 18 : tree _q40 = TREE_OPERAND (_p1, 0);
5622 18 : switch (TREE_CODE (_q40))
5623 : {
5624 0 : case BIT_NOT_EXPR:
5625 0 : {
5626 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5627 0 : {
5628 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
5629 0 : tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
5630 0 : if (res) return res;
5631 : }
5632 0 : break;
5633 : }
5634 : default:;
5635 : }
5636 : break;
5637 : }
5638 10 : case BIT_NOT_EXPR:
5639 10 : {
5640 10 : tree _q40 = TREE_OPERAND (_p1, 0);
5641 10 : {
5642 10 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
5643 10 : tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
5644 10 : if (res) return res;
5645 : }
5646 0 : break;
5647 : }
5648 31 : case INTEGER_CST:
5649 31 : {
5650 31 : {
5651 31 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
5652 31 : tree res = generic_simplify_27 (loc, type, _p0, _p1, captures);
5653 31 : if (res) return res;
5654 : }
5655 0 : break;
5656 : }
5657 443 : default:;
5658 : }
5659 443 : {
5660 443 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1 };
5661 443 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures);
5662 443 : if (res) return res;
5663 : }
5664 0 : break;
5665 : }
5666 3376 : case BIT_AND_EXPR:
5667 3376 : {
5668 3376 : tree _q20 = TREE_OPERAND (_p0, 0);
5669 3376 : tree _q21 = TREE_OPERAND (_p0, 1);
5670 3376 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5671 : {
5672 75 : {
5673 75 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
5674 75 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5675 75 : if (res) return res;
5676 : }
5677 : }
5678 3301 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5679 : {
5680 3 : {
5681 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
5682 3 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5683 3 : if (res) return res;
5684 : }
5685 : }
5686 3298 : switch (TREE_CODE (_p1))
5687 : {
5688 353 : case BIT_AND_EXPR:
5689 353 : {
5690 353 : tree _q50 = TREE_OPERAND (_p1, 0);
5691 353 : tree _q51 = TREE_OPERAND (_p1, 1);
5692 353 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
5693 : {
5694 21 : {
5695 21 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
5696 21 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5697 21 : if (res) return res;
5698 : }
5699 : }
5700 332 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
5701 : {
5702 0 : {
5703 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q20 };
5704 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5705 0 : if (res) return res;
5706 : }
5707 : }
5708 332 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
5709 : {
5710 0 : {
5711 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q21 };
5712 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5713 0 : if (res) return res;
5714 : }
5715 : }
5716 332 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q21, 0))
5717 : {
5718 201 : {
5719 201 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q21 };
5720 201 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5721 201 : if (res) return res;
5722 : }
5723 : }
5724 : break;
5725 : }
5726 : default:;
5727 : }
5728 : break;
5729 : }
5730 996177 : default:;
5731 : }
5732 996177 : switch (TREE_CODE (_p1))
5733 : {
5734 514 : case BIT_AND_EXPR:
5735 514 : {
5736 514 : tree _q30 = TREE_OPERAND (_p1, 0);
5737 514 : tree _q31 = TREE_OPERAND (_p1, 1);
5738 514 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5739 : {
5740 0 : {
5741 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
5742 0 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5743 0 : if (res) return res;
5744 : }
5745 : }
5746 514 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5747 : {
5748 1 : {
5749 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
5750 1 : tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5751 1 : if (res) return res;
5752 : }
5753 : }
5754 : break;
5755 : }
5756 996176 : default:;
5757 : }
5758 996176 : switch (TREE_CODE (_p0))
5759 : {
5760 635759 : CASE_CONVERT:
5761 635759 : {
5762 635759 : tree _q20 = TREE_OPERAND (_p0, 0);
5763 635759 : switch (TREE_CODE (_q20))
5764 : {
5765 24 : case BIT_AND_EXPR:
5766 24 : {
5767 24 : tree _q30 = TREE_OPERAND (_q20, 0);
5768 24 : tree _q31 = TREE_OPERAND (_q20, 1);
5769 24 : switch (TREE_CODE (_p1))
5770 : {
5771 8 : CASE_CONVERT:
5772 8 : {
5773 8 : tree _q60 = TREE_OPERAND (_p1, 0);
5774 8 : switch (TREE_CODE (_q60))
5775 : {
5776 0 : case BIT_AND_EXPR:
5777 0 : {
5778 0 : tree _q70 = TREE_OPERAND (_q60, 0);
5779 0 : tree _q71 = TREE_OPERAND (_q60, 1);
5780 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
5781 : {
5782 0 : {
5783 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
5784 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5785 0 : if (res) return res;
5786 : }
5787 : }
5788 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
5789 : {
5790 0 : {
5791 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
5792 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5793 0 : if (res) return res;
5794 : }
5795 : }
5796 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
5797 : {
5798 0 : {
5799 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
5800 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5801 0 : if (res) return res;
5802 : }
5803 : }
5804 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
5805 : {
5806 0 : {
5807 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
5808 0 : tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
5809 0 : if (res) return res;
5810 : }
5811 : }
5812 : break;
5813 : }
5814 : default:;
5815 : }
5816 : break;
5817 : }
5818 : default:;
5819 : }
5820 : break;
5821 : }
5822 61229 : case BIT_XOR_EXPR:
5823 61229 : {
5824 61229 : tree _q30 = TREE_OPERAND (_q20, 0);
5825 61229 : tree _q31 = TREE_OPERAND (_q20, 1);
5826 61229 : switch (TREE_CODE (_p1))
5827 : {
5828 61163 : CASE_CONVERT:
5829 61163 : {
5830 61163 : tree _q60 = TREE_OPERAND (_p1, 0);
5831 61163 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
5832 : {
5833 0 : {
5834 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
5835 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5836 0 : if (res) return res;
5837 : }
5838 : }
5839 61163 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
5840 : {
5841 0 : {
5842 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q30 };
5843 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5844 0 : if (res) return res;
5845 : }
5846 : }
5847 : break;
5848 : }
5849 61229 : default:;
5850 : }
5851 61229 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
5852 : {
5853 0 : {
5854 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
5855 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5856 0 : if (res) return res;
5857 : }
5858 : }
5859 61229 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
5860 : {
5861 0 : {
5862 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q30 };
5863 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5864 0 : if (res) return res;
5865 : }
5866 : }
5867 : break;
5868 : }
5869 635759 : default:;
5870 : }
5871 635759 : switch (TREE_CODE (_p1))
5872 : {
5873 631844 : CASE_CONVERT:
5874 631844 : {
5875 631844 : tree _q40 = TREE_OPERAND (_p1, 0);
5876 631844 : switch (TREE_CODE (_q40))
5877 : {
5878 0 : case BIT_XOR_EXPR:
5879 0 : {
5880 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5881 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5882 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
5883 : {
5884 0 : {
5885 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
5886 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5887 0 : if (res) return res;
5888 : }
5889 : }
5890 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
5891 : {
5892 0 : {
5893 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q50, _q20 };
5894 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5895 0 : if (res) return res;
5896 : }
5897 : }
5898 : break;
5899 : }
5900 : default:;
5901 : }
5902 : break;
5903 : }
5904 2 : case BIT_XOR_EXPR:
5905 2 : {
5906 2 : tree _q40 = TREE_OPERAND (_p1, 0);
5907 2 : tree _q41 = TREE_OPERAND (_p1, 1);
5908 2 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
5909 : {
5910 0 : {
5911 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
5912 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5913 0 : if (res) return res;
5914 : }
5915 : }
5916 2 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
5917 : {
5918 0 : {
5919 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
5920 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5921 0 : if (res) return res;
5922 : }
5923 : }
5924 : break;
5925 : }
5926 : default:;
5927 : }
5928 : break;
5929 : }
5930 996176 : default:;
5931 : }
5932 996176 : switch (TREE_CODE (_p1))
5933 : {
5934 761860 : CASE_CONVERT:
5935 761860 : {
5936 761860 : tree _q30 = TREE_OPERAND (_p1, 0);
5937 761860 : switch (TREE_CODE (_q30))
5938 : {
5939 8 : case BIT_XOR_EXPR:
5940 8 : {
5941 8 : tree _q40 = TREE_OPERAND (_q30, 0);
5942 8 : tree _q41 = TREE_OPERAND (_q30, 1);
5943 8 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
5944 : {
5945 0 : {
5946 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _p0 };
5947 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5948 0 : if (res) return res;
5949 : }
5950 : }
5951 8 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
5952 : {
5953 0 : {
5954 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _p0 };
5955 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5956 0 : if (res) return res;
5957 : }
5958 : }
5959 : break;
5960 : }
5961 : default:;
5962 : }
5963 : break;
5964 : }
5965 78 : case BIT_XOR_EXPR:
5966 78 : {
5967 78 : tree _q30 = TREE_OPERAND (_p1, 0);
5968 78 : tree _q31 = TREE_OPERAND (_p1, 1);
5969 78 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
5970 : {
5971 0 : {
5972 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
5973 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5974 0 : if (res) return res;
5975 : }
5976 : }
5977 78 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
5978 : {
5979 0 : {
5980 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
5981 0 : tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
5982 0 : if (res) return res;
5983 : }
5984 : }
5985 : break;
5986 : }
5987 996176 : default:;
5988 : }
5989 996176 : switch (TREE_CODE (_p0))
5990 : {
5991 635759 : CASE_CONVERT:
5992 635759 : {
5993 635759 : tree _q20 = TREE_OPERAND (_p0, 0);
5994 635759 : switch (TREE_CODE (_q20))
5995 : {
5996 61229 : case BIT_XOR_EXPR:
5997 61229 : {
5998 61229 : tree _q30 = TREE_OPERAND (_q20, 0);
5999 61229 : tree _q31 = TREE_OPERAND (_q20, 1);
6000 61229 : switch (TREE_CODE (_p1))
6001 : {
6002 61163 : CASE_CONVERT:
6003 61163 : {
6004 61163 : tree _q60 = TREE_OPERAND (_p1, 0);
6005 61163 : switch (TREE_CODE (_q60))
6006 : {
6007 0 : case BIT_XOR_EXPR:
6008 0 : {
6009 0 : tree _q70 = TREE_OPERAND (_q60, 0);
6010 0 : tree _q71 = TREE_OPERAND (_q60, 1);
6011 0 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
6012 : {
6013 0 : {
6014 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q71 };
6015 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6016 0 : if (res) return res;
6017 : }
6018 : }
6019 0 : if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
6020 : {
6021 0 : {
6022 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q70 };
6023 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6024 0 : if (res) return res;
6025 : }
6026 : }
6027 0 : if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
6028 : {
6029 0 : {
6030 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q71 };
6031 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6032 0 : if (res) return res;
6033 : }
6034 : }
6035 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
6036 : {
6037 0 : {
6038 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q70 };
6039 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6040 0 : if (res) return res;
6041 : }
6042 : }
6043 : break;
6044 : }
6045 : default:;
6046 : }
6047 : break;
6048 : }
6049 0 : case BIT_XOR_EXPR:
6050 0 : {
6051 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6052 0 : tree _q61 = TREE_OPERAND (_p1, 1);
6053 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
6054 : {
6055 0 : {
6056 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q61 };
6057 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6058 0 : if (res) return res;
6059 : }
6060 : }
6061 0 : if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
6062 : {
6063 0 : {
6064 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
6065 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6066 0 : if (res) return res;
6067 : }
6068 : }
6069 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
6070 : {
6071 0 : {
6072 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q61 };
6073 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6074 0 : if (res) return res;
6075 : }
6076 : }
6077 0 : if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
6078 : {
6079 0 : {
6080 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q60 };
6081 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6082 0 : if (res) return res;
6083 : }
6084 : }
6085 : break;
6086 : }
6087 : default:;
6088 : }
6089 : break;
6090 : }
6091 635759 : default:;
6092 : }
6093 635759 : switch (TREE_CODE (_p1))
6094 : {
6095 631844 : CASE_CONVERT:
6096 631844 : {
6097 631844 : tree _q40 = TREE_OPERAND (_p1, 0);
6098 631844 : {
6099 631844 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
6100 631844 : tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
6101 631844 : if (res) return res;
6102 : }
6103 543381 : break;
6104 : }
6105 547296 : default:;
6106 : }
6107 547296 : {
6108 547296 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
6109 547296 : tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
6110 547296 : if (res) return res;
6111 : }
6112 547188 : break;
6113 : }
6114 3923 : case BIT_XOR_EXPR:
6115 3923 : {
6116 3923 : tree _q20 = TREE_OPERAND (_p0, 0);
6117 3923 : tree _q21 = TREE_OPERAND (_p0, 1);
6118 3923 : switch (TREE_CODE (_p1))
6119 : {
6120 198 : CASE_CONVERT:
6121 198 : {
6122 198 : tree _q50 = TREE_OPERAND (_p1, 0);
6123 198 : switch (TREE_CODE (_q50))
6124 : {
6125 0 : case BIT_XOR_EXPR:
6126 0 : {
6127 0 : tree _q60 = TREE_OPERAND (_q50, 0);
6128 0 : tree _q61 = TREE_OPERAND (_q50, 1);
6129 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6130 : {
6131 0 : {
6132 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q61 };
6133 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6134 0 : if (res) return res;
6135 : }
6136 : }
6137 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
6138 : {
6139 0 : {
6140 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q60 };
6141 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6142 0 : if (res) return res;
6143 : }
6144 : }
6145 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
6146 : {
6147 0 : {
6148 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q61 };
6149 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6150 0 : if (res) return res;
6151 : }
6152 : }
6153 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
6154 : {
6155 0 : {
6156 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q60 };
6157 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6158 0 : if (res) return res;
6159 : }
6160 : }
6161 : break;
6162 : }
6163 : default:;
6164 : }
6165 : break;
6166 : }
6167 10 : case BIT_XOR_EXPR:
6168 10 : {
6169 10 : tree _q50 = TREE_OPERAND (_p1, 0);
6170 10 : tree _q51 = TREE_OPERAND (_p1, 1);
6171 10 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6172 : {
6173 0 : {
6174 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
6175 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6176 0 : if (res) return res;
6177 : }
6178 : }
6179 10 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6180 : {
6181 0 : {
6182 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6183 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6184 0 : if (res) return res;
6185 : }
6186 : }
6187 10 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6188 : {
6189 0 : {
6190 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
6191 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6192 0 : if (res) return res;
6193 : }
6194 : }
6195 10 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6196 : {
6197 0 : {
6198 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
6199 0 : tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
6200 0 : if (res) return res;
6201 : }
6202 : }
6203 : break;
6204 : }
6205 : default:;
6206 : }
6207 : break;
6208 : }
6209 3076 : case BIT_AND_EXPR:
6210 3076 : {
6211 3076 : tree _q20 = TREE_OPERAND (_p0, 0);
6212 3076 : tree _q21 = TREE_OPERAND (_p0, 1);
6213 3076 : {
6214 3076 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6215 3076 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR);
6216 3076 : if (res) return res;
6217 : }
6218 3076 : {
6219 3076 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
6220 3076 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR);
6221 3076 : if (res) return res;
6222 : }
6223 3076 : if (tree_truth_valued_p (_q20))
6224 : {
6225 0 : if (tree_truth_valued_p (_q21))
6226 : {
6227 0 : switch (TREE_CODE (_p1))
6228 : {
6229 0 : case EQ_EXPR:
6230 0 : {
6231 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6232 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6233 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6234 : {
6235 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6236 : {
6237 0 : {
6238 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6239 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1168;
6240 0 : {
6241 0 : tree res_op0;
6242 0 : {
6243 0 : tree _o1[2], _r1;
6244 0 : _o1[0] = captures[0];
6245 0 : _o1[1] = captures[1];
6246 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
6247 0 : res_op0 = _r1;
6248 : }
6249 0 : tree _r;
6250 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
6251 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
6252 0 : return _r;
6253 : }
6254 0 : next_after_fail1168:;
6255 : }
6256 : }
6257 : }
6258 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6259 : {
6260 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6261 : {
6262 0 : {
6263 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6264 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1169;
6265 0 : {
6266 0 : tree res_op0;
6267 0 : {
6268 0 : tree _o1[2], _r1;
6269 0 : _o1[0] = captures[0];
6270 0 : _o1[1] = captures[1];
6271 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
6272 0 : res_op0 = _r1;
6273 : }
6274 0 : tree _r;
6275 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
6276 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
6277 0 : return _r;
6278 : }
6279 0 : next_after_fail1169:;
6280 : }
6281 : }
6282 : }
6283 : break;
6284 : }
6285 : default:;
6286 : }
6287 : }
6288 : }
6289 : break;
6290 : }
6291 907605 : default:;
6292 : }
6293 907605 : switch (TREE_CODE (_p1))
6294 : {
6295 513 : case BIT_AND_EXPR:
6296 513 : {
6297 513 : tree _q30 = TREE_OPERAND (_p1, 0);
6298 513 : tree _q31 = TREE_OPERAND (_p1, 1);
6299 513 : {
6300 513 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
6301 513 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR);
6302 513 : if (res) return res;
6303 : }
6304 513 : {
6305 513 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
6306 513 : tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR);
6307 513 : if (res) return res;
6308 : }
6309 513 : break;
6310 : }
6311 907605 : default:;
6312 : }
6313 907605 : switch (TREE_CODE (_p0))
6314 : {
6315 3923 : case BIT_XOR_EXPR:
6316 3923 : {
6317 3923 : tree _q20 = TREE_OPERAND (_p0, 0);
6318 3923 : tree _q21 = TREE_OPERAND (_p0, 1);
6319 3923 : if (CONSTANT_CLASS_P (_q21))
6320 : {
6321 49 : if (CONSTANT_CLASS_P (_p1))
6322 : {
6323 30 : {
6324 30 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6325 30 : tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
6326 30 : if (res) return res;
6327 : }
6328 : }
6329 : }
6330 : break;
6331 : }
6332 70 : case COND_EXPR:
6333 70 : {
6334 70 : tree _q20 = TREE_OPERAND (_p0, 0);
6335 70 : tree _q21 = TREE_OPERAND (_p0, 1);
6336 70 : tree _q22 = TREE_OPERAND (_p0, 2);
6337 70 : if (integer_zerop (_q22))
6338 : {
6339 70 : switch (TREE_CODE (_p1))
6340 : {
6341 4 : case COND_EXPR:
6342 4 : {
6343 4 : tree _q60 = TREE_OPERAND (_p1, 0);
6344 4 : tree _q61 = TREE_OPERAND (_p1, 1);
6345 4 : tree _q62 = TREE_OPERAND (_p1, 2);
6346 4 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6347 : {
6348 0 : if (integer_zerop (_q61))
6349 : {
6350 0 : {
6351 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
6352 0 : const enum tree_code op = BIT_XOR_EXPR;
6353 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1170;
6354 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1170;
6355 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1170;
6356 0 : {
6357 0 : tree res_op0;
6358 0 : res_op0 = captures[1];
6359 0 : tree res_op1;
6360 0 : res_op1 = captures[2];
6361 0 : tree res_op2;
6362 0 : res_op2 = captures[4];
6363 0 : tree _r;
6364 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
6365 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
6366 0 : return _r;
6367 : }
6368 0 : next_after_fail1170:;
6369 : }
6370 : }
6371 : }
6372 : break;
6373 : }
6374 : default:;
6375 : }
6376 : }
6377 70 : if (integer_zerop (_q21))
6378 : {
6379 0 : switch (TREE_CODE (_p1))
6380 : {
6381 0 : case COND_EXPR:
6382 0 : {
6383 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6384 0 : tree _q61 = TREE_OPERAND (_p1, 1);
6385 0 : tree _q62 = TREE_OPERAND (_p1, 2);
6386 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6387 : {
6388 0 : if (integer_zerop (_q62))
6389 : {
6390 0 : {
6391 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
6392 0 : const enum tree_code op = BIT_XOR_EXPR;
6393 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1171;
6394 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1171;
6395 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1171;
6396 0 : {
6397 0 : tree res_op0;
6398 0 : res_op0 = captures[1];
6399 0 : tree res_op1;
6400 0 : res_op1 = captures[2];
6401 0 : tree res_op2;
6402 0 : res_op2 = captures[4];
6403 0 : tree _r;
6404 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
6405 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
6406 0 : return _r;
6407 : }
6408 0 : next_after_fail1171:;
6409 : }
6410 : }
6411 : }
6412 : break;
6413 : }
6414 : default:;
6415 : }
6416 : }
6417 70 : switch (TREE_CODE (_q20))
6418 : {
6419 0 : case LT_EXPR:
6420 0 : {
6421 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6422 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6423 0 : if (zerop (_q22))
6424 : {
6425 0 : switch (TREE_CODE (_p1))
6426 : {
6427 0 : case COND_EXPR:
6428 0 : {
6429 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6430 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6431 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6432 0 : switch (TREE_CODE (_q80))
6433 : {
6434 0 : case GE_EXPR:
6435 0 : {
6436 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6437 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6438 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6439 : {
6440 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6441 : {
6442 0 : if (zerop (_q82))
6443 : {
6444 0 : {
6445 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6446 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LT_EXPR, GE_EXPR);
6447 0 : if (res) return res;
6448 : }
6449 : }
6450 : }
6451 : }
6452 : break;
6453 : }
6454 : default:;
6455 : }
6456 : break;
6457 : }
6458 : default:;
6459 : }
6460 : }
6461 : break;
6462 : }
6463 38 : case LE_EXPR:
6464 38 : {
6465 38 : tree _q30 = TREE_OPERAND (_q20, 0);
6466 38 : tree _q31 = TREE_OPERAND (_q20, 1);
6467 38 : if (zerop (_q22))
6468 : {
6469 38 : switch (TREE_CODE (_p1))
6470 : {
6471 0 : case COND_EXPR:
6472 0 : {
6473 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6474 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6475 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6476 0 : switch (TREE_CODE (_q80))
6477 : {
6478 0 : case GT_EXPR:
6479 0 : {
6480 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6481 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6482 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6483 : {
6484 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6485 : {
6486 0 : if (zerop (_q82))
6487 : {
6488 0 : {
6489 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6490 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LE_EXPR, GT_EXPR);
6491 0 : if (res) return res;
6492 : }
6493 : }
6494 : }
6495 : }
6496 : break;
6497 : }
6498 : default:;
6499 : }
6500 : break;
6501 : }
6502 : default:;
6503 : }
6504 : }
6505 : break;
6506 : }
6507 0 : case EQ_EXPR:
6508 0 : {
6509 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6510 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6511 0 : if (zerop (_q22))
6512 : {
6513 0 : switch (TREE_CODE (_p1))
6514 : {
6515 0 : case COND_EXPR:
6516 0 : {
6517 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6518 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6519 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6520 0 : switch (TREE_CODE (_q80))
6521 : {
6522 0 : case NE_EXPR:
6523 0 : {
6524 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6525 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6526 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6527 : {
6528 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6529 : {
6530 0 : if (zerop (_q82))
6531 : {
6532 0 : {
6533 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6534 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, EQ_EXPR, NE_EXPR);
6535 0 : if (res) return res;
6536 : }
6537 : }
6538 : }
6539 : }
6540 : break;
6541 : }
6542 : default:;
6543 : }
6544 : break;
6545 : }
6546 : default:;
6547 : }
6548 : }
6549 : break;
6550 : }
6551 32 : case NE_EXPR:
6552 32 : {
6553 32 : tree _q30 = TREE_OPERAND (_q20, 0);
6554 32 : tree _q31 = TREE_OPERAND (_q20, 1);
6555 32 : if (zerop (_q22))
6556 : {
6557 32 : switch (TREE_CODE (_p1))
6558 : {
6559 4 : case COND_EXPR:
6560 4 : {
6561 4 : tree _q80 = TREE_OPERAND (_p1, 0);
6562 4 : tree _q81 = TREE_OPERAND (_p1, 1);
6563 4 : tree _q82 = TREE_OPERAND (_p1, 2);
6564 4 : switch (TREE_CODE (_q80))
6565 : {
6566 0 : case EQ_EXPR:
6567 0 : {
6568 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6569 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6570 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6571 : {
6572 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6573 : {
6574 0 : if (zerop (_q82))
6575 : {
6576 0 : {
6577 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6578 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, NE_EXPR, EQ_EXPR);
6579 0 : if (res) return res;
6580 : }
6581 : }
6582 : }
6583 : }
6584 : break;
6585 : }
6586 : default:;
6587 : }
6588 : break;
6589 : }
6590 : default:;
6591 : }
6592 : }
6593 : break;
6594 : }
6595 0 : case GE_EXPR:
6596 0 : {
6597 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6598 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6599 0 : if (zerop (_q22))
6600 : {
6601 0 : switch (TREE_CODE (_p1))
6602 : {
6603 0 : case COND_EXPR:
6604 0 : {
6605 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6606 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6607 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6608 0 : switch (TREE_CODE (_q80))
6609 : {
6610 0 : case LT_EXPR:
6611 0 : {
6612 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6613 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6614 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6615 : {
6616 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6617 : {
6618 0 : if (zerop (_q82))
6619 : {
6620 0 : {
6621 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6622 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GE_EXPR, LT_EXPR);
6623 0 : if (res) return res;
6624 : }
6625 : }
6626 : }
6627 : }
6628 : break;
6629 : }
6630 : default:;
6631 : }
6632 : break;
6633 : }
6634 : default:;
6635 : }
6636 : }
6637 : break;
6638 : }
6639 0 : case GT_EXPR:
6640 0 : {
6641 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6642 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6643 0 : if (zerop (_q22))
6644 : {
6645 0 : switch (TREE_CODE (_p1))
6646 : {
6647 0 : case COND_EXPR:
6648 0 : {
6649 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6650 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6651 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6652 0 : switch (TREE_CODE (_q80))
6653 : {
6654 0 : case LE_EXPR:
6655 0 : {
6656 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6657 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6658 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6659 : {
6660 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6661 : {
6662 0 : if (zerop (_q82))
6663 : {
6664 0 : {
6665 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6666 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GT_EXPR, LE_EXPR);
6667 0 : if (res) return res;
6668 : }
6669 : }
6670 : }
6671 : }
6672 : break;
6673 : }
6674 : default:;
6675 : }
6676 : break;
6677 : }
6678 : default:;
6679 : }
6680 : }
6681 : break;
6682 : }
6683 0 : case UNORDERED_EXPR:
6684 0 : {
6685 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6686 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6687 0 : if (zerop (_q22))
6688 : {
6689 0 : switch (TREE_CODE (_p1))
6690 : {
6691 0 : case COND_EXPR:
6692 0 : {
6693 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6694 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6695 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6696 0 : switch (TREE_CODE (_q80))
6697 : {
6698 0 : case ORDERED_EXPR:
6699 0 : {
6700 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6701 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6702 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6703 : {
6704 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6705 : {
6706 0 : if (zerop (_q82))
6707 : {
6708 0 : {
6709 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6710 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
6711 0 : if (res) return res;
6712 : }
6713 : }
6714 : }
6715 : }
6716 : break;
6717 : }
6718 : default:;
6719 : }
6720 : break;
6721 : }
6722 : default:;
6723 : }
6724 : }
6725 : break;
6726 : }
6727 0 : case ORDERED_EXPR:
6728 0 : {
6729 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6730 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6731 0 : if (zerop (_q22))
6732 : {
6733 0 : switch (TREE_CODE (_p1))
6734 : {
6735 0 : case COND_EXPR:
6736 0 : {
6737 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6738 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6739 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6740 0 : switch (TREE_CODE (_q80))
6741 : {
6742 0 : case UNORDERED_EXPR:
6743 0 : {
6744 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6745 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6746 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6747 : {
6748 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6749 : {
6750 0 : if (zerop (_q82))
6751 : {
6752 0 : {
6753 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6754 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
6755 0 : if (res) return res;
6756 : }
6757 : }
6758 : }
6759 : }
6760 : break;
6761 : }
6762 : default:;
6763 : }
6764 : break;
6765 : }
6766 : default:;
6767 : }
6768 : }
6769 : break;
6770 : }
6771 0 : case UNLT_EXPR:
6772 0 : {
6773 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6774 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6775 0 : if (zerop (_q22))
6776 : {
6777 0 : switch (TREE_CODE (_p1))
6778 : {
6779 0 : case COND_EXPR:
6780 0 : {
6781 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6782 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6783 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6784 0 : switch (TREE_CODE (_q80))
6785 : {
6786 0 : case GE_EXPR:
6787 0 : {
6788 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6789 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6790 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6791 : {
6792 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6793 : {
6794 0 : if (zerop (_q82))
6795 : {
6796 0 : {
6797 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6798 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLT_EXPR, GE_EXPR);
6799 0 : if (res) return res;
6800 : }
6801 : }
6802 : }
6803 : }
6804 : break;
6805 : }
6806 : default:;
6807 : }
6808 : break;
6809 : }
6810 : default:;
6811 : }
6812 : }
6813 : break;
6814 : }
6815 0 : case UNLE_EXPR:
6816 0 : {
6817 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6818 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6819 0 : if (zerop (_q22))
6820 : {
6821 0 : switch (TREE_CODE (_p1))
6822 : {
6823 0 : case COND_EXPR:
6824 0 : {
6825 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6826 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6827 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6828 0 : switch (TREE_CODE (_q80))
6829 : {
6830 0 : case GT_EXPR:
6831 0 : {
6832 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6833 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6834 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6835 : {
6836 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6837 : {
6838 0 : if (zerop (_q82))
6839 : {
6840 0 : {
6841 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6842 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLE_EXPR, GT_EXPR);
6843 0 : if (res) return res;
6844 : }
6845 : }
6846 : }
6847 : }
6848 : break;
6849 : }
6850 : default:;
6851 : }
6852 : break;
6853 : }
6854 : default:;
6855 : }
6856 : }
6857 : break;
6858 : }
6859 0 : case UNGT_EXPR:
6860 0 : {
6861 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6862 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6863 0 : if (zerop (_q22))
6864 : {
6865 0 : switch (TREE_CODE (_p1))
6866 : {
6867 0 : case COND_EXPR:
6868 0 : {
6869 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6870 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6871 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6872 0 : switch (TREE_CODE (_q80))
6873 : {
6874 0 : case LE_EXPR:
6875 0 : {
6876 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6877 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6878 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6879 : {
6880 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6881 : {
6882 0 : if (zerop (_q82))
6883 : {
6884 0 : {
6885 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6886 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGT_EXPR, LE_EXPR);
6887 0 : if (res) return res;
6888 : }
6889 : }
6890 : }
6891 : }
6892 : break;
6893 : }
6894 : default:;
6895 : }
6896 : break;
6897 : }
6898 : default:;
6899 : }
6900 : }
6901 : break;
6902 : }
6903 0 : case UNGE_EXPR:
6904 0 : {
6905 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6906 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6907 0 : if (zerop (_q22))
6908 : {
6909 0 : switch (TREE_CODE (_p1))
6910 : {
6911 0 : case COND_EXPR:
6912 0 : {
6913 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6914 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6915 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6916 0 : switch (TREE_CODE (_q80))
6917 : {
6918 0 : case LT_EXPR:
6919 0 : {
6920 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6921 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6922 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6923 : {
6924 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6925 : {
6926 0 : if (zerop (_q82))
6927 : {
6928 0 : {
6929 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6930 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGE_EXPR, LT_EXPR);
6931 0 : if (res) return res;
6932 : }
6933 : }
6934 : }
6935 : }
6936 : break;
6937 : }
6938 : default:;
6939 : }
6940 : break;
6941 : }
6942 : default:;
6943 : }
6944 : }
6945 : break;
6946 : }
6947 0 : case UNEQ_EXPR:
6948 0 : {
6949 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6950 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6951 0 : if (zerop (_q22))
6952 : {
6953 0 : switch (TREE_CODE (_p1))
6954 : {
6955 0 : case COND_EXPR:
6956 0 : {
6957 0 : tree _q80 = TREE_OPERAND (_p1, 0);
6958 0 : tree _q81 = TREE_OPERAND (_p1, 1);
6959 0 : tree _q82 = TREE_OPERAND (_p1, 2);
6960 0 : switch (TREE_CODE (_q80))
6961 : {
6962 0 : case LTGT_EXPR:
6963 0 : {
6964 0 : tree _q90 = TREE_OPERAND (_q80, 0);
6965 0 : tree _q91 = TREE_OPERAND (_q80, 1);
6966 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
6967 : {
6968 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
6969 : {
6970 0 : if (zerop (_q82))
6971 : {
6972 0 : {
6973 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
6974 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNEQ_EXPR, LTGT_EXPR);
6975 0 : if (res) return res;
6976 : }
6977 : }
6978 : }
6979 : }
6980 : break;
6981 : }
6982 : default:;
6983 : }
6984 : break;
6985 : }
6986 : default:;
6987 : }
6988 : }
6989 : break;
6990 : }
6991 0 : case LTGT_EXPR:
6992 0 : {
6993 0 : tree _q30 = TREE_OPERAND (_q20, 0);
6994 0 : tree _q31 = TREE_OPERAND (_q20, 1);
6995 0 : if (zerop (_q22))
6996 : {
6997 0 : switch (TREE_CODE (_p1))
6998 : {
6999 0 : case COND_EXPR:
7000 0 : {
7001 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7002 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7003 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7004 0 : switch (TREE_CODE (_q80))
7005 : {
7006 0 : case UNEQ_EXPR:
7007 0 : {
7008 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7009 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7010 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7011 : {
7012 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7013 : {
7014 0 : if (zerop (_q82))
7015 : {
7016 0 : {
7017 0 : tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
7018 0 : tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LTGT_EXPR, UNEQ_EXPR);
7019 0 : if (res) return res;
7020 : }
7021 : }
7022 : }
7023 : }
7024 : break;
7025 : }
7026 : default:;
7027 : }
7028 : break;
7029 : }
7030 : default:;
7031 : }
7032 : }
7033 : break;
7034 : }
7035 : default:;
7036 : }
7037 : break;
7038 : }
7039 1 : case VEC_COND_EXPR:
7040 1 : {
7041 1 : tree _q20 = TREE_OPERAND (_p0, 0);
7042 1 : tree _q21 = TREE_OPERAND (_p0, 1);
7043 1 : tree _q22 = TREE_OPERAND (_p0, 2);
7044 1 : if (integer_zerop (_q22))
7045 : {
7046 1 : switch (TREE_CODE (_p1))
7047 : {
7048 0 : case VEC_COND_EXPR:
7049 0 : {
7050 0 : tree _q60 = TREE_OPERAND (_p1, 0);
7051 0 : tree _q61 = TREE_OPERAND (_p1, 1);
7052 0 : tree _q62 = TREE_OPERAND (_p1, 2);
7053 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7054 : {
7055 0 : if (integer_zerop (_q61))
7056 : {
7057 0 : {
7058 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
7059 0 : const enum tree_code op = BIT_XOR_EXPR;
7060 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1172;
7061 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1172;
7062 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1172;
7063 0 : {
7064 0 : tree res_op0;
7065 0 : res_op0 = captures[1];
7066 0 : tree res_op1;
7067 0 : res_op1 = captures[2];
7068 0 : tree res_op2;
7069 0 : res_op2 = captures[4];
7070 0 : tree _r;
7071 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7072 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
7073 0 : return _r;
7074 : }
7075 0 : next_after_fail1172:;
7076 : }
7077 : }
7078 : }
7079 : break;
7080 : }
7081 : default:;
7082 : }
7083 : }
7084 1 : if (integer_zerop (_q21))
7085 : {
7086 0 : switch (TREE_CODE (_p1))
7087 : {
7088 0 : case VEC_COND_EXPR:
7089 0 : {
7090 0 : tree _q60 = TREE_OPERAND (_p1, 0);
7091 0 : tree _q61 = TREE_OPERAND (_p1, 1);
7092 0 : tree _q62 = TREE_OPERAND (_p1, 2);
7093 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7094 : {
7095 0 : if (integer_zerop (_q62))
7096 : {
7097 0 : {
7098 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
7099 0 : const enum tree_code op = BIT_XOR_EXPR;
7100 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1173;
7101 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1173;
7102 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1173;
7103 0 : {
7104 0 : tree res_op0;
7105 0 : res_op0 = captures[1];
7106 0 : tree res_op1;
7107 0 : res_op1 = captures[2];
7108 0 : tree res_op2;
7109 0 : res_op2 = captures[4];
7110 0 : tree _r;
7111 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7112 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
7113 0 : return _r;
7114 : }
7115 0 : next_after_fail1173:;
7116 : }
7117 : }
7118 : }
7119 : break;
7120 : }
7121 : default:;
7122 : }
7123 : }
7124 1 : switch (TREE_CODE (_q20))
7125 : {
7126 0 : case LT_EXPR:
7127 0 : {
7128 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7129 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7130 0 : if (integer_zerop (_q22))
7131 : {
7132 0 : switch (TREE_CODE (_p1))
7133 : {
7134 0 : case VEC_COND_EXPR:
7135 0 : {
7136 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7137 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7138 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7139 0 : switch (TREE_CODE (_q80))
7140 : {
7141 0 : case GE_EXPR:
7142 0 : {
7143 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7144 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7145 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7146 : {
7147 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7148 : {
7149 0 : if (integer_zerop (_q82))
7150 : {
7151 0 : {
7152 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7153 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LT_EXPR, GE_EXPR);
7154 0 : if (res) return res;
7155 : }
7156 : }
7157 : }
7158 : }
7159 : break;
7160 : }
7161 : default:;
7162 : }
7163 : break;
7164 : }
7165 : default:;
7166 : }
7167 : }
7168 : break;
7169 : }
7170 0 : case LE_EXPR:
7171 0 : {
7172 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7173 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7174 0 : if (integer_zerop (_q22))
7175 : {
7176 0 : switch (TREE_CODE (_p1))
7177 : {
7178 0 : case VEC_COND_EXPR:
7179 0 : {
7180 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7181 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7182 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7183 0 : switch (TREE_CODE (_q80))
7184 : {
7185 0 : case GT_EXPR:
7186 0 : {
7187 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7188 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7189 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7190 : {
7191 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7192 : {
7193 0 : if (integer_zerop (_q82))
7194 : {
7195 0 : {
7196 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7197 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LE_EXPR, GT_EXPR);
7198 0 : if (res) return res;
7199 : }
7200 : }
7201 : }
7202 : }
7203 : break;
7204 : }
7205 : default:;
7206 : }
7207 : break;
7208 : }
7209 : default:;
7210 : }
7211 : }
7212 : break;
7213 : }
7214 0 : case EQ_EXPR:
7215 0 : {
7216 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7217 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7218 0 : if (integer_zerop (_q22))
7219 : {
7220 0 : switch (TREE_CODE (_p1))
7221 : {
7222 0 : case VEC_COND_EXPR:
7223 0 : {
7224 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7225 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7226 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7227 0 : switch (TREE_CODE (_q80))
7228 : {
7229 0 : case NE_EXPR:
7230 0 : {
7231 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7232 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7233 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7234 : {
7235 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7236 : {
7237 0 : if (integer_zerop (_q82))
7238 : {
7239 0 : {
7240 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7241 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, EQ_EXPR, NE_EXPR);
7242 0 : if (res) return res;
7243 : }
7244 : }
7245 : }
7246 : }
7247 : break;
7248 : }
7249 : default:;
7250 : }
7251 : break;
7252 : }
7253 : default:;
7254 : }
7255 : }
7256 : break;
7257 : }
7258 1 : case NE_EXPR:
7259 1 : {
7260 1 : tree _q30 = TREE_OPERAND (_q20, 0);
7261 1 : tree _q31 = TREE_OPERAND (_q20, 1);
7262 1 : if (integer_zerop (_q22))
7263 : {
7264 1 : switch (TREE_CODE (_p1))
7265 : {
7266 0 : case VEC_COND_EXPR:
7267 0 : {
7268 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7269 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7270 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7271 0 : switch (TREE_CODE (_q80))
7272 : {
7273 0 : case EQ_EXPR:
7274 0 : {
7275 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7276 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7277 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7278 : {
7279 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7280 : {
7281 0 : if (integer_zerop (_q82))
7282 : {
7283 0 : {
7284 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7285 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, NE_EXPR, EQ_EXPR);
7286 0 : if (res) return res;
7287 : }
7288 : }
7289 : }
7290 : }
7291 : break;
7292 : }
7293 : default:;
7294 : }
7295 : break;
7296 : }
7297 : default:;
7298 : }
7299 : }
7300 : break;
7301 : }
7302 0 : case GE_EXPR:
7303 0 : {
7304 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7305 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7306 0 : if (integer_zerop (_q22))
7307 : {
7308 0 : switch (TREE_CODE (_p1))
7309 : {
7310 0 : case VEC_COND_EXPR:
7311 0 : {
7312 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7313 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7314 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7315 0 : switch (TREE_CODE (_q80))
7316 : {
7317 0 : case LT_EXPR:
7318 0 : {
7319 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7320 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7321 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7322 : {
7323 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7324 : {
7325 0 : if (integer_zerop (_q82))
7326 : {
7327 0 : {
7328 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7329 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GE_EXPR, LT_EXPR);
7330 0 : if (res) return res;
7331 : }
7332 : }
7333 : }
7334 : }
7335 : break;
7336 : }
7337 : default:;
7338 : }
7339 : break;
7340 : }
7341 : default:;
7342 : }
7343 : }
7344 : break;
7345 : }
7346 0 : case GT_EXPR:
7347 0 : {
7348 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7349 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7350 0 : if (integer_zerop (_q22))
7351 : {
7352 0 : switch (TREE_CODE (_p1))
7353 : {
7354 0 : case VEC_COND_EXPR:
7355 0 : {
7356 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7357 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7358 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7359 0 : switch (TREE_CODE (_q80))
7360 : {
7361 0 : case LE_EXPR:
7362 0 : {
7363 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7364 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7365 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7366 : {
7367 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7368 : {
7369 0 : if (integer_zerop (_q82))
7370 : {
7371 0 : {
7372 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7373 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GT_EXPR, LE_EXPR);
7374 0 : if (res) return res;
7375 : }
7376 : }
7377 : }
7378 : }
7379 : break;
7380 : }
7381 : default:;
7382 : }
7383 : break;
7384 : }
7385 : default:;
7386 : }
7387 : }
7388 : break;
7389 : }
7390 0 : case UNORDERED_EXPR:
7391 0 : {
7392 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7393 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7394 0 : if (integer_zerop (_q22))
7395 : {
7396 0 : switch (TREE_CODE (_p1))
7397 : {
7398 0 : case VEC_COND_EXPR:
7399 0 : {
7400 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7401 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7402 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7403 0 : switch (TREE_CODE (_q80))
7404 : {
7405 0 : case ORDERED_EXPR:
7406 0 : {
7407 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7408 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7409 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7410 : {
7411 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7412 : {
7413 0 : if (integer_zerop (_q82))
7414 : {
7415 0 : {
7416 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7417 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
7418 0 : if (res) return res;
7419 : }
7420 : }
7421 : }
7422 : }
7423 : break;
7424 : }
7425 : default:;
7426 : }
7427 : break;
7428 : }
7429 : default:;
7430 : }
7431 : }
7432 : break;
7433 : }
7434 0 : case ORDERED_EXPR:
7435 0 : {
7436 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7437 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7438 0 : if (integer_zerop (_q22))
7439 : {
7440 0 : switch (TREE_CODE (_p1))
7441 : {
7442 0 : case VEC_COND_EXPR:
7443 0 : {
7444 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7445 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7446 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7447 0 : switch (TREE_CODE (_q80))
7448 : {
7449 0 : case UNORDERED_EXPR:
7450 0 : {
7451 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7452 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7453 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7454 : {
7455 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7456 : {
7457 0 : if (integer_zerop (_q82))
7458 : {
7459 0 : {
7460 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7461 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
7462 0 : if (res) return res;
7463 : }
7464 : }
7465 : }
7466 : }
7467 : break;
7468 : }
7469 : default:;
7470 : }
7471 : break;
7472 : }
7473 : default:;
7474 : }
7475 : }
7476 : break;
7477 : }
7478 0 : case UNLT_EXPR:
7479 0 : {
7480 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7481 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7482 0 : if (integer_zerop (_q22))
7483 : {
7484 0 : switch (TREE_CODE (_p1))
7485 : {
7486 0 : case VEC_COND_EXPR:
7487 0 : {
7488 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7489 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7490 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7491 0 : switch (TREE_CODE (_q80))
7492 : {
7493 0 : case GE_EXPR:
7494 0 : {
7495 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7496 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7497 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7498 : {
7499 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7500 : {
7501 0 : if (integer_zerop (_q82))
7502 : {
7503 0 : {
7504 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7505 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLT_EXPR, GE_EXPR);
7506 0 : if (res) return res;
7507 : }
7508 : }
7509 : }
7510 : }
7511 : break;
7512 : }
7513 : default:;
7514 : }
7515 : break;
7516 : }
7517 : default:;
7518 : }
7519 : }
7520 : break;
7521 : }
7522 0 : case UNLE_EXPR:
7523 0 : {
7524 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7525 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7526 0 : if (integer_zerop (_q22))
7527 : {
7528 0 : switch (TREE_CODE (_p1))
7529 : {
7530 0 : case VEC_COND_EXPR:
7531 0 : {
7532 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7533 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7534 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7535 0 : switch (TREE_CODE (_q80))
7536 : {
7537 0 : case GT_EXPR:
7538 0 : {
7539 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7540 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7541 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7542 : {
7543 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7544 : {
7545 0 : if (integer_zerop (_q82))
7546 : {
7547 0 : {
7548 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7549 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLE_EXPR, GT_EXPR);
7550 0 : if (res) return res;
7551 : }
7552 : }
7553 : }
7554 : }
7555 : break;
7556 : }
7557 : default:;
7558 : }
7559 : break;
7560 : }
7561 : default:;
7562 : }
7563 : }
7564 : break;
7565 : }
7566 0 : case UNGT_EXPR:
7567 0 : {
7568 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7569 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7570 0 : if (integer_zerop (_q22))
7571 : {
7572 0 : switch (TREE_CODE (_p1))
7573 : {
7574 0 : case VEC_COND_EXPR:
7575 0 : {
7576 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7577 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7578 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7579 0 : switch (TREE_CODE (_q80))
7580 : {
7581 0 : case LE_EXPR:
7582 0 : {
7583 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7584 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7585 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7586 : {
7587 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7588 : {
7589 0 : if (integer_zerop (_q82))
7590 : {
7591 0 : {
7592 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7593 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGT_EXPR, LE_EXPR);
7594 0 : if (res) return res;
7595 : }
7596 : }
7597 : }
7598 : }
7599 : break;
7600 : }
7601 : default:;
7602 : }
7603 : break;
7604 : }
7605 : default:;
7606 : }
7607 : }
7608 : break;
7609 : }
7610 0 : case UNGE_EXPR:
7611 0 : {
7612 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7613 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7614 0 : if (integer_zerop (_q22))
7615 : {
7616 0 : switch (TREE_CODE (_p1))
7617 : {
7618 0 : case VEC_COND_EXPR:
7619 0 : {
7620 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7621 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7622 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7623 0 : switch (TREE_CODE (_q80))
7624 : {
7625 0 : case LT_EXPR:
7626 0 : {
7627 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7628 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7629 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7630 : {
7631 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7632 : {
7633 0 : if (integer_zerop (_q82))
7634 : {
7635 0 : {
7636 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7637 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGE_EXPR, LT_EXPR);
7638 0 : if (res) return res;
7639 : }
7640 : }
7641 : }
7642 : }
7643 : break;
7644 : }
7645 : default:;
7646 : }
7647 : break;
7648 : }
7649 : default:;
7650 : }
7651 : }
7652 : break;
7653 : }
7654 0 : case UNEQ_EXPR:
7655 0 : {
7656 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7657 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7658 0 : if (integer_zerop (_q22))
7659 : {
7660 0 : switch (TREE_CODE (_p1))
7661 : {
7662 0 : case VEC_COND_EXPR:
7663 0 : {
7664 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7665 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7666 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7667 0 : switch (TREE_CODE (_q80))
7668 : {
7669 0 : case LTGT_EXPR:
7670 0 : {
7671 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7672 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7673 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7674 : {
7675 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7676 : {
7677 0 : if (integer_zerop (_q82))
7678 : {
7679 0 : {
7680 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7681 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNEQ_EXPR, LTGT_EXPR);
7682 0 : if (res) return res;
7683 : }
7684 : }
7685 : }
7686 : }
7687 : break;
7688 : }
7689 : default:;
7690 : }
7691 : break;
7692 : }
7693 : default:;
7694 : }
7695 : }
7696 : break;
7697 : }
7698 0 : case LTGT_EXPR:
7699 0 : {
7700 0 : tree _q30 = TREE_OPERAND (_q20, 0);
7701 0 : tree _q31 = TREE_OPERAND (_q20, 1);
7702 0 : if (integer_zerop (_q22))
7703 : {
7704 0 : switch (TREE_CODE (_p1))
7705 : {
7706 0 : case VEC_COND_EXPR:
7707 0 : {
7708 0 : tree _q80 = TREE_OPERAND (_p1, 0);
7709 0 : tree _q81 = TREE_OPERAND (_p1, 1);
7710 0 : tree _q82 = TREE_OPERAND (_p1, 2);
7711 0 : switch (TREE_CODE (_q80))
7712 : {
7713 0 : case UNEQ_EXPR:
7714 0 : {
7715 0 : tree _q90 = TREE_OPERAND (_q80, 0);
7716 0 : tree _q91 = TREE_OPERAND (_q80, 1);
7717 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
7718 : {
7719 0 : if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
7720 : {
7721 0 : if (integer_zerop (_q82))
7722 : {
7723 0 : {
7724 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
7725 0 : tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LTGT_EXPR, UNEQ_EXPR);
7726 0 : if (res) return res;
7727 : }
7728 : }
7729 : }
7730 : }
7731 : break;
7732 : }
7733 : default:;
7734 : }
7735 : break;
7736 : }
7737 : default:;
7738 : }
7739 : }
7740 : break;
7741 : }
7742 : default:;
7743 : }
7744 : break;
7745 : }
7746 119 : case EQ_EXPR:
7747 119 : {
7748 119 : tree _q20 = TREE_OPERAND (_p0, 0);
7749 119 : tree _q21 = TREE_OPERAND (_p0, 1);
7750 119 : switch (TREE_CODE (_p1))
7751 : {
7752 0 : case BIT_AND_EXPR:
7753 0 : {
7754 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7755 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7756 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7757 : {
7758 0 : if (tree_truth_valued_p (_q50))
7759 : {
7760 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7761 : {
7762 0 : if (tree_truth_valued_p (_q51))
7763 : {
7764 0 : {
7765 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7766 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1174;
7767 0 : {
7768 0 : tree res_op0;
7769 0 : {
7770 0 : tree _o1[2], _r1;
7771 0 : _o1[0] = captures[0];
7772 0 : _o1[1] = captures[1];
7773 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
7774 0 : res_op0 = _r1;
7775 : }
7776 0 : tree _r;
7777 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
7778 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
7779 0 : return _r;
7780 : }
7781 0 : next_after_fail1174:;
7782 : }
7783 : }
7784 : }
7785 : }
7786 : }
7787 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7788 : {
7789 0 : if (tree_truth_valued_p (_q50))
7790 : {
7791 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7792 : {
7793 0 : if (tree_truth_valued_p (_q51))
7794 : {
7795 0 : {
7796 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7797 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1175;
7798 0 : {
7799 0 : tree res_op0;
7800 0 : {
7801 0 : tree _o1[2], _r1;
7802 0 : _o1[0] = captures[0];
7803 0 : _o1[1] = captures[1];
7804 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
7805 0 : res_op0 = _r1;
7806 : }
7807 0 : tree _r;
7808 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
7809 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
7810 0 : return _r;
7811 : }
7812 0 : next_after_fail1175:;
7813 : }
7814 : }
7815 : }
7816 : }
7817 : }
7818 : break;
7819 : }
7820 : default:;
7821 : }
7822 : break;
7823 : }
7824 907575 : default:;
7825 : }
7826 907575 : {
7827 907575 : tree _p0_pops[1];
7828 907575 : if (tree_logical_inverted_value (_p0, _p0_pops))
7829 : {
7830 52 : tree _q20 = _p0_pops[0];
7831 52 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7832 : {
7833 4 : if (tree_truth_valued_p (_p1))
7834 : {
7835 4 : {
7836 4 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
7837 4 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7838 4 : if (res) return res;
7839 : }
7840 : }
7841 : }
7842 : }
7843 : }
7844 907571 : {
7845 907571 : tree _p0_pops[1];
7846 907571 : if (tree_nop_convert (_p0, _p0_pops))
7847 : {
7848 506875 : tree _q20 = _p0_pops[0];
7849 506875 : switch (TREE_CODE (_q20))
7850 : {
7851 24 : case BIT_NOT_EXPR:
7852 24 : {
7853 24 : tree _q30 = TREE_OPERAND (_q20, 0);
7854 24 : {
7855 24 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1 };
7856 24 : tree res = generic_simplify_39 (loc, type, _p0, _p1, captures);
7857 24 : if (res) return res;
7858 : }
7859 0 : break;
7860 : }
7861 20 : case MULT_EXPR:
7862 20 : {
7863 20 : tree _q30 = TREE_OPERAND (_q20, 0);
7864 20 : tree _q31 = TREE_OPERAND (_q20, 1);
7865 20 : {
7866 20 : tree _q30_pops[1];
7867 20 : if (tree_nop_convert (_q30, _q30_pops))
7868 : {
7869 0 : tree _q40 = _q30_pops[0];
7870 0 : switch (TREE_CODE (_q31))
7871 : {
7872 0 : case INTEGER_CST:
7873 0 : {
7874 0 : switch (TREE_CODE (_p1))
7875 : {
7876 0 : case LSHIFT_EXPR:
7877 0 : {
7878 0 : tree _q70 = TREE_OPERAND (_p1, 0);
7879 0 : tree _q71 = TREE_OPERAND (_p1, 1);
7880 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
7881 : {
7882 0 : switch (TREE_CODE (_q71))
7883 : {
7884 0 : case INTEGER_CST:
7885 0 : {
7886 0 : {
7887 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31, _p1, _q71 };
7888 0 : tree res = generic_simplify_41 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7889 0 : if (res) return res;
7890 : }
7891 0 : break;
7892 : }
7893 : default:;
7894 : }
7895 : }
7896 : break;
7897 : }
7898 0 : default:;
7899 : }
7900 0 : {
7901 0 : tree _p1_pops[1];
7902 0 : if (tree_nop_convert (_p1, _p1_pops))
7903 : {
7904 0 : tree _q70 = _p1_pops[0];
7905 0 : switch (TREE_CODE (_q70))
7906 : {
7907 0 : case MULT_EXPR:
7908 0 : {
7909 0 : tree _q80 = TREE_OPERAND (_q70, 0);
7910 0 : tree _q81 = TREE_OPERAND (_q70, 1);
7911 0 : {
7912 0 : tree _q80_pops[1];
7913 0 : if (tree_nop_convert (_q80, _q80_pops))
7914 : {
7915 0 : tree _q90 = _q80_pops[0];
7916 0 : switch (TREE_CODE (_q81))
7917 : {
7918 0 : case INTEGER_CST:
7919 0 : {
7920 0 : {
7921 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31, _p1, _q70, _q90, _q81 };
7922 0 : tree res = generic_simplify_40 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7923 0 : if (res) return res;
7924 : }
7925 0 : break;
7926 : }
7927 : default:;
7928 : }
7929 : }
7930 : }
7931 0 : break;
7932 : }
7933 : default:;
7934 : }
7935 : }
7936 : }
7937 0 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
7938 : {
7939 0 : {
7940 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
7941 0 : tree res = generic_simplify_42 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7942 0 : if (res) return res;
7943 : }
7944 : }
7945 : break;
7946 : }
7947 : default:;
7948 : }
7949 : }
7950 : }
7951 20 : break;
7952 : }
7953 : default:;
7954 : }
7955 : }
7956 : }
7957 907547 : if (tree_truth_valued_p (_p0))
7958 : {
7959 137035 : {
7960 137035 : tree _p1_pops[1];
7961 137035 : if (tree_logical_inverted_value (_p1, _p1_pops))
7962 : {
7963 13 : tree _q30 = _p1_pops[0];
7964 13 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7965 : {
7966 0 : {
7967 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
7968 0 : tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
7969 0 : if (res) return res;
7970 : }
7971 : }
7972 : }
7973 : }
7974 : }
7975 907547 : switch (TREE_CODE (_p1))
7976 : {
7977 288 : case BIT_NOT_EXPR:
7978 288 : {
7979 288 : tree _q30 = TREE_OPERAND (_p1, 0);
7980 288 : {
7981 288 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
7982 288 : tree res = generic_simplify_28 (loc, type, _p0, _p1, captures);
7983 288 : if (res) return res;
7984 : }
7985 0 : break;
7986 : }
7987 907259 : default:;
7988 : }
7989 907259 : {
7990 907259 : tree _p1_pops[1];
7991 907259 : if (tree_nop_convert (_p1, _p1_pops))
7992 : {
7993 635442 : tree _q30 = _p1_pops[0];
7994 635442 : switch (TREE_CODE (_q30))
7995 : {
7996 0 : case BIT_NOT_EXPR:
7997 0 : {
7998 0 : tree _q40 = TREE_OPERAND (_q30, 0);
7999 0 : {
8000 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
8001 0 : tree res = generic_simplify_39 (loc, type, _p0, _p1, captures);
8002 0 : if (res) return res;
8003 : }
8004 0 : break;
8005 : }
8006 : default:;
8007 : }
8008 : }
8009 : }
8010 907259 : switch (TREE_CODE (_p0))
8011 : {
8012 1131 : case BIT_IOR_EXPR:
8013 1131 : {
8014 1131 : tree _q20 = TREE_OPERAND (_p0, 0);
8015 1131 : tree _q21 = TREE_OPERAND (_p0, 1);
8016 1131 : switch (TREE_CODE (_q21))
8017 : {
8018 23 : case INTEGER_CST:
8019 23 : {
8020 23 : switch (TREE_CODE (_p1))
8021 : {
8022 23 : case INTEGER_CST:
8023 23 : {
8024 23 : {
8025 23 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8026 23 : tree res = generic_simplify_43 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_XOR_EXPR);
8027 23 : if (res) return res;
8028 : }
8029 23 : break;
8030 : }
8031 : default:;
8032 : }
8033 : break;
8034 : }
8035 : default:;
8036 : }
8037 : break;
8038 : }
8039 90 : case LT_EXPR:
8040 90 : {
8041 90 : tree _q20 = TREE_OPERAND (_p0, 0);
8042 90 : tree _q21 = TREE_OPERAND (_p0, 1);
8043 90 : switch (TREE_CODE (_p1))
8044 : {
8045 0 : case GT_EXPR:
8046 0 : {
8047 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8048 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8049 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8050 : {
8051 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8052 : {
8053 0 : {
8054 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8055 0 : const enum tree_code cmp1 = LT_EXPR;
8056 0 : const enum tree_code cmp2 = GT_EXPR;
8057 0 : const enum tree_code rcmp = NE_EXPR;
8058 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8059 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8060 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8061 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8062 : )
8063 : {
8064 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1176;
8065 0 : {
8066 0 : tree res_op0;
8067 0 : res_op0 = captures[0];
8068 0 : tree res_op1;
8069 0 : res_op1 = captures[1];
8070 0 : tree _r;
8071 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8072 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8073 0 : return _r;
8074 : }
8075 0 : next_after_fail1176:;
8076 : }
8077 : }
8078 : }
8079 : }
8080 : break;
8081 : }
8082 0 : case EQ_EXPR:
8083 0 : {
8084 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8085 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8086 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8087 : {
8088 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8089 : {
8090 0 : {
8091 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8092 0 : const enum tree_code cmp1 = LT_EXPR;
8093 0 : const enum tree_code cmp2 = EQ_EXPR;
8094 0 : const enum tree_code rcmp = LE_EXPR;
8095 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8096 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8097 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8098 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8099 : )
8100 : {
8101 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1177;
8102 0 : {
8103 0 : tree res_op0;
8104 0 : res_op0 = captures[0];
8105 0 : tree res_op1;
8106 0 : res_op1 = captures[1];
8107 0 : tree _r;
8108 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8109 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8110 0 : return _r;
8111 : }
8112 0 : next_after_fail1177:;
8113 : }
8114 : }
8115 : }
8116 : }
8117 : break;
8118 : }
8119 0 : case NE_EXPR:
8120 0 : {
8121 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8122 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8123 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8124 : {
8125 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8126 : {
8127 0 : {
8128 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8129 0 : const enum tree_code cmp1 = LT_EXPR;
8130 0 : const enum tree_code cmp2 = NE_EXPR;
8131 0 : const enum tree_code rcmp = GT_EXPR;
8132 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8133 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8134 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8135 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8136 : )
8137 : {
8138 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1178;
8139 0 : {
8140 0 : tree res_op0;
8141 0 : res_op0 = captures[0];
8142 0 : tree res_op1;
8143 0 : res_op1 = captures[1];
8144 0 : tree _r;
8145 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8146 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8147 0 : return _r;
8148 : }
8149 0 : next_after_fail1178:;
8150 : }
8151 : }
8152 : }
8153 : }
8154 : break;
8155 : }
8156 : default:;
8157 : }
8158 : break;
8159 : }
8160 85 : case LE_EXPR:
8161 85 : {
8162 85 : tree _q20 = TREE_OPERAND (_p0, 0);
8163 85 : tree _q21 = TREE_OPERAND (_p0, 1);
8164 85 : switch (TREE_CODE (_p1))
8165 : {
8166 0 : case GE_EXPR:
8167 0 : {
8168 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8169 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8170 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8171 : {
8172 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8173 : {
8174 0 : {
8175 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8176 0 : const enum tree_code cmp1 = LE_EXPR;
8177 0 : const enum tree_code cmp2 = GE_EXPR;
8178 0 : const enum tree_code rcmp = NE_EXPR;
8179 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8180 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8181 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8182 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8183 : )
8184 : {
8185 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1179;
8186 0 : {
8187 0 : tree res_op0;
8188 0 : res_op0 = captures[0];
8189 0 : tree res_op1;
8190 0 : res_op1 = captures[1];
8191 0 : tree _r;
8192 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8193 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8194 0 : return _r;
8195 : }
8196 0 : next_after_fail1179:;
8197 : }
8198 : }
8199 : }
8200 : }
8201 : break;
8202 : }
8203 0 : case EQ_EXPR:
8204 0 : {
8205 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8206 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8207 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8208 : {
8209 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8210 : {
8211 0 : {
8212 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8213 0 : const enum tree_code cmp1 = LE_EXPR;
8214 0 : const enum tree_code cmp2 = EQ_EXPR;
8215 0 : const enum tree_code rcmp = LT_EXPR;
8216 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8217 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8218 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8219 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8220 : )
8221 : {
8222 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1180;
8223 0 : {
8224 0 : tree res_op0;
8225 0 : res_op0 = captures[0];
8226 0 : tree res_op1;
8227 0 : res_op1 = captures[1];
8228 0 : tree _r;
8229 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8230 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8231 0 : return _r;
8232 : }
8233 0 : next_after_fail1180:;
8234 : }
8235 : }
8236 : }
8237 : }
8238 : break;
8239 : }
8240 0 : case NE_EXPR:
8241 0 : {
8242 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8243 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8244 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8245 : {
8246 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8247 : {
8248 0 : {
8249 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8250 0 : const enum tree_code cmp1 = LE_EXPR;
8251 0 : const enum tree_code cmp2 = NE_EXPR;
8252 0 : const enum tree_code rcmp = GE_EXPR;
8253 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8254 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8255 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8256 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8257 : )
8258 : {
8259 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1181;
8260 0 : {
8261 0 : tree res_op0;
8262 0 : res_op0 = captures[0];
8263 0 : tree res_op1;
8264 0 : res_op1 = captures[1];
8265 0 : tree _r;
8266 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8267 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8268 0 : return _r;
8269 : }
8270 0 : next_after_fail1181:;
8271 : }
8272 : }
8273 : }
8274 : }
8275 : break;
8276 : }
8277 : default:;
8278 : }
8279 : break;
8280 : }
8281 100 : case GT_EXPR:
8282 100 : {
8283 100 : tree _q20 = TREE_OPERAND (_p0, 0);
8284 100 : tree _q21 = TREE_OPERAND (_p0, 1);
8285 100 : switch (TREE_CODE (_p1))
8286 : {
8287 0 : case GT_EXPR:
8288 0 : {
8289 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8290 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8291 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8292 : {
8293 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8294 : {
8295 0 : {
8296 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8297 0 : const enum tree_code cmp1 = LT_EXPR;
8298 0 : const enum tree_code cmp2 = GT_EXPR;
8299 0 : const enum tree_code rcmp = NE_EXPR;
8300 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8301 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8302 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8303 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8304 : )
8305 : {
8306 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1182;
8307 0 : {
8308 0 : tree res_op0;
8309 0 : res_op0 = captures[0];
8310 0 : tree res_op1;
8311 0 : res_op1 = captures[1];
8312 0 : tree _r;
8313 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8314 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8315 0 : return _r;
8316 : }
8317 0 : next_after_fail1182:;
8318 : }
8319 : }
8320 0 : {
8321 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8322 0 : const enum tree_code cmp1 = LT_EXPR;
8323 0 : const enum tree_code cmp2 = GT_EXPR;
8324 0 : const enum tree_code rcmp = NE_EXPR;
8325 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8326 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8327 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8328 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8329 : )
8330 : {
8331 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1183;
8332 0 : {
8333 0 : tree res_op0;
8334 0 : res_op0 = captures[0];
8335 0 : tree res_op1;
8336 0 : res_op1 = captures[1];
8337 0 : tree _r;
8338 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8339 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8340 0 : return _r;
8341 : }
8342 0 : next_after_fail1183:;
8343 : }
8344 : }
8345 : }
8346 : }
8347 : break;
8348 : }
8349 0 : case EQ_EXPR:
8350 0 : {
8351 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8352 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8353 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8354 : {
8355 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8356 : {
8357 0 : {
8358 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8359 0 : const enum tree_code cmp1 = LT_EXPR;
8360 0 : const enum tree_code cmp2 = EQ_EXPR;
8361 0 : const enum tree_code rcmp = LE_EXPR;
8362 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8363 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8364 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8365 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8366 : )
8367 : {
8368 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1184;
8369 0 : {
8370 0 : tree res_op0;
8371 0 : res_op0 = captures[0];
8372 0 : tree res_op1;
8373 0 : res_op1 = captures[1];
8374 0 : tree _r;
8375 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8376 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8377 0 : return _r;
8378 : }
8379 0 : next_after_fail1184:;
8380 : }
8381 : }
8382 : }
8383 : }
8384 : break;
8385 : }
8386 12 : case NE_EXPR:
8387 12 : {
8388 12 : tree _q50 = TREE_OPERAND (_p1, 0);
8389 12 : tree _q51 = TREE_OPERAND (_p1, 1);
8390 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8391 : {
8392 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8393 : {
8394 0 : {
8395 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8396 0 : const enum tree_code cmp1 = LT_EXPR;
8397 0 : const enum tree_code cmp2 = NE_EXPR;
8398 0 : const enum tree_code rcmp = GT_EXPR;
8399 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8400 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8401 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8402 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8403 : )
8404 : {
8405 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1185;
8406 0 : {
8407 0 : tree res_op0;
8408 0 : res_op0 = captures[0];
8409 0 : tree res_op1;
8410 0 : res_op1 = captures[1];
8411 0 : tree _r;
8412 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8413 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8414 0 : return _r;
8415 : }
8416 0 : next_after_fail1185:;
8417 : }
8418 : }
8419 : }
8420 : }
8421 : break;
8422 : }
8423 0 : case LT_EXPR:
8424 0 : {
8425 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8426 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8427 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8428 : {
8429 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8430 : {
8431 0 : {
8432 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8433 0 : const enum tree_code cmp1 = LT_EXPR;
8434 0 : const enum tree_code cmp2 = GT_EXPR;
8435 0 : const enum tree_code rcmp = NE_EXPR;
8436 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8437 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8438 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8439 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8440 : )
8441 : {
8442 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1186;
8443 0 : {
8444 0 : tree res_op0;
8445 0 : res_op0 = captures[0];
8446 0 : tree res_op1;
8447 0 : res_op1 = captures[1];
8448 0 : tree _r;
8449 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8450 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8451 0 : return _r;
8452 : }
8453 0 : next_after_fail1186:;
8454 : }
8455 : }
8456 : }
8457 : }
8458 : break;
8459 : }
8460 : default:;
8461 : }
8462 : break;
8463 : }
8464 62 : case GE_EXPR:
8465 62 : {
8466 62 : tree _q20 = TREE_OPERAND (_p0, 0);
8467 62 : tree _q21 = TREE_OPERAND (_p0, 1);
8468 62 : switch (TREE_CODE (_p1))
8469 : {
8470 1 : case GE_EXPR:
8471 1 : {
8472 1 : tree _q50 = TREE_OPERAND (_p1, 0);
8473 1 : tree _q51 = TREE_OPERAND (_p1, 1);
8474 1 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8475 : {
8476 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8477 : {
8478 0 : {
8479 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8480 0 : const enum tree_code cmp1 = LE_EXPR;
8481 0 : const enum tree_code cmp2 = GE_EXPR;
8482 0 : const enum tree_code rcmp = NE_EXPR;
8483 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8484 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8485 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8486 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8487 : )
8488 : {
8489 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1187;
8490 0 : {
8491 0 : tree res_op0;
8492 0 : res_op0 = captures[0];
8493 0 : tree res_op1;
8494 0 : res_op1 = captures[1];
8495 0 : tree _r;
8496 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8497 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8498 0 : return _r;
8499 : }
8500 0 : next_after_fail1187:;
8501 : }
8502 : }
8503 0 : {
8504 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8505 0 : const enum tree_code cmp1 = LE_EXPR;
8506 0 : const enum tree_code cmp2 = GE_EXPR;
8507 0 : const enum tree_code rcmp = NE_EXPR;
8508 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8509 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8510 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8511 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8512 : )
8513 : {
8514 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1188;
8515 0 : {
8516 0 : tree res_op0;
8517 0 : res_op0 = captures[0];
8518 0 : tree res_op1;
8519 0 : res_op1 = captures[1];
8520 0 : tree _r;
8521 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8522 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8523 0 : return _r;
8524 : }
8525 0 : next_after_fail1188:;
8526 : }
8527 : }
8528 : }
8529 : }
8530 : break;
8531 : }
8532 0 : case EQ_EXPR:
8533 0 : {
8534 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8535 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8536 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8537 : {
8538 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8539 : {
8540 0 : {
8541 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8542 0 : const enum tree_code cmp1 = LE_EXPR;
8543 0 : const enum tree_code cmp2 = EQ_EXPR;
8544 0 : const enum tree_code rcmp = LT_EXPR;
8545 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8546 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8547 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8548 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8549 : )
8550 : {
8551 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1189;
8552 0 : {
8553 0 : tree res_op0;
8554 0 : res_op0 = captures[0];
8555 0 : tree res_op1;
8556 0 : res_op1 = captures[1];
8557 0 : tree _r;
8558 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8559 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8560 0 : return _r;
8561 : }
8562 0 : next_after_fail1189:;
8563 : }
8564 : }
8565 : }
8566 : }
8567 : break;
8568 : }
8569 8 : case NE_EXPR:
8570 8 : {
8571 8 : tree _q50 = TREE_OPERAND (_p1, 0);
8572 8 : tree _q51 = TREE_OPERAND (_p1, 1);
8573 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8574 : {
8575 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8576 : {
8577 0 : {
8578 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8579 0 : const enum tree_code cmp1 = LE_EXPR;
8580 0 : const enum tree_code cmp2 = NE_EXPR;
8581 0 : const enum tree_code rcmp = GE_EXPR;
8582 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8583 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8584 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8585 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8586 : )
8587 : {
8588 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1190;
8589 0 : {
8590 0 : tree res_op0;
8591 0 : res_op0 = captures[0];
8592 0 : tree res_op1;
8593 0 : res_op1 = captures[1];
8594 0 : tree _r;
8595 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8596 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8597 0 : return _r;
8598 : }
8599 0 : next_after_fail1190:;
8600 : }
8601 : }
8602 : }
8603 : }
8604 : break;
8605 : }
8606 0 : case LE_EXPR:
8607 0 : {
8608 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8609 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8610 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8611 : {
8612 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8613 : {
8614 0 : {
8615 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8616 0 : const enum tree_code cmp1 = LE_EXPR;
8617 0 : const enum tree_code cmp2 = GE_EXPR;
8618 0 : const enum tree_code rcmp = NE_EXPR;
8619 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8620 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8621 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8622 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8623 : )
8624 : {
8625 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1191;
8626 0 : {
8627 0 : tree res_op0;
8628 0 : res_op0 = captures[0];
8629 0 : tree res_op1;
8630 0 : res_op1 = captures[1];
8631 0 : tree _r;
8632 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8633 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8634 0 : return _r;
8635 : }
8636 0 : next_after_fail1191:;
8637 : }
8638 : }
8639 : }
8640 : }
8641 : break;
8642 : }
8643 : default:;
8644 : }
8645 : break;
8646 : }
8647 119 : case EQ_EXPR:
8648 119 : {
8649 119 : tree _q20 = TREE_OPERAND (_p0, 0);
8650 119 : tree _q21 = TREE_OPERAND (_p0, 1);
8651 119 : switch (TREE_CODE (_p1))
8652 : {
8653 0 : case LT_EXPR:
8654 0 : {
8655 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8656 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8657 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8658 : {
8659 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8660 : {
8661 0 : {
8662 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8663 0 : const enum tree_code cmp1 = LT_EXPR;
8664 0 : const enum tree_code cmp2 = EQ_EXPR;
8665 0 : const enum tree_code rcmp = LE_EXPR;
8666 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8667 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8668 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8669 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8670 : )
8671 : {
8672 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1192;
8673 0 : {
8674 0 : tree res_op0;
8675 0 : res_op0 = captures[0];
8676 0 : tree res_op1;
8677 0 : res_op1 = captures[1];
8678 0 : tree _r;
8679 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8680 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8681 0 : return _r;
8682 : }
8683 0 : next_after_fail1192:;
8684 : }
8685 : }
8686 : }
8687 : }
8688 : break;
8689 : }
8690 0 : case LE_EXPR:
8691 0 : {
8692 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8693 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8694 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8695 : {
8696 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8697 : {
8698 0 : {
8699 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8700 0 : const enum tree_code cmp1 = LE_EXPR;
8701 0 : const enum tree_code cmp2 = EQ_EXPR;
8702 0 : const enum tree_code rcmp = LT_EXPR;
8703 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8704 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8705 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8706 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8707 : )
8708 : {
8709 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1193;
8710 0 : {
8711 0 : tree res_op0;
8712 0 : res_op0 = captures[0];
8713 0 : tree res_op1;
8714 0 : res_op1 = captures[1];
8715 0 : tree _r;
8716 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8717 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8718 0 : return _r;
8719 : }
8720 0 : next_after_fail1193:;
8721 : }
8722 : }
8723 : }
8724 : }
8725 : break;
8726 : }
8727 0 : case GT_EXPR:
8728 0 : {
8729 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8730 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8731 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8732 : {
8733 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8734 : {
8735 0 : {
8736 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8737 0 : const enum tree_code cmp1 = LT_EXPR;
8738 0 : const enum tree_code cmp2 = EQ_EXPR;
8739 0 : const enum tree_code rcmp = LE_EXPR;
8740 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8741 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8742 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8743 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8744 : )
8745 : {
8746 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1194;
8747 0 : {
8748 0 : tree res_op0;
8749 0 : res_op0 = captures[0];
8750 0 : tree res_op1;
8751 0 : res_op1 = captures[1];
8752 0 : tree _r;
8753 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8754 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8755 0 : return _r;
8756 : }
8757 0 : next_after_fail1194:;
8758 : }
8759 : }
8760 : }
8761 : }
8762 : break;
8763 : }
8764 8 : case GE_EXPR:
8765 8 : {
8766 8 : tree _q50 = TREE_OPERAND (_p1, 0);
8767 8 : tree _q51 = TREE_OPERAND (_p1, 1);
8768 8 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8769 : {
8770 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8771 : {
8772 0 : {
8773 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8774 0 : const enum tree_code cmp1 = LE_EXPR;
8775 0 : const enum tree_code cmp2 = EQ_EXPR;
8776 0 : const enum tree_code rcmp = LT_EXPR;
8777 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8778 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8779 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8780 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8781 : )
8782 : {
8783 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1195;
8784 0 : {
8785 0 : tree res_op0;
8786 0 : res_op0 = captures[0];
8787 0 : tree res_op1;
8788 0 : res_op1 = captures[1];
8789 0 : tree _r;
8790 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8791 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8792 0 : return _r;
8793 : }
8794 0 : next_after_fail1195:;
8795 : }
8796 : }
8797 : }
8798 : }
8799 : break;
8800 : }
8801 : default:;
8802 : }
8803 : break;
8804 : }
8805 113 : case NE_EXPR:
8806 113 : {
8807 113 : tree _q20 = TREE_OPERAND (_p0, 0);
8808 113 : tree _q21 = TREE_OPERAND (_p0, 1);
8809 113 : switch (TREE_CODE (_p1))
8810 : {
8811 0 : case LT_EXPR:
8812 0 : {
8813 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8814 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8815 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8816 : {
8817 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8818 : {
8819 0 : {
8820 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8821 0 : const enum tree_code cmp1 = LT_EXPR;
8822 0 : const enum tree_code cmp2 = NE_EXPR;
8823 0 : const enum tree_code rcmp = GT_EXPR;
8824 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8825 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8826 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8827 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8828 : )
8829 : {
8830 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1196;
8831 0 : {
8832 0 : tree res_op0;
8833 0 : res_op0 = captures[0];
8834 0 : tree res_op1;
8835 0 : res_op1 = captures[1];
8836 0 : tree _r;
8837 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8838 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8839 0 : return _r;
8840 : }
8841 0 : next_after_fail1196:;
8842 : }
8843 : }
8844 : }
8845 : }
8846 : break;
8847 : }
8848 0 : case LE_EXPR:
8849 0 : {
8850 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8851 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8852 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8853 : {
8854 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8855 : {
8856 0 : {
8857 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8858 0 : const enum tree_code cmp1 = LE_EXPR;
8859 0 : const enum tree_code cmp2 = NE_EXPR;
8860 0 : const enum tree_code rcmp = GE_EXPR;
8861 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8862 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8863 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8864 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8865 : )
8866 : {
8867 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1197;
8868 0 : {
8869 0 : tree res_op0;
8870 0 : res_op0 = captures[0];
8871 0 : tree res_op1;
8872 0 : res_op1 = captures[1];
8873 0 : tree _r;
8874 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8875 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8876 0 : return _r;
8877 : }
8878 0 : next_after_fail1197:;
8879 : }
8880 : }
8881 : }
8882 : }
8883 : break;
8884 : }
8885 0 : case GT_EXPR:
8886 0 : {
8887 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8888 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8889 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8890 : {
8891 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8892 : {
8893 0 : {
8894 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8895 0 : const enum tree_code cmp1 = LT_EXPR;
8896 0 : const enum tree_code cmp2 = NE_EXPR;
8897 0 : const enum tree_code rcmp = GT_EXPR;
8898 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8899 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8900 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8901 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8902 : )
8903 : {
8904 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1198;
8905 0 : {
8906 0 : tree res_op0;
8907 0 : res_op0 = captures[0];
8908 0 : tree res_op1;
8909 0 : res_op1 = captures[1];
8910 0 : tree _r;
8911 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8912 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8913 0 : return _r;
8914 : }
8915 0 : next_after_fail1198:;
8916 : }
8917 : }
8918 : }
8919 : }
8920 : break;
8921 : }
8922 6 : case GE_EXPR:
8923 6 : {
8924 6 : tree _q50 = TREE_OPERAND (_p1, 0);
8925 6 : tree _q51 = TREE_OPERAND (_p1, 1);
8926 6 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
8927 : {
8928 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
8929 : {
8930 0 : {
8931 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8932 0 : const enum tree_code cmp1 = LE_EXPR;
8933 0 : const enum tree_code cmp2 = NE_EXPR;
8934 0 : const enum tree_code rcmp = GE_EXPR;
8935 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
8936 0 : || POINTER_TYPE_P (TREE_TYPE (captures[0]))
8937 0 : || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
8938 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
8939 : )
8940 : {
8941 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1199;
8942 0 : {
8943 0 : tree res_op0;
8944 0 : res_op0 = captures[0];
8945 0 : tree res_op1;
8946 0 : res_op1 = captures[1];
8947 0 : tree _r;
8948 0 : _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
8949 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
8950 0 : return _r;
8951 : }
8952 0 : next_after_fail1199:;
8953 : }
8954 : }
8955 : }
8956 : }
8957 : break;
8958 : }
8959 : default:;
8960 : }
8961 : break;
8962 : }
8963 524 : case MULT_EXPR:
8964 524 : {
8965 524 : tree _q20 = TREE_OPERAND (_p0, 0);
8966 524 : tree _q21 = TREE_OPERAND (_p0, 1);
8967 524 : switch (TREE_CODE (_q21))
8968 : {
8969 498 : case INTEGER_CST:
8970 498 : {
8971 498 : switch (TREE_CODE (_p1))
8972 : {
8973 12 : case MULT_EXPR:
8974 12 : {
8975 12 : tree _q50 = TREE_OPERAND (_p1, 0);
8976 12 : tree _q51 = TREE_OPERAND (_p1, 1);
8977 12 : switch (TREE_CODE (_q51))
8978 : {
8979 12 : case INTEGER_CST:
8980 12 : {
8981 12 : {
8982 12 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q50, _q51 };
8983 12 : tree res = generic_simplify_44 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
8984 12 : if (res) return res;
8985 : }
8986 12 : break;
8987 : }
8988 : default:;
8989 : }
8990 : break;
8991 : }
8992 0 : case LSHIFT_EXPR:
8993 0 : {
8994 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8995 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8996 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
8997 : {
8998 0 : switch (TREE_CODE (_q51))
8999 : {
9000 0 : case INTEGER_CST:
9001 0 : {
9002 0 : {
9003 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q51 };
9004 0 : tree res = generic_simplify_45 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9005 0 : if (res) return res;
9006 : }
9007 0 : break;
9008 : }
9009 : default:;
9010 : }
9011 : }
9012 : break;
9013 : }
9014 498 : default:;
9015 : }
9016 498 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9017 : {
9018 18 : {
9019 18 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
9020 18 : tree res = generic_simplify_46 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9021 18 : if (res) return res;
9022 : }
9023 : }
9024 : break;
9025 : }
9026 524 : default:;
9027 : }
9028 524 : switch (TREE_CODE (_q20))
9029 : {
9030 0 : case BIT_XOR_EXPR:
9031 0 : {
9032 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9033 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9034 0 : if (tree_zero_one_valued_p (_q21))
9035 : {
9036 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9037 : {
9038 0 : {
9039 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
9040 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9041 0 : if (res) return res;
9042 : }
9043 : }
9044 0 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
9045 : {
9046 0 : {
9047 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q21 };
9048 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9049 0 : if (res) return res;
9050 : }
9051 : }
9052 : }
9053 : break;
9054 : }
9055 524 : default:;
9056 : }
9057 524 : if (tree_zero_one_valued_p (_q20))
9058 : {
9059 8 : switch (TREE_CODE (_q21))
9060 : {
9061 2 : case BIT_XOR_EXPR:
9062 2 : {
9063 2 : tree _q40 = TREE_OPERAND (_q21, 0);
9064 2 : tree _q41 = TREE_OPERAND (_q21, 1);
9065 2 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
9066 : {
9067 2 : {
9068 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
9069 2 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9070 2 : if (res) return res;
9071 : }
9072 : }
9073 0 : if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q41, 0) && types_match (_p1, _q41)))
9074 : {
9075 0 : {
9076 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
9077 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9078 0 : if (res) return res;
9079 : }
9080 : }
9081 : break;
9082 : }
9083 : default:;
9084 : }
9085 : }
9086 : break;
9087 : }
9088 2503 : case LSHIFT_EXPR:
9089 2503 : {
9090 2503 : tree _q20 = TREE_OPERAND (_p0, 0);
9091 2503 : tree _q21 = TREE_OPERAND (_p0, 1);
9092 2503 : switch (TREE_CODE (_q21))
9093 : {
9094 1122 : case INTEGER_CST:
9095 1122 : {
9096 1122 : switch (TREE_CODE (_p1))
9097 : {
9098 0 : case MULT_EXPR:
9099 0 : {
9100 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9101 0 : tree _q51 = TREE_OPERAND (_p1, 1);
9102 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9103 : {
9104 0 : switch (TREE_CODE (_q51))
9105 : {
9106 0 : case INTEGER_CST:
9107 0 : {
9108 0 : {
9109 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q51, _p0, _q21 };
9110 0 : tree res = generic_simplify_45 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9111 0 : if (res) return res;
9112 : }
9113 0 : break;
9114 : }
9115 : default:;
9116 : }
9117 : }
9118 : break;
9119 : }
9120 1122 : default:;
9121 : }
9122 1122 : {
9123 1122 : tree _p1_pops[1];
9124 1122 : if (tree_nop_convert (_p1, _p1_pops))
9125 : {
9126 23 : tree _q50 = _p1_pops[0];
9127 23 : switch (TREE_CODE (_q50))
9128 : {
9129 0 : case MULT_EXPR:
9130 0 : {
9131 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9132 0 : tree _q61 = TREE_OPERAND (_q50, 1);
9133 0 : {
9134 0 : tree _q60_pops[1];
9135 0 : if (tree_nop_convert (_q60, _q60_pops))
9136 : {
9137 0 : tree _q70 = _q60_pops[0];
9138 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
9139 : {
9140 0 : switch (TREE_CODE (_q61))
9141 : {
9142 0 : case INTEGER_CST:
9143 0 : {
9144 0 : {
9145 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q61, _p0, _q21 };
9146 0 : tree res = generic_simplify_41 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9147 0 : if (res) return res;
9148 : }
9149 0 : break;
9150 : }
9151 : default:;
9152 : }
9153 : }
9154 : }
9155 : }
9156 0 : break;
9157 : }
9158 : default:;
9159 : }
9160 : }
9161 : }
9162 1122 : break;
9163 : }
9164 : default:;
9165 : }
9166 : break;
9167 : }
9168 907257 : default:;
9169 : }
9170 907257 : switch (TREE_CODE (_p1))
9171 : {
9172 244 : case MULT_EXPR:
9173 244 : {
9174 244 : tree _q30 = TREE_OPERAND (_p1, 0);
9175 244 : tree _q31 = TREE_OPERAND (_p1, 1);
9176 244 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9177 : {
9178 0 : switch (TREE_CODE (_q31))
9179 : {
9180 0 : case INTEGER_CST:
9181 0 : {
9182 0 : {
9183 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
9184 0 : tree res = generic_simplify_46 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9185 0 : if (res) return res;
9186 : }
9187 0 : break;
9188 : }
9189 : default:;
9190 : }
9191 : }
9192 : break;
9193 : }
9194 907257 : default:;
9195 : }
9196 907257 : {
9197 907257 : tree _p1_pops[1];
9198 907257 : if (tree_nop_convert (_p1, _p1_pops))
9199 : {
9200 635442 : tree _q30 = _p1_pops[0];
9201 635442 : switch (TREE_CODE (_q30))
9202 : {
9203 17 : case MULT_EXPR:
9204 17 : {
9205 17 : tree _q40 = TREE_OPERAND (_q30, 0);
9206 17 : tree _q41 = TREE_OPERAND (_q30, 1);
9207 17 : {
9208 17 : tree _q40_pops[1];
9209 17 : if (tree_nop_convert (_q40, _q40_pops))
9210 : {
9211 0 : tree _q50 = _q40_pops[0];
9212 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
9213 : {
9214 0 : switch (TREE_CODE (_q41))
9215 : {
9216 0 : case INTEGER_CST:
9217 0 : {
9218 0 : {
9219 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
9220 0 : tree res = generic_simplify_42 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9221 0 : if (res) return res;
9222 : }
9223 0 : break;
9224 : }
9225 : default:;
9226 : }
9227 : }
9228 : }
9229 : }
9230 17 : break;
9231 : }
9232 : default:;
9233 : }
9234 : }
9235 : }
9236 907257 : switch (TREE_CODE (_p0))
9237 : {
9238 2503 : case LSHIFT_EXPR:
9239 2503 : {
9240 2503 : tree _q20 = TREE_OPERAND (_p0, 0);
9241 2503 : tree _q21 = TREE_OPERAND (_p0, 1);
9242 2503 : switch (TREE_CODE (_q21))
9243 : {
9244 1122 : case INTEGER_CST:
9245 1122 : {
9246 1122 : switch (TREE_CODE (_p1))
9247 : {
9248 9 : case LSHIFT_EXPR:
9249 9 : {
9250 9 : tree _q50 = TREE_OPERAND (_p1, 0);
9251 9 : tree _q51 = TREE_OPERAND (_p1, 1);
9252 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9253 : {
9254 3 : switch (TREE_CODE (_q51))
9255 : {
9256 3 : case INTEGER_CST:
9257 3 : {
9258 3 : {
9259 3 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
9260 3 : tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9261 3 : if (res) return res;
9262 : }
9263 1 : break;
9264 : }
9265 : default:;
9266 : }
9267 : }
9268 : break;
9269 : }
9270 1120 : default:;
9271 : }
9272 1120 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
9273 : {
9274 57 : {
9275 57 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9276 57 : tree res = generic_simplify_49 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9277 57 : if (res) return res;
9278 : }
9279 : }
9280 : break;
9281 : }
9282 : default:;
9283 : }
9284 : break;
9285 : }
9286 907255 : default:;
9287 : }
9288 907255 : switch (TREE_CODE (_p1))
9289 : {
9290 1982 : case LSHIFT_EXPR:
9291 1982 : {
9292 1982 : tree _q30 = TREE_OPERAND (_p1, 0);
9293 1982 : tree _q31 = TREE_OPERAND (_p1, 1);
9294 1982 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9295 : {
9296 3 : switch (TREE_CODE (_q31))
9297 : {
9298 3 : case INTEGER_CST:
9299 3 : {
9300 3 : {
9301 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
9302 3 : tree res = generic_simplify_49 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
9303 3 : if (res) return res;
9304 : }
9305 0 : break;
9306 : }
9307 : default:;
9308 : }
9309 : }
9310 : break;
9311 : }
9312 907252 : default:;
9313 : }
9314 907252 : switch (TREE_CODE (_p0))
9315 : {
9316 0 : case MIN_EXPR:
9317 0 : {
9318 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9319 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9320 0 : switch (TREE_CODE (_p1))
9321 : {
9322 0 : case MAX_EXPR:
9323 0 : {
9324 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9325 0 : tree _q51 = TREE_OPERAND (_p1, 1);
9326 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9327 : {
9328 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9329 : {
9330 0 : {
9331 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9332 0 : if (!HONOR_NANS (captures[0])
9333 : )
9334 : {
9335 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1200;
9336 0 : {
9337 0 : tree res_op0;
9338 0 : res_op0 = captures[0];
9339 0 : tree res_op1;
9340 0 : res_op1 = captures[1];
9341 0 : tree _r;
9342 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
9343 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
9344 0 : return _r;
9345 : }
9346 0 : next_after_fail1200:;
9347 : }
9348 : }
9349 : }
9350 : }
9351 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9352 : {
9353 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9354 : {
9355 0 : {
9356 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
9357 0 : if (!HONOR_NANS (captures[0])
9358 : )
9359 : {
9360 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1201;
9361 0 : {
9362 0 : tree res_op0;
9363 0 : res_op0 = captures[0];
9364 0 : tree res_op1;
9365 0 : res_op1 = captures[1];
9366 0 : tree _r;
9367 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
9368 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
9369 0 : return _r;
9370 : }
9371 0 : next_after_fail1201:;
9372 : }
9373 : }
9374 : }
9375 : }
9376 : break;
9377 : }
9378 : default:;
9379 : }
9380 : break;
9381 : }
9382 126 : case MAX_EXPR:
9383 126 : {
9384 126 : tree _q20 = TREE_OPERAND (_p0, 0);
9385 126 : tree _q21 = TREE_OPERAND (_p0, 1);
9386 126 : switch (TREE_CODE (_p1))
9387 : {
9388 0 : case MIN_EXPR:
9389 0 : {
9390 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9391 0 : tree _q51 = TREE_OPERAND (_p1, 1);
9392 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9393 : {
9394 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9395 : {
9396 0 : {
9397 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9398 0 : if (!HONOR_NANS (captures[0])
9399 : )
9400 : {
9401 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1202;
9402 0 : {
9403 0 : tree res_op0;
9404 0 : res_op0 = captures[0];
9405 0 : tree res_op1;
9406 0 : res_op1 = captures[1];
9407 0 : tree _r;
9408 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
9409 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
9410 0 : return _r;
9411 : }
9412 0 : next_after_fail1202:;
9413 : }
9414 : }
9415 : }
9416 : }
9417 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9418 : {
9419 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9420 : {
9421 0 : {
9422 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
9423 0 : if (!HONOR_NANS (captures[0])
9424 : )
9425 : {
9426 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1203;
9427 0 : {
9428 0 : tree res_op0;
9429 0 : res_op0 = captures[0];
9430 0 : tree res_op1;
9431 0 : res_op1 = captures[1];
9432 0 : tree _r;
9433 0 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
9434 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
9435 0 : return _r;
9436 : }
9437 0 : next_after_fail1203:;
9438 : }
9439 : }
9440 : }
9441 : }
9442 : break;
9443 : }
9444 : default:;
9445 : }
9446 : break;
9447 : }
9448 907252 : default:;
9449 : }
9450 907252 : switch (TREE_CODE (_p1))
9451 : {
9452 244 : case MULT_EXPR:
9453 244 : {
9454 244 : tree _q30 = TREE_OPERAND (_p1, 0);
9455 244 : tree _q31 = TREE_OPERAND (_p1, 1);
9456 244 : switch (TREE_CODE (_q30))
9457 : {
9458 0 : case BIT_XOR_EXPR:
9459 0 : {
9460 0 : tree _q40 = TREE_OPERAND (_q30, 0);
9461 0 : tree _q41 = TREE_OPERAND (_q30, 1);
9462 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
9463 : {
9464 0 : if (tree_zero_one_valued_p (_q31))
9465 : {
9466 0 : {
9467 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q31 };
9468 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9469 0 : if (res) return res;
9470 : }
9471 : }
9472 : }
9473 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
9474 : {
9475 0 : if (tree_zero_one_valued_p (_q31))
9476 : {
9477 0 : {
9478 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q31 };
9479 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9480 0 : if (res) return res;
9481 : }
9482 : }
9483 : }
9484 : break;
9485 : }
9486 244 : default:;
9487 : }
9488 244 : if (tree_zero_one_valued_p (_q30))
9489 : {
9490 17 : switch (TREE_CODE (_q31))
9491 : {
9492 0 : case BIT_XOR_EXPR:
9493 0 : {
9494 0 : tree _q50 = TREE_OPERAND (_q31, 0);
9495 0 : tree _q51 = TREE_OPERAND (_q31, 1);
9496 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
9497 : {
9498 0 : {
9499 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q51, _q30 };
9500 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9501 0 : if (res) return res;
9502 : }
9503 : }
9504 0 : if ((_q51 == _p0 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _p0, 0) && types_match (_q51, _p0)))
9505 : {
9506 0 : {
9507 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q50, _q30 };
9508 0 : tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
9509 0 : if (res) return res;
9510 : }
9511 : }
9512 : break;
9513 : }
9514 : default:;
9515 : }
9516 : }
9517 : break;
9518 : }
9519 907252 : default:;
9520 : }
9521 907252 : switch (TREE_CODE (_p0))
9522 : {
9523 1 : case VEC_COND_EXPR:
9524 1 : {
9525 1 : tree _q20 = TREE_OPERAND (_p0, 0);
9526 1 : tree _q21 = TREE_OPERAND (_p0, 1);
9527 1 : tree _q22 = TREE_OPERAND (_p0, 2);
9528 1 : switch (TREE_CODE (_p1))
9529 : {
9530 0 : case VEC_COND_EXPR:
9531 0 : {
9532 0 : tree _q60 = TREE_OPERAND (_p1, 0);
9533 0 : tree _q61 = TREE_OPERAND (_p1, 1);
9534 0 : tree _q62 = TREE_OPERAND (_p1, 2);
9535 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
9536 : {
9537 0 : {
9538 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
9539 0 : if (VECTOR_TYPE_P (type)
9540 0 : && (TREE_CODE_CLASS (BIT_XOR_EXPR) != tcc_comparison
9541 : || types_match (type, TREE_TYPE (captures[2]))
9542 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
9543 : || (optimize_vectors_before_lowering_p ()
9544 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
9545 : )
9546 : {
9547 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1204;
9548 0 : {
9549 0 : tree res_op0;
9550 0 : res_op0 = captures[1];
9551 0 : tree res_op1;
9552 0 : {
9553 0 : tree _o1[2], _r1;
9554 0 : _o1[0] = captures[2];
9555 0 : _o1[1] = captures[5];
9556 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
9557 0 : if (EXPR_P (_r1))
9558 0 : goto next_after_fail1204;
9559 0 : res_op1 = _r1;
9560 : }
9561 0 : tree res_op2;
9562 0 : {
9563 0 : tree _o1[2], _r1;
9564 0 : _o1[0] = captures[3];
9565 0 : _o1[1] = captures[6];
9566 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
9567 0 : if (EXPR_P (_r1))
9568 0 : goto next_after_fail1204;
9569 0 : res_op2 = _r1;
9570 : }
9571 0 : tree _r;
9572 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9573 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
9574 0 : return _r;
9575 : }
9576 0 : next_after_fail1204:;
9577 : }
9578 : }
9579 : }
9580 : break;
9581 : }
9582 1 : default:;
9583 : }
9584 1 : if (integer_minus_onep (_q21))
9585 : {
9586 1 : if (integer_zerop (_q22))
9587 : {
9588 1 : switch (TREE_CODE (_p1))
9589 : {
9590 0 : case VEC_COND_EXPR:
9591 0 : {
9592 0 : tree _q60 = TREE_OPERAND (_p1, 0);
9593 0 : tree _q61 = TREE_OPERAND (_p1, 1);
9594 0 : tree _q62 = TREE_OPERAND (_p1, 2);
9595 0 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
9596 : {
9597 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
9598 : {
9599 0 : {
9600 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9601 0 : const enum tree_code lop = BIT_XOR_EXPR;
9602 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9603 : )
9604 : {
9605 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1205;
9606 0 : {
9607 0 : tree res_op0;
9608 0 : {
9609 0 : tree _o1[2], _r1;
9610 0 : _o1[0] = captures[0];
9611 0 : _o1[1] = captures[3];
9612 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9613 0 : res_op0 = _r1;
9614 : }
9615 0 : tree res_op1;
9616 0 : res_op1 = captures[1];
9617 0 : tree res_op2;
9618 0 : res_op2 = captures[2];
9619 0 : tree _r;
9620 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9621 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9622 0 : return _r;
9623 : }
9624 0 : next_after_fail1205:;
9625 : }
9626 : }
9627 0 : {
9628 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9629 0 : const enum tree_code lop = BIT_XOR_EXPR;
9630 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9631 : )
9632 : {
9633 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1206;
9634 0 : {
9635 0 : tree res_op0;
9636 0 : {
9637 0 : tree _o1[2], _r1;
9638 0 : _o1[0] = captures[0];
9639 0 : _o1[1] = captures[3];
9640 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9641 0 : res_op0 = _r1;
9642 : }
9643 0 : tree res_op1;
9644 0 : res_op1 = captures[1];
9645 0 : tree res_op2;
9646 0 : res_op2 = captures[2];
9647 0 : tree _r;
9648 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9649 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9650 0 : return _r;
9651 : }
9652 0 : next_after_fail1206:;
9653 : }
9654 : }
9655 0 : {
9656 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9657 0 : const enum tree_code lop = BIT_XOR_EXPR;
9658 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9659 : )
9660 : {
9661 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1207;
9662 0 : {
9663 0 : tree res_op0;
9664 0 : {
9665 0 : tree _o1[2], _r1;
9666 0 : _o1[0] = captures[0];
9667 0 : _o1[1] = captures[3];
9668 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9669 0 : res_op0 = _r1;
9670 : }
9671 0 : tree res_op1;
9672 0 : res_op1 = captures[1];
9673 0 : tree res_op2;
9674 0 : res_op2 = captures[2];
9675 0 : tree _r;
9676 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9677 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9678 0 : return _r;
9679 : }
9680 0 : next_after_fail1207:;
9681 : }
9682 : }
9683 0 : {
9684 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9685 0 : const enum tree_code lop = BIT_XOR_EXPR;
9686 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9687 : )
9688 : {
9689 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1208;
9690 0 : {
9691 0 : tree res_op0;
9692 0 : {
9693 0 : tree _o1[2], _r1;
9694 0 : _o1[0] = captures[0];
9695 0 : _o1[1] = captures[3];
9696 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9697 0 : res_op0 = _r1;
9698 : }
9699 0 : tree res_op1;
9700 0 : res_op1 = captures[1];
9701 0 : tree res_op2;
9702 0 : res_op2 = captures[2];
9703 0 : tree _r;
9704 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9705 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9706 0 : return _r;
9707 : }
9708 0 : next_after_fail1208:;
9709 : }
9710 : }
9711 0 : {
9712 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9713 0 : const enum tree_code lop = BIT_XOR_EXPR;
9714 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9715 : )
9716 : {
9717 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1209;
9718 0 : {
9719 0 : tree res_op0;
9720 0 : {
9721 0 : tree _o1[2], _r1;
9722 0 : _o1[0] = captures[0];
9723 0 : _o1[1] = captures[3];
9724 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9725 0 : res_op0 = _r1;
9726 : }
9727 0 : tree res_op1;
9728 0 : res_op1 = captures[1];
9729 0 : tree res_op2;
9730 0 : res_op2 = captures[2];
9731 0 : tree _r;
9732 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9733 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9734 0 : return _r;
9735 : }
9736 0 : next_after_fail1209:;
9737 : }
9738 : }
9739 0 : {
9740 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9741 0 : const enum tree_code lop = BIT_XOR_EXPR;
9742 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9743 : )
9744 : {
9745 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1210;
9746 0 : {
9747 0 : tree res_op0;
9748 0 : {
9749 0 : tree _o1[2], _r1;
9750 0 : _o1[0] = captures[0];
9751 0 : _o1[1] = captures[3];
9752 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9753 0 : res_op0 = _r1;
9754 : }
9755 0 : tree res_op1;
9756 0 : res_op1 = captures[1];
9757 0 : tree res_op2;
9758 0 : res_op2 = captures[2];
9759 0 : tree _r;
9760 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9761 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9762 0 : return _r;
9763 : }
9764 0 : next_after_fail1210:;
9765 : }
9766 : }
9767 0 : {
9768 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9769 0 : const enum tree_code lop = BIT_XOR_EXPR;
9770 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9771 : )
9772 : {
9773 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1211;
9774 0 : {
9775 0 : tree res_op0;
9776 0 : {
9777 0 : tree _o1[2], _r1;
9778 0 : _o1[0] = captures[0];
9779 0 : _o1[1] = captures[3];
9780 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9781 0 : res_op0 = _r1;
9782 : }
9783 0 : tree res_op1;
9784 0 : res_op1 = captures[1];
9785 0 : tree res_op2;
9786 0 : res_op2 = captures[2];
9787 0 : tree _r;
9788 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9789 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9790 0 : return _r;
9791 : }
9792 0 : next_after_fail1211:;
9793 : }
9794 : }
9795 0 : {
9796 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9797 0 : const enum tree_code lop = BIT_XOR_EXPR;
9798 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9799 : )
9800 : {
9801 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1212;
9802 0 : {
9803 0 : tree res_op0;
9804 0 : {
9805 0 : tree _o1[2], _r1;
9806 0 : _o1[0] = captures[0];
9807 0 : _o1[1] = captures[3];
9808 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9809 0 : res_op0 = _r1;
9810 : }
9811 0 : tree res_op1;
9812 0 : res_op1 = captures[1];
9813 0 : tree res_op2;
9814 0 : res_op2 = captures[2];
9815 0 : tree _r;
9816 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9817 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9818 0 : return _r;
9819 : }
9820 0 : next_after_fail1212:;
9821 : }
9822 : }
9823 0 : {
9824 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9825 0 : const enum tree_code lop = BIT_XOR_EXPR;
9826 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9827 : )
9828 : {
9829 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1213;
9830 0 : {
9831 0 : tree res_op0;
9832 0 : {
9833 0 : tree _o1[2], _r1;
9834 0 : _o1[0] = captures[0];
9835 0 : _o1[1] = captures[3];
9836 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9837 0 : res_op0 = _r1;
9838 : }
9839 0 : tree res_op1;
9840 0 : res_op1 = captures[1];
9841 0 : tree res_op2;
9842 0 : res_op2 = captures[2];
9843 0 : tree _r;
9844 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9845 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9846 0 : return _r;
9847 : }
9848 0 : next_after_fail1213:;
9849 : }
9850 : }
9851 0 : {
9852 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9853 0 : const enum tree_code lop = BIT_XOR_EXPR;
9854 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9855 : )
9856 : {
9857 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1214;
9858 0 : {
9859 0 : tree res_op0;
9860 0 : {
9861 0 : tree _o1[2], _r1;
9862 0 : _o1[0] = captures[0];
9863 0 : _o1[1] = captures[3];
9864 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9865 0 : res_op0 = _r1;
9866 : }
9867 0 : tree res_op1;
9868 0 : res_op1 = captures[1];
9869 0 : tree res_op2;
9870 0 : res_op2 = captures[2];
9871 0 : tree _r;
9872 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9873 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9874 0 : return _r;
9875 : }
9876 0 : next_after_fail1214:;
9877 : }
9878 : }
9879 0 : {
9880 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9881 0 : const enum tree_code lop = BIT_XOR_EXPR;
9882 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9883 : )
9884 : {
9885 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1215;
9886 0 : {
9887 0 : tree res_op0;
9888 0 : {
9889 0 : tree _o1[2], _r1;
9890 0 : _o1[0] = captures[0];
9891 0 : _o1[1] = captures[3];
9892 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9893 0 : res_op0 = _r1;
9894 : }
9895 0 : tree res_op1;
9896 0 : res_op1 = captures[1];
9897 0 : tree res_op2;
9898 0 : res_op2 = captures[2];
9899 0 : tree _r;
9900 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9901 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9902 0 : return _r;
9903 : }
9904 0 : next_after_fail1215:;
9905 : }
9906 : }
9907 0 : {
9908 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9909 0 : const enum tree_code lop = BIT_XOR_EXPR;
9910 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9911 : )
9912 : {
9913 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1216;
9914 0 : {
9915 0 : tree res_op0;
9916 0 : {
9917 0 : tree _o1[2], _r1;
9918 0 : _o1[0] = captures[0];
9919 0 : _o1[1] = captures[3];
9920 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9921 0 : res_op0 = _r1;
9922 : }
9923 0 : tree res_op1;
9924 0 : res_op1 = captures[1];
9925 0 : tree res_op2;
9926 0 : res_op2 = captures[2];
9927 0 : tree _r;
9928 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9929 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9930 0 : return _r;
9931 : }
9932 0 : next_after_fail1216:;
9933 : }
9934 : }
9935 0 : {
9936 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9937 0 : const enum tree_code lop = BIT_XOR_EXPR;
9938 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9939 : )
9940 : {
9941 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1217;
9942 0 : {
9943 0 : tree res_op0;
9944 0 : {
9945 0 : tree _o1[2], _r1;
9946 0 : _o1[0] = captures[0];
9947 0 : _o1[1] = captures[3];
9948 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9949 0 : res_op0 = _r1;
9950 : }
9951 0 : tree res_op1;
9952 0 : res_op1 = captures[1];
9953 0 : tree res_op2;
9954 0 : res_op2 = captures[2];
9955 0 : tree _r;
9956 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9957 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9958 0 : return _r;
9959 : }
9960 0 : next_after_fail1217:;
9961 : }
9962 : }
9963 0 : {
9964 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9965 0 : const enum tree_code lop = BIT_XOR_EXPR;
9966 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9967 : )
9968 : {
9969 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1218;
9970 0 : {
9971 0 : tree res_op0;
9972 0 : {
9973 0 : tree _o1[2], _r1;
9974 0 : _o1[0] = captures[0];
9975 0 : _o1[1] = captures[3];
9976 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9977 0 : res_op0 = _r1;
9978 : }
9979 0 : tree res_op1;
9980 0 : res_op1 = captures[1];
9981 0 : tree res_op2;
9982 0 : res_op2 = captures[2];
9983 0 : tree _r;
9984 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9985 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
9986 0 : return _r;
9987 : }
9988 0 : next_after_fail1218:;
9989 : }
9990 : }
9991 0 : {
9992 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9993 0 : const enum tree_code lop = BIT_XOR_EXPR;
9994 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
9995 : )
9996 : {
9997 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1219;
9998 0 : {
9999 0 : tree res_op0;
10000 0 : {
10001 0 : tree _o1[2], _r1;
10002 0 : _o1[0] = captures[0];
10003 0 : _o1[1] = captures[3];
10004 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10005 0 : res_op0 = _r1;
10006 : }
10007 0 : tree res_op1;
10008 0 : res_op1 = captures[1];
10009 0 : tree res_op2;
10010 0 : res_op2 = captures[2];
10011 0 : tree _r;
10012 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10013 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10014 0 : return _r;
10015 : }
10016 0 : next_after_fail1219:;
10017 : }
10018 : }
10019 0 : {
10020 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10021 0 : const enum tree_code lop = BIT_XOR_EXPR;
10022 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10023 : )
10024 : {
10025 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1220;
10026 0 : {
10027 0 : tree res_op0;
10028 0 : {
10029 0 : tree _o1[2], _r1;
10030 0 : _o1[0] = captures[0];
10031 0 : _o1[1] = captures[3];
10032 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10033 0 : res_op0 = _r1;
10034 : }
10035 0 : tree res_op1;
10036 0 : res_op1 = captures[1];
10037 0 : tree res_op2;
10038 0 : res_op2 = captures[2];
10039 0 : tree _r;
10040 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10041 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10042 0 : return _r;
10043 : }
10044 0 : next_after_fail1220:;
10045 : }
10046 : }
10047 0 : {
10048 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10049 0 : const enum tree_code lop = BIT_XOR_EXPR;
10050 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10051 : )
10052 : {
10053 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1221;
10054 0 : {
10055 0 : tree res_op0;
10056 0 : {
10057 0 : tree _o1[2], _r1;
10058 0 : _o1[0] = captures[0];
10059 0 : _o1[1] = captures[3];
10060 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10061 0 : res_op0 = _r1;
10062 : }
10063 0 : tree res_op1;
10064 0 : res_op1 = captures[1];
10065 0 : tree res_op2;
10066 0 : res_op2 = captures[2];
10067 0 : tree _r;
10068 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10069 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10070 0 : return _r;
10071 : }
10072 0 : next_after_fail1221:;
10073 : }
10074 : }
10075 0 : {
10076 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10077 0 : const enum tree_code lop = BIT_XOR_EXPR;
10078 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10079 : )
10080 : {
10081 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1222;
10082 0 : {
10083 0 : tree res_op0;
10084 0 : {
10085 0 : tree _o1[2], _r1;
10086 0 : _o1[0] = captures[0];
10087 0 : _o1[1] = captures[3];
10088 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10089 0 : res_op0 = _r1;
10090 : }
10091 0 : tree res_op1;
10092 0 : res_op1 = captures[1];
10093 0 : tree res_op2;
10094 0 : res_op2 = captures[2];
10095 0 : tree _r;
10096 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10097 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10098 0 : return _r;
10099 : }
10100 0 : next_after_fail1222:;
10101 : }
10102 : }
10103 0 : {
10104 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10105 0 : const enum tree_code lop = BIT_XOR_EXPR;
10106 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10107 : )
10108 : {
10109 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1223;
10110 0 : {
10111 0 : tree res_op0;
10112 0 : {
10113 0 : tree _o1[2], _r1;
10114 0 : _o1[0] = captures[0];
10115 0 : _o1[1] = captures[3];
10116 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10117 0 : res_op0 = _r1;
10118 : }
10119 0 : tree res_op1;
10120 0 : res_op1 = captures[1];
10121 0 : tree res_op2;
10122 0 : res_op2 = captures[2];
10123 0 : tree _r;
10124 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10125 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10126 0 : return _r;
10127 : }
10128 0 : next_after_fail1223:;
10129 : }
10130 : }
10131 0 : {
10132 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10133 0 : const enum tree_code lop = BIT_XOR_EXPR;
10134 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10135 : )
10136 : {
10137 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1224;
10138 0 : {
10139 0 : tree res_op0;
10140 0 : {
10141 0 : tree _o1[2], _r1;
10142 0 : _o1[0] = captures[0];
10143 0 : _o1[1] = captures[3];
10144 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10145 0 : res_op0 = _r1;
10146 : }
10147 0 : tree res_op1;
10148 0 : res_op1 = captures[1];
10149 0 : tree res_op2;
10150 0 : res_op2 = captures[2];
10151 0 : tree _r;
10152 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10153 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10154 0 : return _r;
10155 : }
10156 0 : next_after_fail1224:;
10157 : }
10158 : }
10159 0 : {
10160 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10161 0 : const enum tree_code lop = BIT_XOR_EXPR;
10162 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10163 : )
10164 : {
10165 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1225;
10166 0 : {
10167 0 : tree res_op0;
10168 0 : {
10169 0 : tree _o1[2], _r1;
10170 0 : _o1[0] = captures[0];
10171 0 : _o1[1] = captures[3];
10172 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10173 0 : res_op0 = _r1;
10174 : }
10175 0 : tree res_op1;
10176 0 : res_op1 = captures[1];
10177 0 : tree res_op2;
10178 0 : res_op2 = captures[2];
10179 0 : tree _r;
10180 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10181 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10182 0 : return _r;
10183 : }
10184 0 : next_after_fail1225:;
10185 : }
10186 : }
10187 0 : {
10188 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10189 0 : const enum tree_code lop = BIT_XOR_EXPR;
10190 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10191 : )
10192 : {
10193 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1226;
10194 0 : {
10195 0 : tree res_op0;
10196 0 : {
10197 0 : tree _o1[2], _r1;
10198 0 : _o1[0] = captures[0];
10199 0 : _o1[1] = captures[3];
10200 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10201 0 : res_op0 = _r1;
10202 : }
10203 0 : tree res_op1;
10204 0 : res_op1 = captures[1];
10205 0 : tree res_op2;
10206 0 : res_op2 = captures[2];
10207 0 : tree _r;
10208 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10209 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10210 0 : return _r;
10211 : }
10212 0 : next_after_fail1226:;
10213 : }
10214 : }
10215 0 : {
10216 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10217 0 : const enum tree_code lop = BIT_XOR_EXPR;
10218 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10219 : )
10220 : {
10221 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1227;
10222 0 : {
10223 0 : tree res_op0;
10224 0 : {
10225 0 : tree _o1[2], _r1;
10226 0 : _o1[0] = captures[0];
10227 0 : _o1[1] = captures[3];
10228 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10229 0 : res_op0 = _r1;
10230 : }
10231 0 : tree res_op1;
10232 0 : res_op1 = captures[1];
10233 0 : tree res_op2;
10234 0 : res_op2 = captures[2];
10235 0 : tree _r;
10236 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10237 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10238 0 : return _r;
10239 : }
10240 0 : next_after_fail1227:;
10241 : }
10242 : }
10243 0 : {
10244 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10245 0 : const enum tree_code lop = BIT_XOR_EXPR;
10246 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10247 : )
10248 : {
10249 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1228;
10250 0 : {
10251 0 : tree res_op0;
10252 0 : {
10253 0 : tree _o1[2], _r1;
10254 0 : _o1[0] = captures[0];
10255 0 : _o1[1] = captures[3];
10256 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10257 0 : res_op0 = _r1;
10258 : }
10259 0 : tree res_op1;
10260 0 : res_op1 = captures[1];
10261 0 : tree res_op2;
10262 0 : res_op2 = captures[2];
10263 0 : tree _r;
10264 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10265 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10266 0 : return _r;
10267 : }
10268 0 : next_after_fail1228:;
10269 : }
10270 : }
10271 0 : {
10272 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10273 0 : const enum tree_code lop = BIT_XOR_EXPR;
10274 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10275 : )
10276 : {
10277 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1229;
10278 0 : {
10279 0 : tree res_op0;
10280 0 : {
10281 0 : tree _o1[2], _r1;
10282 0 : _o1[0] = captures[0];
10283 0 : _o1[1] = captures[3];
10284 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10285 0 : res_op0 = _r1;
10286 : }
10287 0 : tree res_op1;
10288 0 : res_op1 = captures[1];
10289 0 : tree res_op2;
10290 0 : res_op2 = captures[2];
10291 0 : tree _r;
10292 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10293 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10294 0 : return _r;
10295 : }
10296 0 : next_after_fail1229:;
10297 : }
10298 : }
10299 0 : {
10300 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10301 0 : const enum tree_code lop = BIT_XOR_EXPR;
10302 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10303 : )
10304 : {
10305 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1230;
10306 0 : {
10307 0 : tree res_op0;
10308 0 : {
10309 0 : tree _o1[2], _r1;
10310 0 : _o1[0] = captures[0];
10311 0 : _o1[1] = captures[3];
10312 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10313 0 : res_op0 = _r1;
10314 : }
10315 0 : tree res_op1;
10316 0 : res_op1 = captures[1];
10317 0 : tree res_op2;
10318 0 : res_op2 = captures[2];
10319 0 : tree _r;
10320 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10321 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10322 0 : return _r;
10323 : }
10324 0 : next_after_fail1230:;
10325 : }
10326 : }
10327 0 : {
10328 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10329 0 : const enum tree_code lop = BIT_XOR_EXPR;
10330 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10331 : )
10332 : {
10333 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1231;
10334 0 : {
10335 0 : tree res_op0;
10336 0 : {
10337 0 : tree _o1[2], _r1;
10338 0 : _o1[0] = captures[0];
10339 0 : _o1[1] = captures[3];
10340 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10341 0 : res_op0 = _r1;
10342 : }
10343 0 : tree res_op1;
10344 0 : res_op1 = captures[1];
10345 0 : tree res_op2;
10346 0 : res_op2 = captures[2];
10347 0 : tree _r;
10348 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10349 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10350 0 : return _r;
10351 : }
10352 0 : next_after_fail1231:;
10353 : }
10354 : }
10355 0 : {
10356 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10357 0 : const enum tree_code lop = BIT_XOR_EXPR;
10358 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10359 : )
10360 : {
10361 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1232;
10362 0 : {
10363 0 : tree res_op0;
10364 0 : {
10365 0 : tree _o1[2], _r1;
10366 0 : _o1[0] = captures[0];
10367 0 : _o1[1] = captures[3];
10368 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10369 0 : res_op0 = _r1;
10370 : }
10371 0 : tree res_op1;
10372 0 : res_op1 = captures[1];
10373 0 : tree res_op2;
10374 0 : res_op2 = captures[2];
10375 0 : tree _r;
10376 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10377 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10378 0 : return _r;
10379 : }
10380 0 : next_after_fail1232:;
10381 : }
10382 : }
10383 0 : {
10384 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10385 0 : const enum tree_code lop = BIT_XOR_EXPR;
10386 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10387 : )
10388 : {
10389 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1233;
10390 0 : {
10391 0 : tree res_op0;
10392 0 : {
10393 0 : tree _o1[2], _r1;
10394 0 : _o1[0] = captures[0];
10395 0 : _o1[1] = captures[3];
10396 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10397 0 : res_op0 = _r1;
10398 : }
10399 0 : tree res_op1;
10400 0 : res_op1 = captures[1];
10401 0 : tree res_op2;
10402 0 : res_op2 = captures[2];
10403 0 : tree _r;
10404 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10405 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10406 0 : return _r;
10407 : }
10408 0 : next_after_fail1233:;
10409 : }
10410 : }
10411 0 : {
10412 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10413 0 : const enum tree_code lop = BIT_XOR_EXPR;
10414 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10415 : )
10416 : {
10417 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1234;
10418 0 : {
10419 0 : tree res_op0;
10420 0 : {
10421 0 : tree _o1[2], _r1;
10422 0 : _o1[0] = captures[0];
10423 0 : _o1[1] = captures[3];
10424 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10425 0 : res_op0 = _r1;
10426 : }
10427 0 : tree res_op1;
10428 0 : res_op1 = captures[1];
10429 0 : tree res_op2;
10430 0 : res_op2 = captures[2];
10431 0 : tree _r;
10432 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10433 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10434 0 : return _r;
10435 : }
10436 0 : next_after_fail1234:;
10437 : }
10438 : }
10439 0 : {
10440 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10441 0 : const enum tree_code lop = BIT_XOR_EXPR;
10442 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10443 : )
10444 : {
10445 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1235;
10446 0 : {
10447 0 : tree res_op0;
10448 0 : {
10449 0 : tree _o1[2], _r1;
10450 0 : _o1[0] = captures[0];
10451 0 : _o1[1] = captures[3];
10452 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10453 0 : res_op0 = _r1;
10454 : }
10455 0 : tree res_op1;
10456 0 : res_op1 = captures[1];
10457 0 : tree res_op2;
10458 0 : res_op2 = captures[2];
10459 0 : tree _r;
10460 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10461 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10462 0 : return _r;
10463 : }
10464 0 : next_after_fail1235:;
10465 : }
10466 : }
10467 0 : {
10468 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10469 0 : const enum tree_code lop = BIT_XOR_EXPR;
10470 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10471 : )
10472 : {
10473 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1236;
10474 0 : {
10475 0 : tree res_op0;
10476 0 : {
10477 0 : tree _o1[2], _r1;
10478 0 : _o1[0] = captures[0];
10479 0 : _o1[1] = captures[3];
10480 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10481 0 : res_op0 = _r1;
10482 : }
10483 0 : tree res_op1;
10484 0 : res_op1 = captures[1];
10485 0 : tree res_op2;
10486 0 : res_op2 = captures[2];
10487 0 : tree _r;
10488 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10489 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10490 0 : return _r;
10491 : }
10492 0 : next_after_fail1236:;
10493 : }
10494 : }
10495 0 : {
10496 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10497 0 : const enum tree_code lop = BIT_XOR_EXPR;
10498 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10499 : )
10500 : {
10501 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1237;
10502 0 : {
10503 0 : tree res_op0;
10504 0 : {
10505 0 : tree _o1[2], _r1;
10506 0 : _o1[0] = captures[0];
10507 0 : _o1[1] = captures[3];
10508 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10509 0 : res_op0 = _r1;
10510 : }
10511 0 : tree res_op1;
10512 0 : res_op1 = captures[1];
10513 0 : tree res_op2;
10514 0 : res_op2 = captures[2];
10515 0 : tree _r;
10516 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10517 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10518 0 : return _r;
10519 : }
10520 0 : next_after_fail1237:;
10521 : }
10522 : }
10523 0 : {
10524 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
10525 0 : const enum tree_code lop = BIT_XOR_EXPR;
10526 0 : if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
10527 : )
10528 : {
10529 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1238;
10530 0 : {
10531 0 : tree res_op0;
10532 0 : {
10533 0 : tree _o1[2], _r1;
10534 0 : _o1[0] = captures[0];
10535 0 : _o1[1] = captures[3];
10536 0 : _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10537 0 : res_op0 = _r1;
10538 : }
10539 0 : tree res_op1;
10540 0 : res_op1 = captures[1];
10541 0 : tree res_op2;
10542 0 : res_op2 = captures[2];
10543 0 : tree _r;
10544 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10545 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
10546 0 : return _r;
10547 : }
10548 0 : next_after_fail1238:;
10549 : }
10550 : }
10551 : }
10552 : }
10553 : break;
10554 : }
10555 : default:;
10556 : }
10557 : }
10558 : }
10559 1 : {
10560 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
10561 1 : if (VECTOR_TYPE_P (type)
10562 1 : && (TREE_CODE_CLASS (BIT_XOR_EXPR) != tcc_comparison
10563 : || types_match (type, TREE_TYPE (captures[2]))
10564 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10565 : || (optimize_vectors_before_lowering_p ()
10566 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10567 : )
10568 : {
10569 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1239;
10570 1 : {
10571 1 : if (! tree_invariant_p (captures[4])) goto next_after_fail1239;
10572 0 : tree res_op0;
10573 0 : res_op0 = captures[1];
10574 0 : tree res_op1;
10575 0 : {
10576 0 : tree _o1[2], _r1;
10577 0 : _o1[0] = captures[2];
10578 0 : _o1[1] = unshare_expr (captures[4]);
10579 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
10580 0 : if (EXPR_P (_r1))
10581 0 : goto next_after_fail1239;
10582 0 : res_op1 = _r1;
10583 : }
10584 0 : tree res_op2;
10585 0 : {
10586 0 : tree _o1[2], _r1;
10587 0 : _o1[0] = captures[3];
10588 0 : _o1[1] = captures[4];
10589 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
10590 0 : if (EXPR_P (_r1))
10591 0 : goto next_after_fail1239;
10592 0 : res_op2 = _r1;
10593 : }
10594 0 : tree _r;
10595 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10596 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
10597 0 : return _r;
10598 : }
10599 1 : next_after_fail1239:;
10600 : }
10601 : }
10602 1 : break;
10603 : }
10604 907252 : default:;
10605 : }
10606 907252 : switch (TREE_CODE (_p1))
10607 : {
10608 0 : case VEC_COND_EXPR:
10609 0 : {
10610 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10611 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10612 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10613 0 : {
10614 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
10615 0 : if (VECTOR_TYPE_P (type)
10616 0 : && (TREE_CODE_CLASS (BIT_XOR_EXPR) != tcc_comparison
10617 : || types_match (type, TREE_TYPE (captures[3]))
10618 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
10619 : || (optimize_vectors_before_lowering_p ()
10620 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
10621 : )
10622 : {
10623 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1240;
10624 0 : {
10625 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1240;
10626 0 : tree res_op0;
10627 0 : res_op0 = captures[2];
10628 0 : tree res_op1;
10629 0 : {
10630 0 : tree _o1[2], _r1;
10631 0 : _o1[0] = unshare_expr (captures[0]);
10632 0 : _o1[1] = captures[3];
10633 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
10634 0 : if (EXPR_P (_r1))
10635 0 : goto next_after_fail1240;
10636 0 : res_op1 = _r1;
10637 : }
10638 0 : tree res_op2;
10639 0 : {
10640 0 : tree _o1[2], _r1;
10641 0 : _o1[0] = captures[0];
10642 0 : _o1[1] = captures[4];
10643 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
10644 0 : if (EXPR_P (_r1))
10645 0 : goto next_after_fail1240;
10646 0 : res_op2 = _r1;
10647 : }
10648 0 : tree _r;
10649 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10650 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
10651 0 : return _r;
10652 : }
10653 0 : next_after_fail1240:;
10654 : }
10655 : }
10656 0 : break;
10657 : }
10658 907252 : default:;
10659 : }
10660 907252 : switch (TREE_CODE (_p0))
10661 : {
10662 90 : case LT_EXPR:
10663 90 : {
10664 90 : tree _q20 = TREE_OPERAND (_p0, 0);
10665 90 : tree _q21 = TREE_OPERAND (_p0, 1);
10666 90 : if (integer_truep (_p1))
10667 : {
10668 14 : {
10669 14 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10670 14 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
10671 14 : if (res) return res;
10672 : }
10673 : }
10674 76 : if (integer_zerop (_q21))
10675 : {
10676 24 : switch (TREE_CODE (_p1))
10677 : {
10678 17 : case LT_EXPR:
10679 17 : {
10680 17 : tree _q50 = TREE_OPERAND (_p1, 0);
10681 17 : tree _q51 = TREE_OPERAND (_p1, 1);
10682 17 : if (integer_zerop (_q51))
10683 : {
10684 17 : {
10685 17 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
10686 17 : tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, LT_EXPR);
10687 17 : if (res) return res;
10688 : }
10689 : }
10690 : break;
10691 : }
10692 0 : case GE_EXPR:
10693 0 : {
10694 0 : tree _q50 = TREE_OPERAND (_p1, 0);
10695 0 : tree _q51 = TREE_OPERAND (_p1, 1);
10696 0 : if (integer_zerop (_q51))
10697 : {
10698 0 : {
10699 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
10700 0 : tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
10701 0 : if (res) return res;
10702 : }
10703 : }
10704 : break;
10705 : }
10706 : default:;
10707 : }
10708 : }
10709 : break;
10710 : }
10711 85 : case LE_EXPR:
10712 85 : {
10713 85 : tree _q20 = TREE_OPERAND (_p0, 0);
10714 85 : tree _q21 = TREE_OPERAND (_p0, 1);
10715 85 : if (integer_truep (_p1))
10716 : {
10717 15 : {
10718 15 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10719 15 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
10720 15 : if (res) return res;
10721 : }
10722 : }
10723 : break;
10724 : }
10725 119 : case EQ_EXPR:
10726 119 : {
10727 119 : tree _q20 = TREE_OPERAND (_p0, 0);
10728 119 : tree _q21 = TREE_OPERAND (_p0, 1);
10729 119 : if (integer_truep (_p1))
10730 : {
10731 14 : {
10732 14 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10733 14 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
10734 14 : if (res) return res;
10735 : }
10736 : }
10737 : break;
10738 : }
10739 113 : case NE_EXPR:
10740 113 : {
10741 113 : tree _q20 = TREE_OPERAND (_p0, 0);
10742 113 : tree _q21 = TREE_OPERAND (_p0, 1);
10743 113 : if (integer_truep (_p1))
10744 : {
10745 7 : {
10746 7 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10747 7 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
10748 7 : if (res) return res;
10749 : }
10750 : }
10751 : break;
10752 : }
10753 62 : case GE_EXPR:
10754 62 : {
10755 62 : tree _q20 = TREE_OPERAND (_p0, 0);
10756 62 : tree _q21 = TREE_OPERAND (_p0, 1);
10757 62 : if (integer_truep (_p1))
10758 : {
10759 0 : {
10760 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10761 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
10762 0 : if (res) return res;
10763 : }
10764 : }
10765 62 : if (integer_zerop (_q21))
10766 : {
10767 26 : switch (TREE_CODE (_p1))
10768 : {
10769 1 : case GE_EXPR:
10770 1 : {
10771 1 : tree _q50 = TREE_OPERAND (_p1, 0);
10772 1 : tree _q51 = TREE_OPERAND (_p1, 1);
10773 1 : if (integer_zerop (_q51))
10774 : {
10775 1 : {
10776 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
10777 1 : tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, GE_EXPR);
10778 1 : if (res) return res;
10779 : }
10780 : }
10781 : break;
10782 : }
10783 5 : case LT_EXPR:
10784 5 : {
10785 5 : tree _q50 = TREE_OPERAND (_p1, 0);
10786 5 : tree _q51 = TREE_OPERAND (_p1, 1);
10787 5 : if (integer_zerop (_q51))
10788 : {
10789 5 : {
10790 5 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _p0, _q20 };
10791 5 : tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
10792 5 : if (res) return res;
10793 : }
10794 : }
10795 : break;
10796 : }
10797 : default:;
10798 : }
10799 : }
10800 : break;
10801 : }
10802 100 : case GT_EXPR:
10803 100 : {
10804 100 : tree _q20 = TREE_OPERAND (_p0, 0);
10805 100 : tree _q21 = TREE_OPERAND (_p0, 1);
10806 100 : if (integer_truep (_p1))
10807 : {
10808 14 : {
10809 14 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10810 14 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
10811 14 : if (res) return res;
10812 : }
10813 : }
10814 : break;
10815 : }
10816 0 : case UNORDERED_EXPR:
10817 0 : {
10818 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10819 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10820 0 : if (integer_truep (_p1))
10821 : {
10822 0 : {
10823 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10824 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
10825 0 : if (res) return res;
10826 : }
10827 : }
10828 : break;
10829 : }
10830 0 : case ORDERED_EXPR:
10831 0 : {
10832 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10833 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10834 0 : if (integer_truep (_p1))
10835 : {
10836 0 : {
10837 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10838 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
10839 0 : if (res) return res;
10840 : }
10841 : }
10842 : break;
10843 : }
10844 0 : case UNLT_EXPR:
10845 0 : {
10846 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10847 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10848 0 : if (integer_truep (_p1))
10849 : {
10850 0 : {
10851 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10852 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
10853 0 : if (res) return res;
10854 : }
10855 : }
10856 : break;
10857 : }
10858 0 : case UNLE_EXPR:
10859 0 : {
10860 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10861 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10862 0 : if (integer_truep (_p1))
10863 : {
10864 0 : {
10865 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10866 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
10867 0 : if (res) return res;
10868 : }
10869 : }
10870 : break;
10871 : }
10872 0 : case UNGT_EXPR:
10873 0 : {
10874 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10875 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10876 0 : if (integer_truep (_p1))
10877 : {
10878 0 : {
10879 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10880 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
10881 0 : if (res) return res;
10882 : }
10883 : }
10884 : break;
10885 : }
10886 0 : case UNGE_EXPR:
10887 0 : {
10888 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10889 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10890 0 : if (integer_truep (_p1))
10891 : {
10892 0 : {
10893 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10894 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
10895 0 : if (res) return res;
10896 : }
10897 : }
10898 : break;
10899 : }
10900 0 : case UNEQ_EXPR:
10901 0 : {
10902 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10903 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10904 0 : if (integer_truep (_p1))
10905 : {
10906 0 : {
10907 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10908 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
10909 0 : if (res) return res;
10910 : }
10911 : }
10912 : break;
10913 : }
10914 0 : case LTGT_EXPR:
10915 0 : {
10916 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10917 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10918 0 : if (integer_truep (_p1))
10919 : {
10920 0 : {
10921 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10922 0 : tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
10923 0 : if (res) return res;
10924 : }
10925 : }
10926 : break;
10927 : }
10928 7 : case VEC_PERM_EXPR:
10929 7 : {
10930 7 : tree _q20 = TREE_OPERAND (_p0, 0);
10931 7 : tree _q21 = TREE_OPERAND (_p0, 1);
10932 7 : tree _q22 = TREE_OPERAND (_p0, 2);
10933 7 : if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
10934 : {
10935 0 : switch (TREE_CODE (_p1))
10936 : {
10937 0 : case VEC_PERM_EXPR:
10938 0 : {
10939 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10940 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10941 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10942 0 : if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
10943 : {
10944 0 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
10945 : {
10946 0 : {
10947 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
10948 0 : if (VECTOR_INTEGER_TYPE_P (type)
10949 : )
10950 : {
10951 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1241;
10952 0 : {
10953 0 : tree res_op0;
10954 0 : {
10955 0 : tree _o1[2], _r1;
10956 0 : _o1[0] = captures[0];
10957 0 : _o1[1] = captures[2];
10958 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
10959 0 : captures[3] = _r1;
10960 : }
10961 0 : res_op0 = unshare_expr (captures[3]);
10962 0 : tree res_op1;
10963 0 : res_op1 = captures[3];
10964 0 : tree res_op2;
10965 0 : res_op2 = captures[1];
10966 0 : tree _r;
10967 0 : _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
10968 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
10969 0 : return _r;
10970 : }
10971 0 : next_after_fail1241:;
10972 : }
10973 : }
10974 : }
10975 : }
10976 : break;
10977 : }
10978 : default:;
10979 : }
10980 : }
10981 : break;
10982 : }
10983 3247 : case CALL_EXPR:
10984 3247 : switch (get_call_combined_fn (_p0))
10985 : {
10986 1 : case CFN_PARITY:
10987 1 : if (call_expr_nargs (_p0) == 1)
10988 : {
10989 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10990 1 : switch (TREE_CODE (_p1))
10991 : {
10992 1 : case CALL_EXPR:
10993 1 : switch (get_call_combined_fn (_p1))
10994 : {
10995 1 : case CFN_PARITY:
10996 1 : if (call_expr_nargs (_p1) == 1)
10997 : {
10998 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10999 1 : {
11000 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11001 1 : tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_PARITY);
11002 1 : if (res) return res;
11003 : }
11004 : }
11005 : break;
11006 : default:;
11007 : }
11008 : break;
11009 : default:;
11010 : }
11011 : }
11012 : break;
11013 1 : case CFN_BUILT_IN_PARITYL:
11014 1 : if (call_expr_nargs (_p0) == 1)
11015 : {
11016 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11017 1 : switch (TREE_CODE (_p1))
11018 : {
11019 1 : case CALL_EXPR:
11020 1 : switch (get_call_combined_fn (_p1))
11021 : {
11022 1 : case CFN_BUILT_IN_PARITYL:
11023 1 : if (call_expr_nargs (_p1) == 1)
11024 : {
11025 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
11026 1 : {
11027 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11028 1 : tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYL);
11029 1 : if (res) return res;
11030 : }
11031 : }
11032 : break;
11033 : default:;
11034 : }
11035 : break;
11036 : default:;
11037 : }
11038 : }
11039 : break;
11040 0 : case CFN_BUILT_IN_PARITYIMAX:
11041 0 : if (call_expr_nargs (_p0) == 1)
11042 : {
11043 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11044 0 : switch (TREE_CODE (_p1))
11045 : {
11046 0 : case CALL_EXPR:
11047 0 : switch (get_call_combined_fn (_p1))
11048 : {
11049 0 : case CFN_BUILT_IN_PARITYIMAX:
11050 0 : if (call_expr_nargs (_p1) == 1)
11051 : {
11052 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
11053 0 : {
11054 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11055 0 : tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYIMAX);
11056 0 : if (res) return res;
11057 : }
11058 : }
11059 : break;
11060 : default:;
11061 : }
11062 : break;
11063 : default:;
11064 : }
11065 : }
11066 : break;
11067 1 : case CFN_BUILT_IN_PARITY:
11068 1 : if (call_expr_nargs (_p0) == 1)
11069 : {
11070 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11071 1 : switch (TREE_CODE (_p1))
11072 : {
11073 1 : case CALL_EXPR:
11074 1 : switch (get_call_combined_fn (_p1))
11075 : {
11076 1 : case CFN_BUILT_IN_PARITY:
11077 1 : if (call_expr_nargs (_p1) == 1)
11078 : {
11079 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
11080 1 : {
11081 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11082 1 : tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITY);
11083 1 : if (res) return res;
11084 : }
11085 : }
11086 : break;
11087 : default:;
11088 : }
11089 : break;
11090 : default:;
11091 : }
11092 : }
11093 : break;
11094 8 : case CFN_BUILT_IN_PARITYLL:
11095 8 : if (call_expr_nargs (_p0) == 1)
11096 : {
11097 8 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11098 8 : switch (TREE_CODE (_p1))
11099 : {
11100 8 : case CALL_EXPR:
11101 8 : switch (get_call_combined_fn (_p1))
11102 : {
11103 8 : case CFN_BUILT_IN_PARITYLL:
11104 8 : if (call_expr_nargs (_p1) == 1)
11105 : {
11106 8 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
11107 8 : {
11108 8 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
11109 8 : tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYLL);
11110 8 : if (res) return res;
11111 : }
11112 : }
11113 : break;
11114 : default:;
11115 : }
11116 : break;
11117 : default:;
11118 : }
11119 : }
11120 : break;
11121 : default:;
11122 : }
11123 : break;
11124 : default:;
11125 : }
11126 : return NULL_TREE;
11127 : }
11128 :
11129 : tree
11130 39044732 : generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree _p0, tree _p1, tree _p2)
11131 : {
11132 39044732 : switch (code)
11133 : {
11134 12474785 : case COND_EXPR:
11135 12474785 : return generic_simplify_COND_EXPR (loc, code, type, _p0, _p1, _p2);
11136 393860 : case VEC_COND_EXPR:
11137 393860 : return generic_simplify_VEC_COND_EXPR (loc, code, type, _p0, _p1, _p2);
11138 764436 : case BIT_FIELD_REF:
11139 764436 : return generic_simplify_BIT_FIELD_REF (loc, code, type, _p0, _p1, _p2);
11140 14778 : case BIT_INSERT_EXPR:
11141 14778 : return generic_simplify_BIT_INSERT_EXPR (loc, code, type, _p0, _p1, _p2);
11142 776548 : case VEC_PERM_EXPR:
11143 776548 : return generic_simplify_VEC_PERM_EXPR (loc, code, type, _p0, _p1, _p2);
11144 : default:;
11145 : }
11146 : return NULL_TREE;
11147 : }
11148 :
11149 : tree
11150 0 : generic_simplify (location_t, enum tree_code,
11151 : const tree, tree, tree, tree, tree)
11152 : {
11153 0 : return NULL_TREE;
11154 : }
11155 :
11156 : tree
11157 0 : generic_simplify (location_t, enum tree_code,
11158 : const tree, tree, tree, tree, tree, tree)
11159 : {
11160 0 : return NULL_TREE;
11161 : }
11162 :
11163 : tree
11164 0 : generic_simplify (location_t, enum tree_code,
11165 : const tree, tree, tree, tree, tree, tree, tree)
11166 : {
11167 0 : return NULL_TREE;
11168 : }
11169 :
11170 : tree
11171 0 : generic_simplify (location_t, enum tree_code,
11172 : const tree, tree, tree, tree, tree, tree, tree, tree)
11173 : {
11174 0 : return NULL_TREE;
11175 : }
11176 : void
11177 18370 : generic_dump_logs (const char *file1, int line1_id, const char *file2, int line2, bool simplify)
11178 : {
11179 18370 : static int dbg_line_numbers[1116] = {
11180 : /* 0 */ 159, 162, 171, 173, 176, 179, 181, 187, 195, 193,
11181 : /* 10 */ 197, 199, 986, 988, 2187, 2193, 2195, 2198, 2203, 2206,
11182 : /* 20 */ 2454, 2458, 2460, 2462, 2464, 2466, 2468, 2470, 2497, 2513,
11183 : /* 30 */ 2521, 2503, 3121, 3123, 3125, 3132, 3129, 3139, 3141, 3148,
11184 : /* 40 */ 3145, 3356, 3366, 5766, 9211, 9232, 11657, 11660, 11665, 2154,
11185 : /* 50 */ 9031, 1361, 1365, 1525, 1540, 1545, 1592, 1593, 1597, 1598,
11186 : /* 60 */ 1640, 1665, 1670, 1762, 1895, 1985, 1905, 2049, 1915, 1920,
11187 : /* 70 */ 2043, 1928, 2095, 2037, 2056, 2062, 2734, 2069, 2083, 2129,
11188 : /* 80 */ 2346, 2412, 2435, 2446, 2449, 2481, 2592, 2624, 4393, 4406,
11189 : /* 90 */ 4416, 3198, 3200, 4771, 4430, 4442, 7174, 7176, 7241, 7249,
11190 : /* 100 */ 10568, 10574, 280, 307, 308, 519, 1355, 1878, 1933, 1996,
11191 : /* 110 */ 3888, 3826, 3931, 3932, 3936, 3937, 3947, 3951, 3955, 3970,
11192 : /* 120 */ 3973, 3977, 3903, 3906, 3911, 4057, 4063, 4069, 4249, 4250,
11193 : /* 130 */ 4279, 4300, 4319, 4759, 5665, 7105, 7190, 7192, 8659, 8734,
11194 : /* 140 */ 10400, 10447, 10461, 11684, 12109, 970, 976, 1505, 1514, 2014,
11195 : /* 150 */ 2005, 1952, 2760, 3839, 3879, 3884, 3885, 3893, 3894, 3897,
11196 : /* 160 */ 3914, 3989, 3992, 3996, 4077, 4099, 4137, 4148, 4187, 4202,
11197 : /* 170 */ 4765, 7115, 8739, 10457, 11688, 5108, 1491, 1500, 1530, 1535,
11198 : /* 180 */ 1577, 1562, 1569, 1619, 2091, 1624, 1631, 1660, 1786, 1885,
11199 : /* 190 */ 1890, 1900, 1910, 2024, 2111, 2121, 2123, 2382, 2387, 2392,
11200 : /* 200 */ 2398, 2399, 2421, 2575, 2604, 2606, 2611, 2613, 2753, 3412,
11201 : /* 210 */ 3427, 3445, 3645, 3646, 3647, 3655, 3663, 3672, 3681, 3713,
11202 : /* 220 */ 3714, 3719, 3720, 3725, 3730, 3734, 3789, 3803, 3417, 3436,
11203 : /* 230 */ 3438, 3422, 5114, 7778, 9609, 12207, 12222, 487, 493, 525,
11204 : /* 240 */ 1300, 1320, 1325, 2179, 2180, 2217, 2769, 2550, 5350, 5651,
11205 : /* 250 */ 5658, 5708, 5711, 5761, 8652, 9066, 8896, 8903, 9060, 9105,
11206 : /* 260 */ 9110, 355, 932, 1373, 3040, 2836, 2842, 2845, 2850, 2486,
11207 : /* 270 */ 2748, 2539, 2686, 2924, 2787, 2797, 2866, 2868, 2869, 2872,
11208 : /* 280 */ 2874, 2875, 2877, 2879, 2881, 2883, 2885, 2887, 2901, 2902,
11209 : /* 290 */ 2958, 3046, 3071, 2987, 3014, 3054, 3059, 3084, 3091, 3157,
11210 : /* 300 */ 3761, 4701, 4709, 4712, 4718, 4721, 4748, 5142, 5143, 5177,
11211 : /* 310 */ 5181, 5310, 5150, 5151, 5195, 5198, 5199, 5204, 5207, 5210,
11212 : /* 320 */ 5211, 5163, 5166, 5383, 5387, 5392, 5676, 5828, 5832, 7201,
11213 : /* 330 */ 7217, 7219, 7231, 7261, 7267, 7268, 7283, 7284, 7288, 7306,
11214 : /* 340 */ 7311, 7343, 7351, 7361, 7370, 7374, 7380, 7387, 7403, 7407,
11215 : /* 350 */ 7411, 7418, 7419, 7424, 7425, 7432, 7433, 7435, 7436, 7452,
11216 : /* 360 */ 7463, 7475, 7479, 7481, 7486, 7489, 7492, 7500, 7562, 7563,
11217 : /* 370 */ 7567, 7568, 7575, 7579, 7583, 7586, 7592, 7593, 7597, 7600,
11218 : /* 380 */ 7607, 7627, 7630, 7633, 7636, 7685, 7688, 7692, 7699, 7705,
11219 : /* 390 */ 7713, 7722, 7723, 7821, 7831, 7870, 7876, 7892, 7905, 7907,
11220 : /* 400 */ 7909, 7920, 7948, 7990, 7969, 7970, 7977, 7979, 7995, 8001,
11221 : /* 410 */ 8006, 8015, 8021, 8027, 8032, 8037, 8069, 8132, 8051, 8061,
11222 : /* 420 */ 8161, 8180, 8182, 8184, 8186, 8188, 8190, 8194, 8196, 8219,
11223 : /* 430 */ 8242, 8353, 8360, 8361, 8369, 8370, 8572, 9653, 9655, 9733,
11224 : /* 440 */ 9735, 9736, 9742, 9758, 9760, 9762, 9780, 9781, 10185, 10188,
11225 : /* 450 */ 10202, 10211, 10275, 10276, 10330, 10332, 10408, 10999, 11001, 11003,
11226 : /* 460 */ 11437, 7197, 7208, 7210, 7318, 499, 1273, 1294, 9016, 9021,
11227 : /* 470 */ 9026, 559, 560, 571, 576, 583, 592, 600, 609, 655,
11228 : /* 480 */ 658, 867, 1021, 1049, 1080, 620, 897, 901, 906, 912,
11229 : /* 490 */ 916, 924, 1013, 771, 781, 783, 785, 8646, 9071, 9093,
11230 : /* 500 */ 9076, 9081, 9086, 9100, 9134, 9139, 842, 6480, 6482, 6484,
11231 : /* 510 */ 6584, 6587, 6770, 6772, 6786, 6790, 6813, 6819, 6830, 6892,
11232 : /* 520 */ 6907, 4795, 4815, 4822, 4828, 4834, 4840, 6898, 4808, 4851,
11233 : /* 530 */ 4864, 6391, 6694, 6698, 6706, 7044, 9626, 9627, 7054, 10628,
11234 : /* 540 */ 10636, 12250, 8085, 8086, 8100, 8101, 854, 857, 1737, 2810,
11235 : /* 550 */ 2813, 2932, 2944, 3029, 2973, 3000, 3112, 3115, 4571, 4582,
11236 : /* 560 */ 4731, 4739, 5035, 7139, 8497, 7735, 7738, 7764, 7765, 8267,
11237 : /* 570 */ 8269, 8271, 8273, 8277, 8279, 8281, 8283, 8287, 8292, 8299,
11238 : /* 580 */ 8304, 8324, 8326, 8328, 8330, 8510, 8523, 8533, 8541, 8551,
11239 : /* 590 */ 8673, 8675, 9667, 9676, 9716, 10253, 10255, 10256, 10311, 10314,
11240 : /* 600 */ 10316, 2826, 7129, 7808, 8747, 8752, 11020, 11022, 11024, 11026,
11241 : /* 610 */ 11030, 959, 995, 1345, 4899, 4986, 4989, 4997, 5088, 5090,
11242 : /* 620 */ 5091, 5092, 5322, 4950, 4959, 5883, 5886, 5887, 5895, 2357,
11243 : /* 630 */ 2367, 2374, 3772, 3777, 4536, 4643, 9492, 9494, 9525, 9560,
11244 : /* 640 */ 12053, 1237, 8964, 8985, 1246, 8708, 8714, 9011, 9439, 1260,
11245 : /* 650 */ 1264, 9006, 9189, 1473, 1557, 1605, 1550, 1582, 1613, 1655,
11246 : /* 660 */ 1696, 1707, 1718, 1730, 2636, 1967, 1975, 1980, 2103, 2476,
11247 : /* 670 */ 2775, 3352, 3382, 3384, 3394, 3396, 3503, 3504, 3505, 3513,
11248 : /* 680 */ 3521, 3530, 3539, 3573, 3574, 3579, 3580, 3585, 3590, 3594,
11249 : /* 690 */ 3402, 3407, 3452, 4776, 5281, 5299, 5300, 5854, 5860, 5908,
11250 : /* 700 */ 7333, 7781, 9595, 9597, 10442, 1645, 1650, 2713, 1817, 2718,
11251 : /* 710 */ 5361, 2693, 2724, 2728, 5375, 4686, 7166, 7168, 2224, 2238,
11252 : /* 720 */ 2698, 3864, 2263, 2286, 2287, 10056, 4449, 4453, 4463, 4481,
11253 : /* 730 */ 4512, 4521, 4595, 4598, 4607, 4608, 4626, 4628, 4630, 4632,
11254 : /* 740 */ 4681, 9617, 4467, 4474, 4459, 4653, 4662, 4665, 11229, 11235,
11255 : /* 750 */ 11243, 11249, 11258, 11264, 11272, 11278, 11324, 11332, 4886, 5060,
11256 : /* 760 */ 5070, 8601, 8604, 8623, 5804, 5816, 5819, 5823, 8385, 7326,
11257 : /* 770 */ 7322, 8582, 8589, 8724, 8729, 8830, 8927, 8944, 8976, 8996,
11258 : /* 780 */ 9001, 9252, 9229, 9208, 9037, 9041, 9332, 9342, 9349, 9358,
11259 : /* 790 */ 9376, 9383, 9364, 9632, 9638, 10046, 10052, 10049, 10069, 10074,
11260 : /* 800 */ 10080, 10088, 10094, 10102, 10108, 10118, 10124, 10132, 10138, 10146,
11261 : /* 810 */ 10152, 10160, 10166, 10220, 10422, 10437, 10473, 10727, 10730, 10535,
11262 : /* 820 */ 10549, 10562, 11406, 11421, 11512, 11513, 12162, 219, 2135, 2145,
11263 : /* 830 */ 5940, 2163, 1187, 2647, 3333, 5403, 5405, 5415, 5532, 5543,
11264 : /* 840 */ 5556, 5579, 5589, 5598, 5610, 5636, 5950, 6397, 1814, 1828,
11265 : /* 850 */ 1835, 1866, 1873, 2491, 2741, 2140, 2158, 2167, 2233, 2269,
11266 : /* 860 */ 2275, 3851, 7092, 3859, 10128, 10084, 10142, 10156, 10170, 10098,
11267 : /* 870 */ 10112, 5420, 5430, 5439, 5466, 5476, 5482, 5961, 5491, 5488,
11268 : /* 880 */ 5774, 5782, 5790, 5794, 5777, 5785, 5798, 5810, 237, 263,
11269 : /* 890 */ 1770, 1775, 2706, 2560, 3749, 4561, 5979, 5988, 5999, 6008,
11270 : /* 900 */ 12068, 753, 5723, 5729, 5731, 3205, 3209, 268, 3226, 3230,
11271 : /* 910 */ 3261, 3269, 3242, 3256, 286, 323, 1509, 1823, 1940, 1947,
11272 : /* 920 */ 1957, 1962, 2244, 3277, 3289, 3283, 3295, 2255, 2953, 2981,
11273 : /* 930 */ 3008, 2992, 3019, 4111, 4083, 4158, 4167, 4210, 4221, 4976,
11274 : /* 940 */ 5736, 5747, 12034, 12035, 1742, 1747, 7771, 11383, 11387, 273,
11275 : /* 950 */ 326, 2962, 2965, 3302, 3309, 3316, 3322, 4120, 3327, 4176,
11276 : /* 960 */ 4230, 5739, 399, 330, 367, 376, 384, 458, 473, 481,
11277 : /* 970 */ 672, 712, 1030, 1225, 1230, 1328, 1331, 1465, 2545, 5752,
11278 : /* 980 */ 8681, 8687, 8878, 9128, 2667, 6187, 6197, 7838, 8417, 8477,
11279 : /* 990 */ 8478, 2657, 8411, 635, 638, 762, 791, 797, 803, 811,
11280 : /* 1000 */ 816, 821, 885, 889, 8693, 8699, 8335, 943, 1420, 4915,
11281 : /* 1010 */ 1409, 1412, 1444, 1455, 4892, 4981, 5121, 1479, 1677, 1752,
11282 : /* 1020 */ 1780, 2426, 5127, 5128, 7775, 12041, 4488, 4492, 4553, 4554,
11283 : /* 1030 */ 4674, 4499, 4503, 4544, 4545, 5041, 5771, 8393, 8395, 8402,
11284 : /* 1040 */ 8404, 7330, 6914, 4782, 6019, 4879, 6028, 6713, 6718, 6865,
11285 : /* 1050 */ 6867, 6873, 6882, 6883, 5926, 5928, 6920, 6923, 6932, 6936,
11286 : /* 1060 */ 6941, 6970, 6975, 7041, 6983, 6988, 7051, 8115, 8117, 7007,
11287 : /* 1070 */ 7008, 7009, 7064, 7031, 7032, 7033, 7079, 7080, 8146, 8151,
11288 : /* 1080 */ 6949, 5932, 5934, 6208, 6210, 9788, 9794, 9799, 9808, 9810,
11289 : /* 1090 */ 9830, 9875, 9878, 9879, 9911, 9917, 9919, 9920, 9976, 9977,
11290 : /* 1100 */ 9998, 10003, 10008, 10038, 11537, 11539, 11574, 11649, 11652, 11737,
11291 : /* 1110 */ 11672, 11678, 11806, 11808, 11870, 11872
11292 : };
11293 :
11294 27436 : fprintf (dump_file, "%s %s:%d, %s:%d\n",
11295 : simplify ? "Applying pattern" : "Matching expression", file1, dbg_line_numbers[line1_id], file2, line2);
11296 18370 : }
11297 :
11298 : #pragma GCC diagnostic pop
|