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 110030883 : tree_zero_one_valued_p (tree t)
11 : {
12 110030883 : const tree type = TREE_TYPE (t);
13 110030883 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 110030883 : if (TREE_SIDE_EFFECTS (t)) return false;
15 103794459 : {
16 103794459 : tree captures[1] ATTRIBUTE_UNUSED = { t };
17 207588918 : if (INTEGRAL_TYPE_P (type)
18 71642994 : && (TYPE_UNSIGNED (type)
19 13553966 : || TYPE_PRECISION (type) > 1)
20 247078794 : && wi::leu_p (tree_nonzero_bits (captures[0]), 1)
21 : )
22 : {
23 1244663 : {
24 1244663 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 28, __FILE__, __LINE__, false);
25 110030883 : return true;
26 : }
27 : }
28 : }
29 102549796 : switch (TREE_CODE (t))
30 : {
31 300180 : case BIT_AND_EXPR:
32 300180 : {
33 300180 : tree _p0 = TREE_OPERAND (t, 0);
34 300180 : tree _p1 = TREE_OPERAND (t, 1);
35 300180 : if (integer_onep (_p1))
36 : {
37 0 : {
38 0 : tree captures[2] ATTRIBUTE_UNUSED = { t, _p0 };
39 0 : if (INTEGRAL_TYPE_P (type)
40 : )
41 : {
42 0 : {
43 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 29, __FILE__, __LINE__, false);
44 : return true;
45 : }
46 : }
47 : }
48 : }
49 300180 : if (integer_onep (_p0))
50 : {
51 0 : {
52 0 : tree captures[2] ATTRIBUTE_UNUSED = { t, _p1 };
53 0 : if (INTEGRAL_TYPE_P (type)
54 : )
55 : {
56 0 : {
57 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 29, __FILE__, __LINE__, false);
58 : return true;
59 : }
60 : }
61 : }
62 : }
63 : break;
64 : }
65 45110248 : CASE_CONVERT:
66 45110248 : {
67 45110248 : tree _p0 = TREE_OPERAND (t, 0);
68 45110248 : {
69 45110248 : tree captures[2] ATTRIBUTE_UNUSED = { t, _p0 };
70 90213403 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
71 40466695 : && (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
72 35724613 : || TYPE_PRECISION (TREE_TYPE (captures[1])) > 1)
73 40466687 : && INTEGRAL_TYPE_P (type)
74 40466673 : && (TYPE_UNSIGNED (type)
75 1923456 : || TYPE_PRECISION (type) > 1)
76 130687169 : && wi::leu_p (tree_nonzero_bits (captures[1]), 1)
77 : )
78 : {
79 0 : {
80 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 30, __FILE__, __LINE__, false);
81 : return true;
82 : }
83 : }
84 : }
85 : break;
86 : }
87 102549796 : default:;
88 : }
89 102549796 : if (tree_truth_valued_p (t))
90 : {
91 174380 : {
92 174380 : tree captures[1] ATTRIBUTE_UNUSED = { t };
93 174380 : if (INTEGRAL_TYPE_P (type)
94 174380 : && (TYPE_UNSIGNED (type)
95 174019 : || TYPE_PRECISION (type) > 1)
96 : )
97 : {
98 172727 : {
99 172727 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 31, __FILE__, __LINE__, false);
100 : return true;
101 : }
102 : }
103 : }
104 : }
105 : return false;
106 : }
107 :
108 : tree
109 1 : generic_simplify_2 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
110 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
111 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
112 : {
113 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
114 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail73;
115 1 : {
116 1 : tree res_op0;
117 1 : res_op0 = captures[0];
118 1 : tree _r;
119 1 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
120 1 : if (TREE_SIDE_EFFECTS (captures[1]))
121 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
122 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 50, __FILE__, __LINE__, true);
123 : return _r;
124 : }
125 0 : next_after_fail73:;
126 0 : return NULL_TREE;
127 : }
128 :
129 : tree
130 90 : generic_simplify_10 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
131 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
132 : {
133 90 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
134 90 : {
135 90 : bool wascmp;
136 90 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
137 90 : && (!wascmp || element_precision (type) == 1)
138 : )
139 : {
140 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail84;
141 0 : {
142 0 : tree _r;
143 0 : _r = captures[0];
144 0 : if (TREE_SIDE_EFFECTS (captures[1]))
145 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
146 0 : if (TREE_SIDE_EFFECTS (captures[2]))
147 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
148 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 59, __FILE__, __LINE__, true);
149 0 : return _r;
150 : }
151 0 : next_after_fail84:;
152 : }
153 : }
154 90 : return NULL_TREE;
155 : }
156 :
157 : tree
158 1 : generic_simplify_16 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
159 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
160 : {
161 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
162 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail90;
163 1 : {
164 1 : tree res_op0;
165 1 : res_op0 = captures[1];
166 1 : tree res_op1;
167 1 : {
168 1 : tree _o1[1], _r1;
169 1 : _o1[0] = captures[2];
170 1 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
171 1 : res_op1 = _r1;
172 : }
173 1 : tree _r;
174 1 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
175 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 65, __FILE__, __LINE__, true);
176 : return _r;
177 : }
178 0 : next_after_fail90:;
179 0 : return NULL_TREE;
180 : }
181 :
182 : tree
183 151 : generic_simplify_26 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
184 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
185 : const enum tree_code ARG_UNUSED (opo),
186 : const enum tree_code ARG_UNUSED (opi))
187 : {
188 151 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
189 151 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail100;
190 151 : {
191 151 : tree res_op0;
192 151 : {
193 151 : tree _o1[1], _r1;
194 151 : _o1[0] = captures[1];
195 151 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
196 151 : res_op0 = _r1;
197 : }
198 151 : tree res_op1;
199 151 : res_op1 = captures[2];
200 151 : tree _r;
201 151 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
202 151 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 75, __FILE__, __LINE__, true);
203 : return _r;
204 : }
205 0 : next_after_fail100:;
206 0 : return NULL_TREE;
207 : }
208 :
209 : tree
210 0 : generic_simplify_33 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
211 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
212 : const enum tree_code ARG_UNUSED (op),
213 : const enum tree_code ARG_UNUSED (cmp),
214 : const enum tree_code ARG_UNUSED (icmp))
215 : {
216 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
217 0 : if (INTEGRAL_TYPE_P (type)
218 0 : && invert_tree_comparison (cmp, HONOR_NANS (captures[1])) == icmp
219 0 : && canonicalize_math_after_vectorization_p ()
220 : )
221 : {
222 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail109;
223 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail109;
224 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail109;
225 : {
226 : tree res_op0;
227 : res_op0 = captures[0];
228 : tree res_op1;
229 : res_op1 = captures[3];
230 : tree res_op2;
231 : res_op2 = captures[5];
232 : tree _r;
233 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
234 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 83, __FILE__, __LINE__, true);
235 : return _r;
236 : }
237 0 : next_after_fail109:;
238 : }
239 0 : return NULL_TREE;
240 : }
241 :
242 : tree
243 19 : generic_simplify_40 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
244 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
245 : const enum tree_code ARG_UNUSED (op))
246 : {
247 19 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
248 38 : if (INTEGRAL_TYPE_P (type)
249 19 : && operand_equal_p (captures[2], captures[6], 0)
250 38 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[4])) == 0
251 : )
252 : {
253 0 : {
254 0 : tree t = type;
255 0 : if (!TYPE_OVERFLOW_WRAPS (t))
256 0 : t = unsigned_type_for (t);
257 0 : wide_int c = wi::add (wi::to_wide (captures[3]), wi::to_wide (captures[7]));
258 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail117;
259 0 : if (TREE_SIDE_EFFECTS (captures[7])) goto next_after_fail117;
260 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail117;
261 0 : {
262 0 : tree res_op0;
263 0 : {
264 0 : tree _o1[2], _r1;
265 0 : {
266 0 : tree _o2[1], _r2;
267 0 : _o2[0] = captures[2];
268 0 : if (TREE_TYPE (_o2[0]) != t)
269 : {
270 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
271 : }
272 : else
273 : _r2 = _o2[0];
274 0 : _o1[0] = _r2;
275 : }
276 0 : _o1[1] = wide_int_to_tree (t, c);
277 0 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
278 0 : res_op0 = _r1;
279 : }
280 0 : tree _r;
281 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
282 0 : if (TREE_SIDE_EFFECTS (captures[6]))
283 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), _r);
284 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 85, __FILE__, __LINE__, true);
285 0 : return _r;
286 : }
287 0 : next_after_fail117:;
288 0 : }
289 : }
290 : return NULL_TREE;
291 : }
292 :
293 : tree
294 0 : generic_simplify_52 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
295 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
296 : {
297 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
298 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
299 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
300 0 : && !TYPE_SATURATING (TREE_TYPE (captures[0]))
301 0 : && (
302 :
303 0 : || !TREE_SIDE_EFFECTS (captures[0]))
304 : )
305 : {
306 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail131;
307 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail131;
308 0 : {
309 0 : tree res_op0;
310 0 : res_op0 = captures[0];
311 0 : tree _r;
312 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
313 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 100, __FILE__, __LINE__, true);
314 : return _r;
315 : }
316 0 : next_after_fail131:;
317 : }
318 : return NULL_TREE;
319 : }
320 :
321 : tree
322 0 : generic_simplify_59 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
323 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
324 : {
325 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
326 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail139;
327 0 : {
328 0 : tree res_op0;
329 0 : res_op0 = captures[0];
330 0 : tree res_op1;
331 0 : res_op1 = captures[1];
332 0 : tree _r;
333 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
334 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 108, __FILE__, __LINE__, true);
335 : return _r;
336 : }
337 0 : next_after_fail139:;
338 0 : return NULL_TREE;
339 : }
340 :
341 : tree
342 2 : generic_simplify_63 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
343 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
344 : {
345 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
346 2 : if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
347 2 : && !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
348 2 : && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[0]))
349 4 : && !TYPE_SATURATING (TREE_TYPE (captures[0]))
350 : )
351 : {
352 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail143;
353 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail143;
354 2 : {
355 2 : tree res_op0;
356 2 : {
357 2 : tree _o1[1], _r1;
358 2 : {
359 2 : tree _o2[2], _r2;
360 2 : _o2[0] = captures[1];
361 2 : _o2[1] = captures[2];
362 2 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
363 2 : _o1[0] = _r2;
364 : }
365 2 : if (TREE_TYPE (_o1[0]) != type)
366 : {
367 1 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
368 : }
369 : else
370 : _r1 = _o1[0];
371 2 : res_op0 = _r1;
372 : }
373 2 : tree _r;
374 2 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
375 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 111, __FILE__, __LINE__, true);
376 : return _r;
377 : }
378 2 : next_after_fail143:;
379 : }
380 : return NULL_TREE;
381 : }
382 :
383 : tree
384 2339903 : generic_simplify_74 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
385 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
386 : const enum tree_code ARG_UNUSED (plusminus))
387 : {
388 2339903 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
389 2339903 : if (!TYPE_SATURATING (type)
390 2339903 : && (!FLOAT_TYPE_P (type) || flag_associative_math)
391 : )
392 : {
393 113 : if (!ANY_INTEGRAL_TYPE_P (type)
394 2339676 : || TYPE_OVERFLOW_WRAPS (type)
395 4068461 : || (INTEGRAL_TYPE_P (type)
396 1728672 : && tree_expr_nonzero_p (captures[1])
397 3273089 : && expr_not_equal_to (captures[1], wi::minus_one (TYPE_PRECISION (type)),
398 : gimple_match_ctx (captures[0])))
399 : )
400 : {
401 1544113 : if (single_use (captures[0]) || single_use (captures[3])
402 : )
403 : {
404 1544113 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail162;
405 1544113 : {
406 1544113 : tree res_op0;
407 1544113 : {
408 1544113 : tree _o1[2], _r1;
409 1544113 : _o1[0] = captures[2];
410 1544113 : _o1[1] = captures[4];
411 1544113 : _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
412 1544113 : res_op0 = _r1;
413 : }
414 1544113 : tree res_op1;
415 1544113 : res_op1 = captures[1];
416 1544113 : tree _r;
417 1544113 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
418 1544113 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 130, __FILE__, __LINE__, true);
419 : return _r;
420 : }
421 0 : next_after_fail162:;
422 : }
423 : else
424 : {
425 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail163;
426 : {
427 : tree res_op0;
428 : {
429 : tree _o1[2], _r1;
430 : _o1[0] = captures[2];
431 : _o1[1] = captures[4];
432 : _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
433 : res_op0 = _r1;
434 : }
435 : tree res_op1;
436 : res_op1 = captures[1];
437 : tree _r;
438 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
439 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 131, __FILE__, __LINE__, true);
440 : return _r;
441 : }
442 : next_after_fail163:;
443 : }
444 : }
445 : }
446 : return NULL_TREE;
447 : }
448 :
449 : tree
450 4 : generic_simplify_86 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
451 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
452 : const combined_fn ARG_UNUSED (POPCOUNT))
453 : {
454 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
455 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail176;
456 4 : {
457 4 : tree res_op0;
458 4 : {
459 4 : tree _o1[1], _r1;
460 4 : _o1[0] = captures[2];
461 4 : _r1 = maybe_build_call_expr_loc (loc, POPCOUNT, type, 1, _o1[0]);
462 4 : if (!_r1)
463 0 : goto next_after_fail176;
464 4 : res_op0 = _r1;
465 : }
466 4 : tree res_op1;
467 4 : {
468 4 : tree _o1[1], _r1;
469 4 : _o1[0] = captures[3];
470 4 : _r1 = maybe_build_call_expr_loc (loc, POPCOUNT, type, 1, _o1[0]);
471 4 : if (!_r1)
472 0 : goto next_after_fail176;
473 4 : res_op1 = _r1;
474 : }
475 4 : tree _r;
476 4 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
477 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 144, __FILE__, __LINE__, true);
478 : return _r;
479 : }
480 4 : next_after_fail176:;
481 : return NULL_TREE;
482 : }
483 :
484 : tree
485 0 : generic_simplify_94 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
486 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
487 : {
488 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
489 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail184;
490 0 : {
491 0 : tree res_op0;
492 0 : res_op0 = unshare_expr (captures[2]);
493 0 : tree res_op1;
494 0 : {
495 0 : tree _o1[2], _r1;
496 0 : _o1[0] = captures[1];
497 0 : _o1[1] = captures[2];
498 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
499 0 : res_op1 = _r1;
500 : }
501 0 : tree _r;
502 0 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
503 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 152, __FILE__, __LINE__, true);
504 : return _r;
505 : }
506 0 : next_after_fail184:;
507 0 : return NULL_TREE;
508 : }
509 :
510 : tree
511 1 : generic_simplify_101 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
512 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
513 : {
514 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
515 1 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
516 1 : && tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
517 : )
518 : {
519 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail191;
520 1 : {
521 1 : tree res_op0;
522 1 : {
523 1 : tree _o1[2], _r1;
524 1 : {
525 1 : tree _o2[1], _r2;
526 1 : _o2[0] = captures[3];
527 1 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
528 1 : _o1[0] = _r2;
529 : }
530 1 : _o1[1] = captures[0];
531 1 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
532 1 : res_op0 = _r1;
533 : }
534 1 : tree _r;
535 1 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
536 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 159, __FILE__, __LINE__, true);
537 : return _r;
538 : }
539 0 : next_after_fail191:;
540 : }
541 : return NULL_TREE;
542 : }
543 :
544 : tree
545 664 : generic_simplify_109 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
546 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
547 : {
548 664 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
549 664 : if (!TYPE_SATURATING (type)
550 : )
551 : {
552 664 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
553 1328 : && !FIXED_POINT_TYPE_P (type)
554 : )
555 : {
556 664 : if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type)
557 : )
558 : {
559 24 : if (!CONSTANT_CLASS_P (captures[2])
560 : )
561 : {
562 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail201;
563 24 : {
564 24 : tree res_op0;
565 24 : {
566 24 : tree _o1[1], _r1;
567 24 : _o1[0] = captures[2];
568 24 : if (TREE_TYPE (_o1[0]) != type)
569 : {
570 24 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
571 : }
572 : else
573 : _r1 = _o1[0];
574 24 : res_op0 = _r1;
575 : }
576 24 : tree res_op1;
577 24 : {
578 24 : tree _o1[2], _r1;
579 24 : _o1[0] = captures[0];
580 24 : {
581 24 : tree _o2[1], _r2;
582 24 : _o2[0] = captures[1];
583 24 : if (TREE_TYPE (_o2[0]) != type)
584 : {
585 24 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
586 : }
587 : else
588 : _r2 = _o2[0];
589 24 : _o1[1] = _r2;
590 : }
591 24 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
592 24 : if (EXPR_P (_r1))
593 0 : goto next_after_fail201;
594 24 : res_op1 = _r1;
595 : }
596 24 : tree _r;
597 24 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
598 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 168, __FILE__, __LINE__, true);
599 : return _r;
600 : }
601 664 : next_after_fail201:;
602 : }
603 : }
604 : else
605 : {
606 1280 : if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
607 1280 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
608 : )
609 : {
610 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail202;
611 1 : {
612 1 : tree res_op0;
613 1 : {
614 1 : tree _o1[2], _r1;
615 1 : _o1[0] = captures[2];
616 1 : {
617 1 : tree _o2[2], _r2;
618 1 : {
619 1 : tree _o3[1], _r3;
620 1 : _o3[0] = captures[0];
621 1 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o1[0]))
622 : {
623 1 : _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
624 : }
625 : else
626 : _r3 = _o3[0];
627 1 : _o2[0] = _r3;
628 : }
629 1 : _o2[1] = captures[1];
630 1 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
631 1 : if (EXPR_P (_r2))
632 0 : goto next_after_fail202;
633 1 : _o1[1] = _r2;
634 : }
635 1 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
636 1 : res_op0 = _r1;
637 : }
638 1 : tree _r;
639 1 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
640 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 169, __FILE__, __LINE__, true);
641 : return _r;
642 : }
643 664 : next_after_fail202:;
644 : }
645 : else
646 : {
647 639 : if (types_match (type, captures[2]) && !TYPE_OVERFLOW_SANITIZED (type)
648 : )
649 : {
650 630 : {
651 630 : tree cst = const_binop (MINUS_EXPR, type, captures[0], captures[1]);
652 630 : if (cst && !TREE_OVERFLOW (cst)
653 : )
654 : {
655 630 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail203;
656 630 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail203;
657 630 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail203;
658 630 : {
659 630 : tree res_op0;
660 630 : res_op0 = cst;
661 630 : tree res_op1;
662 630 : res_op1 = captures[2];
663 630 : tree _r;
664 630 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
665 630 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 170, __FILE__, __LINE__, true);
666 : return _r;
667 : }
668 664 : next_after_fail203:;
669 : }
670 : }
671 : }
672 : }
673 : }
674 : }
675 : }
676 : return NULL_TREE;
677 : }
678 :
679 : tree
680 20455 : generic_simplify_131 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
681 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
682 : {
683 20455 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
684 20455 : {
685 20455 : bool wascmp;
686 20455 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
687 20455 : && (!wascmp || element_precision (type) == 1)
688 : )
689 : {
690 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail231;
691 1 : {
692 1 : tree res_op0;
693 1 : res_op0 = captures[0];
694 1 : tree res_op1;
695 1 : {
696 1 : tree _o1[1], _r1;
697 1 : _o1[0] = captures[3];
698 1 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
699 1 : res_op1 = _r1;
700 : }
701 1 : tree _r;
702 1 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
703 1 : if (TREE_SIDE_EFFECTS (captures[2]))
704 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
705 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 195, __FILE__, __LINE__, true);
706 1 : return _r;
707 : }
708 0 : next_after_fail231:;
709 : }
710 : }
711 20454 : return NULL_TREE;
712 : }
713 :
714 : tree
715 93 : generic_simplify_144 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
716 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
717 : const enum tree_code ARG_UNUSED (op),
718 : const enum tree_code ARG_UNUSED (rop))
719 : {
720 93 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
721 93 : if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
722 93 : && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
723 : )
724 : {
725 61 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail244;
726 61 : {
727 61 : tree res_op0;
728 61 : {
729 61 : tree _o1[2], _r1;
730 61 : {
731 61 : tree _o2[1], _r2;
732 61 : _o2[0] = captures[0];
733 61 : if (TREE_TYPE (_o2[0]) != type)
734 : {
735 1 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
736 : }
737 : else
738 : _r2 = _o2[0];
739 61 : _o1[0] = _r2;
740 : }
741 61 : {
742 61 : tree _o2[1], _r2;
743 61 : _o2[0] = captures[1];
744 61 : if (TREE_TYPE (_o2[0]) != type)
745 : {
746 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
747 : }
748 : else
749 : _r2 = _o2[0];
750 61 : _o1[1] = _r2;
751 : }
752 61 : _r1 = fold_build2_loc (loc, rop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
753 61 : res_op0 = _r1;
754 : }
755 61 : tree _r;
756 61 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
757 61 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 204, __FILE__, __LINE__, true);
758 : return _r;
759 : }
760 0 : next_after_fail244:;
761 : }
762 : return NULL_TREE;
763 : }
764 :
765 : tree
766 82 : generic_simplify_158 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
767 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
768 : const enum tree_code ARG_UNUSED (op))
769 : {
770 82 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
771 82 : if (bitwise_equal_p (captures[4], captures[7])
772 : )
773 : {
774 16 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail263;
775 16 : {
776 16 : tree res_op0;
777 16 : {
778 16 : tree _o1[2], _r1;
779 16 : {
780 16 : tree _o2[2], _r2;
781 16 : _o2[0] = captures[5];
782 16 : {
783 16 : tree _o3[1], _r3;
784 16 : _o3[0] = captures[6];
785 16 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
786 : {
787 16 : _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
788 : }
789 : else
790 : _r3 = _o3[0];
791 16 : _o2[1] = _r3;
792 : }
793 16 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
794 16 : _o1[0] = _r2;
795 : }
796 16 : {
797 16 : tree _o2[1], _r2;
798 16 : _o2[0] = captures[4];
799 16 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
800 : {
801 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
802 : }
803 : else
804 : _r2 = _o2[0];
805 16 : _o1[1] = _r2;
806 : }
807 16 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
808 16 : res_op0 = _r1;
809 : }
810 16 : tree _r;
811 16 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
812 16 : if (TREE_SIDE_EFFECTS (captures[7]))
813 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
814 16 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 213, __FILE__, __LINE__, true);
815 : return _r;
816 : }
817 0 : next_after_fail263:;
818 : }
819 : return NULL_TREE;
820 : }
821 :
822 : tree
823 3 : generic_simplify_168 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
824 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
825 : const enum tree_code ARG_UNUSED (code2),
826 : const enum tree_code ARG_UNUSED (code1))
827 : {
828 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
829 3 : if ((TREE_CODE (captures[2]) == INTEGER_CST
830 0 : && TREE_CODE (captures[5]) == INTEGER_CST)
831 3 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
832 3 : || (VECTOR_TYPE_P (TREE_TYPE (captures[2])))
833 0 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
834 3 : && bitwise_equal_p (captures[2], captures[5]))
835 : )
836 : {
837 3 : {
838 3 : bool one_before = false;
839 3 : bool one_after = false;
840 3 : int cmp = 0;
841 3 : bool allbits = true;
842 3 : if (TREE_CODE (captures[2]) == INTEGER_CST
843 0 : && TREE_CODE (captures[5]) == INTEGER_CST)
844 : {
845 0 : allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
846 0 : auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
847 0 : auto t2 = wi::to_wide (captures[5]);
848 0 : cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
849 0 : if (cmp < 0
850 0 : && t1 == t2 - 1)
851 : one_before = true;
852 0 : if (cmp > 0
853 0 : && t1 == t2 + 1)
854 : one_after = true;
855 : }
856 3 : bool val;
857 3 : switch (code2)
858 : {
859 0 : case EQ_EXPR: val = (cmp == 0); break;
860 0 : case NE_EXPR: val = (cmp != 0); break;
861 0 : case LT_EXPR: val = (cmp < 0); break;
862 3 : case GT_EXPR: val = (cmp > 0); break;
863 0 : case LE_EXPR: val = (cmp <= 0); break;
864 0 : case GE_EXPR: val = (cmp >= 0); break;
865 0 : default: gcc_unreachable ();
866 : }
867 3 : if (code1 == EQ_EXPR && val
868 : )
869 : {
870 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail276;
871 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail276;
872 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail276;
873 0 : {
874 0 : tree _r;
875 0 : _r = captures[3];
876 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 223, __FILE__, __LINE__, true);
877 : return _r;
878 : }
879 3 : next_after_fail276:;
880 : }
881 : else
882 : {
883 3 : if (code1 == NE_EXPR && val && allbits
884 : )
885 : {
886 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail277;
887 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail277;
888 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail277;
889 0 : {
890 0 : tree _r;
891 0 : _r = constant_boolean_node (true, type);
892 0 : if (TREE_SIDE_EFFECTS (captures[1]))
893 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
894 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 224, __FILE__, __LINE__, true);
895 : return _r;
896 : }
897 3 : next_after_fail277:;
898 : }
899 : else
900 : {
901 3 : if (code1 == NE_EXPR && !val && allbits
902 : )
903 : {
904 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail278;
905 0 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail278;
906 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail278;
907 0 : {
908 0 : tree _r;
909 0 : _r = captures[0];
910 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 225, __FILE__, __LINE__, true);
911 : return _r;
912 : }
913 3 : next_after_fail278:;
914 : }
915 : else
916 : {
917 3 : if (code1 == EQ_EXPR
918 3 : && code2 == GT_EXPR
919 3 : && cmp == 0
920 3 : && allbits
921 6 : && ((VECTOR_BOOLEAN_TYPE_P (type)
922 3 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
923 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
924 : )
925 : {
926 3 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail279;
927 3 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail279;
928 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail279;
929 3 : {
930 3 : tree res_op0;
931 3 : res_op0 = captures[4];
932 3 : tree res_op1;
933 3 : res_op1 = captures[5];
934 3 : tree _r;
935 3 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
936 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 226, __FILE__, __LINE__, true);
937 : return _r;
938 : }
939 3 : next_after_fail279:;
940 : }
941 : else
942 : {
943 0 : if (code1 == EQ_EXPR
944 0 : && code2 == LT_EXPR
945 0 : && cmp == 0
946 0 : && allbits
947 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
948 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
949 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
950 : )
951 : {
952 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail280;
953 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail280;
954 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail280;
955 0 : {
956 0 : tree res_op0;
957 0 : res_op0 = captures[4];
958 0 : tree res_op1;
959 0 : res_op1 = captures[5];
960 0 : tree _r;
961 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
962 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 227, __FILE__, __LINE__, true);
963 : return _r;
964 : }
965 3 : next_after_fail280:;
966 : }
967 : else
968 : {
969 0 : if (code1 == EQ_EXPR
970 0 : && code2 == GE_EXPR
971 : && one_before
972 0 : && allbits
973 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
974 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
975 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
976 : )
977 : {
978 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail281;
979 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail281;
980 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail281;
981 0 : {
982 0 : tree res_op0;
983 0 : res_op0 = captures[4];
984 0 : tree res_op1;
985 0 : {
986 0 : tree _o1[1], _r1;
987 0 : _o1[0] = captures[2];
988 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
989 : {
990 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
991 : }
992 : else
993 : _r1 = _o1[0];
994 0 : res_op1 = _r1;
995 : }
996 0 : tree _r;
997 0 : _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
998 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 228, __FILE__, __LINE__, true);
999 : return _r;
1000 : }
1001 3 : next_after_fail281:;
1002 : }
1003 : else
1004 : {
1005 0 : if (code1 == EQ_EXPR
1006 0 : && code2 == LE_EXPR
1007 : && one_after
1008 0 : && allbits
1009 0 : && ((VECTOR_BOOLEAN_TYPE_P (type)
1010 0 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
1011 0 : || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
1012 : )
1013 : {
1014 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail282;
1015 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail282;
1016 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail282;
1017 0 : {
1018 0 : tree res_op0;
1019 0 : res_op0 = captures[4];
1020 0 : tree res_op1;
1021 0 : {
1022 0 : tree _o1[1], _r1;
1023 0 : _o1[0] = captures[2];
1024 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1025 : {
1026 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1027 : }
1028 : else
1029 : _r1 = _o1[0];
1030 0 : res_op1 = _r1;
1031 : }
1032 0 : tree _r;
1033 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1034 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 229, __FILE__, __LINE__, true);
1035 : return _r;
1036 : }
1037 3 : next_after_fail282:;
1038 : }
1039 : }
1040 : }
1041 : }
1042 : }
1043 : }
1044 : }
1045 : }
1046 : }
1047 : return NULL_TREE;
1048 : }
1049 :
1050 : tree
1051 8 : generic_simplify_212 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1052 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1053 : const combined_fn ARG_UNUSED (POW))
1054 : {
1055 8 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1056 8 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1057 : )
1058 : {
1059 8 : if (!TREE_OVERFLOW (captures[2])
1060 : )
1061 : {
1062 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail356;
1063 8 : {
1064 8 : tree res_op0;
1065 8 : res_op0 = captures[0];
1066 8 : tree res_op1;
1067 8 : {
1068 8 : tree _o1[2], _r1;
1069 8 : _o1[0] = captures[2];
1070 8 : _o1[1] = build_one_cst (type);
1071 8 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1072 8 : res_op1 = _r1;
1073 : }
1074 8 : tree _r;
1075 8 : _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
1076 8 : if (!_r)
1077 0 : goto next_after_fail356;
1078 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 268, __FILE__, __LINE__, true);
1079 : return _r;
1080 : }
1081 8 : next_after_fail356:;
1082 : }
1083 : }
1084 : return NULL_TREE;
1085 : }
1086 :
1087 : tree
1088 20980 : generic_simplify_219 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1089 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1090 : const enum tree_code ARG_UNUSED (cmp),
1091 : const enum tree_code ARG_UNUSED (mod))
1092 : {
1093 20980 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1094 20980 : if (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1095 : )
1096 : {
1097 20980 : {
1098 20980 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
1099 20980 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail363;
1100 20980 : {
1101 20980 : tree res_op0;
1102 20980 : {
1103 20980 : tree _o1[2], _r1;
1104 20980 : {
1105 20980 : tree _o2[1], _r2;
1106 20980 : _o2[0] = captures[0];
1107 20980 : if (TREE_TYPE (_o2[0]) != utype)
1108 : {
1109 20980 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
1110 : }
1111 : else
1112 : _r2 = _o2[0];
1113 20980 : _o1[0] = _r2;
1114 : }
1115 20980 : {
1116 20980 : tree _o2[1], _r2;
1117 20980 : _o2[0] = captures[1];
1118 20980 : if (TREE_TYPE (_o2[0]) != utype)
1119 : {
1120 20980 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
1121 : }
1122 : else
1123 : _r2 = _o2[0];
1124 20980 : _o1[1] = _r2;
1125 : }
1126 20980 : _r1 = fold_build2_loc (loc, mod, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1127 20980 : res_op0 = _r1;
1128 : }
1129 20980 : tree res_op1;
1130 20980 : {
1131 20980 : tree _o1[1], _r1;
1132 20980 : _o1[0] = captures[2];
1133 20980 : if (TREE_TYPE (_o1[0]) != utype)
1134 : {
1135 20980 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
1136 : }
1137 : else
1138 : _r1 = _o1[0];
1139 20980 : res_op1 = _r1;
1140 : }
1141 20980 : tree _r;
1142 20980 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1143 20980 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 275, __FILE__, __LINE__, true);
1144 : return _r;
1145 : }
1146 0 : next_after_fail363:;
1147 : }
1148 : }
1149 : return NULL_TREE;
1150 : }
1151 :
1152 : tree
1153 6149 : generic_simplify_233 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1154 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1155 : const enum tree_code ARG_UNUSED (op))
1156 : {
1157 6149 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1158 6149 : if (tree_nop_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
1159 6149 : && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
1160 6149 : && (CONSTANT_CLASS_P (captures[3]) || (single_use (captures[1]) && single_use (captures[0])))
1161 : )
1162 : {
1163 6149 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail394;
1164 6149 : {
1165 6149 : tree res_op0;
1166 6149 : res_op0 = captures[3];
1167 6149 : tree res_op1;
1168 6149 : res_op1 = build_zero_cst (TREE_TYPE (captures[3]));
1169 6149 : tree _r;
1170 6149 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1171 6149 : if (TREE_SIDE_EFFECTS (captures[2]))
1172 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1173 6149 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 305, __FILE__, __LINE__, true);
1174 : return _r;
1175 : }
1176 0 : next_after_fail394:;
1177 : }
1178 : return NULL_TREE;
1179 : }
1180 :
1181 : tree
1182 104 : generic_simplify_241 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1183 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1184 : const enum tree_code ARG_UNUSED (cmp),
1185 : const enum tree_code ARG_UNUSED (ocmp))
1186 : {
1187 104 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1188 104 : if (!integer_zerop (captures[1])
1189 22 : && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[1]))
1190 116 : && (VECTOR_TYPE_P (type) || !VECTOR_TYPE_P (TREE_TYPE (captures[0])))
1191 : )
1192 : {
1193 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail402;
1194 12 : {
1195 12 : tree res_op0;
1196 12 : res_op0 = captures[0];
1197 12 : tree res_op1;
1198 12 : res_op1 = captures[1];
1199 12 : tree _r;
1200 12 : _r = fold_build2_loc (loc, ocmp, type, res_op0, res_op1);
1201 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 312, __FILE__, __LINE__, true);
1202 : return _r;
1203 : }
1204 0 : next_after_fail402:;
1205 : }
1206 : return NULL_TREE;
1207 : }
1208 :
1209 : tree
1210 738 : generic_simplify_248 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1211 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1212 : const enum tree_code ARG_UNUSED (cmp))
1213 : {
1214 738 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1215 738 : if (wi::gt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
1216 738 : TYPE_SIGN (TREE_TYPE (captures[0])))
1217 : )
1218 : {
1219 42 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail410;
1220 42 : {
1221 42 : tree _r;
1222 42 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1223 42 : if (TREE_SIDE_EFFECTS (captures[0]))
1224 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1225 42 : if (TREE_SIDE_EFFECTS (captures[1]))
1226 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1227 42 : if (TREE_SIDE_EFFECTS (captures[2]))
1228 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1229 42 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 320, __FILE__, __LINE__, true);
1230 : return _r;
1231 : }
1232 0 : next_after_fail410:;
1233 : }
1234 : else
1235 : {
1236 696 : if (wi::lt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
1237 696 : TYPE_SIGN (TREE_TYPE (captures[0])))
1238 : )
1239 : {
1240 696 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail411;
1241 696 : {
1242 696 : tree res_op0;
1243 696 : res_op0 = captures[0];
1244 696 : tree res_op1;
1245 696 : res_op1 = captures[2];
1246 696 : tree _r;
1247 696 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1248 696 : if (TREE_SIDE_EFFECTS (captures[1]))
1249 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1250 696 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 321, __FILE__, __LINE__, true);
1251 : return _r;
1252 : }
1253 0 : next_after_fail411:;
1254 : }
1255 : }
1256 : return NULL_TREE;
1257 : }
1258 :
1259 : tree
1260 383 : generic_simplify_259 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1261 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1262 : const enum tree_code ARG_UNUSED (rotate),
1263 : const enum tree_code ARG_UNUSED (invrot),
1264 : const enum tree_code ARG_UNUSED (cmp))
1265 : {
1266 383 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1267 383 : if (integer_zerop (captures[2]) || integer_all_onesp (captures[2])
1268 : )
1269 : {
1270 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail433;
1271 0 : {
1272 0 : tree res_op0;
1273 0 : res_op0 = captures[0];
1274 0 : tree res_op1;
1275 0 : res_op1 = captures[2];
1276 0 : tree _r;
1277 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1278 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1279 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1280 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 343, __FILE__, __LINE__, true);
1281 : return _r;
1282 : }
1283 0 : next_after_fail433:;
1284 : }
1285 : return NULL_TREE;
1286 : }
1287 :
1288 : tree
1289 95708 : generic_simplify_265 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1290 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1291 : const enum tree_code ARG_UNUSED (cmp))
1292 : {
1293 95708 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1294 95708 : if (single_use (captures[0])
1295 : )
1296 : {
1297 95708 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail440;
1298 95708 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail440;
1299 95708 : {
1300 95708 : tree res_op0;
1301 95708 : res_op0 = captures[1];
1302 95708 : tree res_op1;
1303 95708 : res_op1 = captures[2];
1304 95708 : tree _r;
1305 95708 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1306 95708 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 350, __FILE__, __LINE__, true);
1307 : return _r;
1308 : }
1309 95708 : next_after_fail440:;
1310 : }
1311 : return NULL_TREE;
1312 : }
1313 :
1314 : tree
1315 174732 : generic_simplify_269 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1316 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1317 : const enum tree_code ARG_UNUSED (cmp))
1318 : {
1319 174732 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1320 344464 : if (! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1321 175457 : || ! tree_expr_maybe_nan_p (captures[0])
1322 : )
1323 : {
1324 169081 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail448;
1325 169081 : {
1326 169081 : tree _r;
1327 169081 : _r = constant_boolean_node (true, type);
1328 169081 : if (TREE_SIDE_EFFECTS (captures[0]))
1329 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1330 169081 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 357, __FILE__, __LINE__, true);
1331 : return _r;
1332 : }
1333 0 : next_after_fail448:;
1334 : }
1335 : else
1336 : {
1337 5651 : if (cmp != EQ_EXPR
1338 5651 : && (! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1339 79 : || ! flag_trapping_math)
1340 : )
1341 : {
1342 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail449;
1343 0 : {
1344 0 : tree res_op0;
1345 0 : res_op0 = unshare_expr (captures[0]);
1346 0 : tree res_op1;
1347 0 : res_op1 = captures[0];
1348 0 : tree _r;
1349 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
1350 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 358, __FILE__, __LINE__, true);
1351 : return _r;
1352 : }
1353 0 : next_after_fail449:;
1354 : }
1355 : }
1356 : return NULL_TREE;
1357 : }
1358 :
1359 : tree
1360 19768 : generic_simplify_276 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1361 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1362 : const enum tree_code ARG_UNUSED (cmp))
1363 : {
1364 19768 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1365 19768 : if (flag_associative_math
1366 : )
1367 : {
1368 13 : {
1369 13 : tree tem = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), captures[0], captures[2]);
1370 13 : if (tem && !TREE_OVERFLOW (tem)
1371 : )
1372 : {
1373 13 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail470;
1374 13 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail470;
1375 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail470;
1376 13 : {
1377 13 : tree res_op0;
1378 13 : res_op0 = tem;
1379 13 : tree res_op1;
1380 13 : res_op1 = captures[1];
1381 13 : tree _r;
1382 13 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1383 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 378, __FILE__, __LINE__, true);
1384 : return _r;
1385 : }
1386 19768 : next_after_fail470:;
1387 : }
1388 : }
1389 : }
1390 : return NULL_TREE;
1391 : }
1392 :
1393 : tree
1394 59 : generic_simplify_282 (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 : const enum tree_code ARG_UNUSED (scmp))
1398 : {
1399 59 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1400 96 : if (FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1401 96 : || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1402 37 : && (cmp == EQ_EXPR
1403 37 : || cmp == NE_EXPR
1404 36 : || TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
1405 : )
1406 : {
1407 23 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail503;
1408 23 : {
1409 23 : tree res_op0;
1410 23 : res_op0 = captures[0];
1411 23 : tree res_op1;
1412 23 : res_op1 = captures[1];
1413 23 : tree _r;
1414 23 : _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
1415 23 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 411, __FILE__, __LINE__, true);
1416 : return _r;
1417 : }
1418 0 : next_after_fail503:;
1419 : }
1420 : return NULL_TREE;
1421 : }
1422 :
1423 : tree
1424 20106319 : generic_simplify_285 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1425 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1426 : const enum tree_code ARG_UNUSED (cmp))
1427 : {
1428 20106319 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1429 39911216 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1430 12092025 : && !(targetm.have_canonicalize_funcptr_for_compare ()
1431 0 : && ((POINTER_TYPE_P (TREE_TYPE (captures[1]))
1432 0 : && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1]))))
1433 0 : || (POINTER_TYPE_P (TREE_TYPE (captures[3]))
1434 0 : && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[3]))))))
1435 20106319 : && single_use (captures[0])
1436 : )
1437 : {
1438 12092025 : if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[0]))
1439 5282933 : && (TREE_CODE (captures[3]) == INTEGER_CST
1440 1955529 : || captures[2] != captures[3])
1441 3327404 : && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1442 : || cmp == NE_EXPR
1443 1535875 : || cmp == EQ_EXPR)
1444 2271109 : && !POINTER_TYPE_P (TREE_TYPE (captures[1]))
1445 14323107 : && (TREE_CODE (TREE_TYPE (captures[1])) != BOOLEAN_TYPE
1446 1796 : || TREE_CODE (TREE_TYPE (captures[3])) == BOOLEAN_TYPE)
1447 : )
1448 : {
1449 2231054 : if (TREE_CODE (captures[2]) == INTEGER_CST
1450 : )
1451 : {
1452 2231054 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail513;
1453 2231054 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail513;
1454 2231054 : {
1455 2231054 : tree res_op0;
1456 2231054 : res_op0 = captures[1];
1457 2231054 : tree res_op1;
1458 2231054 : res_op1 = force_fit_type (TREE_TYPE (captures[1]),
1459 2231054 : wide_int::from (wi::to_wide (captures[2]),
1460 2231054 : MAX (TYPE_PRECISION (TREE_TYPE (captures[2])),
1461 : TYPE_PRECISION (TREE_TYPE (captures[1]))),
1462 2231054 : TYPE_SIGN (TREE_TYPE (captures[2]))),
1463 2231054 : 0, TREE_OVERFLOW (captures[2]));
1464 2231054 : tree _r;
1465 2231054 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1466 2231054 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 413, __FILE__, __LINE__, true);
1467 : return _r;
1468 : }
1469 20106319 : next_after_fail513:;
1470 : }
1471 : else
1472 : {
1473 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail514;
1474 0 : {
1475 0 : tree res_op0;
1476 0 : res_op0 = captures[1];
1477 0 : tree res_op1;
1478 0 : {
1479 0 : tree _o1[1], _r1;
1480 0 : _o1[0] = captures[2];
1481 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1482 : {
1483 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1484 : }
1485 : else
1486 : _r1 = _o1[0];
1487 0 : res_op1 = _r1;
1488 : }
1489 0 : tree _r;
1490 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1491 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 414, __FILE__, __LINE__, true);
1492 : return _r;
1493 : }
1494 0 : next_after_fail514:;
1495 : }
1496 : }
1497 : else
1498 : {
1499 9860971 : if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
1500 : )
1501 : {
1502 5830342 : if ((cmp == EQ_EXPR || cmp == NE_EXPR
1503 2951966 : || TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1504 405704 : || (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1505 320876 : && TYPE_UNSIGNED (TREE_TYPE (captures[1]))))
1506 8697480 : && (types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]))
1507 5745496 : || ((TYPE_PRECISION (TREE_TYPE (captures[1]))
1508 5745496 : >= TYPE_PRECISION (TREE_TYPE (captures[3])))
1509 0 : && (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
1510 0 : == TYPE_UNSIGNED (TREE_TYPE (captures[3]))))
1511 5745496 : || (TREE_CODE (captures[2]) == INTEGER_CST
1512 4641930 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1513 4641930 : && int_fits_type_p (captures[2], TREE_TYPE (captures[1]))))
1514 : )
1515 : {
1516 4607843 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail515;
1517 4607843 : {
1518 4607843 : tree res_op0;
1519 4607843 : res_op0 = captures[1];
1520 4607843 : tree res_op1;
1521 4607843 : {
1522 4607843 : tree _o1[1], _r1;
1523 4607843 : _o1[0] = captures[3];
1524 4607843 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1525 : {
1526 4607825 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1527 : }
1528 : else
1529 : _r1 = _o1[0];
1530 4607843 : res_op1 = _r1;
1531 : }
1532 4607843 : tree _r;
1533 4607843 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1534 4607843 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 415, __FILE__, __LINE__, true);
1535 : return _r;
1536 : }
1537 0 : next_after_fail515:;
1538 : }
1539 : else
1540 : {
1541 1222499 : if (TREE_CODE (captures[2]) == INTEGER_CST
1542 83409 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1543 1305908 : && !int_fits_type_p (captures[2], TREE_TYPE (captures[1]))
1544 : )
1545 : {
1546 37428 : {
1547 37428 : tree min = lower_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
1548 37428 : tree max = upper_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
1549 37428 : bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, captures[2]));
1550 37428 : bool below = integer_nonzerop (const_binop (LT_EXPR, type, captures[2], min));
1551 37428 : if (above || below
1552 : )
1553 : {
1554 31462 : if (cmp == EQ_EXPR || cmp == NE_EXPR
1555 : )
1556 : {
1557 26678 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail516;
1558 26678 : {
1559 26678 : tree _r;
1560 26678 : _r = constant_boolean_node (cmp != EQ_EXPR, type);
1561 26678 : if (TREE_SIDE_EFFECTS (captures[1]))
1562 10 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1563 26678 : if (TREE_SIDE_EFFECTS (captures[2]))
1564 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1565 26678 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 416, __FILE__, __LINE__, true);
1566 : return _r;
1567 : }
1568 0 : next_after_fail516:;
1569 : }
1570 : else
1571 : {
1572 4784 : if (cmp == LT_EXPR || cmp == LE_EXPR
1573 : )
1574 : {
1575 4241 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail517;
1576 4241 : {
1577 4241 : tree _r;
1578 4241 : _r = constant_boolean_node (above, type);
1579 4241 : if (TREE_SIDE_EFFECTS (captures[1]))
1580 10 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1581 4241 : if (TREE_SIDE_EFFECTS (captures[2]))
1582 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1583 4241 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 417, __FILE__, __LINE__, true);
1584 : return _r;
1585 : }
1586 0 : next_after_fail517:;
1587 : }
1588 : else
1589 : {
1590 543 : if (cmp == GT_EXPR || cmp == GE_EXPR
1591 : )
1592 : {
1593 543 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail518;
1594 543 : {
1595 543 : tree _r;
1596 543 : _r = constant_boolean_node (!above, type);
1597 543 : if (TREE_SIDE_EFFECTS (captures[1]))
1598 4 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1599 543 : if (TREE_SIDE_EFFECTS (captures[2]))
1600 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1601 543 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 418, __FILE__, __LINE__, true);
1602 : return _r;
1603 : }
1604 0 : next_after_fail518:;
1605 : }
1606 : }
1607 : }
1608 : }
1609 : }
1610 : }
1611 : }
1612 : }
1613 : else
1614 : {
1615 8058461 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1616 3788067 : && (TYPE_PRECISION (TREE_TYPE (captures[0]))
1617 3788067 : < TYPE_PRECISION (TREE_TYPE (captures[1])))
1618 978664 : && (cmp == EQ_EXPR || cmp == NE_EXPR)
1619 4678441 : && types_match (TREE_TYPE (captures[1]),
1620 647812 : TREE_TYPE (captures[3]))
1621 : )
1622 : {
1623 0 : {
1624 0 : tree itype = TREE_TYPE (captures[0]);
1625 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail519;
1626 0 : {
1627 0 : tree res_op0;
1628 0 : {
1629 0 : tree _o1[1], _r1;
1630 0 : {
1631 0 : tree _o2[2], _r2;
1632 0 : _o2[0] = captures[1];
1633 0 : _o2[1] = captures[3];
1634 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
1635 0 : _o1[0] = _r2;
1636 : }
1637 0 : if (TREE_TYPE (_o1[0]) != itype)
1638 : {
1639 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
1640 : }
1641 : else
1642 : _r1 = _o1[0];
1643 0 : res_op0 = _r1;
1644 : }
1645 0 : tree res_op1;
1646 0 : res_op1 = build_zero_cst (itype);
1647 0 : tree _r;
1648 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1649 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 419, __FILE__, __LINE__, true);
1650 : return _r;
1651 : }
1652 0 : next_after_fail519:;
1653 : }
1654 : }
1655 : }
1656 : }
1657 : }
1658 : else
1659 : {
1660 15472834 : if (FLOAT_TYPE_P (TREE_TYPE (captures[1]))
1661 1138584 : && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1662 569292 : == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1])))
1663 9152640 : && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1664 569173 : == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[3])))
1665 : )
1666 : {
1667 569173 : {
1668 569173 : tree type1 = TREE_TYPE (captures[3]);
1669 569173 : if (TREE_CODE (captures[3]) == REAL_CST && !DECIMAL_FLOAT_TYPE_P (type1))
1670 : {
1671 360807 : REAL_VALUE_TYPE orig = TREE_REAL_CST (captures[3]);
1672 360807 : if (TYPE_PRECISION (type1) > TYPE_PRECISION (float_type_node)
1673 360807 : && exact_real_truncate (TYPE_MODE (float_type_node), &orig))
1674 182788 : type1 = float_type_node;
1675 360807 : if (TYPE_PRECISION (type1) > TYPE_PRECISION (double_type_node)
1676 360807 : && exact_real_truncate (TYPE_MODE (double_type_node), &orig))
1677 292 : type1 = double_type_node;
1678 : }
1679 569173 : tree newtype
1680 569173 : = (element_precision (TREE_TYPE (captures[1])) > element_precision (type1)
1681 569173 : ? TREE_TYPE (captures[1]) : type1);
1682 569173 : if (element_precision (TREE_TYPE (captures[0])) > element_precision (newtype)
1683 569173 : && (!VECTOR_TYPE_P (type) || is_truth_type_for (newtype, type))
1684 : )
1685 : {
1686 44742 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail520;
1687 44742 : {
1688 44742 : tree res_op0;
1689 44742 : {
1690 44742 : tree _o1[1], _r1;
1691 44742 : _o1[0] = captures[1];
1692 44742 : if (TREE_TYPE (_o1[0]) != newtype)
1693 : {
1694 11488 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
1695 : }
1696 : else
1697 : _r1 = _o1[0];
1698 44742 : res_op0 = _r1;
1699 : }
1700 44742 : tree res_op1;
1701 44742 : {
1702 44742 : tree _o1[1], _r1;
1703 44742 : _o1[0] = captures[3];
1704 44742 : if (TREE_TYPE (_o1[0]) != newtype)
1705 : {
1706 44742 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
1707 : }
1708 : else
1709 : _r1 = _o1[0];
1710 44742 : res_op1 = _r1;
1711 : }
1712 44742 : tree _r;
1713 44742 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1714 44742 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 420, __FILE__, __LINE__, true);
1715 : return _r;
1716 : }
1717 0 : next_after_fail520:;
1718 : }
1719 : }
1720 : }
1721 : }
1722 : return NULL_TREE;
1723 : }
1724 :
1725 : tree
1726 45 : generic_simplify_317 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1727 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1728 : const enum tree_code ARG_UNUSED (cmp),
1729 : const enum tree_code ARG_UNUSED (rep),
1730 : const combined_fn ARG_UNUSED (popcount))
1731 : {
1732 45 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1733 45 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail586;
1734 45 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail586;
1735 45 : {
1736 45 : tree res_op0;
1737 45 : res_op0 = captures[0];
1738 45 : tree res_op1;
1739 45 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1740 45 : tree _r;
1741 45 : _r = fold_build2_loc (loc, rep, type, res_op0, res_op1);
1742 45 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 476, __FILE__, __LINE__, true);
1743 : return _r;
1744 : }
1745 45 : next_after_fail586:;
1746 : return NULL_TREE;
1747 : }
1748 :
1749 : tree
1750 290248 : generic_simplify_322 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1751 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1752 : const enum tree_code ARG_UNUSED (cmp))
1753 : {
1754 290248 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1755 290248 : if (cmp != NE_EXPR
1756 281443 : || ! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1757 302632 : || ! tree_expr_maybe_nan_p (captures[0])
1758 : )
1759 : {
1760 283678 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail594;
1761 283678 : {
1762 283678 : tree _r;
1763 283678 : _r = constant_boolean_node (false, type);
1764 283678 : if (TREE_SIDE_EFFECTS (captures[0]))
1765 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1766 283678 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 484, __FILE__, __LINE__, true);
1767 : return _r;
1768 : }
1769 0 : next_after_fail594:;
1770 : }
1771 : return NULL_TREE;
1772 : }
1773 :
1774 : tree
1775 0 : generic_simplify_327 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1776 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1777 : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
1778 : {
1779 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1780 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail599;
1781 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail599;
1782 0 : {
1783 0 : tree _r;
1784 0 : _r = captures[1];
1785 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 489, __FILE__, __LINE__, true);
1786 : return _r;
1787 : }
1788 0 : next_after_fail599:;
1789 : return NULL_TREE;
1790 : }
1791 :
1792 : tree
1793 896 : generic_simplify_334 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1794 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1795 : const enum tree_code ARG_UNUSED (div))
1796 : {
1797 896 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1798 1792 : if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
1799 896 : && !integer_zerop (captures[0])
1800 1163 : && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
1801 : )
1802 : {
1803 111 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail608;
1804 111 : {
1805 111 : tree _r;
1806 111 : _r = build_one_cst (type);
1807 111 : if (TREE_SIDE_EFFECTS (captures[0]))
1808 2 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1809 111 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 496, __FILE__, __LINE__, true);
1810 : return _r;
1811 : }
1812 0 : next_after_fail608:;
1813 : }
1814 : return NULL_TREE;
1815 : }
1816 :
1817 : tree
1818 192 : generic_simplify_340 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1819 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1820 : const enum tree_code ARG_UNUSED (div))
1821 : {
1822 192 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1823 192 : if (ANY_INTEGRAL_TYPE_P (type)
1824 : )
1825 : {
1826 192 : if (TYPE_OVERFLOW_UNDEFINED (type) && !TYPE_OVERFLOW_SANITIZED (type)
1827 : )
1828 : {
1829 164 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail615;
1830 164 : {
1831 164 : tree _r;
1832 164 : _r = captures[1];
1833 164 : if (TREE_SIDE_EFFECTS (captures[2]))
1834 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1835 164 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 503, __FILE__, __LINE__, true);
1836 : return _r;
1837 : }
1838 0 : next_after_fail615:;
1839 : }
1840 : }
1841 : return NULL_TREE;
1842 : }
1843 :
1844 : tree
1845 221239 : generic_simplify_344 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1846 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1847 : const enum tree_code ARG_UNUSED (mod))
1848 : {
1849 221239 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1850 221239 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail619;
1851 221239 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail619;
1852 221239 : {
1853 221239 : tree _r;
1854 221239 : _r = build_zero_cst (type);
1855 221239 : if (TREE_SIDE_EFFECTS (captures[0]))
1856 48 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1857 221239 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 507, __FILE__, __LINE__, true);
1858 : return _r;
1859 : }
1860 221239 : next_after_fail619:;
1861 : return NULL_TREE;
1862 : }
1863 :
1864 : tree
1865 0 : generic_simplify_353 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1866 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1867 : const combined_fn ARG_UNUSED (SQRT))
1868 : {
1869 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1870 0 : if (flag_unsafe_math_optimizations
1871 : )
1872 : {
1873 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail630;
1874 0 : {
1875 0 : tree res_op0;
1876 0 : res_op0 = captures[0];
1877 0 : tree _r;
1878 0 : _r = maybe_build_call_expr_loc (loc, SQRT, type, 1, res_op0);
1879 0 : if (!_r)
1880 0 : goto next_after_fail630;
1881 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 518, __FILE__, __LINE__, true);
1882 : return _r;
1883 : }
1884 0 : next_after_fail630:;
1885 : }
1886 : return NULL_TREE;
1887 : }
1888 :
1889 : tree
1890 6 : generic_simplify_359 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1891 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1892 : const combined_fn ARG_UNUSED (TAN),
1893 : const combined_fn ARG_UNUSED (SIN),
1894 : const combined_fn ARG_UNUSED (COS))
1895 : {
1896 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1897 6 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1898 : )
1899 : {
1900 6 : if (! HONOR_NANS (captures[1])
1901 6 : && ! HONOR_INFINITIES (captures[1])
1902 : )
1903 : {
1904 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail636;
1905 6 : {
1906 6 : tree res_op0;
1907 6 : res_op0 = build_one_cst (type);
1908 6 : tree res_op1;
1909 6 : {
1910 6 : tree _o1[1], _r1;
1911 6 : _o1[0] = captures[1];
1912 6 : _r1 = maybe_build_call_expr_loc (loc, COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
1913 6 : if (!_r1)
1914 0 : goto next_after_fail636;
1915 6 : res_op1 = _r1;
1916 : }
1917 6 : tree _r;
1918 6 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
1919 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 524, __FILE__, __LINE__, true);
1920 : return _r;
1921 : }
1922 6 : next_after_fail636:;
1923 : }
1924 : }
1925 : return NULL_TREE;
1926 : }
1927 :
1928 : tree
1929 9 : generic_simplify_368 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1930 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1931 : {
1932 9 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1933 9 : if (INTEGRAL_TYPE_P (type)
1934 9 : && !TYPE_UNSIGNED (type)
1935 : )
1936 : {
1937 9 : {
1938 9 : tree utype = unsigned_type_for (type);
1939 9 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail651;
1940 9 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail651;
1941 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail651;
1942 9 : {
1943 9 : tree res_op0;
1944 9 : {
1945 9 : tree _o1[2], _r1;
1946 9 : {
1947 9 : tree _o2[1], _r2;
1948 9 : _o2[0] = captures[0];
1949 9 : if (TREE_TYPE (_o2[0]) != utype)
1950 : {
1951 9 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
1952 : }
1953 : else
1954 : _r2 = _o2[0];
1955 9 : _o1[0] = _r2;
1956 : }
1957 9 : {
1958 9 : tree _o2[1], _r2;
1959 9 : _o2[0] = captures[1];
1960 9 : if (TREE_TYPE (_o2[0]) != utype)
1961 : {
1962 9 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
1963 : }
1964 : else
1965 : _r2 = _o2[0];
1966 9 : _o1[1] = _r2;
1967 : }
1968 9 : _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1969 9 : res_op0 = _r1;
1970 : }
1971 9 : tree _r;
1972 9 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1973 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 539, __FILE__, __LINE__, true);
1974 : return _r;
1975 : }
1976 9 : next_after_fail651:;
1977 : }
1978 : }
1979 : return NULL_TREE;
1980 : }
1981 :
1982 : tree
1983 0 : generic_simplify_376 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1984 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1985 : const enum tree_code ARG_UNUSED (op))
1986 : {
1987 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1988 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail659;
1989 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail659;
1990 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail659;
1991 0 : {
1992 0 : tree _r;
1993 0 : _r = captures[2];
1994 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 547, __FILE__, __LINE__, true);
1995 : return _r;
1996 : }
1997 0 : next_after_fail659:;
1998 : return NULL_TREE;
1999 : }
2000 :
2001 : tree
2002 58 : generic_simplify_383 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2003 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2004 : const enum tree_code ARG_UNUSED (op))
2005 : {
2006 58 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2007 58 : if (bitwise_equal_p (captures[0], captures[2])
2008 8 : && tree_expr_nonzero_p (captures[3])
2009 66 : && expr_no_side_effects_p (captures[3])
2010 : )
2011 : {
2012 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail670;
2013 1 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail670;
2014 1 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail670;
2015 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail670;
2016 1 : {
2017 1 : tree _r;
2018 1 : _r = captures[1];
2019 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 558, __FILE__, __LINE__, true);
2020 : return _r;
2021 : }
2022 58 : next_after_fail670:;
2023 : }
2024 : return NULL_TREE;
2025 : }
2026 :
2027 : tree
2028 0 : generic_simplify_390 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2029 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
2030 : const enum tree_code ARG_UNUSED (cmp))
2031 : {
2032 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2033 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail678;
2034 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail678;
2035 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail678;
2036 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail678;
2037 0 : {
2038 0 : tree _r;
2039 0 : _r = captures[0];
2040 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 566, __FILE__, __LINE__, true);
2041 : return _r;
2042 : }
2043 0 : next_after_fail678:;
2044 : return NULL_TREE;
2045 : }
2046 :
2047 : tree
2048 444 : generic_simplify_398 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2049 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2050 : const enum tree_code ARG_UNUSED (op),
2051 : const enum tree_code ARG_UNUSED (neg_op))
2052 : {
2053 444 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2054 444 : if (flag_unsafe_math_optimizations
2055 : )
2056 : {
2057 4 : if (!HONOR_SIGNED_ZEROS (captures[1]) && !HONOR_INFINITIES (captures[1])
2058 : )
2059 : {
2060 4 : if (real_less (&dconst0, TREE_REAL_CST_PTR (captures[0]))
2061 : )
2062 : {
2063 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail688;
2064 2 : {
2065 2 : tree res_op0;
2066 2 : res_op0 = captures[1];
2067 2 : tree res_op1;
2068 2 : res_op1 = captures[2];
2069 2 : tree _r;
2070 2 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2071 2 : if (TREE_SIDE_EFFECTS (captures[0]))
2072 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2073 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 574, __FILE__, __LINE__, true);
2074 : return _r;
2075 : }
2076 0 : next_after_fail688:;
2077 : }
2078 : else
2079 : {
2080 2 : if (real_less (TREE_REAL_CST_PTR (captures[0]), &dconst0)
2081 : )
2082 : {
2083 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail689;
2084 2 : {
2085 2 : tree res_op0;
2086 2 : res_op0 = captures[1];
2087 2 : tree res_op1;
2088 2 : res_op1 = captures[2];
2089 2 : tree _r;
2090 2 : _r = fold_build2_loc (loc, neg_op, type, res_op0, res_op1);
2091 2 : if (TREE_SIDE_EFFECTS (captures[0]))
2092 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2093 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 575, __FILE__, __LINE__, true);
2094 : return _r;
2095 : }
2096 0 : next_after_fail689:;
2097 : }
2098 : }
2099 : }
2100 : }
2101 : return NULL_TREE;
2102 : }
2103 :
2104 : tree
2105 0 : generic_simplify_408 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2106 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2107 : const enum tree_code ARG_UNUSED (ltge),
2108 : const enum tree_code ARG_UNUSED (neeq))
2109 : {
2110 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2111 0 : if (!HONOR_NANS (captures[0])
2112 : )
2113 : {
2114 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail701;
2115 0 : {
2116 0 : tree res_op0;
2117 0 : res_op0 = captures[0];
2118 0 : tree res_op1;
2119 0 : res_op1 = captures[1];
2120 0 : tree _r;
2121 0 : _r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
2122 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 587, __FILE__, __LINE__, true);
2123 : return _r;
2124 : }
2125 0 : next_after_fail701:;
2126 : }
2127 : return NULL_TREE;
2128 : }
2129 :
2130 : tree
2131 611 : generic_simplify_416 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2132 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2133 : const enum tree_code ARG_UNUSED (cmp))
2134 : {
2135 611 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2136 611 : if (wi::gt_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1])))
2137 : )
2138 : {
2139 611 : {
2140 611 : wi::overflow_type ovf;
2141 611 : wide_int prod = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[1]),
2142 1222 : TYPE_SIGN (TREE_TYPE (captures[1])), &ovf);
2143 611 : if (ovf
2144 : )
2145 : {
2146 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail709;
2147 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail709;
2148 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail709;
2149 0 : {
2150 0 : tree _r;
2151 0 : _r = constant_boolean_node (wi::lt_p (wi::to_wide (captures[2]), 0,
2152 0 : TYPE_SIGN (TREE_TYPE (captures[2])))
2153 0 : != (cmp == LT_EXPR || cmp == LE_EXPR), type);
2154 0 : if (TREE_SIDE_EFFECTS (captures[0]))
2155 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2156 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 595, __FILE__, __LINE__, true);
2157 : return _r;
2158 : }
2159 0 : next_after_fail709:;
2160 : }
2161 : else
2162 : {
2163 611 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail710;
2164 611 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail710;
2165 611 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail710;
2166 611 : {
2167 611 : tree res_op0;
2168 611 : res_op0 = captures[0];
2169 611 : tree res_op1;
2170 611 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[0]), prod);
2171 611 : tree _r;
2172 611 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2173 611 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 596, __FILE__, __LINE__, true);
2174 : return _r;
2175 : }
2176 0 : next_after_fail710:;
2177 : }
2178 611 : }
2179 : }
2180 : return NULL_TREE;
2181 : }
2182 :
2183 : tree
2184 32306 : generic_simplify_431 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2185 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2186 : const enum tree_code ARG_UNUSED (cmp))
2187 : {
2188 32306 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2189 64518 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2190 64518 : && bitmask_inv_cst_vector_p (captures[2])
2191 : )
2192 : {
2193 28 : {
2194 28 : wide_int c = wi::to_wide (captures[3]) | wi::bit_not (wi::to_wide (captures[2]));
2195 28 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail763;
2196 28 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail763;
2197 28 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail763;
2198 28 : {
2199 28 : tree res_op0;
2200 28 : res_op0 = captures[1];
2201 28 : tree res_op1;
2202 28 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[1]), c);
2203 28 : tree _r;
2204 28 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2205 28 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 632, __FILE__, __LINE__, true);
2206 28 : return _r;
2207 : }
2208 0 : next_after_fail763:;
2209 28 : }
2210 : }
2211 : return NULL_TREE;
2212 : }
2213 :
2214 : tree
2215 0 : generic_simplify_434 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2216 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2217 : const enum tree_code ARG_UNUSED (cmp))
2218 : {
2219 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2220 0 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2221 0 : && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2222 : )
2223 : {
2224 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail766;
2225 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail766;
2226 0 : {
2227 0 : tree res_op0;
2228 0 : res_op0 = captures[1];
2229 0 : tree res_op1;
2230 0 : res_op1 = captures[0];
2231 0 : tree _r;
2232 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2233 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 616, __FILE__, __LINE__, true);
2234 : return _r;
2235 : }
2236 0 : next_after_fail766:;
2237 : }
2238 : return NULL_TREE;
2239 : }
2240 :
2241 : tree
2242 71 : generic_simplify_438 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2243 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2244 : const enum tree_code ARG_UNUSED (cmp),
2245 : const enum tree_code ARG_UNUSED (out))
2246 : {
2247 71 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2248 142 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2249 71 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2250 71 : && TYPE_UNSIGNED (TREE_TYPE (captures[2]))
2251 56 : && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2252 56 : && (TYPE_PRECISION (TREE_TYPE (captures[1]))
2253 56 : >= 2 * TYPE_PRECISION (TREE_TYPE (captures[2])))
2254 56 : && TYPE_MAX_VALUE (TREE_TYPE (captures[2]))
2255 56 : && (wi::to_widest (captures[4])
2256 127 : == wi::to_widest (TYPE_MAX_VALUE (TREE_TYPE (captures[2]))))
2257 56 : && types_match (captures[2], captures[3])
2258 56 : && type_has_mode_precision_p (TREE_TYPE (captures[2]))
2259 183 : && (optab_handler (umulv4_optab, TYPE_MODE (TREE_TYPE (captures[2])))
2260 : != CODE_FOR_nothing)
2261 : )
2262 : {
2263 56 : {
2264 56 : tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
2265 56 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail770;
2266 56 : {
2267 56 : tree res_op0;
2268 56 : {
2269 56 : tree _o1[1], _r1;
2270 56 : {
2271 56 : tree _o2[2], _r2;
2272 56 : _o2[0] = captures[2];
2273 56 : _o2[1] = captures[3];
2274 56 : _r2 = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, _o2[0], _o2[1]);
2275 56 : if (!_r2)
2276 0 : goto next_after_fail770;
2277 56 : _o1[0] = _r2;
2278 : }
2279 56 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2280 56 : res_op0 = _r1;
2281 : }
2282 56 : tree res_op1;
2283 56 : res_op1 = build_zero_cst (t);
2284 56 : tree _r;
2285 56 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2286 56 : if (TREE_SIDE_EFFECTS (captures[4]))
2287 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
2288 56 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 635, __FILE__, __LINE__, true);
2289 : return _r;
2290 : }
2291 71 : next_after_fail770:;
2292 : }
2293 : }
2294 : return NULL_TREE;
2295 : }
2296 :
2297 : tree
2298 0 : generic_simplify_449 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2299 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2300 : const enum tree_code ARG_UNUSED (shiftrotate))
2301 : {
2302 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2303 0 : {
2304 0 : tree tem = uniform_vector_p (captures[1]);
2305 0 : if (tem
2306 : )
2307 : {
2308 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail785;
2309 0 : {
2310 0 : tree res_op0;
2311 0 : res_op0 = captures[0];
2312 0 : tree res_op1;
2313 0 : res_op1 = tem;
2314 0 : tree _r;
2315 0 : _r = fold_build2_loc (loc, shiftrotate, type, res_op0, res_op1);
2316 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2317 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2318 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 649, __FILE__, __LINE__, true);
2319 : return _r;
2320 : }
2321 0 : next_after_fail785:;
2322 : }
2323 : }
2324 : return NULL_TREE;
2325 : }
2326 :
2327 : tree
2328 271 : generic_simplify_456 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2329 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2330 : const combined_fn ARG_UNUSED (bswap))
2331 : {
2332 271 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2333 271 : if (BITS_PER_UNIT == 8
2334 : && CHAR_TYPE_SIZE == 8
2335 271 : && tree_fits_uhwi_p (captures[2])
2336 : )
2337 : {
2338 271 : {
2339 271 : unsigned HOST_WIDE_INT prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
2340 271 : unsigned HOST_WIDE_INT bits = tree_to_uhwi (captures[2]);
2341 271 : tree st = TYPE_PRECISION (type) > prec ? TREE_TYPE (captures[0]) : type;
2342 271 : if (TYPE_PRECISION (type) > prec
2343 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2344 0 : && TYPE_UNSIGNED (type)
2345 271 : && bits < prec && bits + 8 >= prec
2346 : )
2347 : {
2348 0 : {
2349 0 : tree nst = build_int_cst (integer_type_node, prec - 8);
2350 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail797;
2351 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail797;
2352 0 : {
2353 0 : tree res_op0;
2354 0 : {
2355 0 : tree _o1[1], _r1;
2356 0 : {
2357 0 : tree _o2[2], _r2;
2358 0 : {
2359 0 : tree _o3[1], _r3;
2360 0 : _o3[0] = captures[1];
2361 0 : if (TREE_TYPE (_o3[0]) != st)
2362 : {
2363 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, st, _o3[0]);
2364 : }
2365 : else
2366 : _r3 = _o3[0];
2367 0 : _o2[0] = _r3;
2368 : }
2369 0 : _o2[1] = nst;
2370 0 : _r2 = fold_build2_loc (loc, LSHIFT_EXPR, st, _o2[0], _o2[1]);
2371 0 : _o1[0] = _r2;
2372 : }
2373 0 : if (TREE_TYPE (_o1[0]) != type)
2374 : {
2375 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2376 : }
2377 : else
2378 : _r1 = _o1[0];
2379 0 : res_op0 = _r1;
2380 : }
2381 0 : tree res_op1;
2382 0 : res_op1 = captures[2];
2383 0 : tree _r;
2384 0 : _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
2385 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 660, __FILE__, __LINE__, true);
2386 : return _r;
2387 : }
2388 271 : next_after_fail797:;
2389 : }
2390 : }
2391 : else
2392 : {
2393 271 : if (bits + 8 == prec
2394 : )
2395 : {
2396 46 : if (TYPE_UNSIGNED (st)
2397 : )
2398 : {
2399 36 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail798;
2400 36 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail798;
2401 36 : {
2402 36 : tree res_op0;
2403 36 : {
2404 36 : tree _o1[1], _r1;
2405 36 : _o1[0] = captures[1];
2406 36 : if (TREE_TYPE (_o1[0]) != unsigned_char_type_node)
2407 : {
2408 36 : _r1 = fold_build1_loc (loc, NOP_EXPR, unsigned_char_type_node, _o1[0]);
2409 : }
2410 : else
2411 : _r1 = _o1[0];
2412 36 : res_op0 = _r1;
2413 : }
2414 36 : tree _r;
2415 36 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2416 36 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 661, __FILE__, __LINE__, true);
2417 : return _r;
2418 : }
2419 271 : next_after_fail798:;
2420 : }
2421 : else
2422 : {
2423 10 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail799;
2424 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail799;
2425 10 : {
2426 10 : tree res_op0;
2427 10 : {
2428 10 : tree _o1[1], _r1;
2429 10 : _o1[0] = captures[1];
2430 10 : if (TREE_TYPE (_o1[0]) != signed_char_type_node)
2431 : {
2432 10 : _r1 = fold_build1_loc (loc, NOP_EXPR, signed_char_type_node, _o1[0]);
2433 : }
2434 : else
2435 : _r1 = _o1[0];
2436 10 : res_op0 = _r1;
2437 : }
2438 10 : tree _r;
2439 10 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2440 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 662, __FILE__, __LINE__, true);
2441 : return _r;
2442 : }
2443 271 : next_after_fail799:;
2444 : }
2445 : }
2446 : else
2447 : {
2448 225 : if (bits < prec && bits + 8 > prec
2449 : )
2450 : {
2451 57 : {
2452 57 : tree nst = build_int_cst (integer_type_node, bits & 7);
2453 57 : tree bt = TYPE_UNSIGNED (st) ? unsigned_char_type_node
2454 57 : : signed_char_type_node;
2455 57 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail800;
2456 57 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail800;
2457 57 : {
2458 57 : tree res_op0;
2459 57 : {
2460 57 : tree _o1[2], _r1;
2461 57 : {
2462 57 : tree _o2[1], _r2;
2463 57 : _o2[0] = captures[1];
2464 57 : if (TREE_TYPE (_o2[0]) != bt)
2465 : {
2466 57 : _r2 = fold_build1_loc (loc, NOP_EXPR, bt, _o2[0]);
2467 : }
2468 : else
2469 : _r2 = _o2[0];
2470 57 : _o1[0] = _r2;
2471 : }
2472 57 : _o1[1] = nst;
2473 57 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, bt, _o1[0], _o1[1]);
2474 57 : res_op0 = _r1;
2475 : }
2476 57 : tree _r;
2477 57 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2478 57 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 663, __FILE__, __LINE__, true);
2479 : return _r;
2480 : }
2481 271 : next_after_fail800:;
2482 : }
2483 : }
2484 : }
2485 : }
2486 : }
2487 : }
2488 : return NULL_TREE;
2489 : }
2490 :
2491 : tree
2492 0 : generic_simplify_470 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2493 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2494 : const combined_fn ARG_UNUSED (pow))
2495 : {
2496 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2497 0 : if (flag_unsafe_math_optimizations
2498 : )
2499 : {
2500 0 : if (! HONOR_INFINITIES (type)
2501 0 : && ! flag_trapping_math
2502 0 : && ! flag_errno_math
2503 : )
2504 : {
2505 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail828;
2506 0 : {
2507 0 : tree res_op0;
2508 0 : res_op0 = captures[2];
2509 0 : tree res_op1;
2510 0 : {
2511 0 : tree _o1[1], _r1;
2512 0 : _o1[0] = captures[3];
2513 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2514 0 : res_op1 = _r1;
2515 : }
2516 0 : tree _r;
2517 0 : _r = maybe_build_call_expr_loc (loc, pow, type, 2, res_op0, res_op1);
2518 0 : if (!_r)
2519 0 : goto next_after_fail828;
2520 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2521 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2522 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 679, __FILE__, __LINE__, true);
2523 : return _r;
2524 : }
2525 0 : next_after_fail828:;
2526 : }
2527 : }
2528 : return NULL_TREE;
2529 : }
2530 :
2531 : tree
2532 0 : generic_simplify_476 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2533 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2534 : const combined_fn ARG_UNUSED (HYPOT))
2535 : {
2536 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2537 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail834;
2538 0 : {
2539 0 : tree res_op0;
2540 0 : res_op0 = captures[0];
2541 0 : tree _r;
2542 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
2543 0 : if (TREE_SIDE_EFFECTS (captures[1]))
2544 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2545 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 685, __FILE__, __LINE__, true);
2546 : return _r;
2547 : }
2548 0 : next_after_fail834:;
2549 0 : return NULL_TREE;
2550 : }
2551 :
2552 : tree
2553 21 : generic_simplify_480 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2554 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2555 : {
2556 21 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2557 42 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2558 42 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
2559 : )
2560 : {
2561 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail838;
2562 0 : {
2563 0 : tree res_op0;
2564 0 : res_op0 = captures[0];
2565 0 : tree res_op1;
2566 0 : res_op1 = captures[1];
2567 0 : tree _r;
2568 0 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2569 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 689, __FILE__, __LINE__, true);
2570 : return _r;
2571 : }
2572 0 : next_after_fail838:;
2573 : }
2574 : return NULL_TREE;
2575 : }
2576 :
2577 : tree
2578 355 : generic_simplify_487 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2579 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2580 : const enum tree_code ARG_UNUSED (bitop),
2581 : const enum tree_code ARG_UNUSED (op))
2582 : {
2583 355 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2584 355 : {
2585 355 : tree pmop[2];
2586 355 : tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[5], op, captures[1], ERROR_MARK,
2587 : NULL_TREE, NULL_TREE, captures[2], bitop, captures[3],
2588 : captures[4], pmop);
2589 355 : if (utype
2590 : )
2591 : {
2592 354 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail845;
2593 354 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail845;
2594 354 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail845;
2595 354 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail845;
2596 354 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail845;
2597 354 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail845;
2598 354 : {
2599 354 : tree res_op0;
2600 354 : {
2601 354 : tree _o1[2], _r1;
2602 354 : {
2603 354 : tree _o2[2], _r2;
2604 354 : {
2605 354 : tree _o3[1], _r3;
2606 354 : _o3[0] = pmop[0];
2607 354 : if (TREE_TYPE (_o3[0]) != utype)
2608 : {
2609 14 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2610 : }
2611 : else
2612 : _r3 = _o3[0];
2613 354 : _o2[0] = _r3;
2614 : }
2615 354 : {
2616 354 : tree _o3[1], _r3;
2617 354 : _o3[0] = pmop[1];
2618 354 : if (TREE_TYPE (_o3[0]) != utype)
2619 : {
2620 74 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2621 : }
2622 : else
2623 : _r3 = _o3[0];
2624 354 : _o2[1] = _r3;
2625 : }
2626 354 : _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2627 354 : _o1[0] = _r2;
2628 : }
2629 354 : {
2630 354 : tree _o2[1], _r2;
2631 354 : _o2[0] = captures[5];
2632 354 : if (TREE_TYPE (_o2[0]) != utype)
2633 : {
2634 14 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2635 : }
2636 : else
2637 : _r2 = _o2[0];
2638 354 : _o1[1] = _r2;
2639 : }
2640 354 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2641 354 : res_op0 = _r1;
2642 : }
2643 354 : tree _r;
2644 354 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2645 354 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 695, __FILE__, __LINE__, true);
2646 354 : return _r;
2647 : }
2648 1 : next_after_fail845:;
2649 : }
2650 : }
2651 1 : return NULL_TREE;
2652 : }
2653 :
2654 : tree
2655 162 : generic_simplify_503 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2656 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2657 : const enum tree_code ARG_UNUSED (code2),
2658 : const enum tree_code ARG_UNUSED (code1))
2659 : {
2660 162 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2661 162 : if ((TREE_CODE (captures[2]) == INTEGER_CST
2662 50 : && TREE_CODE (captures[4]) == INTEGER_CST)
2663 162 : || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2664 14 : || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2]))
2665 10 : || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[2])))
2666 4 : && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
2667 10 : || POINTER_TYPE_P (TREE_TYPE (captures[2])))
2668 102 : && operand_equal_p (captures[2], captures[4]))
2669 : )
2670 : {
2671 54 : {
2672 54 : int cmp = 0;
2673 54 : if (TREE_CODE (captures[2]) == INTEGER_CST
2674 50 : && TREE_CODE (captures[4]) == INTEGER_CST)
2675 50 : cmp = tree_int_cst_compare (captures[2], captures[4]);
2676 54 : if ((code1 == LT_EXPR || code1 == LE_EXPR)
2677 4 : && (code2 == LT_EXPR || code2 == LE_EXPR)
2678 : )
2679 : {
2680 0 : if ((cmp < 0) || (cmp == 0 && code1 == LT_EXPR)
2681 : )
2682 : {
2683 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail875;
2684 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail875;
2685 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail875;
2686 0 : {
2687 0 : tree _r;
2688 0 : _r = captures[0];
2689 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 717, __FILE__, __LINE__, true);
2690 : return _r;
2691 : }
2692 162 : next_after_fail875:;
2693 : }
2694 : else
2695 : {
2696 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail876;
2697 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail876;
2698 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail876;
2699 0 : {
2700 0 : tree _r;
2701 0 : _r = captures[3];
2702 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 718, __FILE__, __LINE__, true);
2703 : return _r;
2704 : }
2705 162 : next_after_fail876:;
2706 : }
2707 : }
2708 : else
2709 : {
2710 54 : if ((code1 == GT_EXPR || code1 == GE_EXPR)
2711 50 : && (code2 == GT_EXPR || code2 == GE_EXPR)
2712 : )
2713 : {
2714 0 : if ((cmp > 0) || (cmp == 0 && code1 == GT_EXPR)
2715 : )
2716 : {
2717 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail877;
2718 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail877;
2719 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail877;
2720 0 : {
2721 0 : tree _r;
2722 0 : _r = captures[0];
2723 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 719, __FILE__, __LINE__, true);
2724 : return _r;
2725 : }
2726 162 : next_after_fail877:;
2727 : }
2728 : else
2729 : {
2730 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail878;
2731 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail878;
2732 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail878;
2733 0 : {
2734 0 : tree _r;
2735 0 : _r = captures[3];
2736 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 720, __FILE__, __LINE__, true);
2737 : return _r;
2738 : }
2739 162 : next_after_fail878:;
2740 : }
2741 : }
2742 : else
2743 : {
2744 54 : if (cmp == 0
2745 4 : && ((code1 == LE_EXPR && code2 == GE_EXPR)
2746 4 : || (code1 == GE_EXPR && code2 == LE_EXPR))
2747 : )
2748 : {
2749 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail879;
2750 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail879;
2751 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail879;
2752 0 : {
2753 0 : tree res_op0;
2754 0 : res_op0 = captures[1];
2755 0 : tree res_op1;
2756 0 : res_op1 = captures[2];
2757 0 : tree _r;
2758 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
2759 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 721, __FILE__, __LINE__, true);
2760 : return _r;
2761 : }
2762 162 : next_after_fail879:;
2763 : }
2764 : else
2765 : {
2766 54 : if (cmp <= 0
2767 53 : && (code1 == LT_EXPR || code1 == LE_EXPR)
2768 4 : && (code2 == GT_EXPR || code2 == GE_EXPR)
2769 : )
2770 : {
2771 4 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail880;
2772 4 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail880;
2773 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail880;
2774 4 : {
2775 4 : tree _r;
2776 4 : _r = constant_boolean_node (false, type);
2777 4 : if (TREE_SIDE_EFFECTS (captures[1]))
2778 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2779 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 722, __FILE__, __LINE__, true);
2780 : return _r;
2781 : }
2782 162 : next_after_fail880:;
2783 : }
2784 : else
2785 : {
2786 49 : if (cmp >= 0
2787 1 : && (code1 == GT_EXPR || code1 == GE_EXPR)
2788 1 : && (code2 == LT_EXPR || code2 == LE_EXPR)
2789 : )
2790 : {
2791 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail881;
2792 1 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail881;
2793 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail881;
2794 1 : {
2795 1 : tree _r;
2796 1 : _r = constant_boolean_node (false, type);
2797 1 : if (TREE_SIDE_EFFECTS (captures[1]))
2798 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2799 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 723, __FILE__, __LINE__, true);
2800 : return _r;
2801 : }
2802 162 : next_after_fail881:;
2803 : }
2804 : }
2805 : }
2806 : }
2807 : }
2808 : }
2809 : }
2810 : return NULL_TREE;
2811 : }
2812 :
2813 : tree
2814 34 : generic_simplify_520 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2815 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2816 : const combined_fn ARG_UNUSED (bswap))
2817 : {
2818 34 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2819 34 : if (BITS_PER_UNIT == 8
2820 34 : && tree_fits_uhwi_p (captures[2])
2821 34 : && tree_to_uhwi (captures[2]) < 256
2822 : )
2823 : {
2824 32 : {
2825 32 : unsigned HOST_WIDE_INT prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
2826 32 : tree utype = unsigned_type_for (TREE_TYPE (captures[1]));
2827 32 : tree nst = build_int_cst (integer_type_node, prec - 8);
2828 32 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail921;
2829 32 : {
2830 32 : tree res_op0;
2831 32 : {
2832 32 : tree _o1[1], _r1;
2833 32 : {
2834 32 : tree _o2[2], _r2;
2835 32 : {
2836 32 : tree _o3[1], _r3;
2837 32 : _o3[0] = captures[1];
2838 32 : if (TREE_TYPE (_o3[0]) != utype)
2839 : {
2840 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2841 : }
2842 : else
2843 : _r3 = _o3[0];
2844 32 : _o2[0] = _r3;
2845 : }
2846 32 : _o2[1] = nst;
2847 32 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, utype, _o2[0], _o2[1]);
2848 32 : _o1[0] = _r2;
2849 : }
2850 32 : if (TREE_TYPE (_o1[0]) != type)
2851 : {
2852 18 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2853 : }
2854 : else
2855 : _r1 = _o1[0];
2856 32 : res_op0 = _r1;
2857 : }
2858 32 : tree res_op1;
2859 32 : res_op1 = captures[2];
2860 32 : tree _r;
2861 32 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2862 32 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 733, __FILE__, __LINE__, true);
2863 : return _r;
2864 : }
2865 0 : next_after_fail921:;
2866 : }
2867 : }
2868 : return NULL_TREE;
2869 : }
2870 :
2871 : tree
2872 3 : generic_simplify_523 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2873 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2874 : const combined_fn ARG_UNUSED (POPCOUNT),
2875 : const combined_fn ARG_UNUSED (PARITY))
2876 : {
2877 3 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2878 3 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail925;
2879 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail925;
2880 3 : {
2881 3 : tree res_op0;
2882 3 : res_op0 = captures[0];
2883 3 : tree _r;
2884 3 : _r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
2885 3 : if (!_r)
2886 0 : goto next_after_fail925;
2887 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 737, __FILE__, __LINE__, true);
2888 : return _r;
2889 : }
2890 3 : next_after_fail925:;
2891 : return NULL_TREE;
2892 : }
2893 :
2894 : tree
2895 3849 : generic_simplify_528 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2896 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2897 : {
2898 3849 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2899 3849 : if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
2900 3849 : || !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
2901 : )
2902 : {
2903 3385 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail930;
2904 3385 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail930;
2905 3385 : {
2906 3385 : tree res_op0;
2907 3385 : {
2908 3385 : tree _o1[1], _r1;
2909 3385 : _o1[0] = captures[0];
2910 3385 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2911 3385 : res_op0 = _r1;
2912 : }
2913 3385 : tree _r;
2914 3385 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2915 3385 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 742, __FILE__, __LINE__, true);
2916 : return _r;
2917 : }
2918 3849 : next_after_fail930:;
2919 : }
2920 : return NULL_TREE;
2921 : }
2922 :
2923 : tree
2924 2 : generic_simplify_536 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2925 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2926 : const enum tree_code ARG_UNUSED (rotate))
2927 : {
2928 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2929 2 : if ((element_precision (TREE_TYPE (captures[2]))
2930 2 : <= element_precision (TREE_TYPE (captures[3]))
2931 0 : || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))
2932 2 : && (element_precision (type) <= element_precision (TREE_TYPE (captures[2]))
2933 0 : || !TYPE_UNSIGNED (TREE_TYPE (captures[2])))
2934 : )
2935 : {
2936 2 : {
2937 2 : tree rotate_type = TREE_TYPE (captures[2]);
2938 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail938;
2939 2 : {
2940 2 : tree res_op0;
2941 2 : {
2942 2 : tree _o1[2], _r1;
2943 2 : {
2944 2 : tree _o2[1], _r2;
2945 2 : _o2[0] = captures[3];
2946 2 : if (TREE_TYPE (_o2[0]) != rotate_type)
2947 : {
2948 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, rotate_type, _o2[0]);
2949 : }
2950 : else
2951 : _r2 = _o2[0];
2952 2 : _o1[0] = _r2;
2953 : }
2954 2 : _o1[1] = captures[4];
2955 2 : _r1 = fold_build2_loc (loc, rotate, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2956 2 : res_op0 = _r1;
2957 : }
2958 2 : tree _r;
2959 2 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2960 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 747, __FILE__, __LINE__, true);
2961 : return _r;
2962 : }
2963 0 : next_after_fail938:;
2964 : }
2965 : }
2966 : return NULL_TREE;
2967 : }
2968 :
2969 : tree
2970 6 : generic_simplify_549 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2971 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2972 : const enum tree_code ARG_UNUSED (minmax),
2973 : const enum tree_code ARG_UNUSED (maxmin))
2974 : {
2975 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2976 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail953;
2977 6 : {
2978 6 : tree _r;
2979 6 : _r = captures[1];
2980 6 : if (TREE_SIDE_EFFECTS (captures[0]))
2981 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2982 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 762, __FILE__, __LINE__, true);
2983 : return _r;
2984 : }
2985 0 : next_after_fail953:;
2986 0 : return NULL_TREE;
2987 : }
2988 :
2989 : tree
2990 0 : generic_simplify_558 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2991 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2992 : const enum tree_code ARG_UNUSED (minmax),
2993 : const enum tree_code ARG_UNUSED (cmp))
2994 : {
2995 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2996 0 : {
2997 0 : poly_int64 off0, off1;
2998 0 : tree base0, base1;
2999 0 : int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
3000 : off0, off1,
3001 : 1
3002 : );
3003 0 : if (equal == 1
3004 : )
3005 : {
3006 0 : if (minmax == MIN_EXPR
3007 : )
3008 : {
3009 0 : if (known_le (off0, off1)
3010 : )
3011 : {
3012 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail967;
3013 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail967;
3014 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail967;
3015 0 : {
3016 0 : tree _r;
3017 0 : _r = captures[0];
3018 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 772, __FILE__, __LINE__, true);
3019 0 : return _r;
3020 : }
3021 0 : next_after_fail967:;
3022 : }
3023 : else
3024 : {
3025 0 : if (known_gt (off0, off1)
3026 : )
3027 : {
3028 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail968;
3029 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail968;
3030 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail968;
3031 0 : {
3032 0 : tree _r;
3033 0 : _r = captures[2];
3034 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 773, __FILE__, __LINE__, true);
3035 : return _r;
3036 : }
3037 0 : next_after_fail968:;
3038 : }
3039 : }
3040 : }
3041 : else
3042 : {
3043 0 : if (known_ge (off0, off1)
3044 : )
3045 : {
3046 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail969;
3047 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail969;
3048 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail969;
3049 0 : {
3050 0 : tree _r;
3051 0 : _r = captures[0];
3052 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 774, __FILE__, __LINE__, true);
3053 : return _r;
3054 : }
3055 0 : next_after_fail969:;
3056 : }
3057 : else
3058 : {
3059 0 : if (known_lt (off0, off1)
3060 : )
3061 : {
3062 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail970;
3063 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail970;
3064 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail970;
3065 0 : {
3066 0 : tree _r;
3067 0 : _r = captures[2];
3068 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 775, __FILE__, __LINE__, true);
3069 : return _r;
3070 : }
3071 0 : next_after_fail970:;
3072 : }
3073 : }
3074 : }
3075 : }
3076 : }
3077 0 : return NULL_TREE;
3078 : }
3079 :
3080 : tree
3081 0 : generic_simplify_576 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3082 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
3083 : const combined_fn ARG_UNUSED (cond_op))
3084 : {
3085 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3086 0 : {
3087 0 : tree op_type = TREE_TYPE (captures[4]);
3088 0 : if (element_precision (type) == element_precision (op_type)
3089 : )
3090 : {
3091 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail994;
3092 0 : {
3093 0 : tree res_op0;
3094 0 : {
3095 0 : tree _o1[5], _r1;
3096 0 : _o1[0] = captures[0];
3097 0 : _o1[1] = captures[1];
3098 0 : _o1[2] = captures[2];
3099 0 : _o1[3] = captures[3];
3100 0 : {
3101 0 : tree _o2[1], _r2;
3102 0 : _o2[0] = captures[5];
3103 0 : if (TREE_TYPE (_o2[0]) != op_type)
3104 : {
3105 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
3106 : }
3107 : else
3108 : _r2 = _o2[0];
3109 0 : _o1[4] = _r2;
3110 : }
3111 0 : _r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 5, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4]);
3112 0 : if (!_r1)
3113 0 : goto next_after_fail994;
3114 0 : res_op0 = _r1;
3115 : }
3116 0 : tree _r;
3117 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
3118 0 : if (TREE_SIDE_EFFECTS (captures[4]))
3119 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
3120 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 787, __FILE__, __LINE__, true);
3121 : return _r;
3122 : }
3123 0 : next_after_fail994:;
3124 : }
3125 : }
3126 : return NULL_TREE;
3127 : }
3128 :
3129 : tree
3130 0 : generic_simplify_585 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3131 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
3132 : const enum tree_code ARG_UNUSED (rotate),
3133 : const enum tree_code ARG_UNUSED (orotate))
3134 : {
3135 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3136 0 : {
3137 0 : auto prec = element_precision (TREE_TYPE (captures[0]));
3138 0 : if (prec == wi::to_wide (captures[2])
3139 : )
3140 : {
3141 0 : if (expr_not_equal_to (captures[3], wi::uhwi (prec,
3142 0 : TYPE_PRECISION (TREE_TYPE (captures[3]))),
3143 : gimple_match_ctx (captures[1]))
3144 : )
3145 : {
3146 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1003;
3147 0 : {
3148 0 : tree res_op0;
3149 0 : res_op0 = captures[0];
3150 0 : tree res_op1;
3151 0 : res_op1 = captures[3];
3152 0 : tree _r;
3153 0 : _r = fold_build2_loc (loc, orotate, type, res_op0, res_op1);
3154 0 : if (TREE_SIDE_EFFECTS (captures[2]))
3155 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3156 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 796, __FILE__, __LINE__, true);
3157 0 : return _r;
3158 : }
3159 0 : next_after_fail1003:;
3160 : }
3161 : else
3162 : {
3163 0 : if (single_use (captures[1])
3164 0 : && pow2p_hwi (prec)
3165 0 : && cfun
3166 0 : && (fold_before_rtl_expansion_p ()
3167 0 : || !flag_tree_vrp
3168 0 : || optimize_debug)
3169 : )
3170 : {
3171 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1004;
3172 0 : {
3173 0 : tree res_op0;
3174 0 : res_op0 = captures[0];
3175 0 : tree res_op1;
3176 0 : {
3177 0 : tree _o1[2], _r1;
3178 0 : _o1[0] = captures[3];
3179 0 : _o1[1] = build_int_cst (TREE_TYPE (captures[3]), prec - 1);
3180 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
3181 0 : res_op1 = _r1;
3182 : }
3183 0 : tree _r;
3184 0 : _r = fold_build2_loc (loc, orotate, type, res_op0, res_op1);
3185 0 : if (TREE_SIDE_EFFECTS (captures[2]))
3186 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
3187 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 797, __FILE__, __LINE__, true);
3188 : return _r;
3189 : }
3190 0 : next_after_fail1004:;
3191 : }
3192 : }
3193 : }
3194 : }
3195 0 : return NULL_TREE;
3196 : }
3197 :
3198 : tree
3199 0 : generic_simplify_607 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3200 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
3201 : {
3202 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3203 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1028;
3204 0 : {
3205 0 : tree _r;
3206 0 : _r = captures[0];
3207 0 : if (TREE_SIDE_EFFECTS (captures[1]))
3208 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
3209 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 821, __FILE__, __LINE__, true);
3210 : return _r;
3211 : }
3212 0 : next_after_fail1028:;
3213 0 : return NULL_TREE;
3214 : }
3215 :
3216 : tree
3217 0 : generic_simplify_612 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3218 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3219 : const combined_fn ARG_UNUSED (fns))
3220 : {
3221 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3222 0 : if (canonicalize_math_p ()
3223 : )
3224 : {
3225 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1033;
3226 0 : {
3227 0 : tree res_op0;
3228 0 : res_op0 = captures[0];
3229 0 : tree _r;
3230 0 : _r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
3231 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 826, __FILE__, __LINE__, true);
3232 : return _r;
3233 : }
3234 0 : next_after_fail1033:;
3235 : }
3236 : return NULL_TREE;
3237 : }
3238 :
3239 : tree
3240 0 : generic_simplify_620 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3241 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
3242 : const combined_fn ARG_UNUSED (fmas))
3243 : {
3244 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3245 0 : if (canonicalize_math_after_vectorization_p ()
3246 : )
3247 : {
3248 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1041;
3249 : {
3250 : tree res_op0;
3251 : res_op0 = captures[0];
3252 : tree res_op1;
3253 : res_op1 = captures[1];
3254 : tree res_op2;
3255 : res_op2 = captures[2];
3256 : tree _r;
3257 : _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
3258 : if (!_r)
3259 : goto next_after_fail1041;
3260 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 834, __FILE__, __LINE__, true);
3261 : return _r;
3262 : }
3263 0 : next_after_fail1041:;
3264 : }
3265 0 : return NULL_TREE;
3266 : }
3267 :
3268 : tree
3269 0 : generic_simplify_630 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3270 : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
3271 : {
3272 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3273 0 : if (canonicalize_math_after_vectorization_p ()
3274 : )
3275 : {
3276 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1051;
3277 : {
3278 : tree res_op0;
3279 : res_op0 = captures[0];
3280 : tree res_op1;
3281 : res_op1 = captures[1];
3282 : tree res_op2;
3283 : res_op2 = captures[2];
3284 : tree res_op3;
3285 : res_op3 = captures[3];
3286 : tree res_op4;
3287 : res_op4 = captures[4];
3288 : tree _r;
3289 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3290 : if (!_r)
3291 : goto next_after_fail1051;
3292 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 844, __FILE__, __LINE__, true);
3293 : return _r;
3294 : }
3295 0 : next_after_fail1051:;
3296 : }
3297 0 : return NULL_TREE;
3298 : }
3299 :
3300 : tree
3301 0 : generic_simplify_639 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3302 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3303 : const combined_fn ARG_UNUSED (ctz))
3304 : {
3305 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3306 0 : {
3307 0 : tree t = TREE_TYPE (captures[0]);
3308 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1060;
3309 0 : {
3310 0 : tree res_op0;
3311 0 : {
3312 0 : tree _o1[1], _r1;
3313 0 : _o1[0] = captures[1];
3314 0 : if (TREE_TYPE (_o1[0]) != t)
3315 : {
3316 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
3317 : }
3318 : else
3319 : _r1 = _o1[0];
3320 0 : res_op0 = _r1;
3321 : }
3322 0 : tree _r;
3323 0 : _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
3324 0 : if (!_r)
3325 0 : goto next_after_fail1060;
3326 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 850, __FILE__, __LINE__, true);
3327 : return _r;
3328 : }
3329 0 : next_after_fail1060:;
3330 : }
3331 : return NULL_TREE;
3332 : }
3333 :
3334 : tree
3335 0 : generic_simplify_649 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3336 : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3337 : const combined_fn ARG_UNUSED (bswap),
3338 : const combined_fn ARG_UNUSED (parity))
3339 : {
3340 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3341 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3342 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3343 0 : && TYPE_PRECISION (TREE_TYPE (captures[0]))
3344 0 : >= TYPE_PRECISION (TREE_TYPE (captures[1]))
3345 : )
3346 : {
3347 0 : {
3348 0 : tree type0 = TREE_TYPE (captures[0]);
3349 0 : tree type1 = TREE_TYPE (captures[1]);
3350 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1072;
3351 0 : {
3352 0 : tree res_op0;
3353 0 : {
3354 0 : tree _o1[1], _r1;
3355 0 : {
3356 0 : tree _o2[1], _r2;
3357 0 : _o2[0] = captures[2];
3358 0 : if (TREE_TYPE (_o2[0]) != type1)
3359 : {
3360 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
3361 : }
3362 : else
3363 : _r2 = _o2[0];
3364 0 : _o1[0] = _r2;
3365 : }
3366 0 : if (TREE_TYPE (_o1[0]) != type0)
3367 : {
3368 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3369 : }
3370 : else
3371 : _r1 = _o1[0];
3372 0 : res_op0 = _r1;
3373 : }
3374 0 : tree _r;
3375 0 : _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
3376 0 : if (!_r)
3377 0 : goto next_after_fail1072;
3378 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 858, __FILE__, __LINE__, true);
3379 : return _r;
3380 : }
3381 0 : next_after_fail1072:;
3382 : }
3383 : }
3384 : return NULL_TREE;
3385 : }
3386 :
3387 : tree
3388 4353536 : generic_simplify_NEGATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3389 : {
3390 4353536 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3391 4353536 : switch (TREE_CODE (_p0))
3392 : {
3393 41701 : case PLUS_EXPR:
3394 41701 : {
3395 41701 : tree _q20 = TREE_OPERAND (_p0, 0);
3396 41701 : tree _q21 = TREE_OPERAND (_p0, 1);
3397 41701 : if (tree_negate_expr_p (_q21))
3398 : {
3399 39601 : {
3400 39601 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3401 39601 : tree res = generic_simplify_538 (loc, type, _p0, captures);
3402 39601 : if (res) return res;
3403 : }
3404 : }
3405 2100 : if (tree_negate_expr_p (_q20))
3406 : {
3407 17 : {
3408 17 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
3409 17 : tree res = generic_simplify_538 (loc, type, _p0, captures);
3410 17 : if (res) return res;
3411 : }
3412 : }
3413 : break;
3414 : }
3415 117817 : case MINUS_EXPR:
3416 117817 : {
3417 117817 : tree _q20 = TREE_OPERAND (_p0, 0);
3418 117817 : tree _q21 = TREE_OPERAND (_p0, 1);
3419 117817 : {
3420 117817 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3421 117817 : if ((ANY_INTEGRAL_TYPE_P (type) && !TYPE_OVERFLOW_SANITIZED (type))
3422 195728 : || (FLOAT_TYPE_P (type)
3423 77911 : && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
3424 77911 : && !HONOR_SIGNED_ZEROS (type))
3425 : )
3426 : {
3427 39963 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1119;
3428 39963 : {
3429 39963 : tree res_op0;
3430 39963 : res_op0 = captures[1];
3431 39963 : tree res_op1;
3432 39963 : res_op1 = captures[0];
3433 39963 : tree _r;
3434 39963 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
3435 39963 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
3436 : return _r;
3437 : }
3438 0 : next_after_fail1119:;
3439 : }
3440 : }
3441 : break;
3442 : }
3443 16 : case POINTER_DIFF_EXPR:
3444 16 : {
3445 16 : tree _q20 = TREE_OPERAND (_p0, 0);
3446 16 : tree _q21 = TREE_OPERAND (_p0, 1);
3447 16 : {
3448 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3449 16 : tree res = generic_simplify_539 (loc, type, _p0, captures);
3450 16 : if (res) return res;
3451 : }
3452 0 : break;
3453 : }
3454 5752 : case MULT_EXPR:
3455 5752 : {
3456 5752 : tree _q20 = TREE_OPERAND (_p0, 0);
3457 5752 : tree _q21 = TREE_OPERAND (_p0, 1);
3458 5752 : if (tree_negate_expr_p (_q21))
3459 : {
3460 1808 : {
3461 1808 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3462 1808 : tree res = generic_simplify_542 (loc, type, _p0, captures);
3463 1808 : if (res) return res;
3464 : }
3465 : }
3466 4339 : if (tree_negate_expr_p (_q20))
3467 : {
3468 35 : {
3469 35 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
3470 35 : tree res = generic_simplify_542 (loc, type, _p0, captures);
3471 35 : if (res) return res;
3472 : }
3473 : }
3474 : break;
3475 : }
3476 188 : case RDIV_EXPR:
3477 188 : {
3478 188 : tree _q20 = TREE_OPERAND (_p0, 0);
3479 188 : tree _q21 = TREE_OPERAND (_p0, 1);
3480 188 : if (tree_negate_expr_p (_q21))
3481 : {
3482 60 : {
3483 60 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3484 60 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
3485 60 : && single_use (captures[0])
3486 : )
3487 : {
3488 60 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1120;
3489 60 : {
3490 60 : tree res_op0;
3491 60 : res_op0 = captures[1];
3492 60 : tree res_op1;
3493 60 : {
3494 60 : tree _o1[1], _r1;
3495 60 : _o1[0] = captures[2];
3496 60 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3497 60 : res_op1 = _r1;
3498 : }
3499 60 : tree _r;
3500 60 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
3501 60 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
3502 : return _r;
3503 : }
3504 0 : next_after_fail1120:;
3505 : }
3506 : }
3507 : }
3508 128 : if (tree_negate_expr_p (_q20))
3509 : {
3510 0 : {
3511 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3512 0 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
3513 0 : && single_use (captures[0])
3514 : )
3515 : {
3516 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1121;
3517 0 : {
3518 0 : tree res_op0;
3519 0 : {
3520 0 : tree _o1[1], _r1;
3521 0 : _o1[0] = captures[1];
3522 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3523 0 : res_op0 = _r1;
3524 : }
3525 0 : tree res_op1;
3526 0 : res_op1 = captures[2];
3527 0 : tree _r;
3528 0 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
3529 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
3530 : return _r;
3531 : }
3532 0 : next_after_fail1121:;
3533 : }
3534 : }
3535 : }
3536 : break;
3537 : }
3538 1386128 : CASE_CONVERT:
3539 1386128 : {
3540 1386128 : tree _q20 = TREE_OPERAND (_p0, 0);
3541 1386128 : switch (TREE_CODE (_q20))
3542 : {
3543 64 : case RSHIFT_EXPR:
3544 64 : {
3545 64 : tree _q30 = TREE_OPERAND (_q20, 0);
3546 64 : tree _q31 = TREE_OPERAND (_q20, 1);
3547 64 : switch (TREE_CODE (_q31))
3548 : {
3549 49 : case INTEGER_CST:
3550 49 : {
3551 49 : {
3552 49 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
3553 49 : tree res = generic_simplify_543 (loc, type, _p0, captures);
3554 49 : if (res) return res;
3555 : }
3556 42 : break;
3557 : }
3558 : default:;
3559 : }
3560 : break;
3561 : }
3562 214 : case NEGATE_EXPR:
3563 214 : {
3564 214 : tree _q30 = TREE_OPERAND (_q20, 0);
3565 214 : {
3566 214 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3567 214 : if (!TYPE_SATURATING (type)
3568 : )
3569 : {
3570 214 : if (INTEGRAL_TYPE_P (type)
3571 214 : && (TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
3572 23 : || (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3573 44 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
3574 213 : && !TYPE_OVERFLOW_SANITIZED (type)
3575 449 : && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
3576 : )
3577 : {
3578 213 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1122;
3579 213 : {
3580 213 : tree res_op0;
3581 213 : res_op0 = captures[0];
3582 213 : tree _r;
3583 213 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3584 213 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
3585 4353536 : return _r;
3586 : }
3587 0 : next_after_fail1122:;
3588 : }
3589 : }
3590 : }
3591 : break;
3592 : }
3593 1385908 : default:;
3594 : }
3595 1385908 : {
3596 1385908 : tree _q20_pops[1];
3597 1385908 : if (tree_logical_inverted_value (_q20, _q20_pops))
3598 : {
3599 1 : tree _q30 = _q20_pops[0];
3600 1 : {
3601 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3602 1 : if (INTEGRAL_TYPE_P (type)
3603 1 : && TREE_CODE (type) != BOOLEAN_TYPE
3604 1 : && TYPE_PRECISION (type) > 1
3605 1 : && TREE_CODE (captures[2]) == SSA_NAME
3606 1 : && ssa_name_has_boolean_range (captures[2])
3607 : )
3608 : {
3609 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1123;
3610 0 : {
3611 0 : tree res_op0;
3612 0 : {
3613 0 : tree _o1[1], _r1;
3614 0 : _o1[0] = captures[2];
3615 0 : if (TREE_TYPE (_o1[0]) != type)
3616 : {
3617 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
3618 : }
3619 : else
3620 : _r1 = _o1[0];
3621 0 : res_op0 = _r1;
3622 : }
3623 0 : tree res_op1;
3624 0 : res_op1 = build_all_ones_cst (type);
3625 0 : tree _r;
3626 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3627 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
3628 0 : return _r;
3629 : }
3630 0 : next_after_fail1123:;
3631 : }
3632 : }
3633 : }
3634 : }
3635 1385908 : if (tree_negate_expr_p (_q20))
3636 : {
3637 2573 : {
3638 2573 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3639 2573 : if (!TYPE_SATURATING (type)
3640 : )
3641 : {
3642 2573 : if (SCALAR_FLOAT_TYPE_P (type)
3643 2573 : && ((DECIMAL_FLOAT_TYPE_P (type)
3644 0 : == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
3645 0 : && TYPE_PRECISION (type) >= TYPE_PRECISION (TREE_TYPE (captures[0])))
3646 0 : || !HONOR_SIGN_DEPENDENT_ROUNDING (type))
3647 : )
3648 : {
3649 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1124;
3650 0 : {
3651 0 : tree res_op0;
3652 0 : {
3653 0 : tree _o1[1], _r1;
3654 0 : _o1[0] = captures[0];
3655 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3656 0 : res_op0 = _r1;
3657 : }
3658 0 : tree _r;
3659 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3660 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 901, __FILE__, __LINE__, true);
3661 4353536 : return _r;
3662 : }
3663 0 : next_after_fail1124:;
3664 : }
3665 : }
3666 : }
3667 : }
3668 : break;
3669 : }
3670 385 : case RSHIFT_EXPR:
3671 385 : {
3672 385 : tree _q20 = TREE_OPERAND (_p0, 0);
3673 385 : tree _q21 = TREE_OPERAND (_p0, 1);
3674 385 : switch (TREE_CODE (_q21))
3675 : {
3676 367 : case INTEGER_CST:
3677 367 : {
3678 367 : {
3679 367 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3680 367 : tree res = generic_simplify_543 (loc, type, _p0, captures);
3681 367 : if (res) return res;
3682 : }
3683 330 : break;
3684 : }
3685 : default:;
3686 : }
3687 : break;
3688 : }
3689 147 : case BIT_NOT_EXPR:
3690 147 : {
3691 147 : tree _q20 = TREE_OPERAND (_p0, 0);
3692 147 : {
3693 147 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3694 147 : tree res = generic_simplify_540 (loc, type, _p0, captures);
3695 147 : if (res) return res;
3696 : }
3697 0 : break;
3698 : }
3699 3891 : case NEGATE_EXPR:
3700 3891 : {
3701 3891 : tree _q20 = TREE_OPERAND (_p0, 0);
3702 3891 : {
3703 3891 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3704 3891 : tree res = generic_simplify_541 (loc, type, _p0, captures);
3705 3891 : if (res) return res;
3706 : }
3707 26 : break;
3708 : }
3709 72 : case VEC_COND_EXPR:
3710 72 : {
3711 72 : tree _q20 = TREE_OPERAND (_p0, 0);
3712 72 : tree _q21 = TREE_OPERAND (_p0, 1);
3713 72 : tree _q22 = TREE_OPERAND (_p0, 2);
3714 72 : {
3715 72 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3716 72 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1125;
3717 72 : {
3718 72 : tree res_op0;
3719 72 : res_op0 = captures[1];
3720 72 : tree res_op1;
3721 72 : {
3722 72 : tree _o1[1], _r1;
3723 72 : _o1[0] = captures[2];
3724 72 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, type, _o1[0]);
3725 72 : if (EXPR_P (_r1))
3726 0 : goto next_after_fail1125;
3727 72 : res_op1 = _r1;
3728 : }
3729 72 : tree res_op2;
3730 72 : {
3731 72 : tree _o1[1], _r1;
3732 72 : _o1[0] = captures[3];
3733 72 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, type, _o1[0]);
3734 72 : if (EXPR_P (_r1))
3735 0 : goto next_after_fail1125;
3736 72 : res_op2 = _r1;
3737 : }
3738 72 : tree _r;
3739 72 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
3740 72 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 868, __FILE__, __LINE__, true);
3741 : return _r;
3742 : }
3743 4268098 : next_after_fail1125:;
3744 : }
3745 : break;
3746 : }
3747 277830 : case CALL_EXPR:
3748 277830 : switch (get_call_combined_fn (_p0))
3749 : {
3750 12 : case CFN_BUILT_IN_FMA:
3751 12 : if (call_expr_nargs (_p0) == 3)
3752 : {
3753 12 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3754 12 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3755 12 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3756 12 : {
3757 12 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3758 12 : tree res = generic_simplify_544 (loc, type, _p0, captures, CFN_BUILT_IN_FMA);
3759 12 : if (res) return res;
3760 : }
3761 : }
3762 : break;
3763 0 : case CFN_COND_FMA:
3764 0 : if (call_expr_nargs (_p0) == 5)
3765 : {
3766 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3767 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3768 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3769 0 : tree _q23 = CALL_EXPR_ARG (_p0, 3);
3770 0 : tree _q24 = CALL_EXPR_ARG (_p0, 4);
3771 0 : {
3772 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
3773 0 : const combined_fn fmas = CFN_COND_FMA;
3774 0 : if (canonicalize_math_after_vectorization_p ()
3775 : )
3776 : {
3777 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3778 : )
3779 : {
3780 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1126;
3781 : {
3782 : tree res_op0;
3783 : res_op0 = captures[1];
3784 : tree res_op1;
3785 : res_op1 = captures[2];
3786 : tree res_op2;
3787 : res_op2 = captures[3];
3788 : tree res_op3;
3789 : res_op3 = captures[4];
3790 : tree res_op4;
3791 : {
3792 : tree _o1[1], _r1;
3793 : _o1[0] = captures[5];
3794 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3795 : res_op4 = _r1;
3796 : }
3797 : tree _r;
3798 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3799 : if (!_r)
3800 : goto next_after_fail1126;
3801 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
3802 : return _r;
3803 : }
3804 0 : next_after_fail1126:;
3805 : }
3806 : }
3807 : }
3808 : }
3809 : break;
3810 0 : case CFN_COND_FMS:
3811 0 : if (call_expr_nargs (_p0) == 5)
3812 : {
3813 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3814 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3815 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3816 0 : tree _q23 = CALL_EXPR_ARG (_p0, 3);
3817 0 : tree _q24 = CALL_EXPR_ARG (_p0, 4);
3818 0 : {
3819 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
3820 0 : if (canonicalize_math_after_vectorization_p ()
3821 : )
3822 : {
3823 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3824 : )
3825 : {
3826 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1127;
3827 : {
3828 : tree res_op0;
3829 : res_op0 = captures[1];
3830 : tree res_op1;
3831 : res_op1 = captures[2];
3832 : tree res_op2;
3833 : res_op2 = captures[3];
3834 : tree res_op3;
3835 : res_op3 = captures[4];
3836 : tree res_op4;
3837 : {
3838 : tree _o1[1], _r1;
3839 : _o1[0] = captures[5];
3840 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3841 : res_op4 = _r1;
3842 : }
3843 : tree _r;
3844 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3845 : if (!_r)
3846 : goto next_after_fail1127;
3847 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
3848 : return _r;
3849 : }
3850 0 : next_after_fail1127:;
3851 : }
3852 : }
3853 : }
3854 : }
3855 : break;
3856 4 : case CFN_BUILT_IN_FMAF:
3857 4 : if (call_expr_nargs (_p0) == 3)
3858 : {
3859 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3860 4 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3861 4 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3862 4 : {
3863 4 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3864 4 : tree res = generic_simplify_544 (loc, type, _p0, captures, CFN_BUILT_IN_FMAF);
3865 4 : if (res) return res;
3866 : }
3867 : }
3868 : break;
3869 0 : case CFN_BUILT_IN_FMAL:
3870 0 : if (call_expr_nargs (_p0) == 3)
3871 : {
3872 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3873 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3874 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3875 0 : {
3876 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3877 0 : tree res = generic_simplify_544 (loc, type, _p0, captures, CFN_BUILT_IN_FMAL);
3878 0 : if (res) return res;
3879 : }
3880 : }
3881 : break;
3882 0 : case CFN_FMA:
3883 0 : if (call_expr_nargs (_p0) == 3)
3884 : {
3885 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3886 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3887 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3888 0 : {
3889 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3890 0 : tree res = generic_simplify_544 (loc, type, _p0, captures, CFN_FMA);
3891 0 : if (res) return res;
3892 : }
3893 : }
3894 : break;
3895 0 : case CFN_FMS:
3896 0 : if (call_expr_nargs (_p0) == 3)
3897 : {
3898 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3899 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3900 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3901 0 : {
3902 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3903 0 : if (canonicalize_math_after_vectorization_p ()
3904 : )
3905 : {
3906 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3907 : )
3908 : {
3909 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1128;
3910 : {
3911 : tree res_op0;
3912 : res_op0 = captures[1];
3913 : tree res_op1;
3914 : res_op1 = captures[2];
3915 : tree res_op2;
3916 : res_op2 = captures[3];
3917 : tree _r;
3918 : _r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
3919 : if (!_r)
3920 : goto next_after_fail1128;
3921 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
3922 : return _r;
3923 : }
3924 0 : next_after_fail1128:;
3925 : }
3926 : }
3927 : }
3928 : }
3929 : break;
3930 0 : case CFN_COND_FNMA:
3931 0 : if (call_expr_nargs (_p0) == 5)
3932 : {
3933 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3934 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3935 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3936 0 : tree _q23 = CALL_EXPR_ARG (_p0, 3);
3937 0 : tree _q24 = CALL_EXPR_ARG (_p0, 4);
3938 0 : {
3939 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
3940 0 : if (canonicalize_math_after_vectorization_p ()
3941 : )
3942 : {
3943 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3944 : )
3945 : {
3946 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1129;
3947 : {
3948 : tree res_op0;
3949 : res_op0 = captures[1];
3950 : tree res_op1;
3951 : res_op1 = captures[2];
3952 : tree res_op2;
3953 : res_op2 = captures[3];
3954 : tree res_op3;
3955 : res_op3 = captures[4];
3956 : tree res_op4;
3957 : {
3958 : tree _o1[1], _r1;
3959 : _o1[0] = captures[5];
3960 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3961 : res_op4 = _r1;
3962 : }
3963 : tree _r;
3964 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
3965 : if (!_r)
3966 : goto next_after_fail1129;
3967 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 905, __FILE__, __LINE__, true);
3968 : return _r;
3969 : }
3970 0 : next_after_fail1129:;
3971 : }
3972 : }
3973 : }
3974 : }
3975 : break;
3976 0 : case CFN_COND_FNMS:
3977 0 : if (call_expr_nargs (_p0) == 5)
3978 : {
3979 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3980 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3981 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3982 0 : tree _q23 = CALL_EXPR_ARG (_p0, 3);
3983 0 : tree _q24 = CALL_EXPR_ARG (_p0, 4);
3984 0 : {
3985 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
3986 0 : if (canonicalize_math_after_vectorization_p ()
3987 : )
3988 : {
3989 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3990 : )
3991 : {
3992 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1130;
3993 : {
3994 : tree res_op0;
3995 : res_op0 = captures[1];
3996 : tree res_op1;
3997 : res_op1 = captures[2];
3998 : tree res_op2;
3999 : res_op2 = captures[3];
4000 : tree res_op3;
4001 : res_op3 = captures[4];
4002 : tree res_op4;
4003 : {
4004 : tree _o1[1], _r1;
4005 : _o1[0] = captures[5];
4006 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
4007 : res_op4 = _r1;
4008 : }
4009 : tree _r;
4010 : _r = maybe_build_call_expr_loc (loc, CFN_COND_FMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
4011 : if (!_r)
4012 : goto next_after_fail1130;
4013 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 906, __FILE__, __LINE__, true);
4014 : return _r;
4015 : }
4016 0 : next_after_fail1130:;
4017 : }
4018 : }
4019 : }
4020 : }
4021 : break;
4022 0 : case CFN_FNMA:
4023 0 : if (call_expr_nargs (_p0) == 3)
4024 : {
4025 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
4026 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
4027 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
4028 0 : {
4029 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
4030 0 : if (canonicalize_math_after_vectorization_p ()
4031 : )
4032 : {
4033 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
4034 : )
4035 : {
4036 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1131;
4037 : {
4038 : tree res_op0;
4039 : res_op0 = captures[1];
4040 : tree res_op1;
4041 : res_op1 = captures[2];
4042 : tree res_op2;
4043 : res_op2 = captures[3];
4044 : tree _r;
4045 : _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
4046 : if (!_r)
4047 : goto next_after_fail1131;
4048 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
4049 : return _r;
4050 : }
4051 0 : next_after_fail1131:;
4052 : }
4053 : }
4054 : }
4055 : }
4056 : break;
4057 0 : case CFN_FNMS:
4058 0 : if (call_expr_nargs (_p0) == 3)
4059 : {
4060 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
4061 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
4062 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
4063 0 : {
4064 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
4065 0 : if (canonicalize_math_after_vectorization_p ()
4066 : )
4067 : {
4068 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
4069 : )
4070 : {
4071 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1132;
4072 : {
4073 : tree res_op0;
4074 : res_op0 = captures[1];
4075 : tree res_op1;
4076 : res_op1 = captures[2];
4077 : tree res_op2;
4078 : res_op2 = captures[3];
4079 : tree _r;
4080 : _r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
4081 : if (!_r)
4082 : goto next_after_fail1132;
4083 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
4084 : return _r;
4085 : }
4086 0 : next_after_fail1132:;
4087 : }
4088 : }
4089 : }
4090 : }
4091 : break;
4092 : default:;
4093 : }
4094 : break;
4095 4268098 : default:;
4096 : }
4097 4268098 : {
4098 4268098 : tree _p0_pops[1];
4099 4268098 : if (tree_nop_convert (_p0, _p0_pops))
4100 : {
4101 1603235 : tree _q20 = _p0_pops[0];
4102 1603235 : switch (TREE_CODE (_q20))
4103 : {
4104 0 : case POINTER_DIFF_EXPR:
4105 0 : {
4106 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4107 0 : tree _q31 = TREE_OPERAND (_q20, 1);
4108 0 : {
4109 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
4110 0 : tree res = generic_simplify_539 (loc, type, _p0, captures);
4111 0 : if (res) return res;
4112 : }
4113 0 : break;
4114 : }
4115 0 : case BIT_NOT_EXPR:
4116 0 : {
4117 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4118 0 : {
4119 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
4120 0 : tree res = generic_simplify_540 (loc, type, _p0, captures);
4121 0 : if (res) return res;
4122 : }
4123 0 : break;
4124 : }
4125 0 : case NEGATE_EXPR:
4126 0 : {
4127 0 : tree _q30 = TREE_OPERAND (_q20, 0);
4128 0 : {
4129 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
4130 0 : tree res = generic_simplify_541 (loc, type, _p0, captures);
4131 0 : if (res) return res;
4132 : }
4133 0 : break;
4134 : }
4135 : default:;
4136 : }
4137 : }
4138 : }
4139 4268098 : {
4140 4268098 : tree _p0_pops[1];
4141 4268098 : if (tree_logical_inverted_value (_p0, _p0_pops))
4142 : {
4143 70 : tree _q20 = _p0_pops[0];
4144 70 : {
4145 70 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
4146 70 : if (INTEGRAL_TYPE_P (type)
4147 70 : && TREE_CODE (type) != BOOLEAN_TYPE
4148 70 : && TYPE_PRECISION (type) > 1
4149 70 : && TREE_CODE (captures[2]) == SSA_NAME
4150 70 : && ssa_name_has_boolean_range (captures[2])
4151 : )
4152 : {
4153 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1133;
4154 0 : {
4155 0 : tree res_op0;
4156 0 : {
4157 0 : tree _o1[1], _r1;
4158 0 : _o1[0] = captures[2];
4159 0 : if (TREE_TYPE (_o1[0]) != type)
4160 : {
4161 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
4162 : }
4163 : else
4164 : _r1 = _o1[0];
4165 0 : res_op0 = _r1;
4166 : }
4167 0 : tree res_op1;
4168 0 : res_op1 = build_all_ones_cst (type);
4169 0 : tree _r;
4170 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
4171 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
4172 0 : return _r;
4173 : }
4174 0 : next_after_fail1133:;
4175 : }
4176 : }
4177 : }
4178 : }
4179 4268098 : {
4180 4268098 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4181 4268098 : tree res = generic_simplify_465 (loc, type, _p0, captures);
4182 4268098 : if (res) return res;
4183 : }
4184 4254307 : return NULL_TREE;
4185 : }
4186 :
4187 : tree
4188 28253050 : generic_simplify_EQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
4189 : {
4190 28253050 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
4191 28253050 : switch (TREE_CODE (_p1))
4192 : {
4193 95 : case NEGATE_EXPR:
4194 95 : {
4195 95 : tree _q30 = TREE_OPERAND (_p1, 0);
4196 95 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
4197 : {
4198 0 : {
4199 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
4200 0 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR);
4201 0 : if (res) return res;
4202 : }
4203 : }
4204 : break;
4205 : }
4206 28253050 : default:;
4207 : }
4208 28253050 : switch (TREE_CODE (_p0))
4209 : {
4210 1306 : case NEGATE_EXPR:
4211 1306 : {
4212 1306 : tree _q20 = TREE_OPERAND (_p0, 0);
4213 1306 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4214 : {
4215 101 : {
4216 101 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
4217 101 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR);
4218 101 : if (res) return res;
4219 : }
4220 : }
4221 : break;
4222 : }
4223 0 : case CEIL_MOD_EXPR:
4224 0 : {
4225 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4226 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4227 0 : if (integer_pow2p (_q21))
4228 : {
4229 0 : if (integer_zerop (_p1))
4230 : {
4231 0 : {
4232 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4233 0 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, EQ_EXPR, CEIL_MOD_EXPR);
4234 0 : if (res) return res;
4235 : }
4236 : }
4237 : }
4238 : break;
4239 : }
4240 876 : case FLOOR_MOD_EXPR:
4241 876 : {
4242 876 : tree _q20 = TREE_OPERAND (_p0, 0);
4243 876 : tree _q21 = TREE_OPERAND (_p0, 1);
4244 876 : if (integer_pow2p (_q21))
4245 : {
4246 26 : if (integer_zerop (_p1))
4247 : {
4248 26 : {
4249 26 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4250 26 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, EQ_EXPR, FLOOR_MOD_EXPR);
4251 26 : if (res) return res;
4252 : }
4253 : }
4254 : }
4255 : break;
4256 : }
4257 0 : case ROUND_MOD_EXPR:
4258 0 : {
4259 0 : tree _q20 = TREE_OPERAND (_p0, 0);
4260 0 : tree _q21 = TREE_OPERAND (_p0, 1);
4261 0 : if (integer_pow2p (_q21))
4262 : {
4263 0 : if (integer_zerop (_p1))
4264 : {
4265 0 : {
4266 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4267 0 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, EQ_EXPR, ROUND_MOD_EXPR);
4268 0 : if (res) return res;
4269 : }
4270 : }
4271 : }
4272 : break;
4273 : }
4274 55108 : case TRUNC_MOD_EXPR:
4275 55108 : {
4276 55108 : tree _q20 = TREE_OPERAND (_p0, 0);
4277 55108 : tree _q21 = TREE_OPERAND (_p0, 1);
4278 55108 : if (integer_pow2p (_q21))
4279 : {
4280 40062 : if (integer_zerop (_p1))
4281 : {
4282 566 : {
4283 566 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4284 566 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, EQ_EXPR, TRUNC_MOD_EXPR);
4285 566 : if (res) return res;
4286 : }
4287 : }
4288 : }
4289 : break;
4290 : }
4291 5346640 : CASE_CONVERT:
4292 5346640 : {
4293 5346640 : tree _q20 = TREE_OPERAND (_p0, 0);
4294 5346640 : switch (TREE_CODE (_p1))
4295 : {
4296 8 : case LSHIFT_EXPR:
4297 8 : {
4298 8 : tree _q40 = TREE_OPERAND (_p1, 0);
4299 8 : tree _q41 = TREE_OPERAND (_p1, 1);
4300 8 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
4301 : {
4302 0 : {
4303 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
4304 0 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
4305 0 : if (res) return res;
4306 : }
4307 : }
4308 : break;
4309 : }
4310 5346640 : default:;
4311 : }
4312 5346640 : {
4313 5346640 : tree _p1_pops[1];
4314 5346640 : if (tree_nop_convert (_p1, _p1_pops))
4315 : {
4316 1340826 : tree _q40 = _p1_pops[0];
4317 1340826 : switch (TREE_CODE (_q40))
4318 : {
4319 0 : case LSHIFT_EXPR:
4320 0 : {
4321 0 : tree _q50 = TREE_OPERAND (_q40, 0);
4322 0 : tree _q51 = TREE_OPERAND (_q40, 1);
4323 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4324 : {
4325 0 : {
4326 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
4327 0 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
4328 0 : if (res) return res;
4329 : }
4330 : }
4331 : break;
4332 : }
4333 : default:;
4334 : }
4335 : }
4336 : }
4337 5346640 : switch (TREE_CODE (_q20))
4338 : {
4339 92 : case EXACT_DIV_EXPR:
4340 92 : {
4341 92 : tree _q30 = TREE_OPERAND (_q20, 0);
4342 92 : tree _q31 = TREE_OPERAND (_q20, 1);
4343 92 : switch (TREE_CODE (_q31))
4344 : {
4345 92 : case INTEGER_CST:
4346 92 : {
4347 92 : switch (TREE_CODE (_p1))
4348 : {
4349 0 : CASE_CONVERT:
4350 0 : {
4351 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4352 0 : switch (TREE_CODE (_q60))
4353 : {
4354 0 : case EXACT_DIV_EXPR:
4355 0 : {
4356 0 : tree _q70 = TREE_OPERAND (_q60, 0);
4357 0 : tree _q71 = TREE_OPERAND (_q60, 1);
4358 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
4359 : {
4360 0 : {
4361 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
4362 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
4363 0 : if (res) return res;
4364 : }
4365 : }
4366 : break;
4367 : }
4368 : default:;
4369 : }
4370 : break;
4371 : }
4372 : default:;
4373 : }
4374 : break;
4375 : }
4376 : default:;
4377 : }
4378 : break;
4379 : }
4380 5346640 : default:;
4381 : }
4382 5346640 : switch (TREE_CODE (_p1))
4383 : {
4384 29918 : case PLUS_EXPR:
4385 29918 : {
4386 29918 : tree _q40 = TREE_OPERAND (_p1, 0);
4387 29918 : tree _q41 = TREE_OPERAND (_p1, 1);
4388 29918 : switch (TREE_CODE (_q41))
4389 : {
4390 26 : CASE_CONVERT:
4391 26 : {
4392 26 : tree _q60 = TREE_OPERAND (_q41, 0);
4393 26 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4394 : {
4395 0 : {
4396 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
4397 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
4398 0 : if (res) return res;
4399 : }
4400 : }
4401 : break;
4402 : }
4403 29918 : default:;
4404 : }
4405 29918 : switch (TREE_CODE (_q40))
4406 : {
4407 3994 : CASE_CONVERT:
4408 3994 : {
4409 3994 : tree _q50 = TREE_OPERAND (_q40, 0);
4410 3994 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4411 : {
4412 0 : {
4413 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
4414 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
4415 0 : if (res) return res;
4416 : }
4417 : }
4418 : break;
4419 : }
4420 29918 : default:;
4421 : }
4422 29918 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
4423 : {
4424 0 : {
4425 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
4426 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
4427 0 : if (res) return res;
4428 : }
4429 : }
4430 29918 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
4431 : {
4432 0 : {
4433 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
4434 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
4435 0 : if (res) return res;
4436 : }
4437 : }
4438 : break;
4439 : }
4440 5346640 : default:;
4441 : }
4442 5346640 : {
4443 5346640 : tree _p1_pops[1];
4444 5346640 : if (tree_nop_convert (_p1, _p1_pops))
4445 : {
4446 1340826 : tree _q40 = _p1_pops[0];
4447 1340826 : switch (TREE_CODE (_q40))
4448 : {
4449 73 : case PLUS_EXPR:
4450 73 : {
4451 73 : tree _q50 = TREE_OPERAND (_q40, 0);
4452 73 : tree _q51 = TREE_OPERAND (_q40, 1);
4453 73 : switch (TREE_CODE (_q51))
4454 : {
4455 0 : CASE_CONVERT:
4456 0 : {
4457 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4458 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4459 : {
4460 0 : {
4461 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
4462 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
4463 0 : if (res) return res;
4464 : }
4465 : }
4466 : break;
4467 : }
4468 73 : default:;
4469 : }
4470 73 : switch (TREE_CODE (_q50))
4471 : {
4472 4 : CASE_CONVERT:
4473 4 : {
4474 4 : tree _q60 = TREE_OPERAND (_q50, 0);
4475 4 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4476 : {
4477 0 : {
4478 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
4479 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
4480 0 : if (res) return res;
4481 : }
4482 : }
4483 : break;
4484 : }
4485 73 : default:;
4486 : }
4487 73 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4488 : {
4489 0 : {
4490 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
4491 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
4492 0 : if (res) return res;
4493 : }
4494 : }
4495 73 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4496 : {
4497 0 : {
4498 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
4499 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
4500 0 : if (res) return res;
4501 : }
4502 : }
4503 : break;
4504 : }
4505 : default:;
4506 : }
4507 : }
4508 : }
4509 5346640 : break;
4510 : }
4511 28252455 : default:;
4512 : }
4513 28252455 : {
4514 28252455 : tree _p0_pops[1];
4515 28252455 : if (tree_nop_convert (_p0, _p0_pops))
4516 : {
4517 3163263 : tree _q20 = _p0_pops[0];
4518 3163263 : switch (TREE_CODE (_q20))
4519 : {
4520 1 : case LSHIFT_EXPR:
4521 1 : {
4522 1 : tree _q30 = TREE_OPERAND (_q20, 0);
4523 1 : tree _q31 = TREE_OPERAND (_q20, 1);
4524 1 : switch (TREE_CODE (_p1))
4525 : {
4526 0 : CASE_CONVERT:
4527 0 : {
4528 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4529 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
4530 : {
4531 0 : {
4532 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
4533 0 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
4534 0 : if (res) return res;
4535 : }
4536 : }
4537 : break;
4538 : }
4539 1 : default:;
4540 : }
4541 1 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
4542 : {
4543 1 : {
4544 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
4545 1 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
4546 1 : if (res) return res;
4547 : }
4548 : }
4549 : break;
4550 : }
4551 2591 : case PLUS_EXPR:
4552 2591 : {
4553 2591 : tree _q30 = TREE_OPERAND (_q20, 0);
4554 2591 : tree _q31 = TREE_OPERAND (_q20, 1);
4555 2591 : switch (TREE_CODE (_q31))
4556 : {
4557 0 : CASE_CONVERT:
4558 0 : {
4559 0 : tree _q50 = TREE_OPERAND (_q31, 0);
4560 0 : switch (TREE_CODE (_p1))
4561 : {
4562 0 : CASE_CONVERT:
4563 0 : {
4564 0 : tree _q70 = TREE_OPERAND (_p1, 0);
4565 0 : if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
4566 : {
4567 0 : {
4568 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
4569 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
4570 0 : if (res) return res;
4571 : }
4572 : }
4573 : break;
4574 : }
4575 : default:;
4576 : }
4577 : break;
4578 : }
4579 2591 : default:;
4580 : }
4581 2591 : switch (TREE_CODE (_q30))
4582 : {
4583 1256 : CASE_CONVERT:
4584 1256 : {
4585 1256 : tree _q40 = TREE_OPERAND (_q30, 0);
4586 1256 : switch (TREE_CODE (_p1))
4587 : {
4588 8 : CASE_CONVERT:
4589 8 : {
4590 8 : tree _q70 = TREE_OPERAND (_p1, 0);
4591 8 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
4592 : {
4593 0 : {
4594 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
4595 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
4596 0 : if (res) return res;
4597 : }
4598 : }
4599 : break;
4600 : }
4601 1256 : default:;
4602 : }
4603 1256 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
4604 : {
4605 0 : {
4606 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
4607 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
4608 0 : if (res) return res;
4609 : }
4610 : }
4611 : break;
4612 : }
4613 2591 : default:;
4614 : }
4615 2591 : switch (TREE_CODE (_q31))
4616 : {
4617 0 : CASE_CONVERT:
4618 0 : {
4619 0 : tree _q50 = TREE_OPERAND (_q31, 0);
4620 0 : if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
4621 : {
4622 0 : {
4623 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
4624 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
4625 0 : if (res) return res;
4626 : }
4627 : }
4628 : break;
4629 : }
4630 2591 : default:;
4631 : }
4632 2591 : switch (TREE_CODE (_p1))
4633 : {
4634 101 : CASE_CONVERT:
4635 101 : {
4636 101 : tree _q60 = TREE_OPERAND (_p1, 0);
4637 101 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
4638 : {
4639 0 : {
4640 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
4641 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
4642 0 : if (res) return res;
4643 : }
4644 : }
4645 101 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4646 : {
4647 0 : {
4648 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
4649 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
4650 0 : if (res) return res;
4651 : }
4652 : }
4653 : break;
4654 : }
4655 2591 : default:;
4656 : }
4657 2591 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
4658 : {
4659 0 : {
4660 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
4661 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
4662 0 : if (res) return res;
4663 : }
4664 : }
4665 2591 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
4666 : {
4667 0 : {
4668 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
4669 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
4670 0 : if (res) return res;
4671 : }
4672 : }
4673 : break;
4674 : }
4675 : default:;
4676 : }
4677 : }
4678 : }
4679 28252454 : {
4680 28252454 : tree _p1_pops[1];
4681 28252454 : if (tree_nop_convert (_p1, _p1_pops))
4682 : {
4683 1582911 : tree _q30 = _p1_pops[0];
4684 1582911 : switch (TREE_CODE (_q30))
4685 : {
4686 0 : case LSHIFT_EXPR:
4687 0 : {
4688 0 : tree _q40 = TREE_OPERAND (_q30, 0);
4689 0 : tree _q41 = TREE_OPERAND (_q30, 1);
4690 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
4691 : {
4692 0 : {
4693 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
4694 0 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
4695 0 : if (res) return res;
4696 : }
4697 : }
4698 : break;
4699 : }
4700 : default:;
4701 : }
4702 : }
4703 : }
4704 28252454 : switch (TREE_CODE (_p0))
4705 : {
4706 2065 : case LSHIFT_EXPR:
4707 2065 : {
4708 2065 : tree _q20 = TREE_OPERAND (_p0, 0);
4709 2065 : tree _q21 = TREE_OPERAND (_p0, 1);
4710 2065 : switch (TREE_CODE (_p1))
4711 : {
4712 61 : CASE_CONVERT:
4713 61 : {
4714 61 : tree _q50 = TREE_OPERAND (_p1, 0);
4715 61 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4716 : {
4717 4 : {
4718 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4719 4 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
4720 4 : if (res) return res;
4721 : }
4722 : }
4723 : break;
4724 : }
4725 2064 : default:;
4726 : }
4727 2064 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4728 : {
4729 27 : {
4730 27 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4731 27 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
4732 27 : if (res) return res;
4733 : }
4734 : }
4735 2060 : if (tree_zero_one_valued_p (_q20))
4736 : {
4737 238 : switch (TREE_CODE (_q21))
4738 : {
4739 10 : case INTEGER_CST:
4740 10 : {
4741 10 : if (integer_zerop (_p1))
4742 : {
4743 2 : {
4744 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4745 2 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, EQ_EXPR);
4746 2 : if (res) return res;
4747 : }
4748 : }
4749 : break;
4750 : }
4751 : default:;
4752 : }
4753 : }
4754 : break;
4755 : }
4756 28252447 : default:;
4757 : }
4758 28252447 : switch (TREE_CODE (_p1))
4759 : {
4760 236 : case LSHIFT_EXPR:
4761 236 : {
4762 236 : tree _q30 = TREE_OPERAND (_p1, 0);
4763 236 : tree _q31 = TREE_OPERAND (_p1, 1);
4764 236 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
4765 : {
4766 0 : {
4767 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
4768 0 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
4769 0 : if (res) return res;
4770 : }
4771 : }
4772 : break;
4773 : }
4774 28252447 : default:;
4775 : }
4776 28252447 : switch (TREE_CODE (_p0))
4777 : {
4778 32726 : case EQ_EXPR:
4779 32726 : {
4780 32726 : tree _q20 = TREE_OPERAND (_p0, 0);
4781 32726 : tree _q21 = TREE_OPERAND (_p0, 1);
4782 32726 : switch (TREE_CODE (_q20))
4783 : {
4784 76 : case BIT_AND_EXPR:
4785 76 : {
4786 76 : tree _q30 = TREE_OPERAND (_q20, 0);
4787 76 : tree _q31 = TREE_OPERAND (_q20, 1);
4788 76 : if (integer_pow2p (_q31))
4789 : {
4790 4 : if (integer_zerop (_q21))
4791 : {
4792 4 : switch (TREE_CODE (_p1))
4793 : {
4794 0 : case EQ_EXPR:
4795 0 : {
4796 0 : tree _q70 = TREE_OPERAND (_p1, 0);
4797 0 : tree _q71 = TREE_OPERAND (_p1, 1);
4798 0 : switch (TREE_CODE (_q70))
4799 : {
4800 0 : case BIT_AND_EXPR:
4801 0 : {
4802 0 : tree _q80 = TREE_OPERAND (_q70, 0);
4803 0 : tree _q81 = TREE_OPERAND (_q70, 1);
4804 0 : if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
4805 : {
4806 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
4807 : {
4808 0 : {
4809 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70, _q80 };
4810 0 : const enum tree_code icmp0 = EQ_EXPR;
4811 0 : const enum tree_code icmp1 = EQ_EXPR;
4812 0 : if (types_match (captures[2], captures[7])
4813 : )
4814 : {
4815 0 : {
4816 0 : bool innersame = icmp0 == icmp1;
4817 0 : if (innersame == (EQ_EXPR == EQ_EXPR)
4818 : )
4819 : {
4820 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1544;
4821 0 : {
4822 0 : tree res_op0;
4823 0 : {
4824 0 : tree _o1[2], _r1;
4825 0 : {
4826 0 : tree _o2[2], _r2;
4827 0 : _o2[0] = captures[2];
4828 0 : _o2[1] = captures[7];
4829 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
4830 0 : _o1[0] = _r2;
4831 : }
4832 0 : _o1[1] = captures[3];
4833 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4834 0 : res_op0 = _r1;
4835 : }
4836 0 : tree res_op1;
4837 0 : res_op1 = captures[4];
4838 0 : tree _r;
4839 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
4840 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
4841 : return _r;
4842 : }
4843 0 : next_after_fail1544:;
4844 : }
4845 : else
4846 : {
4847 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1545;
4848 : {
4849 : tree res_op0;
4850 : {
4851 : tree _o1[2], _r1;
4852 : {
4853 : tree _o2[2], _r2;
4854 : _o2[0] = captures[2];
4855 : _o2[1] = captures[7];
4856 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
4857 : _o1[0] = _r2;
4858 : }
4859 : _o1[1] = captures[3];
4860 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4861 : res_op0 = _r1;
4862 : }
4863 : tree res_op1;
4864 : res_op1 = captures[4];
4865 : tree _r;
4866 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
4867 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 929, __FILE__, __LINE__, true);
4868 : return _r;
4869 : }
4870 : next_after_fail1545:;
4871 : }
4872 : }
4873 : }
4874 : }
4875 : }
4876 : }
4877 : break;
4878 : }
4879 : default:;
4880 : }
4881 : break;
4882 : }
4883 0 : case NE_EXPR:
4884 0 : {
4885 0 : tree _q70 = TREE_OPERAND (_p1, 0);
4886 0 : tree _q71 = TREE_OPERAND (_p1, 1);
4887 0 : switch (TREE_CODE (_q70))
4888 : {
4889 0 : case BIT_AND_EXPR:
4890 0 : {
4891 0 : tree _q80 = TREE_OPERAND (_q70, 0);
4892 0 : tree _q81 = TREE_OPERAND (_q70, 1);
4893 0 : if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
4894 : {
4895 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
4896 : {
4897 0 : {
4898 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70, _q80 };
4899 0 : const enum tree_code icmp0 = EQ_EXPR;
4900 0 : const enum tree_code icmp1 = NE_EXPR;
4901 0 : if (types_match (captures[2], captures[7])
4902 : )
4903 : {
4904 0 : {
4905 0 : bool innersame = icmp0 == icmp1;
4906 0 : if (innersame == (EQ_EXPR == EQ_EXPR)
4907 : )
4908 : {
4909 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1546;
4910 : {
4911 : tree res_op0;
4912 : {
4913 : tree _o1[2], _r1;
4914 : {
4915 : tree _o2[2], _r2;
4916 : _o2[0] = captures[2];
4917 : _o2[1] = captures[7];
4918 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
4919 : _o1[0] = _r2;
4920 : }
4921 : _o1[1] = captures[3];
4922 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4923 : res_op0 = _r1;
4924 : }
4925 : tree res_op1;
4926 : res_op1 = captures[4];
4927 : tree _r;
4928 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
4929 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
4930 : return _r;
4931 : }
4932 : next_after_fail1546:;
4933 : }
4934 : else
4935 : {
4936 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1547;
4937 0 : {
4938 0 : tree res_op0;
4939 0 : {
4940 0 : tree _o1[2], _r1;
4941 0 : {
4942 0 : tree _o2[2], _r2;
4943 0 : _o2[0] = captures[2];
4944 0 : _o2[1] = captures[7];
4945 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
4946 0 : _o1[0] = _r2;
4947 : }
4948 0 : _o1[1] = captures[3];
4949 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4950 0 : res_op0 = _r1;
4951 : }
4952 0 : tree res_op1;
4953 0 : res_op1 = captures[4];
4954 0 : tree _r;
4955 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
4956 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 929, __FILE__, __LINE__, true);
4957 : return _r;
4958 : }
4959 0 : next_after_fail1547:;
4960 : }
4961 : }
4962 : }
4963 : }
4964 : }
4965 : }
4966 : break;
4967 : }
4968 : default:;
4969 : }
4970 : break;
4971 : }
4972 : default:;
4973 : }
4974 : }
4975 : }
4976 : break;
4977 : }
4978 : default:;
4979 : }
4980 : break;
4981 : }
4982 11864 : case NE_EXPR:
4983 11864 : {
4984 11864 : tree _q20 = TREE_OPERAND (_p0, 0);
4985 11864 : tree _q21 = TREE_OPERAND (_p0, 1);
4986 11864 : switch (TREE_CODE (_q20))
4987 : {
4988 80 : case BIT_AND_EXPR:
4989 80 : {
4990 80 : tree _q30 = TREE_OPERAND (_q20, 0);
4991 80 : tree _q31 = TREE_OPERAND (_q20, 1);
4992 80 : if (integer_pow2p (_q31))
4993 : {
4994 61 : if (integer_zerop (_q21))
4995 : {
4996 61 : switch (TREE_CODE (_p1))
4997 : {
4998 0 : case EQ_EXPR:
4999 0 : {
5000 0 : tree _q70 = TREE_OPERAND (_p1, 0);
5001 0 : tree _q71 = TREE_OPERAND (_p1, 1);
5002 0 : switch (TREE_CODE (_q70))
5003 : {
5004 0 : case BIT_AND_EXPR:
5005 0 : {
5006 0 : tree _q80 = TREE_OPERAND (_q70, 0);
5007 0 : tree _q81 = TREE_OPERAND (_q70, 1);
5008 0 : if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
5009 : {
5010 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
5011 : {
5012 0 : {
5013 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70, _q80 };
5014 0 : const enum tree_code icmp0 = NE_EXPR;
5015 0 : const enum tree_code icmp1 = EQ_EXPR;
5016 0 : if (types_match (captures[2], captures[7])
5017 : )
5018 : {
5019 0 : {
5020 0 : bool innersame = icmp0 == icmp1;
5021 0 : if (innersame == (EQ_EXPR == EQ_EXPR)
5022 : )
5023 : {
5024 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1548;
5025 : {
5026 : tree res_op0;
5027 : {
5028 : tree _o1[2], _r1;
5029 : {
5030 : tree _o2[2], _r2;
5031 : _o2[0] = captures[2];
5032 : _o2[1] = captures[7];
5033 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5034 : _o1[0] = _r2;
5035 : }
5036 : _o1[1] = captures[3];
5037 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5038 : res_op0 = _r1;
5039 : }
5040 : tree res_op1;
5041 : res_op1 = captures[4];
5042 : tree _r;
5043 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5044 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
5045 : return _r;
5046 : }
5047 : next_after_fail1548:;
5048 : }
5049 : else
5050 : {
5051 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1549;
5052 0 : {
5053 0 : tree res_op0;
5054 0 : {
5055 0 : tree _o1[2], _r1;
5056 0 : {
5057 0 : tree _o2[2], _r2;
5058 0 : _o2[0] = captures[2];
5059 0 : _o2[1] = captures[7];
5060 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5061 0 : _o1[0] = _r2;
5062 : }
5063 0 : _o1[1] = captures[3];
5064 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5065 0 : res_op0 = _r1;
5066 : }
5067 0 : tree res_op1;
5068 0 : res_op1 = captures[4];
5069 0 : tree _r;
5070 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
5071 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 929, __FILE__, __LINE__, true);
5072 : return _r;
5073 : }
5074 0 : next_after_fail1549:;
5075 : }
5076 : }
5077 : }
5078 : }
5079 : }
5080 : }
5081 : break;
5082 : }
5083 : default:;
5084 : }
5085 : break;
5086 : }
5087 0 : case NE_EXPR:
5088 0 : {
5089 0 : tree _q70 = TREE_OPERAND (_p1, 0);
5090 0 : tree _q71 = TREE_OPERAND (_p1, 1);
5091 0 : switch (TREE_CODE (_q70))
5092 : {
5093 0 : case BIT_AND_EXPR:
5094 0 : {
5095 0 : tree _q80 = TREE_OPERAND (_q70, 0);
5096 0 : tree _q81 = TREE_OPERAND (_q70, 1);
5097 0 : if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
5098 : {
5099 0 : if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
5100 : {
5101 0 : {
5102 0 : tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70, _q80 };
5103 0 : const enum tree_code icmp0 = NE_EXPR;
5104 0 : const enum tree_code icmp1 = NE_EXPR;
5105 0 : if (types_match (captures[2], captures[7])
5106 : )
5107 : {
5108 0 : {
5109 0 : bool innersame = icmp0 == icmp1;
5110 0 : if (innersame == (EQ_EXPR == EQ_EXPR)
5111 : )
5112 : {
5113 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1550;
5114 0 : {
5115 0 : tree res_op0;
5116 0 : {
5117 0 : tree _o1[2], _r1;
5118 0 : {
5119 0 : tree _o2[2], _r2;
5120 0 : _o2[0] = captures[2];
5121 0 : _o2[1] = captures[7];
5122 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5123 0 : _o1[0] = _r2;
5124 : }
5125 0 : _o1[1] = captures[3];
5126 0 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5127 0 : res_op0 = _r1;
5128 : }
5129 0 : tree res_op1;
5130 0 : res_op1 = captures[4];
5131 0 : tree _r;
5132 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5133 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
5134 : return _r;
5135 : }
5136 0 : next_after_fail1550:;
5137 : }
5138 : else
5139 : {
5140 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1551;
5141 : {
5142 : tree res_op0;
5143 : {
5144 : tree _o1[2], _r1;
5145 : {
5146 : tree _o2[2], _r2;
5147 : _o2[0] = captures[2];
5148 : _o2[1] = captures[7];
5149 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5150 : _o1[0] = _r2;
5151 : }
5152 : _o1[1] = captures[3];
5153 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5154 : res_op0 = _r1;
5155 : }
5156 : tree res_op1;
5157 : res_op1 = captures[4];
5158 : tree _r;
5159 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
5160 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 929, __FILE__, __LINE__, true);
5161 : return _r;
5162 : }
5163 : next_after_fail1551:;
5164 : }
5165 : }
5166 : }
5167 : }
5168 : }
5169 : }
5170 : break;
5171 : }
5172 : default:;
5173 : }
5174 : break;
5175 : }
5176 : default:;
5177 : }
5178 : }
5179 : }
5180 : break;
5181 : }
5182 : default:;
5183 : }
5184 : break;
5185 : }
5186 46437 : case VIEW_CONVERT_EXPR:
5187 46437 : {
5188 46437 : tree _q20 = TREE_OPERAND (_p0, 0);
5189 46437 : if (tree_zero_one_valued_p (_q20))
5190 : {
5191 0 : if (integer_zerop (_p1))
5192 : {
5193 0 : {
5194 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
5195 0 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
5196 0 : if (res) return res;
5197 : }
5198 : }
5199 : }
5200 : break;
5201 : }
5202 17938 : case RSHIFT_EXPR:
5203 17938 : {
5204 17938 : tree _q20 = TREE_OPERAND (_p0, 0);
5205 17938 : tree _q21 = TREE_OPERAND (_p0, 1);
5206 17938 : switch (TREE_CODE (_q21))
5207 : {
5208 16678 : case INTEGER_CST:
5209 16678 : {
5210 16678 : switch (TREE_CODE (_p1))
5211 : {
5212 106 : case RSHIFT_EXPR:
5213 106 : {
5214 106 : tree _q50 = TREE_OPERAND (_p1, 0);
5215 106 : tree _q51 = TREE_OPERAND (_p1, 1);
5216 106 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5217 : {
5218 18 : switch (TREE_CODE (_q51))
5219 : {
5220 18 : case INTEGER_CST:
5221 18 : {
5222 18 : {
5223 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5224 18 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
5225 18 : if (res) return res;
5226 : }
5227 17 : break;
5228 : }
5229 : default:;
5230 : }
5231 : }
5232 : break;
5233 : }
5234 16677 : default:;
5235 : }
5236 16677 : if (integer_zerop (_p1))
5237 : {
5238 2110 : {
5239 2110 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
5240 2110 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
5241 2110 : if (res) return res;
5242 : }
5243 : }
5244 : break;
5245 : }
5246 : default:;
5247 : }
5248 : break;
5249 : }
5250 843260 : case BIT_AND_EXPR:
5251 843260 : {
5252 843260 : tree _q20 = TREE_OPERAND (_p0, 0);
5253 843260 : tree _q21 = TREE_OPERAND (_p0, 1);
5254 843260 : if (tree_truth_valued_p (_q20))
5255 : {
5256 154 : if (tree_truth_valued_p (_q21))
5257 : {
5258 152 : switch (TREE_CODE (_p1))
5259 : {
5260 56 : case BIT_XOR_EXPR:
5261 56 : {
5262 56 : tree _q50 = TREE_OPERAND (_p1, 0);
5263 56 : tree _q51 = TREE_OPERAND (_p1, 1);
5264 56 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5265 : {
5266 56 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5267 : {
5268 56 : {
5269 56 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5270 112 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5271 112 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
5272 : )
5273 : {
5274 56 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1552;
5275 56 : {
5276 56 : tree res_op0;
5277 56 : {
5278 56 : tree _o1[1], _r1;
5279 56 : {
5280 56 : tree _o2[2], _r2;
5281 56 : _o2[0] = captures[0];
5282 56 : _o2[1] = captures[1];
5283 56 : _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5284 56 : _o1[0] = _r2;
5285 : }
5286 56 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
5287 56 : res_op0 = _r1;
5288 : }
5289 56 : tree _r;
5290 56 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
5291 56 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 932, __FILE__, __LINE__, true);
5292 : return _r;
5293 : }
5294 0 : next_after_fail1552:;
5295 : }
5296 : else
5297 : {
5298 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1553;
5299 0 : {
5300 0 : tree res_op0;
5301 0 : {
5302 0 : tree _o1[2], _r1;
5303 0 : {
5304 0 : tree _o2[2], _r2;
5305 0 : _o2[0] = captures[0];
5306 0 : _o2[1] = captures[1];
5307 0 : _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5308 0 : _o1[0] = _r2;
5309 : }
5310 0 : _o1[1] = build_one_cst (TREE_TYPE (captures[0]));
5311 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5312 0 : res_op0 = _r1;
5313 : }
5314 0 : tree _r;
5315 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
5316 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 933, __FILE__, __LINE__, true);
5317 : return _r;
5318 : }
5319 0 : next_after_fail1553:;
5320 : }
5321 : }
5322 : }
5323 : }
5324 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5325 : {
5326 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5327 : {
5328 0 : {
5329 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5330 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5331 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
5332 : )
5333 : {
5334 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1554;
5335 0 : {
5336 0 : tree res_op0;
5337 0 : {
5338 0 : tree _o1[1], _r1;
5339 0 : {
5340 0 : tree _o2[2], _r2;
5341 0 : _o2[0] = captures[0];
5342 0 : _o2[1] = captures[1];
5343 0 : _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5344 0 : _o1[0] = _r2;
5345 : }
5346 0 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
5347 0 : res_op0 = _r1;
5348 : }
5349 0 : tree _r;
5350 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
5351 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 932, __FILE__, __LINE__, true);
5352 : return _r;
5353 : }
5354 0 : next_after_fail1554:;
5355 : }
5356 : else
5357 : {
5358 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1555;
5359 0 : {
5360 0 : tree res_op0;
5361 0 : {
5362 0 : tree _o1[2], _r1;
5363 0 : {
5364 0 : tree _o2[2], _r2;
5365 0 : _o2[0] = captures[0];
5366 0 : _o2[1] = captures[1];
5367 0 : _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5368 0 : _o1[0] = _r2;
5369 : }
5370 0 : _o1[1] = build_one_cst (TREE_TYPE (captures[0]));
5371 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5372 0 : res_op0 = _r1;
5373 : }
5374 0 : tree _r;
5375 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
5376 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 933, __FILE__, __LINE__, true);
5377 : return _r;
5378 : }
5379 0 : next_after_fail1555:;
5380 : }
5381 : }
5382 : }
5383 : }
5384 : break;
5385 : }
5386 : default:;
5387 : }
5388 : }
5389 : }
5390 : break;
5391 : }
5392 635 : case BIT_XOR_EXPR:
5393 635 : {
5394 635 : tree _q20 = TREE_OPERAND (_p0, 0);
5395 635 : tree _q21 = TREE_OPERAND (_p0, 1);
5396 635 : switch (TREE_CODE (_p1))
5397 : {
5398 0 : case BIT_AND_EXPR:
5399 0 : {
5400 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5401 0 : tree _q51 = TREE_OPERAND (_p1, 1);
5402 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5403 : {
5404 0 : if (tree_truth_valued_p (_q50))
5405 : {
5406 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5407 : {
5408 0 : if (tree_truth_valued_p (_q51))
5409 : {
5410 0 : {
5411 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5412 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5413 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
5414 : )
5415 : {
5416 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1556;
5417 0 : {
5418 0 : tree res_op0;
5419 0 : {
5420 0 : tree _o1[1], _r1;
5421 0 : {
5422 0 : tree _o2[2], _r2;
5423 0 : _o2[0] = captures[0];
5424 0 : _o2[1] = captures[1];
5425 0 : _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5426 0 : _o1[0] = _r2;
5427 : }
5428 0 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
5429 0 : res_op0 = _r1;
5430 : }
5431 0 : tree _r;
5432 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
5433 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 932, __FILE__, __LINE__, true);
5434 : return _r;
5435 : }
5436 0 : next_after_fail1556:;
5437 : }
5438 : else
5439 : {
5440 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1557;
5441 0 : {
5442 0 : tree res_op0;
5443 0 : {
5444 0 : tree _o1[2], _r1;
5445 0 : {
5446 0 : tree _o2[2], _r2;
5447 0 : _o2[0] = captures[0];
5448 0 : _o2[1] = captures[1];
5449 0 : _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5450 0 : _o1[0] = _r2;
5451 : }
5452 0 : _o1[1] = build_one_cst (TREE_TYPE (captures[0]));
5453 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5454 0 : res_op0 = _r1;
5455 : }
5456 0 : tree _r;
5457 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
5458 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 933, __FILE__, __LINE__, true);
5459 : return _r;
5460 : }
5461 0 : next_after_fail1557:;
5462 : }
5463 : }
5464 : }
5465 : }
5466 : }
5467 : }
5468 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5469 : {
5470 0 : if (tree_truth_valued_p (_q50))
5471 : {
5472 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5473 : {
5474 0 : if (tree_truth_valued_p (_q51))
5475 : {
5476 0 : {
5477 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5478 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5479 0 : && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
5480 : )
5481 : {
5482 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1558;
5483 0 : {
5484 0 : tree res_op0;
5485 0 : {
5486 0 : tree _o1[1], _r1;
5487 0 : {
5488 0 : tree _o2[2], _r2;
5489 0 : _o2[0] = captures[0];
5490 0 : _o2[1] = captures[1];
5491 0 : _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5492 0 : _o1[0] = _r2;
5493 : }
5494 0 : _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
5495 0 : res_op0 = _r1;
5496 : }
5497 0 : tree _r;
5498 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
5499 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 932, __FILE__, __LINE__, true);
5500 : return _r;
5501 : }
5502 0 : next_after_fail1558:;
5503 : }
5504 : else
5505 : {
5506 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1559;
5507 0 : {
5508 0 : tree res_op0;
5509 0 : {
5510 0 : tree _o1[2], _r1;
5511 0 : {
5512 0 : tree _o2[2], _r2;
5513 0 : _o2[0] = captures[0];
5514 0 : _o2[1] = captures[1];
5515 0 : _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
5516 0 : _o1[0] = _r2;
5517 : }
5518 0 : _o1[1] = build_one_cst (TREE_TYPE (captures[0]));
5519 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
5520 0 : res_op0 = _r1;
5521 : }
5522 0 : tree _r;
5523 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
5524 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 933, __FILE__, __LINE__, true);
5525 : return _r;
5526 : }
5527 0 : next_after_fail1559:;
5528 : }
5529 : }
5530 : }
5531 : }
5532 : }
5533 : }
5534 : break;
5535 : }
5536 : default:;
5537 : }
5538 : break;
5539 : }
5540 412 : case BIT_NOT_EXPR:
5541 412 : {
5542 412 : tree _q20 = TREE_OPERAND (_p0, 0);
5543 412 : if (tree_truth_valued_p (_q20))
5544 : {
5545 8 : if (tree_truth_valued_p (_p1))
5546 : {
5547 8 : {
5548 8 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
5549 8 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures);
5550 8 : if (res) return res;
5551 : }
5552 : }
5553 : }
5554 : break;
5555 : }
5556 66006 : case MULT_EXPR:
5557 66006 : {
5558 66006 : tree _q20 = TREE_OPERAND (_p0, 0);
5559 66006 : tree _q21 = TREE_OPERAND (_p0, 1);
5560 66006 : switch (TREE_CODE (_p1))
5561 : {
5562 952 : case MULT_EXPR:
5563 952 : {
5564 952 : tree _q50 = TREE_OPERAND (_p1, 0);
5565 952 : tree _q51 = TREE_OPERAND (_p1, 1);
5566 952 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5567 : {
5568 641 : {
5569 641 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5570 641 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
5571 641 : if (res) return res;
5572 : }
5573 : }
5574 944 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5575 : {
5576 0 : {
5577 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5578 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
5579 0 : if (res) return res;
5580 : }
5581 : }
5582 944 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5583 : {
5584 0 : {
5585 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5586 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
5587 0 : if (res) return res;
5588 : }
5589 : }
5590 944 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5591 : {
5592 24 : {
5593 24 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
5594 24 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
5595 24 : if (res) return res;
5596 : }
5597 : }
5598 : break;
5599 : }
5600 65998 : default:;
5601 : }
5602 65998 : switch (TREE_CODE (_q21))
5603 : {
5604 57886 : case INTEGER_CST:
5605 57886 : {
5606 57886 : switch (TREE_CODE (_p1))
5607 : {
5608 902 : case MULT_EXPR:
5609 902 : {
5610 902 : tree _q50 = TREE_OPERAND (_p1, 0);
5611 902 : tree _q51 = TREE_OPERAND (_p1, 1);
5612 902 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5613 : {
5614 596 : {
5615 596 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5616 596 : tree res = generic_simplify_230 (loc, type, _p0, _p1, captures, EQ_EXPR);
5617 596 : if (res) return res;
5618 : }
5619 : }
5620 : break;
5621 : }
5622 : default:;
5623 : }
5624 : break;
5625 : }
5626 : default:;
5627 : }
5628 : break;
5629 : }
5630 6618 : case EXACT_DIV_EXPR:
5631 6618 : {
5632 6618 : tree _q20 = TREE_OPERAND (_p0, 0);
5633 6618 : tree _q21 = TREE_OPERAND (_p0, 1);
5634 6618 : switch (TREE_CODE (_q21))
5635 : {
5636 6618 : case INTEGER_CST:
5637 6618 : {
5638 6618 : switch (TREE_CODE (_p1))
5639 : {
5640 0 : case EXACT_DIV_EXPR:
5641 0 : {
5642 0 : tree _q50 = TREE_OPERAND (_p1, 0);
5643 0 : tree _q51 = TREE_OPERAND (_p1, 1);
5644 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5645 : {
5646 0 : {
5647 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
5648 0 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
5649 0 : if (res) return res;
5650 : }
5651 : }
5652 : break;
5653 : }
5654 : default:;
5655 : }
5656 : break;
5657 : }
5658 : default:;
5659 : }
5660 : break;
5661 : }
5662 5404 : case TRUNC_DIV_EXPR:
5663 5404 : {
5664 5404 : tree _q20 = TREE_OPERAND (_p0, 0);
5665 5404 : tree _q21 = TREE_OPERAND (_p0, 1);
5666 5404 : switch (TREE_CODE (_q21))
5667 : {
5668 3908 : case INTEGER_CST:
5669 3908 : {
5670 3908 : switch (TREE_CODE (_p1))
5671 : {
5672 972 : case INTEGER_CST:
5673 972 : {
5674 972 : {
5675 972 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
5676 972 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, EQ_EXPR);
5677 972 : if (res) return res;
5678 : }
5679 26 : break;
5680 : }
5681 : default:;
5682 : }
5683 : break;
5684 : }
5685 : default:;
5686 : }
5687 : break;
5688 : }
5689 681793 : case PLUS_EXPR:
5690 681793 : {
5691 681793 : tree _q20 = TREE_OPERAND (_p0, 0);
5692 681793 : tree _q21 = TREE_OPERAND (_p0, 1);
5693 681793 : switch (TREE_CODE (_p1))
5694 : {
5695 54161 : case PLUS_EXPR:
5696 54161 : {
5697 54161 : tree _q50 = TREE_OPERAND (_p1, 0);
5698 54161 : tree _q51 = TREE_OPERAND (_p1, 1);
5699 54161 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5700 : {
5701 578 : {
5702 578 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5703 1156 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5704 883 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5705 271 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5706 : )
5707 : {
5708 305 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1560;
5709 305 : {
5710 305 : tree res_op0;
5711 305 : res_op0 = captures[0];
5712 305 : tree res_op1;
5713 305 : res_op1 = captures[2];
5714 305 : tree _r;
5715 305 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5716 305 : if (TREE_SIDE_EFFECTS (captures[1]))
5717 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5718 305 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
5719 : return _r;
5720 : }
5721 0 : next_after_fail1560:;
5722 : }
5723 : }
5724 : }
5725 53856 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5726 : {
5727 4 : {
5728 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5729 8 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5730 4 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5731 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5732 : )
5733 : {
5734 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1561;
5735 0 : {
5736 0 : tree res_op0;
5737 0 : res_op0 = captures[0];
5738 0 : tree res_op1;
5739 0 : res_op1 = captures[2];
5740 0 : tree _r;
5741 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5742 0 : if (TREE_SIDE_EFFECTS (captures[1]))
5743 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5744 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
5745 : return _r;
5746 : }
5747 0 : next_after_fail1561:;
5748 : }
5749 : }
5750 : }
5751 53856 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5752 : {
5753 4 : {
5754 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
5755 8 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5756 4 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5757 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5758 : )
5759 : {
5760 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1562;
5761 0 : {
5762 0 : tree res_op0;
5763 0 : res_op0 = captures[0];
5764 0 : tree res_op1;
5765 0 : res_op1 = captures[2];
5766 0 : tree _r;
5767 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5768 0 : if (TREE_SIDE_EFFECTS (captures[1]))
5769 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5770 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
5771 : return _r;
5772 : }
5773 0 : next_after_fail1562:;
5774 : }
5775 : }
5776 : }
5777 53856 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5778 : {
5779 248 : {
5780 248 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
5781 496 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5782 248 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5783 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5784 : )
5785 : {
5786 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1563;
5787 0 : {
5788 0 : tree res_op0;
5789 0 : res_op0 = captures[0];
5790 0 : tree res_op1;
5791 0 : res_op1 = captures[2];
5792 0 : tree _r;
5793 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5794 0 : if (TREE_SIDE_EFFECTS (captures[1]))
5795 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5796 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
5797 : return _r;
5798 : }
5799 0 : next_after_fail1563:;
5800 : }
5801 : }
5802 : }
5803 : break;
5804 : }
5805 681488 : default:;
5806 : }
5807 681488 : switch (TREE_CODE (_q21))
5808 : {
5809 2748 : CASE_CONVERT:
5810 2748 : {
5811 2748 : tree _q40 = TREE_OPERAND (_q21, 0);
5812 2748 : switch (TREE_CODE (_p1))
5813 : {
5814 158 : CASE_CONVERT:
5815 158 : {
5816 158 : tree _q60 = TREE_OPERAND (_p1, 0);
5817 158 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
5818 : {
5819 0 : {
5820 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
5821 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
5822 0 : if (res) return res;
5823 : }
5824 : }
5825 : break;
5826 : }
5827 : default:;
5828 : }
5829 : break;
5830 : }
5831 681488 : default:;
5832 : }
5833 681488 : switch (TREE_CODE (_q20))
5834 : {
5835 25926 : CASE_CONVERT:
5836 25926 : {
5837 25926 : tree _q30 = TREE_OPERAND (_q20, 0);
5838 25926 : switch (TREE_CODE (_p1))
5839 : {
5840 355 : CASE_CONVERT:
5841 355 : {
5842 355 : tree _q60 = TREE_OPERAND (_p1, 0);
5843 355 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
5844 : {
5845 2 : {
5846 2 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
5847 2 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
5848 2 : if (res) return res;
5849 : }
5850 : }
5851 : break;
5852 : }
5853 25925 : default:;
5854 : }
5855 25925 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
5856 : {
5857 0 : {
5858 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
5859 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
5860 0 : if (res) return res;
5861 : }
5862 : }
5863 : break;
5864 : }
5865 681487 : default:;
5866 : }
5867 681487 : switch (TREE_CODE (_q21))
5868 : {
5869 2748 : CASE_CONVERT:
5870 2748 : {
5871 2748 : tree _q40 = TREE_OPERAND (_q21, 0);
5872 2748 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
5873 : {
5874 0 : {
5875 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
5876 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
5877 0 : if (res) return res;
5878 : }
5879 : }
5880 : break;
5881 : }
5882 681487 : default:;
5883 : }
5884 681487 : switch (TREE_CODE (_p1))
5885 : {
5886 14100 : CASE_CONVERT:
5887 14100 : {
5888 14100 : tree _q50 = TREE_OPERAND (_p1, 0);
5889 14100 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5890 : {
5891 0 : {
5892 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5893 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
5894 0 : if (res) return res;
5895 : }
5896 : }
5897 14100 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5898 : {
5899 0 : {
5900 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
5901 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
5902 0 : if (res) return res;
5903 : }
5904 : }
5905 : break;
5906 : }
5907 681487 : default:;
5908 : }
5909 681487 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5910 : {
5911 2740 : {
5912 2740 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5913 2740 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
5914 2740 : if (res) return res;
5915 : }
5916 : }
5917 678815 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5918 : {
5919 80 : {
5920 80 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
5921 80 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
5922 80 : if (res) return res;
5923 : }
5924 : }
5925 : break;
5926 : }
5927 64767 : case POINTER_PLUS_EXPR:
5928 64767 : {
5929 64767 : tree _q20 = TREE_OPERAND (_p0, 0);
5930 64767 : tree _q21 = TREE_OPERAND (_p0, 1);
5931 64767 : switch (TREE_CODE (_p1))
5932 : {
5933 2324 : case POINTER_PLUS_EXPR:
5934 2324 : {
5935 2324 : tree _q50 = TREE_OPERAND (_p1, 0);
5936 2324 : tree _q51 = TREE_OPERAND (_p1, 1);
5937 2324 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5938 : {
5939 14 : {
5940 14 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5941 14 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
5942 14 : if (res) return res;
5943 : }
5944 : }
5945 : break;
5946 : }
5947 64753 : default:;
5948 : }
5949 64753 : switch (TREE_CODE (_q20))
5950 : {
5951 1146 : CASE_CONVERT:
5952 1146 : {
5953 1146 : tree _q30 = TREE_OPERAND (_q20, 0);
5954 1146 : switch (TREE_CODE (_p1))
5955 : {
5956 84 : CASE_CONVERT:
5957 84 : {
5958 84 : tree _q60 = TREE_OPERAND (_p1, 0);
5959 84 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
5960 : {
5961 54 : {
5962 54 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
5963 54 : tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, EQ_EXPR);
5964 54 : if (res) return res;
5965 : }
5966 : }
5967 : break;
5968 : }
5969 1092 : default:;
5970 : }
5971 1092 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
5972 : {
5973 0 : {
5974 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
5975 0 : tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, EQ_EXPR);
5976 0 : if (res) return res;
5977 : }
5978 : }
5979 : break;
5980 : }
5981 64699 : default:;
5982 : }
5983 64699 : switch (TREE_CODE (_p1))
5984 : {
5985 457 : CASE_CONVERT:
5986 457 : {
5987 457 : tree _q50 = TREE_OPERAND (_p1, 0);
5988 457 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5989 : {
5990 0 : {
5991 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5992 0 : tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, EQ_EXPR);
5993 0 : if (res) return res;
5994 : }
5995 : }
5996 : break;
5997 : }
5998 64699 : default:;
5999 : }
6000 64699 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6001 : {
6002 0 : {
6003 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
6004 0 : tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, EQ_EXPR);
6005 0 : if (res) return res;
6006 : }
6007 : }
6008 : break;
6009 : }
6010 158371 : case MINUS_EXPR:
6011 158371 : {
6012 158371 : tree _q20 = TREE_OPERAND (_p0, 0);
6013 158371 : tree _q21 = TREE_OPERAND (_p0, 1);
6014 158371 : switch (TREE_CODE (_p1))
6015 : {
6016 177 : case MINUS_EXPR:
6017 177 : {
6018 177 : tree _q50 = TREE_OPERAND (_p1, 0);
6019 177 : tree _q51 = TREE_OPERAND (_p1, 1);
6020 177 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6021 : {
6022 40 : {
6023 40 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6024 80 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
6025 40 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
6026 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
6027 : )
6028 : {
6029 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1564;
6030 0 : {
6031 0 : tree res_op0;
6032 0 : res_op0 = captures[0];
6033 0 : tree res_op1;
6034 0 : res_op1 = captures[2];
6035 0 : tree _r;
6036 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6037 0 : if (TREE_SIDE_EFFECTS (captures[1]))
6038 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
6039 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 967, __FILE__, __LINE__, true);
6040 : return _r;
6041 : }
6042 0 : next_after_fail1564:;
6043 : }
6044 : }
6045 : }
6046 177 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6047 : {
6048 40 : {
6049 40 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
6050 80 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
6051 40 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
6052 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
6053 : )
6054 : {
6055 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1565;
6056 0 : {
6057 0 : tree res_op0;
6058 0 : res_op0 = captures[2];
6059 0 : tree res_op1;
6060 0 : res_op1 = captures[1];
6061 0 : tree _r;
6062 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6063 0 : if (TREE_SIDE_EFFECTS (captures[0]))
6064 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
6065 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
6066 : return _r;
6067 : }
6068 0 : next_after_fail1565:;
6069 : }
6070 : }
6071 : }
6072 : break;
6073 : }
6074 : default:;
6075 : }
6076 : break;
6077 : }
6078 32997 : case POINTER_DIFF_EXPR:
6079 32997 : {
6080 32997 : tree _q20 = TREE_OPERAND (_p0, 0);
6081 32997 : tree _q21 = TREE_OPERAND (_p0, 1);
6082 32997 : switch (TREE_CODE (_p1))
6083 : {
6084 1230 : case POINTER_DIFF_EXPR:
6085 1230 : {
6086 1230 : tree _q50 = TREE_OPERAND (_p1, 0);
6087 1230 : tree _q51 = TREE_OPERAND (_p1, 1);
6088 1230 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6089 : {
6090 0 : {
6091 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
6092 0 : tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, EQ_EXPR);
6093 0 : if (res) return res;
6094 : }
6095 : }
6096 1230 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6097 : {
6098 0 : {
6099 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
6100 0 : tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, EQ_EXPR);
6101 0 : if (res) return res;
6102 : }
6103 : }
6104 : break;
6105 : }
6106 : default:;
6107 : }
6108 : break;
6109 : }
6110 28248287 : default:;
6111 : }
6112 28248287 : {
6113 28248287 : tree _p0_pops[1];
6114 28248287 : if (tree_logical_inverted_value (_p0, _p0_pops))
6115 : {
6116 9188 : tree _q20 = _p0_pops[0];
6117 9188 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6118 : {
6119 9 : if (tree_truth_valued_p (_p1))
6120 : {
6121 0 : {
6122 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
6123 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1566;
6124 0 : {
6125 0 : tree _r;
6126 0 : _r = constant_boolean_node (EQ_EXPR != EQ_EXPR, type);
6127 0 : if (TREE_SIDE_EFFECTS (captures[0]))
6128 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
6129 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 935, __FILE__, __LINE__, true);
6130 0 : return _r;
6131 : }
6132 0 : next_after_fail1566:;
6133 : }
6134 : }
6135 : }
6136 : }
6137 : }
6138 28248287 : if (tree_truth_valued_p (_p0))
6139 : {
6140 640662 : switch (TREE_CODE (_p1))
6141 : {
6142 24 : case BIT_NOT_EXPR:
6143 24 : {
6144 24 : tree _q30 = TREE_OPERAND (_p1, 0);
6145 24 : if (tree_truth_valued_p (_q30))
6146 : {
6147 4 : {
6148 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
6149 4 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures);
6150 4 : if (res) return res;
6151 : }
6152 : }
6153 : break;
6154 : }
6155 640662 : default:;
6156 : }
6157 640662 : {
6158 640662 : tree _p1_pops[1];
6159 640662 : if (tree_logical_inverted_value (_p1, _p1_pops))
6160 : {
6161 108 : tree _q30 = _p1_pops[0];
6162 108 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6163 : {
6164 0 : {
6165 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
6166 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1567;
6167 0 : {
6168 0 : tree _r;
6169 0 : _r = constant_boolean_node (EQ_EXPR != EQ_EXPR, type);
6170 0 : if (TREE_SIDE_EFFECTS (captures[0]))
6171 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
6172 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 935, __FILE__, __LINE__, true);
6173 0 : return _r;
6174 : }
6175 0 : next_after_fail1567:;
6176 : }
6177 : }
6178 : }
6179 : }
6180 : }
6181 28248287 : switch (TREE_CODE (_p1))
6182 : {
6183 88341 : case PLUS_EXPR:
6184 88341 : {
6185 88341 : tree _q30 = TREE_OPERAND (_p1, 0);
6186 88341 : tree _q31 = TREE_OPERAND (_p1, 1);
6187 88341 : switch (TREE_CODE (_q31))
6188 : {
6189 26 : CASE_CONVERT:
6190 26 : {
6191 26 : tree _q50 = TREE_OPERAND (_q31, 0);
6192 26 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
6193 : {
6194 0 : {
6195 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
6196 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
6197 0 : if (res) return res;
6198 : }
6199 : }
6200 : break;
6201 : }
6202 88341 : default:;
6203 : }
6204 88341 : switch (TREE_CODE (_q30))
6205 : {
6206 21697 : CASE_CONVERT:
6207 21697 : {
6208 21697 : tree _q40 = TREE_OPERAND (_q30, 0);
6209 21697 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
6210 : {
6211 0 : {
6212 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
6213 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
6214 0 : if (res) return res;
6215 : }
6216 : }
6217 : break;
6218 : }
6219 88341 : default:;
6220 : }
6221 88341 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6222 : {
6223 0 : {
6224 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
6225 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
6226 0 : if (res) return res;
6227 : }
6228 : }
6229 88341 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6230 : {
6231 0 : {
6232 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
6233 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
6234 0 : if (res) return res;
6235 : }
6236 : }
6237 : break;
6238 : }
6239 28248287 : default:;
6240 : }
6241 28248287 : {
6242 28248287 : tree _p1_pops[1];
6243 28248287 : if (tree_nop_convert (_p1, _p1_pops))
6244 : {
6245 1582854 : tree _q30 = _p1_pops[0];
6246 1582854 : switch (TREE_CODE (_q30))
6247 : {
6248 949 : case PLUS_EXPR:
6249 949 : {
6250 949 : tree _q40 = TREE_OPERAND (_q30, 0);
6251 949 : tree _q41 = TREE_OPERAND (_q30, 1);
6252 949 : switch (TREE_CODE (_q41))
6253 : {
6254 2 : CASE_CONVERT:
6255 2 : {
6256 2 : tree _q60 = TREE_OPERAND (_q41, 0);
6257 2 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
6258 : {
6259 0 : {
6260 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
6261 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
6262 0 : if (res) return res;
6263 : }
6264 : }
6265 : break;
6266 : }
6267 949 : default:;
6268 : }
6269 949 : switch (TREE_CODE (_q40))
6270 : {
6271 778 : CASE_CONVERT:
6272 778 : {
6273 778 : tree _q50 = TREE_OPERAND (_q40, 0);
6274 778 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
6275 : {
6276 0 : {
6277 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
6278 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
6279 0 : if (res) return res;
6280 : }
6281 : }
6282 : break;
6283 : }
6284 949 : default:;
6285 : }
6286 949 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
6287 : {
6288 0 : {
6289 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
6290 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
6291 0 : if (res) return res;
6292 : }
6293 : }
6294 949 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
6295 : {
6296 0 : {
6297 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
6298 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
6299 0 : if (res) return res;
6300 : }
6301 : }
6302 : break;
6303 : }
6304 : default:;
6305 : }
6306 : }
6307 : }
6308 28248287 : switch (TREE_CODE (_p0))
6309 : {
6310 5346639 : CASE_CONVERT:
6311 5346639 : {
6312 5346639 : tree _q20 = TREE_OPERAND (_p0, 0);
6313 5346639 : switch (TREE_CODE (_p1))
6314 : {
6315 158 : case POINTER_PLUS_EXPR:
6316 158 : {
6317 158 : tree _q40 = TREE_OPERAND (_p1, 0);
6318 158 : tree _q41 = TREE_OPERAND (_p1, 1);
6319 158 : switch (TREE_CODE (_q40))
6320 : {
6321 96 : CASE_CONVERT:
6322 96 : {
6323 96 : tree _q50 = TREE_OPERAND (_q40, 0);
6324 96 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6325 : {
6326 3 : {
6327 3 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
6328 3 : tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, EQ_EXPR);
6329 3 : if (res) return res;
6330 : }
6331 : }
6332 : break;
6333 : }
6334 155 : default:;
6335 : }
6336 155 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
6337 : {
6338 0 : {
6339 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
6340 0 : tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, EQ_EXPR);
6341 0 : if (res) return res;
6342 : }
6343 : }
6344 : break;
6345 : }
6346 5346636 : default:;
6347 : }
6348 5346636 : {
6349 5346636 : tree _p1_pops[1];
6350 5346636 : if (tree_nop_convert (_p1, _p1_pops))
6351 : {
6352 1340826 : tree _q40 = _p1_pops[0];
6353 1340826 : switch (TREE_CODE (_q40))
6354 : {
6355 18 : case POINTER_PLUS_EXPR:
6356 18 : {
6357 18 : tree _q50 = TREE_OPERAND (_q40, 0);
6358 18 : tree _q51 = TREE_OPERAND (_q40, 1);
6359 18 : switch (TREE_CODE (_q50))
6360 : {
6361 0 : CASE_CONVERT:
6362 0 : {
6363 0 : tree _q60 = TREE_OPERAND (_q50, 0);
6364 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6365 : {
6366 0 : {
6367 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
6368 0 : tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, EQ_EXPR);
6369 0 : if (res) return res;
6370 : }
6371 : }
6372 : break;
6373 : }
6374 18 : default:;
6375 : }
6376 18 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6377 : {
6378 0 : {
6379 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
6380 0 : tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, EQ_EXPR);
6381 0 : if (res) return res;
6382 : }
6383 : }
6384 : break;
6385 : }
6386 : default:;
6387 : }
6388 : }
6389 : }
6390 5346636 : break;
6391 : }
6392 28248284 : default:;
6393 : }
6394 28248284 : {
6395 28248284 : tree _p0_pops[1];
6396 28248284 : if (tree_nop_convert (_p0, _p0_pops))
6397 : {
6398 3163259 : tree _q20 = _p0_pops[0];
6399 3163259 : switch (TREE_CODE (_q20))
6400 : {
6401 97 : case POINTER_PLUS_EXPR:
6402 97 : {
6403 97 : tree _q30 = TREE_OPERAND (_q20, 0);
6404 97 : tree _q31 = TREE_OPERAND (_q20, 1);
6405 97 : switch (TREE_CODE (_q30))
6406 : {
6407 21 : CASE_CONVERT:
6408 21 : {
6409 21 : tree _q40 = TREE_OPERAND (_q30, 0);
6410 21 : switch (TREE_CODE (_p1))
6411 : {
6412 0 : CASE_CONVERT:
6413 0 : {
6414 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6415 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
6416 : {
6417 0 : {
6418 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
6419 0 : tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, EQ_EXPR);
6420 0 : if (res) return res;
6421 : }
6422 : }
6423 : break;
6424 : }
6425 21 : default:;
6426 : }
6427 21 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
6428 : {
6429 0 : {
6430 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
6431 0 : tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, EQ_EXPR);
6432 0 : if (res) return res;
6433 : }
6434 : }
6435 : break;
6436 : }
6437 97 : default:;
6438 : }
6439 97 : switch (TREE_CODE (_p1))
6440 : {
6441 27 : CASE_CONVERT:
6442 27 : {
6443 27 : tree _q60 = TREE_OPERAND (_p1, 0);
6444 27 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
6445 : {
6446 0 : {
6447 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
6448 0 : tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, EQ_EXPR);
6449 0 : if (res) return res;
6450 : }
6451 : }
6452 : break;
6453 : }
6454 97 : default:;
6455 : }
6456 97 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
6457 : {
6458 0 : {
6459 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
6460 0 : tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, EQ_EXPR);
6461 0 : if (res) return res;
6462 : }
6463 : }
6464 : break;
6465 : }
6466 : default:;
6467 : }
6468 : }
6469 : }
6470 28248284 : switch (TREE_CODE (_p1))
6471 : {
6472 6073 : case POINTER_PLUS_EXPR:
6473 6073 : {
6474 6073 : tree _q30 = TREE_OPERAND (_p1, 0);
6475 6073 : tree _q31 = TREE_OPERAND (_p1, 1);
6476 6073 : switch (TREE_CODE (_q30))
6477 : {
6478 3491 : CASE_CONVERT:
6479 3491 : {
6480 3491 : tree _q40 = TREE_OPERAND (_q30, 0);
6481 3491 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
6482 : {
6483 0 : {
6484 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
6485 0 : tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, EQ_EXPR);
6486 0 : if (res) return res;
6487 : }
6488 : }
6489 : break;
6490 : }
6491 6073 : default:;
6492 : }
6493 6073 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6494 : {
6495 0 : {
6496 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
6497 0 : tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, EQ_EXPR);
6498 0 : if (res) return res;
6499 : }
6500 : }
6501 : break;
6502 : }
6503 28248284 : default:;
6504 : }
6505 28248284 : {
6506 28248284 : tree _p1_pops[1];
6507 28248284 : if (tree_nop_convert (_p1, _p1_pops))
6508 : {
6509 1582854 : tree _q30 = _p1_pops[0];
6510 1582854 : switch (TREE_CODE (_q30))
6511 : {
6512 32 : case POINTER_PLUS_EXPR:
6513 32 : {
6514 32 : tree _q40 = TREE_OPERAND (_q30, 0);
6515 32 : tree _q41 = TREE_OPERAND (_q30, 1);
6516 32 : switch (TREE_CODE (_q40))
6517 : {
6518 0 : CASE_CONVERT:
6519 0 : {
6520 0 : tree _q50 = TREE_OPERAND (_q40, 0);
6521 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
6522 : {
6523 0 : {
6524 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
6525 0 : tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, EQ_EXPR);
6526 0 : if (res) return res;
6527 : }
6528 : }
6529 : break;
6530 : }
6531 32 : default:;
6532 : }
6533 32 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
6534 : {
6535 0 : {
6536 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
6537 0 : tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, EQ_EXPR);
6538 0 : if (res) return res;
6539 : }
6540 : }
6541 : break;
6542 : }
6543 : default:;
6544 : }
6545 : }
6546 : }
6547 28248284 : switch (TREE_CODE (_p0))
6548 : {
6549 64699 : case POINTER_PLUS_EXPR:
6550 64699 : {
6551 64699 : tree _q20 = TREE_OPERAND (_p0, 0);
6552 64699 : tree _q21 = TREE_OPERAND (_p0, 1);
6553 64699 : {
6554 64699 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6555 64699 : tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, EQ_EXPR);
6556 64699 : if (res) return res;
6557 : }
6558 64691 : switch (TREE_CODE (_p1))
6559 : {
6560 2310 : case POINTER_PLUS_EXPR:
6561 2310 : {
6562 2310 : tree _q50 = TREE_OPERAND (_p1, 0);
6563 2310 : tree _q51 = TREE_OPERAND (_p1, 1);
6564 2310 : {
6565 2310 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
6566 2310 : tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, EQ_EXPR);
6567 2310 : if (res) return res;
6568 : }
6569 2298 : break;
6570 : }
6571 : default:;
6572 : }
6573 : break;
6574 : }
6575 28248264 : default:;
6576 : }
6577 28248264 : switch (TREE_CODE (_p1))
6578 : {
6579 6061 : case POINTER_PLUS_EXPR:
6580 6061 : {
6581 6061 : tree _q30 = TREE_OPERAND (_p1, 0);
6582 6061 : tree _q31 = TREE_OPERAND (_p1, 1);
6583 6061 : {
6584 6061 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
6585 6061 : tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, EQ_EXPR);
6586 6061 : if (res) return res;
6587 : }
6588 6057 : break;
6589 : }
6590 3531 : case MINUS_EXPR:
6591 3531 : {
6592 3531 : tree _q30 = TREE_OPERAND (_p1, 0);
6593 3531 : tree _q31 = TREE_OPERAND (_p1, 1);
6594 3531 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6595 : {
6596 0 : {
6597 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
6598 0 : tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, EQ_EXPR);
6599 0 : if (res) return res;
6600 : }
6601 : }
6602 : break;
6603 : }
6604 28248260 : default:;
6605 : }
6606 28248260 : switch (TREE_CODE (_p0))
6607 : {
6608 158371 : case MINUS_EXPR:
6609 158371 : {
6610 158371 : tree _q20 = TREE_OPERAND (_p0, 0);
6611 158371 : tree _q21 = TREE_OPERAND (_p0, 1);
6612 158371 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6613 : {
6614 92 : {
6615 92 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
6616 92 : tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, EQ_EXPR);
6617 92 : if (res) return res;
6618 : }
6619 : }
6620 : break;
6621 : }
6622 4458 : case TRUNC_DIV_EXPR:
6623 4458 : {
6624 4458 : tree _q20 = TREE_OPERAND (_p0, 0);
6625 4458 : tree _q21 = TREE_OPERAND (_p0, 1);
6626 4458 : if (tree_expr_nonnegative_p (_q20))
6627 : {
6628 1144 : if (tree_expr_nonnegative_p (_q21))
6629 : {
6630 1127 : if (integer_zerop (_p1))
6631 : {
6632 266 : {
6633 266 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6634 266 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
6635 266 : if (res) return res;
6636 : }
6637 : }
6638 : }
6639 : }
6640 : break;
6641 : }
6642 54542 : case TRUNC_MOD_EXPR:
6643 54542 : {
6644 54542 : tree _q20 = TREE_OPERAND (_p0, 0);
6645 54542 : tree _q21 = TREE_OPERAND (_p0, 1);
6646 54542 : if (tree_expr_nonnegative_p (_q20))
6647 : {
6648 9566 : if (tree_expr_nonnegative_p (_q21))
6649 : {
6650 8585 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6651 : {
6652 19 : {
6653 19 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6654 19 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
6655 19 : if (res) return res;
6656 : }
6657 : }
6658 : }
6659 : }
6660 : break;
6661 : }
6662 28247951 : default:;
6663 : }
6664 28247951 : switch (TREE_CODE (_p1))
6665 : {
6666 182 : case TRUNC_MOD_EXPR:
6667 182 : {
6668 182 : tree _q30 = TREE_OPERAND (_p1, 0);
6669 182 : tree _q31 = TREE_OPERAND (_p1, 1);
6670 182 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6671 : {
6672 0 : if (tree_expr_nonnegative_p (_q30))
6673 : {
6674 0 : if (tree_expr_nonnegative_p (_q31))
6675 : {
6676 0 : {
6677 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
6678 0 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
6679 0 : if (res) return res;
6680 : }
6681 : }
6682 : }
6683 : }
6684 : break;
6685 : }
6686 28247951 : default:;
6687 : }
6688 28247951 : switch (TREE_CODE (_p0))
6689 : {
6690 5346632 : CASE_CONVERT:
6691 5346632 : {
6692 5346632 : tree _q20 = TREE_OPERAND (_p0, 0);
6693 5346632 : switch (TREE_CODE (_p1))
6694 : {
6695 1753066 : CASE_CONVERT:
6696 1753066 : {
6697 1753066 : tree _q40 = TREE_OPERAND (_p1, 0);
6698 1753066 : switch (TREE_CODE (_q40))
6699 : {
6700 0 : case MINUS_EXPR:
6701 0 : {
6702 0 : tree _q50 = TREE_OPERAND (_q40, 0);
6703 0 : tree _q51 = TREE_OPERAND (_q40, 1);
6704 0 : switch (TREE_CODE (_q50))
6705 : {
6706 0 : case INTEGER_CST:
6707 0 : {
6708 0 : switch (TREE_CODE (_q51))
6709 : {
6710 0 : CASE_CONVERT:
6711 0 : {
6712 0 : tree _q70 = TREE_OPERAND (_q51, 0);
6713 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
6714 : {
6715 0 : {
6716 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
6717 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
6718 0 : if (res) return res;
6719 : }
6720 : }
6721 : break;
6722 : }
6723 : default:;
6724 : }
6725 : break;
6726 : }
6727 : default:;
6728 : }
6729 : break;
6730 : }
6731 : default:;
6732 : }
6733 : break;
6734 : }
6735 5346632 : default:;
6736 : }
6737 5346632 : switch (TREE_CODE (_q20))
6738 : {
6739 244 : case MINUS_EXPR:
6740 244 : {
6741 244 : tree _q30 = TREE_OPERAND (_q20, 0);
6742 244 : tree _q31 = TREE_OPERAND (_q20, 1);
6743 244 : switch (TREE_CODE (_q30))
6744 : {
6745 56 : case INTEGER_CST:
6746 56 : {
6747 56 : switch (TREE_CODE (_q31))
6748 : {
6749 0 : CASE_CONVERT:
6750 0 : {
6751 0 : tree _q50 = TREE_OPERAND (_q31, 0);
6752 0 : switch (TREE_CODE (_p1))
6753 : {
6754 0 : CASE_CONVERT:
6755 0 : {
6756 0 : tree _q70 = TREE_OPERAND (_p1, 0);
6757 0 : if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
6758 : {
6759 0 : {
6760 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
6761 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
6762 0 : if (res) return res;
6763 : }
6764 : }
6765 : break;
6766 : }
6767 0 : default:;
6768 : }
6769 0 : if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
6770 : {
6771 0 : {
6772 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
6773 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
6774 0 : if (res) return res;
6775 : }
6776 : }
6777 : break;
6778 : }
6779 56 : default:;
6780 : }
6781 56 : switch (TREE_CODE (_p1))
6782 : {
6783 0 : CASE_CONVERT:
6784 0 : {
6785 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6786 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
6787 : {
6788 0 : {
6789 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
6790 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
6791 0 : if (res) return res;
6792 : }
6793 : }
6794 : break;
6795 : }
6796 56 : default:;
6797 : }
6798 56 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
6799 : {
6800 0 : {
6801 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
6802 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
6803 0 : if (res) return res;
6804 : }
6805 : }
6806 : break;
6807 : }
6808 : default:;
6809 : }
6810 : break;
6811 : }
6812 5346632 : default:;
6813 : }
6814 5346632 : switch (TREE_CODE (_p1))
6815 : {
6816 1753066 : CASE_CONVERT:
6817 1753066 : {
6818 1753066 : tree _q40 = TREE_OPERAND (_p1, 0);
6819 1753066 : switch (TREE_CODE (_q40))
6820 : {
6821 0 : case MINUS_EXPR:
6822 0 : {
6823 0 : tree _q50 = TREE_OPERAND (_q40, 0);
6824 0 : tree _q51 = TREE_OPERAND (_q40, 1);
6825 0 : switch (TREE_CODE (_q50))
6826 : {
6827 0 : case INTEGER_CST:
6828 0 : {
6829 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6830 : {
6831 0 : {
6832 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
6833 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
6834 0 : if (res) return res;
6835 : }
6836 : }
6837 : break;
6838 : }
6839 : default:;
6840 : }
6841 : break;
6842 : }
6843 : default:;
6844 : }
6845 : break;
6846 : }
6847 283 : case MINUS_EXPR:
6848 283 : {
6849 283 : tree _q40 = TREE_OPERAND (_p1, 0);
6850 283 : tree _q41 = TREE_OPERAND (_p1, 1);
6851 283 : switch (TREE_CODE (_q40))
6852 : {
6853 80 : case INTEGER_CST:
6854 80 : {
6855 80 : switch (TREE_CODE (_q41))
6856 : {
6857 12 : CASE_CONVERT:
6858 12 : {
6859 12 : tree _q60 = TREE_OPERAND (_q41, 0);
6860 12 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
6861 : {
6862 0 : {
6863 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6864 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
6865 0 : if (res) return res;
6866 : }
6867 : }
6868 : break;
6869 : }
6870 80 : default:;
6871 : }
6872 80 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
6873 : {
6874 0 : {
6875 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
6876 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
6877 0 : if (res) return res;
6878 : }
6879 : }
6880 : break;
6881 : }
6882 : default:;
6883 : }
6884 : break;
6885 : }
6886 : default:;
6887 : }
6888 : break;
6889 : }
6890 158289 : case MINUS_EXPR:
6891 158289 : {
6892 158289 : tree _q20 = TREE_OPERAND (_p0, 0);
6893 158289 : tree _q21 = TREE_OPERAND (_p0, 1);
6894 158289 : switch (TREE_CODE (_q20))
6895 : {
6896 42262 : case INTEGER_CST:
6897 42262 : {
6898 42262 : switch (TREE_CODE (_q21))
6899 : {
6900 23674 : CASE_CONVERT:
6901 23674 : {
6902 23674 : tree _q40 = TREE_OPERAND (_q21, 0);
6903 23674 : switch (TREE_CODE (_p1))
6904 : {
6905 0 : CASE_CONVERT:
6906 0 : {
6907 0 : tree _q60 = TREE_OPERAND (_p1, 0);
6908 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
6909 : {
6910 0 : {
6911 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6912 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
6913 0 : if (res) return res;
6914 : }
6915 : }
6916 : break;
6917 : }
6918 23674 : default:;
6919 : }
6920 23674 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
6921 : {
6922 0 : {
6923 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
6924 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
6925 0 : if (res) return res;
6926 : }
6927 : }
6928 : break;
6929 : }
6930 42262 : default:;
6931 : }
6932 42262 : switch (TREE_CODE (_p1))
6933 : {
6934 44 : CASE_CONVERT:
6935 44 : {
6936 44 : tree _q50 = TREE_OPERAND (_p1, 0);
6937 44 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6938 : {
6939 0 : {
6940 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6941 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
6942 0 : if (res) return res;
6943 : }
6944 : }
6945 : break;
6946 : }
6947 42262 : default:;
6948 : }
6949 42262 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6950 : {
6951 2 : {
6952 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6953 2 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
6954 2 : if (res) return res;
6955 : }
6956 : }
6957 : break;
6958 : }
6959 : default:;
6960 : }
6961 : break;
6962 : }
6963 28247950 : default:;
6964 : }
6965 28247950 : switch (TREE_CODE (_p1))
6966 : {
6967 2057596 : CASE_CONVERT:
6968 2057596 : {
6969 2057596 : tree _q30 = TREE_OPERAND (_p1, 0);
6970 2057596 : switch (TREE_CODE (_q30))
6971 : {
6972 12 : case MINUS_EXPR:
6973 12 : {
6974 12 : tree _q40 = TREE_OPERAND (_q30, 0);
6975 12 : tree _q41 = TREE_OPERAND (_q30, 1);
6976 12 : switch (TREE_CODE (_q40))
6977 : {
6978 12 : case INTEGER_CST:
6979 12 : {
6980 12 : switch (TREE_CODE (_q41))
6981 : {
6982 12 : CASE_CONVERT:
6983 12 : {
6984 12 : tree _q60 = TREE_OPERAND (_q41, 0);
6985 12 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
6986 : {
6987 0 : {
6988 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
6989 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
6990 0 : if (res) return res;
6991 : }
6992 : }
6993 : break;
6994 : }
6995 12 : default:;
6996 : }
6997 12 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
6998 : {
6999 0 : {
7000 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
7001 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
7002 0 : if (res) return res;
7003 : }
7004 : }
7005 : break;
7006 : }
7007 : default:;
7008 : }
7009 : break;
7010 : }
7011 : default:;
7012 : }
7013 : break;
7014 : }
7015 3531 : case MINUS_EXPR:
7016 3531 : {
7017 3531 : tree _q30 = TREE_OPERAND (_p1, 0);
7018 3531 : tree _q31 = TREE_OPERAND (_p1, 1);
7019 3531 : switch (TREE_CODE (_q30))
7020 : {
7021 282 : case INTEGER_CST:
7022 282 : {
7023 282 : switch (TREE_CODE (_q31))
7024 : {
7025 16 : CASE_CONVERT:
7026 16 : {
7027 16 : tree _q50 = TREE_OPERAND (_q31, 0);
7028 16 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
7029 : {
7030 0 : {
7031 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7032 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
7033 0 : if (res) return res;
7034 : }
7035 : }
7036 : break;
7037 : }
7038 282 : default:;
7039 : }
7040 282 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7041 : {
7042 0 : {
7043 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7044 0 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
7045 0 : if (res) return res;
7046 : }
7047 : }
7048 : break;
7049 : }
7050 : default:;
7051 : }
7052 : break;
7053 : }
7054 28247950 : default:;
7055 : }
7056 28247950 : switch (TREE_CODE (_p0))
7057 : {
7058 1131 : case LT_EXPR:
7059 1131 : {
7060 1131 : tree _q20 = TREE_OPERAND (_p0, 0);
7061 1131 : tree _q21 = TREE_OPERAND (_p0, 1);
7062 1131 : switch (TREE_CODE (_p1))
7063 : {
7064 17 : case GT_EXPR:
7065 17 : {
7066 17 : tree _q50 = TREE_OPERAND (_p1, 0);
7067 17 : tree _q51 = TREE_OPERAND (_p1, 1);
7068 17 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7069 : {
7070 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7071 : {
7072 0 : {
7073 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7074 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
7075 0 : if (res) return res;
7076 : }
7077 : }
7078 : }
7079 : break;
7080 : }
7081 0 : case EQ_EXPR:
7082 0 : {
7083 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7084 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7085 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7086 : {
7087 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7088 : {
7089 0 : {
7090 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7091 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
7092 0 : if (res) return res;
7093 : }
7094 : }
7095 : }
7096 : break;
7097 : }
7098 1 : case NE_EXPR:
7099 1 : {
7100 1 : tree _q50 = TREE_OPERAND (_p1, 0);
7101 1 : tree _q51 = TREE_OPERAND (_p1, 1);
7102 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7103 : {
7104 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7105 : {
7106 0 : {
7107 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7108 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
7109 0 : if (res) return res;
7110 : }
7111 : }
7112 : }
7113 : break;
7114 : }
7115 : default:;
7116 : }
7117 : break;
7118 : }
7119 1562 : case LE_EXPR:
7120 1562 : {
7121 1562 : tree _q20 = TREE_OPERAND (_p0, 0);
7122 1562 : tree _q21 = TREE_OPERAND (_p0, 1);
7123 1562 : switch (TREE_CODE (_p1))
7124 : {
7125 5 : case GE_EXPR:
7126 5 : {
7127 5 : tree _q50 = TREE_OPERAND (_p1, 0);
7128 5 : tree _q51 = TREE_OPERAND (_p1, 1);
7129 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7130 : {
7131 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7132 : {
7133 0 : {
7134 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7135 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
7136 0 : if (res) return res;
7137 : }
7138 : }
7139 : }
7140 : break;
7141 : }
7142 0 : case EQ_EXPR:
7143 0 : {
7144 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7145 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7146 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7147 : {
7148 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7149 : {
7150 0 : {
7151 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7152 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
7153 0 : if (res) return res;
7154 : }
7155 : }
7156 : }
7157 : break;
7158 : }
7159 8 : case NE_EXPR:
7160 8 : {
7161 8 : tree _q50 = TREE_OPERAND (_p1, 0);
7162 8 : tree _q51 = TREE_OPERAND (_p1, 1);
7163 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7164 : {
7165 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7166 : {
7167 0 : {
7168 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7169 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
7170 0 : if (res) return res;
7171 : }
7172 : }
7173 : }
7174 : break;
7175 : }
7176 : default:;
7177 : }
7178 : break;
7179 : }
7180 69797 : case GT_EXPR:
7181 69797 : {
7182 69797 : tree _q20 = TREE_OPERAND (_p0, 0);
7183 69797 : tree _q21 = TREE_OPERAND (_p0, 1);
7184 69797 : switch (TREE_CODE (_p1))
7185 : {
7186 68017 : case GT_EXPR:
7187 68017 : {
7188 68017 : tree _q50 = TREE_OPERAND (_p1, 0);
7189 68017 : tree _q51 = TREE_OPERAND (_p1, 1);
7190 68017 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7191 : {
7192 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7193 : {
7194 0 : {
7195 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7196 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
7197 0 : if (res) return res;
7198 : }
7199 0 : {
7200 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7201 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
7202 0 : if (res) return res;
7203 : }
7204 : }
7205 : }
7206 : break;
7207 : }
7208 59 : case EQ_EXPR:
7209 59 : {
7210 59 : tree _q50 = TREE_OPERAND (_p1, 0);
7211 59 : tree _q51 = TREE_OPERAND (_p1, 1);
7212 59 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7213 : {
7214 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7215 : {
7216 0 : {
7217 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7218 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
7219 0 : if (res) return res;
7220 : }
7221 : }
7222 : }
7223 : break;
7224 : }
7225 37 : case NE_EXPR:
7226 37 : {
7227 37 : tree _q50 = TREE_OPERAND (_p1, 0);
7228 37 : tree _q51 = TREE_OPERAND (_p1, 1);
7229 37 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7230 : {
7231 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7232 : {
7233 0 : {
7234 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7235 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
7236 0 : if (res) return res;
7237 : }
7238 : }
7239 : }
7240 : break;
7241 : }
7242 42 : case LT_EXPR:
7243 42 : {
7244 42 : tree _q50 = TREE_OPERAND (_p1, 0);
7245 42 : tree _q51 = TREE_OPERAND (_p1, 1);
7246 42 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7247 : {
7248 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7249 : {
7250 0 : {
7251 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7252 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
7253 0 : if (res) return res;
7254 : }
7255 : }
7256 : }
7257 : break;
7258 : }
7259 : default:;
7260 : }
7261 : break;
7262 : }
7263 6719 : case GE_EXPR:
7264 6719 : {
7265 6719 : tree _q20 = TREE_OPERAND (_p0, 0);
7266 6719 : tree _q21 = TREE_OPERAND (_p0, 1);
7267 6719 : switch (TREE_CODE (_p1))
7268 : {
7269 26 : case GE_EXPR:
7270 26 : {
7271 26 : tree _q50 = TREE_OPERAND (_p1, 0);
7272 26 : tree _q51 = TREE_OPERAND (_p1, 1);
7273 26 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7274 : {
7275 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7276 : {
7277 0 : {
7278 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7279 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
7280 0 : if (res) return res;
7281 : }
7282 0 : {
7283 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7284 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
7285 0 : if (res) return res;
7286 : }
7287 : }
7288 : }
7289 : break;
7290 : }
7291 92 : case EQ_EXPR:
7292 92 : {
7293 92 : tree _q50 = TREE_OPERAND (_p1, 0);
7294 92 : tree _q51 = TREE_OPERAND (_p1, 1);
7295 92 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7296 : {
7297 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7298 : {
7299 0 : {
7300 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7301 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
7302 0 : if (res) return res;
7303 : }
7304 : }
7305 : }
7306 : break;
7307 : }
7308 56 : case NE_EXPR:
7309 56 : {
7310 56 : tree _q50 = TREE_OPERAND (_p1, 0);
7311 56 : tree _q51 = TREE_OPERAND (_p1, 1);
7312 56 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7313 : {
7314 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7315 : {
7316 0 : {
7317 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7318 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
7319 0 : if (res) return res;
7320 : }
7321 : }
7322 : }
7323 : break;
7324 : }
7325 9 : case LE_EXPR:
7326 9 : {
7327 9 : tree _q50 = TREE_OPERAND (_p1, 0);
7328 9 : tree _q51 = TREE_OPERAND (_p1, 1);
7329 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7330 : {
7331 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7332 : {
7333 0 : {
7334 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7335 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
7336 0 : if (res) return res;
7337 : }
7338 : }
7339 : }
7340 : break;
7341 : }
7342 : default:;
7343 : }
7344 : break;
7345 : }
7346 32726 : case EQ_EXPR:
7347 32726 : {
7348 32726 : tree _q20 = TREE_OPERAND (_p0, 0);
7349 32726 : tree _q21 = TREE_OPERAND (_p0, 1);
7350 32726 : switch (TREE_CODE (_p1))
7351 : {
7352 5 : case LT_EXPR:
7353 5 : {
7354 5 : tree _q50 = TREE_OPERAND (_p1, 0);
7355 5 : tree _q51 = TREE_OPERAND (_p1, 1);
7356 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7357 : {
7358 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7359 : {
7360 0 : {
7361 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7362 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
7363 0 : if (res) return res;
7364 : }
7365 : }
7366 : }
7367 : break;
7368 : }
7369 4 : case LE_EXPR:
7370 4 : {
7371 4 : tree _q50 = TREE_OPERAND (_p1, 0);
7372 4 : tree _q51 = TREE_OPERAND (_p1, 1);
7373 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7374 : {
7375 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7376 : {
7377 0 : {
7378 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7379 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
7380 0 : if (res) return res;
7381 : }
7382 : }
7383 : }
7384 : break;
7385 : }
7386 73 : case GT_EXPR:
7387 73 : {
7388 73 : tree _q50 = TREE_OPERAND (_p1, 0);
7389 73 : tree _q51 = TREE_OPERAND (_p1, 1);
7390 73 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7391 : {
7392 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7393 : {
7394 0 : {
7395 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7396 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
7397 0 : if (res) return res;
7398 : }
7399 : }
7400 : }
7401 : break;
7402 : }
7403 110 : case GE_EXPR:
7404 110 : {
7405 110 : tree _q50 = TREE_OPERAND (_p1, 0);
7406 110 : tree _q51 = TREE_OPERAND (_p1, 1);
7407 110 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7408 : {
7409 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7410 : {
7411 0 : {
7412 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7413 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
7414 0 : if (res) return res;
7415 : }
7416 : }
7417 : }
7418 : break;
7419 : }
7420 32726 : default:;
7421 : }
7422 32726 : if (tree_zero_one_valued_p (_q20))
7423 : {
7424 6834 : if (integer_zerop (_q21))
7425 : {
7426 8 : switch (TREE_CODE (_p1))
7427 : {
7428 0 : case EQ_EXPR:
7429 0 : {
7430 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7431 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7432 0 : if (tree_zero_one_valued_p (_q50))
7433 : {
7434 0 : if (integer_zerop (_q51))
7435 : {
7436 0 : {
7437 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
7438 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, EQ_EXPR, EQ_EXPR);
7439 0 : if (res) return res;
7440 : }
7441 0 : {
7442 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
7443 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, EQ_EXPR, EQ_EXPR);
7444 0 : if (res) return res;
7445 : }
7446 : }
7447 : }
7448 : break;
7449 : }
7450 0 : case NE_EXPR:
7451 0 : {
7452 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7453 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7454 0 : if (tree_zero_one_valued_p (_q50))
7455 : {
7456 0 : if (integer_zerop (_q51))
7457 : {
7458 0 : {
7459 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
7460 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, NE_EXPR, NE_EXPR);
7461 0 : if (res) return res;
7462 : }
7463 0 : {
7464 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
7465 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, EQ_EXPR, NE_EXPR);
7466 0 : if (res) return res;
7467 : }
7468 : }
7469 : }
7470 : break;
7471 : }
7472 : default:;
7473 : }
7474 : }
7475 : }
7476 : break;
7477 : }
7478 11864 : case NE_EXPR:
7479 11864 : {
7480 11864 : tree _q20 = TREE_OPERAND (_p0, 0);
7481 11864 : tree _q21 = TREE_OPERAND (_p0, 1);
7482 11864 : switch (TREE_CODE (_p1))
7483 : {
7484 5 : case LT_EXPR:
7485 5 : {
7486 5 : tree _q50 = TREE_OPERAND (_p1, 0);
7487 5 : tree _q51 = TREE_OPERAND (_p1, 1);
7488 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7489 : {
7490 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7491 : {
7492 0 : {
7493 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7494 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
7495 0 : if (res) return res;
7496 : }
7497 : }
7498 : }
7499 : break;
7500 : }
7501 0 : case LE_EXPR:
7502 0 : {
7503 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7504 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7505 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7506 : {
7507 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7508 : {
7509 0 : {
7510 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7511 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
7512 0 : if (res) return res;
7513 : }
7514 : }
7515 : }
7516 : break;
7517 : }
7518 21 : case GT_EXPR:
7519 21 : {
7520 21 : tree _q50 = TREE_OPERAND (_p1, 0);
7521 21 : tree _q51 = TREE_OPERAND (_p1, 1);
7522 21 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7523 : {
7524 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7525 : {
7526 0 : {
7527 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7528 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
7529 0 : if (res) return res;
7530 : }
7531 : }
7532 : }
7533 : break;
7534 : }
7535 3 : case GE_EXPR:
7536 3 : {
7537 3 : tree _q50 = TREE_OPERAND (_p1, 0);
7538 3 : tree _q51 = TREE_OPERAND (_p1, 1);
7539 3 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7540 : {
7541 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7542 : {
7543 0 : {
7544 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7545 0 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
7546 0 : if (res) return res;
7547 : }
7548 : }
7549 : }
7550 : break;
7551 : }
7552 11864 : default:;
7553 : }
7554 11864 : if (tree_zero_one_valued_p (_q20))
7555 : {
7556 12 : if (integer_zerop (_q21))
7557 : {
7558 11 : switch (TREE_CODE (_p1))
7559 : {
7560 0 : case NE_EXPR:
7561 0 : {
7562 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7563 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7564 0 : if (tree_zero_one_valued_p (_q50))
7565 : {
7566 0 : if (integer_zerop (_q51))
7567 : {
7568 0 : {
7569 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
7570 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR, EQ_EXPR);
7571 0 : if (res) return res;
7572 : }
7573 0 : {
7574 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
7575 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR, EQ_EXPR);
7576 0 : if (res) return res;
7577 : }
7578 : }
7579 : }
7580 : break;
7581 : }
7582 0 : case EQ_EXPR:
7583 0 : {
7584 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7585 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7586 0 : if (tree_zero_one_valued_p (_q50))
7587 : {
7588 0 : if (integer_zerop (_q51))
7589 : {
7590 0 : {
7591 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
7592 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, EQ_EXPR, NE_EXPR);
7593 0 : if (res) return res;
7594 : }
7595 0 : {
7596 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
7597 0 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, NE_EXPR, NE_EXPR);
7598 0 : if (res) return res;
7599 : }
7600 : }
7601 : }
7602 : break;
7603 : }
7604 : default:;
7605 : }
7606 : }
7607 : }
7608 : break;
7609 : }
7610 11365 : case MIN_EXPR:
7611 11365 : {
7612 11365 : tree _q20 = TREE_OPERAND (_p0, 0);
7613 11365 : tree _q21 = TREE_OPERAND (_p0, 1);
7614 11365 : switch (TREE_CODE (_p1))
7615 : {
7616 0 : case MAX_EXPR:
7617 0 : {
7618 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7619 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7620 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7621 : {
7622 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7623 : {
7624 0 : {
7625 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7626 0 : if (!HONOR_NANS (captures[0])
7627 : )
7628 : {
7629 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1568;
7630 0 : {
7631 0 : tree res_op0;
7632 0 : res_op0 = captures[0];
7633 0 : tree res_op1;
7634 0 : res_op1 = captures[1];
7635 0 : tree _r;
7636 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
7637 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
7638 : return _r;
7639 : }
7640 0 : next_after_fail1568:;
7641 : }
7642 : }
7643 : }
7644 : }
7645 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7646 : {
7647 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7648 : {
7649 0 : {
7650 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7651 0 : if (!HONOR_NANS (captures[0])
7652 : )
7653 : {
7654 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1569;
7655 0 : {
7656 0 : tree res_op0;
7657 0 : res_op0 = captures[0];
7658 0 : tree res_op1;
7659 0 : res_op1 = captures[1];
7660 0 : tree _r;
7661 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
7662 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
7663 : return _r;
7664 : }
7665 0 : next_after_fail1569:;
7666 : }
7667 : }
7668 : }
7669 : }
7670 : break;
7671 : }
7672 11365 : default:;
7673 : }
7674 11365 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7675 : {
7676 0 : {
7677 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7678 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
7679 0 : if (res) return res;
7680 : }
7681 : }
7682 11365 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7683 : {
7684 0 : {
7685 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7686 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
7687 0 : if (res) return res;
7688 : }
7689 : }
7690 : break;
7691 : }
7692 718 : case MAX_EXPR:
7693 718 : {
7694 718 : tree _q20 = TREE_OPERAND (_p0, 0);
7695 718 : tree _q21 = TREE_OPERAND (_p0, 1);
7696 718 : switch (TREE_CODE (_p1))
7697 : {
7698 0 : case MIN_EXPR:
7699 0 : {
7700 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7701 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7702 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
7703 : {
7704 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7705 : {
7706 0 : {
7707 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7708 0 : if (!HONOR_NANS (captures[0])
7709 : )
7710 : {
7711 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1570;
7712 0 : {
7713 0 : tree res_op0;
7714 0 : res_op0 = captures[0];
7715 0 : tree res_op1;
7716 0 : res_op1 = captures[1];
7717 0 : tree _r;
7718 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
7719 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
7720 : return _r;
7721 : }
7722 0 : next_after_fail1570:;
7723 : }
7724 : }
7725 : }
7726 : }
7727 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
7728 : {
7729 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
7730 : {
7731 0 : {
7732 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7733 0 : if (!HONOR_NANS (captures[0])
7734 : )
7735 : {
7736 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1571;
7737 0 : {
7738 0 : tree res_op0;
7739 0 : res_op0 = captures[0];
7740 0 : tree res_op1;
7741 0 : res_op1 = captures[1];
7742 0 : tree _r;
7743 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
7744 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
7745 : return _r;
7746 : }
7747 0 : next_after_fail1571:;
7748 : }
7749 : }
7750 : }
7751 : }
7752 : break;
7753 : }
7754 718 : default:;
7755 : }
7756 718 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
7757 : {
7758 0 : {
7759 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7760 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
7761 0 : if (res) return res;
7762 : }
7763 : }
7764 718 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
7765 : {
7766 1 : {
7767 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
7768 1 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
7769 1 : if (res) return res;
7770 : }
7771 : }
7772 : break;
7773 : }
7774 28247950 : default:;
7775 : }
7776 28247950 : if (tree_with_possible_nonzero_bits (_p0))
7777 : {
7778 9904813 : if (tree_with_known_nonzero_bits (_p1))
7779 : {
7780 8383901 : {
7781 8383901 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
7782 8383901 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, EQ_EXPR);
7783 8383901 : if (res) return res;
7784 : }
7785 : }
7786 : }
7787 28230812 : if (tree_with_known_nonzero_bits (_p0))
7788 : {
7789 6368064 : if (tree_with_possible_nonzero_bits (_p1))
7790 : {
7791 6336351 : {
7792 6336351 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
7793 6336351 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, EQ_EXPR);
7794 6336351 : if (res) return res;
7795 : }
7796 : }
7797 : }
7798 28230437 : switch (TREE_CODE (_p1))
7799 : {
7800 157 : case MIN_EXPR:
7801 157 : {
7802 157 : tree _q30 = TREE_OPERAND (_p1, 0);
7803 157 : tree _q31 = TREE_OPERAND (_p1, 1);
7804 157 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7805 : {
7806 0 : {
7807 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7808 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
7809 0 : if (res) return res;
7810 : }
7811 : }
7812 157 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7813 : {
7814 0 : {
7815 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7816 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
7817 0 : if (res) return res;
7818 : }
7819 : }
7820 : break;
7821 : }
7822 58 : case MAX_EXPR:
7823 58 : {
7824 58 : tree _q30 = TREE_OPERAND (_p1, 0);
7825 58 : tree _q31 = TREE_OPERAND (_p1, 1);
7826 58 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
7827 : {
7828 0 : {
7829 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
7830 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
7831 0 : if (res) return res;
7832 : }
7833 : }
7834 58 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
7835 : {
7836 0 : {
7837 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
7838 0 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
7839 0 : if (res) return res;
7840 : }
7841 : }
7842 : break;
7843 : }
7844 28230437 : default:;
7845 : }
7846 28230437 : switch (TREE_CODE (_p0))
7847 : {
7848 11365 : case MIN_EXPR:
7849 11365 : {
7850 11365 : tree _q20 = TREE_OPERAND (_p0, 0);
7851 11365 : tree _q21 = TREE_OPERAND (_p0, 1);
7852 11365 : switch (TREE_CODE (_q21))
7853 : {
7854 218 : case INTEGER_CST:
7855 218 : {
7856 218 : switch (TREE_CODE (_p1))
7857 : {
7858 0 : case INTEGER_CST:
7859 0 : {
7860 0 : {
7861 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7862 0 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR);
7863 0 : if (res) return res;
7864 : }
7865 0 : break;
7866 : }
7867 : default:;
7868 : }
7869 : break;
7870 : }
7871 : default:;
7872 : }
7873 : break;
7874 : }
7875 718 : case MAX_EXPR:
7876 718 : {
7877 718 : tree _q20 = TREE_OPERAND (_p0, 0);
7878 718 : tree _q21 = TREE_OPERAND (_p0, 1);
7879 718 : switch (TREE_CODE (_q21))
7880 : {
7881 453 : case INTEGER_CST:
7882 453 : {
7883 453 : switch (TREE_CODE (_p1))
7884 : {
7885 42 : case INTEGER_CST:
7886 42 : {
7887 42 : {
7888 42 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7889 42 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, EQ_EXPR);
7890 42 : if (res) return res;
7891 : }
7892 0 : break;
7893 : }
7894 : default:;
7895 : }
7896 : break;
7897 : }
7898 676 : default:;
7899 : }
7900 676 : if (tree_expr_nonnegative_p (_q20))
7901 : {
7902 173 : if (tree_expr_nonnegative_p (_q21))
7903 : {
7904 171 : if (integer_zerop (_p1))
7905 : {
7906 0 : {
7907 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
7908 0 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR);
7909 0 : if (res) return res;
7910 : }
7911 : }
7912 : }
7913 : }
7914 : break;
7915 : }
7916 843043 : case BIT_AND_EXPR:
7917 843043 : {
7918 843043 : tree _q20 = TREE_OPERAND (_p0, 0);
7919 843043 : tree _q21 = TREE_OPERAND (_p0, 1);
7920 843043 : switch (TREE_CODE (_q20))
7921 : {
7922 792 : case LSHIFT_EXPR:
7923 792 : {
7924 792 : tree _q30 = TREE_OPERAND (_q20, 0);
7925 792 : tree _q31 = TREE_OPERAND (_q20, 1);
7926 792 : if (integer_pow2p (_q30))
7927 : {
7928 784 : if (integer_pow2p (_q21))
7929 : {
7930 1 : if (integer_zerop (_p1))
7931 : {
7932 1 : {
7933 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
7934 1 : tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
7935 1 : if (res) return res;
7936 : }
7937 : }
7938 : }
7939 : }
7940 791 : switch (TREE_CODE (_q31))
7941 : {
7942 0 : case INTEGER_CST:
7943 0 : {
7944 0 : switch (TREE_CODE (_q21))
7945 : {
7946 0 : case INTEGER_CST:
7947 0 : {
7948 0 : switch (TREE_CODE (_p1))
7949 : {
7950 0 : case INTEGER_CST:
7951 0 : {
7952 0 : {
7953 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
7954 0 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, EQ_EXPR);
7955 0 : if (res) return res;
7956 : }
7957 0 : break;
7958 : }
7959 : default:;
7960 : }
7961 : break;
7962 : }
7963 : default:;
7964 : }
7965 : break;
7966 : }
7967 791 : default:;
7968 : }
7969 791 : if (integer_onep (_q30))
7970 : {
7971 783 : if (integer_pow2p (_q21))
7972 : {
7973 0 : if (integer_zerop (_p1))
7974 : {
7975 0 : {
7976 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q21 };
7977 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
7978 0 : if (res) return res;
7979 : }
7980 : }
7981 : }
7982 : }
7983 : break;
7984 : }
7985 3053 : case RSHIFT_EXPR:
7986 3053 : {
7987 3053 : tree _q30 = TREE_OPERAND (_q20, 0);
7988 3053 : tree _q31 = TREE_OPERAND (_q20, 1);
7989 3053 : if (integer_pow2p (_q30))
7990 : {
7991 1 : if (integer_pow2p (_q21))
7992 : {
7993 1 : if (integer_zerop (_p1))
7994 : {
7995 1 : {
7996 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
7997 1 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
7998 1 : if (res) return res;
7999 : }
8000 : }
8001 : }
8002 : }
8003 3052 : switch (TREE_CODE (_q31))
8004 : {
8005 525 : case INTEGER_CST:
8006 525 : {
8007 525 : switch (TREE_CODE (_q21))
8008 : {
8009 525 : case INTEGER_CST:
8010 525 : {
8011 525 : switch (TREE_CODE (_p1))
8012 : {
8013 525 : case INTEGER_CST:
8014 525 : {
8015 525 : {
8016 525 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
8017 525 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, EQ_EXPR);
8018 525 : if (res) return res;
8019 : }
8020 0 : break;
8021 : }
8022 : default:;
8023 : }
8024 : break;
8025 : }
8026 : default:;
8027 : }
8028 : break;
8029 : }
8030 : default:;
8031 : }
8032 : break;
8033 : }
8034 6136 : case PLUS_EXPR:
8035 6136 : {
8036 6136 : tree _q30 = TREE_OPERAND (_q20, 0);
8037 6136 : tree _q31 = TREE_OPERAND (_q20, 1);
8038 6136 : switch (TREE_CODE (_q31))
8039 : {
8040 5833 : case INTEGER_CST:
8041 5833 : {
8042 5833 : switch (TREE_CODE (_q21))
8043 : {
8044 3703 : case INTEGER_CST:
8045 3703 : {
8046 3703 : switch (TREE_CODE (_p1))
8047 : {
8048 3703 : case INTEGER_CST:
8049 3703 : {
8050 3703 : {
8051 3703 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
8052 3703 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, EQ_EXPR);
8053 3703 : if (res) return res;
8054 : }
8055 1990 : break;
8056 : }
8057 : default:;
8058 : }
8059 : break;
8060 : }
8061 : default:;
8062 : }
8063 : break;
8064 : }
8065 : default:;
8066 : }
8067 : break;
8068 : }
8069 840803 : default:;
8070 : }
8071 840803 : {
8072 840803 : tree _q20_pops[1];
8073 840803 : if (tree_nop_convert (_q20, _q20_pops))
8074 : {
8075 22457 : tree _q30 = _q20_pops[0];
8076 22457 : switch (TREE_CODE (_q30))
8077 : {
8078 0 : case LSHIFT_EXPR:
8079 0 : {
8080 0 : tree _q40 = TREE_OPERAND (_q30, 0);
8081 0 : tree _q41 = TREE_OPERAND (_q30, 1);
8082 0 : if (integer_onep (_q40))
8083 : {
8084 0 : if (integer_pow2p (_q21))
8085 : {
8086 0 : if (integer_zerop (_p1))
8087 : {
8088 0 : {
8089 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q41, _q21 };
8090 0 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
8091 0 : if (res) return res;
8092 : }
8093 : }
8094 : }
8095 : }
8096 : break;
8097 : }
8098 : default:;
8099 : }
8100 : }
8101 : }
8102 840803 : break;
8103 : }
8104 2058 : case LSHIFT_EXPR:
8105 2058 : {
8106 2058 : tree _q20 = TREE_OPERAND (_p0, 0);
8107 2058 : tree _q21 = TREE_OPERAND (_p0, 1);
8108 2058 : switch (TREE_CODE (_q20))
8109 : {
8110 335 : case INTEGER_CST:
8111 335 : {
8112 335 : switch (TREE_CODE (_p1))
8113 : {
8114 20 : case INTEGER_CST:
8115 20 : {
8116 20 : {
8117 20 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8118 20 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, EQ_EXPR);
8119 20 : if (res) return res;
8120 : }
8121 3 : break;
8122 : }
8123 : default:;
8124 : }
8125 : break;
8126 : }
8127 : default:;
8128 : }
8129 : break;
8130 : }
8131 0 : case LROTATE_EXPR:
8132 0 : {
8133 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8134 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8135 0 : switch (TREE_CODE (_p1))
8136 : {
8137 0 : case LROTATE_EXPR:
8138 0 : {
8139 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8140 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8141 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8142 : {
8143 0 : {
8144 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
8145 0 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
8146 0 : if (res) return res;
8147 : }
8148 : }
8149 : break;
8150 : }
8151 0 : default:;
8152 : }
8153 0 : switch (TREE_CODE (_q21))
8154 : {
8155 0 : case INTEGER_CST:
8156 0 : {
8157 0 : switch (TREE_CODE (_p1))
8158 : {
8159 0 : case INTEGER_CST:
8160 0 : {
8161 0 : {
8162 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8163 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
8164 0 : if (res) return res;
8165 : }
8166 0 : break;
8167 : }
8168 : default:;
8169 : }
8170 : break;
8171 : }
8172 0 : default:;
8173 : }
8174 0 : switch (TREE_CODE (_p1))
8175 : {
8176 0 : case INTEGER_CST:
8177 0 : {
8178 0 : {
8179 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8180 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
8181 0 : if (res) return res;
8182 : }
8183 0 : break;
8184 : }
8185 : default:;
8186 : }
8187 : break;
8188 : }
8189 42 : case RROTATE_EXPR:
8190 42 : {
8191 42 : tree _q20 = TREE_OPERAND (_p0, 0);
8192 42 : tree _q21 = TREE_OPERAND (_p0, 1);
8193 42 : switch (TREE_CODE (_p1))
8194 : {
8195 0 : case RROTATE_EXPR:
8196 0 : {
8197 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8198 0 : tree _q51 = TREE_OPERAND (_p1, 1);
8199 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
8200 : {
8201 0 : {
8202 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
8203 0 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
8204 0 : if (res) return res;
8205 : }
8206 : }
8207 : break;
8208 : }
8209 42 : default:;
8210 : }
8211 42 : switch (TREE_CODE (_q21))
8212 : {
8213 42 : case INTEGER_CST:
8214 42 : {
8215 42 : switch (TREE_CODE (_p1))
8216 : {
8217 0 : case INTEGER_CST:
8218 0 : {
8219 0 : {
8220 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8221 0 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
8222 0 : if (res) return res;
8223 : }
8224 0 : break;
8225 : }
8226 : default:;
8227 : }
8228 : break;
8229 : }
8230 42 : default:;
8231 : }
8232 42 : switch (TREE_CODE (_p1))
8233 : {
8234 0 : case INTEGER_CST:
8235 0 : {
8236 0 : {
8237 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8238 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
8239 0 : if (res) return res;
8240 : }
8241 0 : break;
8242 : }
8243 : default:;
8244 : }
8245 : break;
8246 : }
8247 65998 : case MULT_EXPR:
8248 65998 : {
8249 65998 : tree _q20 = TREE_OPERAND (_p0, 0);
8250 65998 : tree _q21 = TREE_OPERAND (_p0, 1);
8251 65998 : switch (TREE_CODE (_q20))
8252 : {
8253 68 : case TRUNC_DIV_EXPR:
8254 68 : {
8255 68 : tree _q30 = TREE_OPERAND (_q20, 0);
8256 68 : tree _q31 = TREE_OPERAND (_q20, 1);
8257 68 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
8258 : {
8259 49 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
8260 : {
8261 49 : {
8262 49 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
8263 49 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, EQ_EXPR);
8264 49 : if (res) return res;
8265 : }
8266 : }
8267 : }
8268 : break;
8269 : }
8270 65949 : default:;
8271 : }
8272 65949 : switch (TREE_CODE (_q21))
8273 : {
8274 0 : case TRUNC_DIV_EXPR:
8275 0 : {
8276 0 : tree _q40 = TREE_OPERAND (_q21, 0);
8277 0 : tree _q41 = TREE_OPERAND (_q21, 1);
8278 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
8279 : {
8280 0 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
8281 : {
8282 0 : {
8283 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
8284 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, EQ_EXPR);
8285 0 : if (res) return res;
8286 : }
8287 : }
8288 : }
8289 : break;
8290 : }
8291 : default:;
8292 : }
8293 : break;
8294 : }
8295 28228089 : default:;
8296 : }
8297 28228089 : switch (TREE_CODE (_p1))
8298 : {
8299 13100 : case MULT_EXPR:
8300 13100 : {
8301 13100 : tree _q30 = TREE_OPERAND (_p1, 0);
8302 13100 : tree _q31 = TREE_OPERAND (_p1, 1);
8303 13100 : switch (TREE_CODE (_q30))
8304 : {
8305 0 : case TRUNC_DIV_EXPR:
8306 0 : {
8307 0 : tree _q40 = TREE_OPERAND (_q30, 0);
8308 0 : tree _q41 = TREE_OPERAND (_q30, 1);
8309 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
8310 : {
8311 0 : if ((_q31 == _q41 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q41, 0) && types_match (_q31, _q41)))
8312 : {
8313 0 : {
8314 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
8315 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, EQ_EXPR);
8316 0 : if (res) return res;
8317 : }
8318 : }
8319 : }
8320 : break;
8321 : }
8322 13100 : default:;
8323 : }
8324 13100 : switch (TREE_CODE (_q31))
8325 : {
8326 0 : case TRUNC_DIV_EXPR:
8327 0 : {
8328 0 : tree _q50 = TREE_OPERAND (_q31, 0);
8329 0 : tree _q51 = TREE_OPERAND (_q31, 1);
8330 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
8331 : {
8332 0 : if ((_q51 == _q30 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q30, 0) && types_match (_q51, _q30)))
8333 : {
8334 0 : {
8335 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _p0, _q30 };
8336 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, EQ_EXPR);
8337 0 : if (res) return res;
8338 : }
8339 : }
8340 : }
8341 : break;
8342 : }
8343 : default:;
8344 : }
8345 : break;
8346 : }
8347 28228089 : default:;
8348 : }
8349 28228089 : switch (TREE_CODE (_p0))
8350 : {
8351 1056 : case VEC_COND_EXPR:
8352 1056 : {
8353 1056 : tree _q20 = TREE_OPERAND (_p0, 0);
8354 1056 : tree _q21 = TREE_OPERAND (_p0, 1);
8355 1056 : tree _q22 = TREE_OPERAND (_p0, 2);
8356 1056 : switch (TREE_CODE (_p1))
8357 : {
8358 187 : case VEC_COND_EXPR:
8359 187 : {
8360 187 : tree _q60 = TREE_OPERAND (_p1, 0);
8361 187 : tree _q61 = TREE_OPERAND (_p1, 1);
8362 187 : tree _q62 = TREE_OPERAND (_p1, 2);
8363 187 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
8364 : {
8365 120 : {
8366 120 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
8367 120 : if (VECTOR_TYPE_P (type)
8368 240 : && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
8369 120 : || types_match (type, TREE_TYPE (captures[2]))
8370 120 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
8371 : || (optimize_vectors_before_lowering_p ()
8372 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
8373 : )
8374 : {
8375 120 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1572;
8376 120 : {
8377 120 : tree res_op0;
8378 120 : res_op0 = captures[1];
8379 120 : tree res_op1;
8380 120 : {
8381 120 : tree _o1[2], _r1;
8382 120 : _o1[0] = captures[2];
8383 120 : _o1[1] = captures[5];
8384 120 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
8385 120 : if (EXPR_P (_r1))
8386 120 : goto next_after_fail1572;
8387 0 : res_op1 = _r1;
8388 : }
8389 0 : tree res_op2;
8390 0 : {
8391 0 : tree _o1[2], _r1;
8392 0 : _o1[0] = captures[3];
8393 0 : _o1[1] = captures[6];
8394 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
8395 0 : if (EXPR_P (_r1))
8396 0 : goto next_after_fail1572;
8397 0 : res_op2 = _r1;
8398 : }
8399 0 : tree _r;
8400 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8401 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 938, __FILE__, __LINE__, true);
8402 : return _r;
8403 : }
8404 1056 : next_after_fail1572:;
8405 : }
8406 : }
8407 : }
8408 : break;
8409 : }
8410 1056 : default:;
8411 : }
8412 1056 : {
8413 1056 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
8414 1056 : if (VECTOR_TYPE_P (type)
8415 2112 : && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
8416 1056 : || types_match (type, TREE_TYPE (captures[2]))
8417 1056 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
8418 : || (optimize_vectors_before_lowering_p ()
8419 79 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
8420 : )
8421 : {
8422 1056 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1573;
8423 1056 : {
8424 1056 : if (! tree_invariant_p (captures[4])) goto next_after_fail1573;
8425 126 : tree res_op0;
8426 126 : res_op0 = captures[1];
8427 126 : tree res_op1;
8428 126 : {
8429 126 : tree _o1[2], _r1;
8430 126 : _o1[0] = captures[2];
8431 126 : _o1[1] = unshare_expr (captures[4]);
8432 126 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
8433 126 : if (EXPR_P (_r1))
8434 96 : goto next_after_fail1573;
8435 30 : res_op1 = _r1;
8436 : }
8437 30 : tree res_op2;
8438 30 : {
8439 30 : tree _o1[2], _r1;
8440 30 : _o1[0] = captures[3];
8441 30 : _o1[1] = captures[4];
8442 30 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
8443 30 : if (EXPR_P (_r1))
8444 9 : goto next_after_fail1573;
8445 21 : res_op2 = _r1;
8446 : }
8447 21 : tree _r;
8448 21 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8449 21 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 940, __FILE__, __LINE__, true);
8450 : return _r;
8451 : }
8452 28228061 : next_after_fail1573:;
8453 : }
8454 : }
8455 : break;
8456 : }
8457 2028050 : case CALL_EXPR:
8458 2028050 : switch (get_call_combined_fn (_p0))
8459 : {
8460 1 : case CFN_BUILT_IN_BITREVERSE128:
8461 1 : if (call_expr_nargs (_p0) == 1)
8462 : {
8463 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8464 1 : switch (TREE_CODE (_p1))
8465 : {
8466 1 : case INTEGER_CST:
8467 1 : {
8468 1 : {
8469 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8470 1 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE128);
8471 1 : if (res) return res;
8472 : }
8473 1 : break;
8474 : }
8475 0 : case CALL_EXPR:
8476 0 : switch (get_call_combined_fn (_p1))
8477 : {
8478 0 : case CFN_BUILT_IN_BITREVERSE128:
8479 0 : if (call_expr_nargs (_p1) == 1)
8480 : {
8481 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8482 0 : {
8483 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8484 0 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE128);
8485 0 : if (res) return res;
8486 : }
8487 : }
8488 : break;
8489 : default:;
8490 : }
8491 : break;
8492 : default:;
8493 : }
8494 : }
8495 : break;
8496 1 : case CFN_BUILT_IN_BITREVERSE16:
8497 1 : if (call_expr_nargs (_p0) == 1)
8498 : {
8499 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8500 1 : switch (TREE_CODE (_p1))
8501 : {
8502 1 : case INTEGER_CST:
8503 1 : {
8504 1 : {
8505 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8506 1 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE16);
8507 1 : if (res) return res;
8508 : }
8509 1 : break;
8510 : }
8511 0 : case CALL_EXPR:
8512 0 : switch (get_call_combined_fn (_p1))
8513 : {
8514 0 : case CFN_BUILT_IN_BITREVERSE16:
8515 0 : if (call_expr_nargs (_p1) == 1)
8516 : {
8517 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8518 0 : {
8519 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8520 0 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE16);
8521 0 : if (res) return res;
8522 : }
8523 : }
8524 : break;
8525 : default:;
8526 : }
8527 : break;
8528 : default:;
8529 : }
8530 : }
8531 : break;
8532 1 : case CFN_BUILT_IN_BITREVERSE32:
8533 1 : if (call_expr_nargs (_p0) == 1)
8534 : {
8535 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8536 1 : switch (TREE_CODE (_p1))
8537 : {
8538 1 : case INTEGER_CST:
8539 1 : {
8540 1 : {
8541 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8542 1 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE32);
8543 1 : if (res) return res;
8544 : }
8545 1 : break;
8546 : }
8547 0 : case CALL_EXPR:
8548 0 : switch (get_call_combined_fn (_p1))
8549 : {
8550 0 : case CFN_BUILT_IN_BITREVERSE32:
8551 0 : if (call_expr_nargs (_p1) == 1)
8552 : {
8553 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8554 0 : {
8555 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8556 0 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE32);
8557 0 : if (res) return res;
8558 : }
8559 : }
8560 : break;
8561 : default:;
8562 : }
8563 : break;
8564 : default:;
8565 : }
8566 : }
8567 : break;
8568 1 : case CFN_BUILT_IN_BITREVERSE64:
8569 1 : if (call_expr_nargs (_p0) == 1)
8570 : {
8571 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8572 1 : switch (TREE_CODE (_p1))
8573 : {
8574 1 : case INTEGER_CST:
8575 1 : {
8576 1 : {
8577 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8578 1 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE64);
8579 1 : if (res) return res;
8580 : }
8581 1 : break;
8582 : }
8583 0 : case CALL_EXPR:
8584 0 : switch (get_call_combined_fn (_p1))
8585 : {
8586 0 : case CFN_BUILT_IN_BITREVERSE64:
8587 0 : if (call_expr_nargs (_p1) == 1)
8588 : {
8589 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8590 0 : {
8591 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8592 0 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE64);
8593 0 : if (res) return res;
8594 : }
8595 : }
8596 : break;
8597 : default:;
8598 : }
8599 : break;
8600 : default:;
8601 : }
8602 : }
8603 : break;
8604 0 : case CFN_BITREVERSE:
8605 0 : if (call_expr_nargs (_p0) == 1)
8606 : {
8607 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8608 0 : switch (TREE_CODE (_p1))
8609 : {
8610 0 : case INTEGER_CST:
8611 0 : {
8612 0 : {
8613 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8614 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BITREVERSE);
8615 0 : if (res) return res;
8616 : }
8617 0 : break;
8618 : }
8619 0 : case CALL_EXPR:
8620 0 : switch (get_call_combined_fn (_p1))
8621 : {
8622 0 : case CFN_BITREVERSE:
8623 0 : if (call_expr_nargs (_p1) == 1)
8624 : {
8625 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8626 0 : {
8627 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8628 0 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BITREVERSE);
8629 0 : if (res) return res;
8630 : }
8631 : }
8632 : break;
8633 : default:;
8634 : }
8635 : break;
8636 : default:;
8637 : }
8638 : }
8639 : break;
8640 0 : case CFN_BSWAP:
8641 0 : if (call_expr_nargs (_p0) == 1)
8642 : {
8643 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8644 0 : switch (TREE_CODE (_p1))
8645 : {
8646 0 : case INTEGER_CST:
8647 0 : {
8648 0 : {
8649 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8650 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BSWAP);
8651 0 : if (res) return res;
8652 : }
8653 0 : break;
8654 : }
8655 0 : case CALL_EXPR:
8656 0 : switch (get_call_combined_fn (_p1))
8657 : {
8658 0 : case CFN_BSWAP:
8659 0 : if (call_expr_nargs (_p1) == 1)
8660 : {
8661 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8662 0 : {
8663 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8664 0 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BSWAP);
8665 0 : if (res) return res;
8666 : }
8667 : }
8668 : break;
8669 : default:;
8670 : }
8671 : break;
8672 : default:;
8673 : }
8674 : }
8675 : break;
8676 0 : case CFN_BUILT_IN_BSWAP128:
8677 0 : if (call_expr_nargs (_p0) == 1)
8678 : {
8679 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8680 0 : switch (TREE_CODE (_p1))
8681 : {
8682 0 : case INTEGER_CST:
8683 0 : {
8684 0 : {
8685 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8686 0 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128);
8687 0 : if (res) return res;
8688 : }
8689 0 : break;
8690 : }
8691 0 : case CALL_EXPR:
8692 0 : switch (get_call_combined_fn (_p1))
8693 : {
8694 0 : case CFN_BUILT_IN_BSWAP128:
8695 0 : if (call_expr_nargs (_p1) == 1)
8696 : {
8697 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8698 0 : {
8699 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8700 0 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128);
8701 0 : if (res) return res;
8702 : }
8703 : }
8704 : break;
8705 : default:;
8706 : }
8707 : break;
8708 : default:;
8709 : }
8710 : }
8711 : break;
8712 1 : case CFN_BUILT_IN_BITREVERSE8:
8713 1 : if (call_expr_nargs (_p0) == 1)
8714 : {
8715 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8716 1 : switch (TREE_CODE (_p1))
8717 : {
8718 1 : case INTEGER_CST:
8719 1 : {
8720 1 : {
8721 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8722 1 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE8);
8723 1 : if (res) return res;
8724 : }
8725 1 : break;
8726 : }
8727 0 : case CALL_EXPR:
8728 0 : switch (get_call_combined_fn (_p1))
8729 : {
8730 0 : case CFN_BUILT_IN_BITREVERSE8:
8731 0 : if (call_expr_nargs (_p1) == 1)
8732 : {
8733 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8734 0 : {
8735 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8736 0 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE8);
8737 0 : if (res) return res;
8738 : }
8739 : }
8740 : break;
8741 : default:;
8742 : }
8743 : break;
8744 : default:;
8745 : }
8746 : }
8747 : break;
8748 2 : case CFN_BUILT_IN_BSWAP16:
8749 2 : if (call_expr_nargs (_p0) == 1)
8750 : {
8751 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8752 2 : switch (TREE_CODE (_p1))
8753 : {
8754 1 : case INTEGER_CST:
8755 1 : {
8756 1 : {
8757 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8758 1 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16);
8759 1 : if (res) return res;
8760 : }
8761 1 : break;
8762 : }
8763 1 : case CALL_EXPR:
8764 1 : switch (get_call_combined_fn (_p1))
8765 : {
8766 1 : case CFN_BUILT_IN_BSWAP16:
8767 1 : if (call_expr_nargs (_p1) == 1)
8768 : {
8769 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8770 1 : {
8771 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8772 1 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16);
8773 1 : if (res) return res;
8774 : }
8775 : }
8776 : break;
8777 : default:;
8778 : }
8779 : break;
8780 : default:;
8781 : }
8782 : }
8783 : break;
8784 6 : case CFN_BUILT_IN_BSWAP32:
8785 6 : if (call_expr_nargs (_p0) == 1)
8786 : {
8787 6 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8788 6 : switch (TREE_CODE (_p1))
8789 : {
8790 3 : case INTEGER_CST:
8791 3 : {
8792 3 : {
8793 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8794 3 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32);
8795 3 : if (res) return res;
8796 : }
8797 3 : break;
8798 : }
8799 3 : case CALL_EXPR:
8800 3 : switch (get_call_combined_fn (_p1))
8801 : {
8802 3 : case CFN_BUILT_IN_BSWAP32:
8803 3 : if (call_expr_nargs (_p1) == 1)
8804 : {
8805 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8806 3 : {
8807 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8808 3 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32);
8809 3 : if (res) return res;
8810 : }
8811 : }
8812 : break;
8813 : default:;
8814 : }
8815 : break;
8816 : default:;
8817 : }
8818 : }
8819 : break;
8820 6 : case CFN_BUILT_IN_BSWAP64:
8821 6 : if (call_expr_nargs (_p0) == 1)
8822 : {
8823 6 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8824 6 : switch (TREE_CODE (_p1))
8825 : {
8826 3 : case INTEGER_CST:
8827 3 : {
8828 3 : {
8829 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8830 3 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64);
8831 3 : if (res) return res;
8832 : }
8833 3 : break;
8834 : }
8835 3 : case CALL_EXPR:
8836 3 : switch (get_call_combined_fn (_p1))
8837 : {
8838 3 : case CFN_BUILT_IN_BSWAP64:
8839 3 : if (call_expr_nargs (_p1) == 1)
8840 : {
8841 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8842 3 : {
8843 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8844 3 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64);
8845 3 : if (res) return res;
8846 : }
8847 : }
8848 : break;
8849 : default:;
8850 : }
8851 : break;
8852 : default:;
8853 : }
8854 : }
8855 : break;
8856 : default:;
8857 : }
8858 : break;
8859 28228061 : default:;
8860 : }
8861 28228061 : switch (TREE_CODE (_p1))
8862 : {
8863 215 : case VEC_COND_EXPR:
8864 215 : {
8865 215 : tree _q30 = TREE_OPERAND (_p1, 0);
8866 215 : tree _q31 = TREE_OPERAND (_p1, 1);
8867 215 : tree _q32 = TREE_OPERAND (_p1, 2);
8868 215 : {
8869 215 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
8870 215 : if (VECTOR_TYPE_P (type)
8871 430 : && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
8872 215 : || types_match (type, TREE_TYPE (captures[3]))
8873 215 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
8874 : || (optimize_vectors_before_lowering_p ()
8875 21 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
8876 : )
8877 : {
8878 215 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1574;
8879 215 : {
8880 215 : if (! tree_invariant_p (captures[0])) goto next_after_fail1574;
8881 0 : tree res_op0;
8882 0 : res_op0 = captures[2];
8883 0 : tree res_op1;
8884 0 : {
8885 0 : tree _o1[2], _r1;
8886 0 : _o1[0] = unshare_expr (captures[0]);
8887 0 : _o1[1] = captures[3];
8888 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
8889 0 : if (EXPR_P (_r1))
8890 0 : goto next_after_fail1574;
8891 0 : res_op1 = _r1;
8892 : }
8893 0 : tree res_op2;
8894 0 : {
8895 0 : tree _o1[2], _r1;
8896 0 : _o1[0] = captures[0];
8897 0 : _o1[1] = captures[4];
8898 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
8899 0 : if (EXPR_P (_r1))
8900 0 : goto next_after_fail1574;
8901 0 : res_op2 = _r1;
8902 : }
8903 0 : tree _r;
8904 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
8905 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 941, __FILE__, __LINE__, true);
8906 : return _r;
8907 : }
8908 28228061 : next_after_fail1574:;
8909 : }
8910 : }
8911 : break;
8912 : }
8913 28228061 : default:;
8914 : }
8915 28228061 : switch (TREE_CODE (_p0))
8916 : {
8917 41416 : case COND_EXPR:
8918 41416 : {
8919 41416 : tree _q20 = TREE_OPERAND (_p0, 0);
8920 41416 : tree _q21 = TREE_OPERAND (_p0, 1);
8921 41416 : tree _q22 = TREE_OPERAND (_p0, 2);
8922 41416 : switch (TREE_CODE (_p1))
8923 : {
8924 49 : case COND_EXPR:
8925 49 : {
8926 49 : tree _q60 = TREE_OPERAND (_p1, 0);
8927 49 : tree _q61 = TREE_OPERAND (_p1, 1);
8928 49 : tree _q62 = TREE_OPERAND (_p1, 2);
8929 49 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
8930 : {
8931 3 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
8932 : {
8933 3 : {
8934 3 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
8935 3 : const enum tree_code eqne = EQ_EXPR;
8936 3 : if (!HONOR_NANS (captures[1])
8937 3 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
8938 3 : && types_match (type, TREE_TYPE (captures[0]))
8939 3 : && expr_no_side_effects_p (captures[1])
8940 4 : && expr_no_side_effects_p (captures[2])
8941 : )
8942 : {
8943 1 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1575;
8944 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1575;
8945 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1575;
8946 1 : {
8947 1 : tree res_op0;
8948 1 : {
8949 1 : tree _o1[2], _r1;
8950 1 : {
8951 1 : tree _o2[2], _r2;
8952 1 : _o2[0] = captures[0];
8953 1 : _o2[1] = captures[3];
8954 1 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
8955 1 : _o1[0] = _r2;
8956 : }
8957 1 : {
8958 1 : tree _o2[2], _r2;
8959 1 : _o2[0] = captures[1];
8960 1 : _o2[1] = captures[2];
8961 1 : _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
8962 1 : _o1[1] = _r2;
8963 : }
8964 1 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
8965 1 : res_op0 = _r1;
8966 : }
8967 1 : tree res_op1;
8968 1 : res_op1 = constant_boolean_node (eqne == NE_EXPR, type);
8969 1 : tree res_op2;
8970 1 : res_op2 = constant_boolean_node (eqne != NE_EXPR, type);
8971 1 : tree _r;
8972 1 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
8973 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
8974 : return _r;
8975 : }
8976 48 : next_after_fail1575:;
8977 : }
8978 : }
8979 : }
8980 : }
8981 48 : if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
8982 : {
8983 19 : if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
8984 : {
8985 19 : {
8986 19 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
8987 19 : const enum tree_code eqne = EQ_EXPR;
8988 19 : if (!HONOR_NANS (captures[1])
8989 0 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
8990 0 : && types_match (type, TREE_TYPE (captures[0]))
8991 0 : && expr_no_side_effects_p (captures[1])
8992 19 : && expr_no_side_effects_p (captures[2])
8993 : )
8994 : {
8995 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1576;
8996 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1576;
8997 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1576;
8998 0 : {
8999 0 : tree res_op0;
9000 0 : {
9001 0 : tree _o1[2], _r1;
9002 0 : {
9003 0 : tree _o2[2], _r2;
9004 0 : _o2[0] = captures[0];
9005 0 : _o2[1] = captures[3];
9006 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
9007 0 : _o1[0] = _r2;
9008 : }
9009 0 : {
9010 0 : tree _o2[2], _r2;
9011 0 : _o2[0] = captures[1];
9012 0 : _o2[1] = captures[2];
9013 0 : _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
9014 0 : _o1[1] = _r2;
9015 : }
9016 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9017 0 : res_op0 = _r1;
9018 : }
9019 0 : tree res_op1;
9020 0 : res_op1 = constant_boolean_node (eqne != NE_EXPR, type);
9021 0 : tree res_op2;
9022 0 : res_op2 = constant_boolean_node (eqne == NE_EXPR, type);
9023 0 : tree _r;
9024 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
9025 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1025, __FILE__, __LINE__, true);
9026 : return _r;
9027 : }
9028 28142547 : next_after_fail1576:;
9029 : }
9030 : }
9031 : }
9032 : }
9033 : break;
9034 : }
9035 : default:;
9036 : }
9037 : break;
9038 : }
9039 1035 : case VEC_COND_EXPR:
9040 1035 : {
9041 1035 : tree _q20 = TREE_OPERAND (_p0, 0);
9042 1035 : tree _q21 = TREE_OPERAND (_p0, 1);
9043 1035 : tree _q22 = TREE_OPERAND (_p0, 2);
9044 1035 : switch (TREE_CODE (_p1))
9045 : {
9046 187 : case VEC_COND_EXPR:
9047 187 : {
9048 187 : tree _q60 = TREE_OPERAND (_p1, 0);
9049 187 : tree _q61 = TREE_OPERAND (_p1, 1);
9050 187 : tree _q62 = TREE_OPERAND (_p1, 2);
9051 187 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
9052 : {
9053 126 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
9054 : {
9055 126 : {
9056 126 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9057 126 : const enum tree_code eqne = EQ_EXPR;
9058 126 : if (!HONOR_NANS (captures[1])
9059 6 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
9060 6 : && types_match (type, TREE_TYPE (captures[0]))
9061 6 : && expr_no_side_effects_p (captures[1])
9062 132 : && expr_no_side_effects_p (captures[2])
9063 : )
9064 : {
9065 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1577;
9066 6 : {
9067 6 : tree res_op0;
9068 6 : {
9069 6 : tree _o1[2], _r1;
9070 6 : {
9071 6 : tree _o2[2], _r2;
9072 6 : _o2[0] = captures[0];
9073 6 : _o2[1] = captures[3];
9074 6 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
9075 6 : _o1[0] = _r2;
9076 : }
9077 6 : {
9078 6 : tree _o2[2], _r2;
9079 6 : _o2[0] = captures[1];
9080 6 : _o2[1] = captures[2];
9081 6 : _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
9082 6 : _o1[1] = _r2;
9083 : }
9084 6 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9085 6 : res_op0 = _r1;
9086 : }
9087 6 : tree res_op1;
9088 6 : res_op1 = constant_boolean_node (eqne == NE_EXPR, type);
9089 6 : tree res_op2;
9090 6 : res_op2 = constant_boolean_node (eqne != NE_EXPR, type);
9091 6 : tree _r;
9092 6 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9093 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
9094 : return _r;
9095 : }
9096 0 : next_after_fail1577:;
9097 : }
9098 : }
9099 : }
9100 : }
9101 181 : if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
9102 : {
9103 53 : if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
9104 : {
9105 53 : {
9106 53 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
9107 53 : const enum tree_code eqne = EQ_EXPR;
9108 53 : if (!HONOR_NANS (captures[1])
9109 0 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
9110 0 : && types_match (type, TREE_TYPE (captures[0]))
9111 0 : && expr_no_side_effects_p (captures[1])
9112 53 : && expr_no_side_effects_p (captures[2])
9113 : )
9114 : {
9115 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1578;
9116 0 : {
9117 0 : tree res_op0;
9118 0 : {
9119 0 : tree _o1[2], _r1;
9120 0 : {
9121 0 : tree _o2[2], _r2;
9122 0 : _o2[0] = captures[0];
9123 0 : _o2[1] = captures[3];
9124 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
9125 0 : _o1[0] = _r2;
9126 : }
9127 0 : {
9128 0 : tree _o2[2], _r2;
9129 0 : _o2[0] = captures[1];
9130 0 : _o2[1] = captures[2];
9131 0 : _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
9132 0 : _o1[1] = _r2;
9133 : }
9134 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
9135 0 : res_op0 = _r1;
9136 : }
9137 0 : tree res_op1;
9138 0 : res_op1 = constant_boolean_node (eqne != NE_EXPR, type);
9139 0 : tree res_op2;
9140 0 : res_op2 = constant_boolean_node (eqne == NE_EXPR, type);
9141 0 : tree _r;
9142 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
9143 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1025, __FILE__, __LINE__, true);
9144 : return _r;
9145 : }
9146 0 : next_after_fail1578:;
9147 : }
9148 : }
9149 : }
9150 : }
9151 : break;
9152 : }
9153 : default:;
9154 : }
9155 : break;
9156 : }
9157 1131 : case LT_EXPR:
9158 1131 : {
9159 1131 : tree _q20 = TREE_OPERAND (_p0, 0);
9160 1131 : tree _q21 = TREE_OPERAND (_p0, 1);
9161 1131 : if (integer_truep (_p1))
9162 : {
9163 5 : {
9164 5 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9165 5 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
9166 5 : if (res) return res;
9167 : }
9168 : }
9169 1131 : if (integer_zerop (_p1))
9170 : {
9171 414 : {
9172 414 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9173 414 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
9174 414 : if (res) return res;
9175 : }
9176 : }
9177 : break;
9178 : }
9179 1562 : case LE_EXPR:
9180 1562 : {
9181 1562 : tree _q20 = TREE_OPERAND (_p0, 0);
9182 1562 : tree _q21 = TREE_OPERAND (_p0, 1);
9183 1562 : if (integer_truep (_p1))
9184 : {
9185 1 : {
9186 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9187 1 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
9188 1 : if (res) return res;
9189 : }
9190 : }
9191 1562 : if (integer_zerop (_p1))
9192 : {
9193 693 : {
9194 693 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9195 693 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
9196 693 : if (res) return res;
9197 : }
9198 : }
9199 : break;
9200 : }
9201 32726 : case EQ_EXPR:
9202 32726 : {
9203 32726 : tree _q20 = TREE_OPERAND (_p0, 0);
9204 32726 : tree _q21 = TREE_OPERAND (_p0, 1);
9205 32726 : if (integer_truep (_p1))
9206 : {
9207 50 : {
9208 50 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9209 50 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
9210 50 : if (res) return res;
9211 : }
9212 : }
9213 32721 : if (integer_zerop (_p1))
9214 : {
9215 7707 : {
9216 7707 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9217 7707 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
9218 7707 : if (res) return res;
9219 : }
9220 : }
9221 : break;
9222 : }
9223 11864 : case NE_EXPR:
9224 11864 : {
9225 11864 : tree _q20 = TREE_OPERAND (_p0, 0);
9226 11864 : tree _q21 = TREE_OPERAND (_p0, 1);
9227 11864 : if (integer_truep (_p1))
9228 : {
9229 126 : {
9230 126 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9231 126 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
9232 126 : if (res) return res;
9233 : }
9234 : }
9235 11744 : if (integer_zerop (_p1))
9236 : {
9237 9809 : {
9238 9809 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9239 9809 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
9240 9809 : if (res) return res;
9241 : }
9242 : }
9243 : break;
9244 : }
9245 6719 : case GE_EXPR:
9246 6719 : {
9247 6719 : tree _q20 = TREE_OPERAND (_p0, 0);
9248 6719 : tree _q21 = TREE_OPERAND (_p0, 1);
9249 6719 : if (integer_truep (_p1))
9250 : {
9251 0 : {
9252 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9253 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
9254 0 : if (res) return res;
9255 : }
9256 : }
9257 6719 : if (integer_zerop (_p1))
9258 : {
9259 5597 : {
9260 5597 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9261 5597 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
9262 5597 : if (res) return res;
9263 : }
9264 : }
9265 : break;
9266 : }
9267 69797 : case GT_EXPR:
9268 69797 : {
9269 69797 : tree _q20 = TREE_OPERAND (_p0, 0);
9270 69797 : tree _q21 = TREE_OPERAND (_p0, 1);
9271 69797 : if (integer_truep (_p1))
9272 : {
9273 0 : {
9274 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9275 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
9276 0 : if (res) return res;
9277 : }
9278 : }
9279 69797 : if (integer_zerop (_p1))
9280 : {
9281 475 : {
9282 475 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9283 475 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
9284 475 : if (res) return res;
9285 : }
9286 : }
9287 : break;
9288 : }
9289 1023 : case UNORDERED_EXPR:
9290 1023 : {
9291 1023 : tree _q20 = TREE_OPERAND (_p0, 0);
9292 1023 : tree _q21 = TREE_OPERAND (_p0, 1);
9293 1023 : if (integer_truep (_p1))
9294 : {
9295 0 : {
9296 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9297 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
9298 0 : if (res) return res;
9299 : }
9300 : }
9301 1023 : if (integer_zerop (_p1))
9302 : {
9303 1017 : {
9304 1017 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9305 1017 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
9306 1017 : if (res) return res;
9307 : }
9308 : }
9309 : break;
9310 : }
9311 0 : case ORDERED_EXPR:
9312 0 : {
9313 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9314 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9315 0 : if (integer_truep (_p1))
9316 : {
9317 0 : {
9318 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9319 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
9320 0 : if (res) return res;
9321 : }
9322 : }
9323 0 : if (integer_zerop (_p1))
9324 : {
9325 0 : {
9326 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9327 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
9328 0 : if (res) return res;
9329 : }
9330 : }
9331 : break;
9332 : }
9333 0 : case UNLT_EXPR:
9334 0 : {
9335 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9336 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9337 0 : if (integer_truep (_p1))
9338 : {
9339 0 : {
9340 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9341 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
9342 0 : if (res) return res;
9343 : }
9344 : }
9345 0 : if (integer_zerop (_p1))
9346 : {
9347 0 : {
9348 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9349 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
9350 0 : if (res) return res;
9351 : }
9352 : }
9353 : break;
9354 : }
9355 0 : case UNLE_EXPR:
9356 0 : {
9357 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9358 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9359 0 : if (integer_truep (_p1))
9360 : {
9361 0 : {
9362 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9363 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
9364 0 : if (res) return res;
9365 : }
9366 : }
9367 0 : if (integer_zerop (_p1))
9368 : {
9369 0 : {
9370 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9371 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
9372 0 : if (res) return res;
9373 : }
9374 : }
9375 : break;
9376 : }
9377 0 : case UNGT_EXPR:
9378 0 : {
9379 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9380 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9381 0 : if (integer_truep (_p1))
9382 : {
9383 0 : {
9384 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9385 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
9386 0 : if (res) return res;
9387 : }
9388 : }
9389 0 : if (integer_zerop (_p1))
9390 : {
9391 0 : {
9392 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9393 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
9394 0 : if (res) return res;
9395 : }
9396 : }
9397 : break;
9398 : }
9399 0 : case UNGE_EXPR:
9400 0 : {
9401 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9402 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9403 0 : if (integer_truep (_p1))
9404 : {
9405 0 : {
9406 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9407 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
9408 0 : if (res) return res;
9409 : }
9410 : }
9411 0 : if (integer_zerop (_p1))
9412 : {
9413 0 : {
9414 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9415 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
9416 0 : if (res) return res;
9417 : }
9418 : }
9419 : break;
9420 : }
9421 0 : case UNEQ_EXPR:
9422 0 : {
9423 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9424 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9425 0 : if (integer_truep (_p1))
9426 : {
9427 0 : {
9428 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9429 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
9430 0 : if (res) return res;
9431 : }
9432 : }
9433 0 : if (integer_zerop (_p1))
9434 : {
9435 0 : {
9436 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9437 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
9438 0 : if (res) return res;
9439 : }
9440 : }
9441 : break;
9442 : }
9443 0 : case LTGT_EXPR:
9444 0 : {
9445 0 : tree _q20 = TREE_OPERAND (_p0, 0);
9446 0 : tree _q21 = TREE_OPERAND (_p0, 1);
9447 0 : if (integer_truep (_p1))
9448 : {
9449 0 : {
9450 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9451 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
9452 0 : if (res) return res;
9453 : }
9454 : }
9455 0 : if (integer_zerop (_p1))
9456 : {
9457 0 : {
9458 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9459 0 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
9460 0 : if (res) return res;
9461 : }
9462 : }
9463 : break;
9464 : }
9465 158288 : case MINUS_EXPR:
9466 158288 : {
9467 158288 : tree _q20 = TREE_OPERAND (_p0, 0);
9468 158288 : tree _q21 = TREE_OPERAND (_p0, 1);
9469 158288 : if (integer_zerop (_p1))
9470 : {
9471 58312 : {
9472 58312 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9473 58312 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, EQ_EXPR);
9474 58312 : if (res) return res;
9475 : }
9476 : }
9477 : break;
9478 : }
9479 32997 : case POINTER_DIFF_EXPR:
9480 32997 : {
9481 32997 : tree _q20 = TREE_OPERAND (_p0, 0);
9482 32997 : tree _q21 = TREE_OPERAND (_p0, 1);
9483 32997 : if (integer_zerop (_p1))
9484 : {
9485 1345 : {
9486 1345 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9487 1345 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, EQ_EXPR);
9488 1345 : if (res) return res;
9489 : }
9490 : }
9491 : break;
9492 : }
9493 65949 : case MULT_EXPR:
9494 65949 : {
9495 65949 : tree _q20 = TREE_OPERAND (_p0, 0);
9496 65949 : tree _q21 = TREE_OPERAND (_p0, 1);
9497 65949 : switch (TREE_CODE (_q21))
9498 : {
9499 57886 : case INTEGER_CST:
9500 57886 : {
9501 57886 : switch (TREE_CODE (_p1))
9502 : {
9503 8954 : case INTEGER_CST:
9504 8954 : {
9505 8954 : {
9506 8954 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9507 8954 : tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, EQ_EXPR);
9508 8954 : if (res) return res;
9509 : }
9510 8032 : break;
9511 : }
9512 56964 : default:;
9513 : }
9514 56964 : if (integer_zerop (_p1))
9515 : {
9516 4254 : {
9517 4254 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9518 4254 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
9519 4254 : if (res) return res;
9520 : }
9521 : }
9522 : break;
9523 : }
9524 : default:;
9525 : }
9526 : break;
9527 : }
9528 28142547 : default:;
9529 : }
9530 28142547 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
9531 : {
9532 123061 : {
9533 123061 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
9534 123061 : tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, EQ_EXPR);
9535 123061 : if (res) return res;
9536 : }
9537 : }
9538 28025058 : switch (TREE_CODE (_p0))
9539 : {
9540 5255243 : CASE_CONVERT:
9541 5255243 : {
9542 5255243 : tree _q20 = TREE_OPERAND (_p0, 0);
9543 5255243 : switch (TREE_CODE (_p1))
9544 : {
9545 1661768 : CASE_CONVERT:
9546 1661768 : {
9547 1661768 : tree _q40 = TREE_OPERAND (_p1, 0);
9548 1661768 : {
9549 1661768 : tree _q40_pops[1];
9550 1661768 : if (tree_maybe_bit_not (_q40, _q40_pops))
9551 : {
9552 0 : tree _q50 = _q40_pops[0];
9553 0 : {
9554 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
9555 0 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, EQ_EXPR);
9556 0 : if (res) return res;
9557 : }
9558 : }
9559 : }
9560 1661768 : break;
9561 : }
9562 5255243 : default:;
9563 : }
9564 5255243 : {
9565 5255243 : tree _q20_pops[1];
9566 5255243 : if (tree_maybe_bit_not (_q20, _q20_pops))
9567 : {
9568 240 : tree _q30 = _q20_pops[0];
9569 240 : switch (TREE_CODE (_p1))
9570 : {
9571 74 : CASE_CONVERT:
9572 74 : {
9573 74 : tree _q50 = TREE_OPERAND (_p1, 0);
9574 74 : {
9575 74 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
9576 74 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, EQ_EXPR);
9577 74 : if (res) return res;
9578 : }
9579 74 : break;
9580 : }
9581 : default:;
9582 : }
9583 : }
9584 : }
9585 5255243 : break;
9586 : }
9587 28025058 : default:;
9588 : }
9589 28025058 : {
9590 28025058 : tree _p1_pops[1];
9591 28025058 : if (tree_maybe_bit_not (_p1, _p1_pops))
9592 : {
9593 19761832 : tree _q30 = _p1_pops[0];
9594 19761832 : {
9595 19761832 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
9596 19761832 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, EQ_EXPR);
9597 19761832 : if (res) return res;
9598 : }
9599 : }
9600 : }
9601 28025056 : switch (TREE_CODE (_p0))
9602 : {
9603 404 : case BIT_NOT_EXPR:
9604 404 : {
9605 404 : tree _q20 = TREE_OPERAND (_p0, 0);
9606 404 : switch (TREE_CODE (_p1))
9607 : {
9608 1 : case BIT_NOT_EXPR:
9609 1 : {
9610 1 : tree _q40 = TREE_OPERAND (_p1, 0);
9611 1 : {
9612 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
9613 1 : tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, EQ_EXPR);
9614 1 : if (res) return res;
9615 : }
9616 0 : break;
9617 : }
9618 403 : default:;
9619 : }
9620 403 : {
9621 403 : tree _p1_pops[1];
9622 403 : if (tree_nop_convert (_p1, _p1_pops))
9623 : {
9624 3 : tree _q40 = _p1_pops[0];
9625 3 : switch (TREE_CODE (_q40))
9626 : {
9627 0 : case BIT_NOT_EXPR:
9628 0 : {
9629 0 : tree _q50 = TREE_OPERAND (_q40, 0);
9630 0 : {
9631 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
9632 0 : tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, EQ_EXPR);
9633 0 : if (res) return res;
9634 : }
9635 0 : break;
9636 : }
9637 : default:;
9638 : }
9639 : }
9640 : }
9641 403 : if (CONSTANT_CLASS_P (_p1))
9642 : {
9643 189 : {
9644 189 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9645 189 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
9646 189 : if (res) return res;
9647 : }
9648 : }
9649 : break;
9650 : }
9651 28024866 : default:;
9652 : }
9653 28024866 : {
9654 28024866 : tree _p0_pops[1];
9655 28024866 : if (tree_maybe_bit_not (_p0, _p0_pops))
9656 : {
9657 99748 : tree _q20 = _p0_pops[0];
9658 99748 : {
9659 99748 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
9660 99748 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, EQ_EXPR);
9661 99748 : if (res) return res;
9662 : }
9663 : }
9664 : }
9665 28024864 : {
9666 28024864 : tree _p0_pops[1];
9667 28024864 : if (tree_nop_convert (_p0, _p0_pops))
9668 : {
9669 3071879 : tree _q20 = _p0_pops[0];
9670 3071879 : switch (TREE_CODE (_q20))
9671 : {
9672 41 : case BIT_NOT_EXPR:
9673 41 : {
9674 41 : tree _q30 = TREE_OPERAND (_q20, 0);
9675 41 : switch (TREE_CODE (_p1))
9676 : {
9677 0 : case BIT_NOT_EXPR:
9678 0 : {
9679 0 : tree _q50 = TREE_OPERAND (_p1, 0);
9680 0 : {
9681 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
9682 0 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, EQ_EXPR);
9683 0 : if (res) return res;
9684 : }
9685 0 : break;
9686 : }
9687 41 : default:;
9688 : }
9689 41 : {
9690 41 : tree _p1_pops[1];
9691 41 : if (tree_nop_convert (_p1, _p1_pops))
9692 : {
9693 0 : tree _q50 = _p1_pops[0];
9694 0 : switch (TREE_CODE (_q50))
9695 : {
9696 0 : case BIT_NOT_EXPR:
9697 0 : {
9698 0 : tree _q60 = TREE_OPERAND (_q50, 0);
9699 0 : {
9700 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
9701 0 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, EQ_EXPR);
9702 0 : if (res) return res;
9703 : }
9704 0 : break;
9705 : }
9706 : default:;
9707 : }
9708 : }
9709 : }
9710 41 : if (CONSTANT_CLASS_P (_p1))
9711 : {
9712 41 : {
9713 41 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
9714 41 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
9715 41 : if (res) return res;
9716 : }
9717 : }
9718 : break;
9719 : }
9720 : default:;
9721 : }
9722 : }
9723 : }
9724 28024823 : switch (TREE_CODE (_p1))
9725 : {
9726 974067 : case REAL_CST:
9727 974067 : {
9728 974067 : {
9729 974067 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9730 974067 : tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, EQ_EXPR);
9731 974067 : if (res) return res;
9732 : }
9733 973051 : break;
9734 : }
9735 28023807 : default:;
9736 : }
9737 28023807 : switch (TREE_CODE (_p0))
9738 : {
9739 678759 : case PLUS_EXPR:
9740 678759 : {
9741 678759 : tree _q20 = TREE_OPERAND (_p0, 0);
9742 678759 : tree _q21 = TREE_OPERAND (_p0, 1);
9743 678759 : switch (TREE_CODE (_q21))
9744 : {
9745 584 : case REAL_CST:
9746 584 : {
9747 584 : switch (TREE_CODE (_p1))
9748 : {
9749 413 : case REAL_CST:
9750 413 : {
9751 413 : {
9752 413 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9753 413 : tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR);
9754 413 : if (res) return res;
9755 : }
9756 413 : break;
9757 : }
9758 : default:;
9759 : }
9760 : break;
9761 : }
9762 : default:;
9763 : }
9764 : break;
9765 : }
9766 99976 : case MINUS_EXPR:
9767 99976 : {
9768 99976 : tree _q20 = TREE_OPERAND (_p0, 0);
9769 99976 : tree _q21 = TREE_OPERAND (_p0, 1);
9770 99976 : switch (TREE_CODE (_q21))
9771 : {
9772 62 : case REAL_CST:
9773 62 : {
9774 62 : switch (TREE_CODE (_p1))
9775 : {
9776 62 : case REAL_CST:
9777 62 : {
9778 62 : {
9779 62 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9780 62 : tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, MINUS_EXPR, EQ_EXPR);
9781 62 : if (res) return res;
9782 : }
9783 62 : break;
9784 : }
9785 : default:;
9786 : }
9787 : break;
9788 : }
9789 99976 : default:;
9790 : }
9791 99976 : switch (TREE_CODE (_q20))
9792 : {
9793 275 : case REAL_CST:
9794 275 : {
9795 275 : switch (TREE_CODE (_p1))
9796 : {
9797 245 : case REAL_CST:
9798 245 : {
9799 245 : {
9800 245 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9801 245 : tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, EQ_EXPR);
9802 245 : if (res) return res;
9803 : }
9804 244 : break;
9805 : }
9806 : default:;
9807 : }
9808 : break;
9809 : }
9810 : default:;
9811 : }
9812 : break;
9813 : }
9814 2816 : case FLOAT_EXPR:
9815 2816 : {
9816 2816 : tree _q20 = TREE_OPERAND (_p0, 0);
9817 2816 : switch (TREE_CODE (_p1))
9818 : {
9819 2 : case FLOAT_EXPR:
9820 2 : {
9821 2 : tree _q40 = TREE_OPERAND (_p1, 0);
9822 2 : {
9823 2 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9824 2 : tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
9825 2 : if (res) return res;
9826 : }
9827 1 : break;
9828 : }
9829 321 : case REAL_CST:
9830 321 : {
9831 321 : {
9832 321 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9833 321 : tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
9834 321 : if (res) return res;
9835 : }
9836 190 : break;
9837 : }
9838 : default:;
9839 : }
9840 : break;
9841 : }
9842 6618 : case EXACT_DIV_EXPR:
9843 6618 : {
9844 6618 : tree _q20 = TREE_OPERAND (_p0, 0);
9845 6618 : tree _q21 = TREE_OPERAND (_p0, 1);
9846 6618 : switch (TREE_CODE (_p1))
9847 : {
9848 33 : case INTEGER_CST:
9849 33 : {
9850 33 : {
9851 33 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9852 33 : tree res = generic_simplify_281 (loc, type, _p0, _p1, captures, EQ_EXPR);
9853 33 : if (res) return res;
9854 : }
9855 0 : break;
9856 : }
9857 : default:;
9858 : }
9859 : break;
9860 : }
9861 1303 : case NEGATE_EXPR:
9862 1303 : {
9863 1303 : tree _q20 = TREE_OPERAND (_p0, 0);
9864 1303 : switch (TREE_CODE (_p1))
9865 : {
9866 1 : case NEGATE_EXPR:
9867 1 : {
9868 1 : tree _q40 = TREE_OPERAND (_p1, 0);
9869 1 : {
9870 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
9871 1 : tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
9872 1 : if (res) return res;
9873 : }
9874 0 : break;
9875 : }
9876 1302 : default:;
9877 : }
9878 1302 : if (CONSTANT_CLASS_P (_p1))
9879 : {
9880 210 : {
9881 210 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9882 210 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
9883 210 : if (res) return res;
9884 : }
9885 : }
9886 : break;
9887 : }
9888 1427 : case ABS_EXPR:
9889 1427 : {
9890 1427 : tree _q20 = TREE_OPERAND (_p0, 0);
9891 1427 : if (zerop (_p1))
9892 : {
9893 66 : {
9894 66 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9895 66 : const enum tree_code eqne = EQ_EXPR;
9896 66 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1579;
9897 66 : {
9898 66 : tree res_op0;
9899 66 : res_op0 = captures[0];
9900 66 : tree res_op1;
9901 66 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
9902 66 : tree _r;
9903 66 : _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
9904 66 : if (TREE_SIDE_EFFECTS (captures[1]))
9905 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
9906 66 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1026, __FILE__, __LINE__, true);
9907 : return _r;
9908 : }
9909 0 : next_after_fail1579:;
9910 : }
9911 : }
9912 : break;
9913 : }
9914 1 : case ABSU_EXPR:
9915 1 : {
9916 1 : tree _q20 = TREE_OPERAND (_p0, 0);
9917 1 : if (zerop (_p1))
9918 : {
9919 0 : {
9920 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9921 0 : const enum tree_code eqne = EQ_EXPR;
9922 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1580;
9923 0 : {
9924 0 : tree res_op0;
9925 0 : res_op0 = captures[0];
9926 0 : tree res_op1;
9927 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
9928 0 : tree _r;
9929 0 : _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
9930 0 : if (TREE_SIDE_EFFECTS (captures[1]))
9931 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
9932 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1026, __FILE__, __LINE__, true);
9933 : return _r;
9934 : }
9935 0 : next_after_fail1580:;
9936 : }
9937 : }
9938 : break;
9939 : }
9940 5255166 : CASE_CONVERT:
9941 5255166 : {
9942 5255166 : tree _q20 = TREE_OPERAND (_p0, 0);
9943 5255166 : switch (TREE_CODE (_p1))
9944 : {
9945 1661768 : CASE_CONVERT:
9946 1661768 : {
9947 1661768 : tree _q40 = TREE_OPERAND (_p1, 0);
9948 1661768 : {
9949 1661768 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
9950 1661768 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, EQ_EXPR);
9951 1661768 : if (res) return res;
9952 : }
9953 980888 : break;
9954 : }
9955 4574286 : default:;
9956 : }
9957 4574286 : {
9958 4574286 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
9959 4574286 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, EQ_EXPR);
9960 4574286 : if (res) return res;
9961 : }
9962 2399025 : switch (TREE_CODE (_q20))
9963 : {
9964 3 : case BIT_IOR_EXPR:
9965 3 : {
9966 3 : tree _q30 = TREE_OPERAND (_q20, 0);
9967 3 : tree _q31 = TREE_OPERAND (_q20, 1);
9968 3 : switch (TREE_CODE (_q31))
9969 : {
9970 0 : case INTEGER_CST:
9971 0 : {
9972 0 : switch (TREE_CODE (_p1))
9973 : {
9974 0 : case INTEGER_CST:
9975 0 : {
9976 0 : {
9977 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
9978 0 : tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, EQ_EXPR);
9979 0 : if (res) return res;
9980 : }
9981 0 : break;
9982 : }
9983 : default:;
9984 : }
9985 : break;
9986 : }
9987 : default:;
9988 : }
9989 : break;
9990 : }
9991 : default:;
9992 : }
9993 : break;
9994 : }
9995 9142407 : case SSA_NAME:
9996 9142407 : {
9997 9142407 : switch (TREE_CODE (_p1))
9998 : {
9999 842869 : case ADDR_EXPR:
10000 842869 : {
10001 842869 : {
10002 842869 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10003 842869 : tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR);
10004 842869 : if (res) return res;
10005 : }
10006 842869 : break;
10007 : }
10008 : default:;
10009 : }
10010 : break;
10011 : }
10012 33567 : case BIT_IOR_EXPR:
10013 33567 : {
10014 33567 : tree _q20 = TREE_OPERAND (_p0, 0);
10015 33567 : tree _q21 = TREE_OPERAND (_p0, 1);
10016 33567 : switch (TREE_CODE (_q21))
10017 : {
10018 1364 : case INTEGER_CST:
10019 1364 : {
10020 1364 : switch (TREE_CODE (_p1))
10021 : {
10022 476 : case INTEGER_CST:
10023 476 : {
10024 476 : {
10025 476 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10026 476 : tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, EQ_EXPR);
10027 476 : if (res) return res;
10028 : }
10029 476 : break;
10030 : }
10031 : default:;
10032 : }
10033 : break;
10034 : }
10035 : default:;
10036 : }
10037 : break;
10038 : }
10039 631 : case BIT_XOR_EXPR:
10040 631 : {
10041 631 : tree _q20 = TREE_OPERAND (_p0, 0);
10042 631 : tree _q21 = TREE_OPERAND (_p0, 1);
10043 631 : if (integer_zerop (_p1))
10044 : {
10045 171 : {
10046 171 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10047 171 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, EQ_EXPR);
10048 171 : if (res) return res;
10049 : }
10050 : }
10051 460 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
10052 : {
10053 29 : {
10054 29 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10055 29 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR);
10056 29 : if (res) return res;
10057 : }
10058 : }
10059 431 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
10060 : {
10061 30 : {
10062 30 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
10063 30 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR);
10064 30 : if (res) return res;
10065 : }
10066 : }
10067 : break;
10068 : }
10069 2028040 : case CALL_EXPR:
10070 2028040 : switch (get_call_combined_fn (_p0))
10071 : {
10072 3 : case CFN_BUILT_IN_SQRTF:
10073 3 : if (call_expr_nargs (_p0) == 1)
10074 : {
10075 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10076 3 : switch (TREE_CODE (_p1))
10077 : {
10078 0 : case REAL_CST:
10079 0 : {
10080 0 : {
10081 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10082 0 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
10083 0 : if (res) return res;
10084 : }
10085 0 : break;
10086 : }
10087 3 : case CALL_EXPR:
10088 3 : switch (get_call_combined_fn (_p1))
10089 : {
10090 3 : case CFN_BUILT_IN_SQRTF:
10091 3 : if (call_expr_nargs (_p1) == 1)
10092 : {
10093 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10094 3 : {
10095 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
10096 3 : tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
10097 3 : if (res) return res;
10098 : }
10099 : }
10100 : break;
10101 : default:;
10102 : }
10103 : break;
10104 : default:;
10105 : }
10106 : }
10107 : break;
10108 3 : case CFN_BUILT_IN_SQRTL:
10109 3 : if (call_expr_nargs (_p0) == 1)
10110 : {
10111 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10112 3 : switch (TREE_CODE (_p1))
10113 : {
10114 0 : case REAL_CST:
10115 0 : {
10116 0 : {
10117 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10118 0 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
10119 0 : if (res) return res;
10120 : }
10121 0 : break;
10122 : }
10123 3 : case CALL_EXPR:
10124 3 : switch (get_call_combined_fn (_p1))
10125 : {
10126 3 : case CFN_BUILT_IN_SQRTL:
10127 3 : if (call_expr_nargs (_p1) == 1)
10128 : {
10129 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10130 3 : {
10131 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
10132 3 : tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
10133 3 : if (res) return res;
10134 : }
10135 : }
10136 : break;
10137 : default:;
10138 : }
10139 : break;
10140 : default:;
10141 : }
10142 : }
10143 : break;
10144 2 : case CFN_BUILT_IN_SQRT:
10145 2 : if (call_expr_nargs (_p0) == 1)
10146 : {
10147 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10148 2 : switch (TREE_CODE (_p1))
10149 : {
10150 2 : case REAL_CST:
10151 2 : {
10152 2 : {
10153 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10154 2 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
10155 2 : if (res) return res;
10156 : }
10157 2 : break;
10158 : }
10159 0 : case CALL_EXPR:
10160 0 : switch (get_call_combined_fn (_p1))
10161 : {
10162 0 : case CFN_BUILT_IN_SQRT:
10163 0 : if (call_expr_nargs (_p1) == 1)
10164 : {
10165 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10166 0 : {
10167 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
10168 0 : tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
10169 0 : if (res) return res;
10170 : }
10171 : }
10172 : break;
10173 : default:;
10174 : }
10175 : break;
10176 : default:;
10177 : }
10178 : }
10179 : break;
10180 0 : case CFN_SQRT:
10181 0 : if (call_expr_nargs (_p0) == 1)
10182 : {
10183 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10184 0 : switch (TREE_CODE (_p1))
10185 : {
10186 0 : case REAL_CST:
10187 0 : {
10188 0 : {
10189 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10190 0 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, CFN_SQRT, EQ_EXPR);
10191 0 : if (res) return res;
10192 : }
10193 0 : break;
10194 : }
10195 0 : case CALL_EXPR:
10196 0 : switch (get_call_combined_fn (_p1))
10197 : {
10198 0 : case CFN_SQRT:
10199 0 : if (call_expr_nargs (_p1) == 1)
10200 : {
10201 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
10202 0 : {
10203 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
10204 0 : tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, CFN_SQRT, EQ_EXPR);
10205 0 : if (res) return res;
10206 : }
10207 : }
10208 : break;
10209 : default:;
10210 : }
10211 : break;
10212 : default:;
10213 : }
10214 : }
10215 : break;
10216 : default:;
10217 : }
10218 : break;
10219 25167003 : default:;
10220 : }
10221 25167003 : switch (TREE_CODE (_p1))
10222 : {
10223 62 : case BIT_XOR_EXPR:
10224 62 : {
10225 62 : tree _q30 = TREE_OPERAND (_p1, 0);
10226 62 : tree _q31 = TREE_OPERAND (_p1, 1);
10227 62 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10228 : {
10229 0 : {
10230 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
10231 0 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR);
10232 0 : if (res) return res;
10233 : }
10234 : }
10235 62 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
10236 : {
10237 0 : {
10238 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
10239 0 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR);
10240 0 : if (res) return res;
10241 : }
10242 : }
10243 : break;
10244 : }
10245 25167003 : default:;
10246 : }
10247 25167003 : switch (TREE_CODE (_p0))
10248 : {
10249 840803 : case BIT_AND_EXPR:
10250 840803 : {
10251 840803 : tree _q20 = TREE_OPERAND (_p0, 0);
10252 840803 : tree _q21 = TREE_OPERAND (_p0, 1);
10253 840803 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
10254 : {
10255 141 : {
10256 141 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10257 141 : tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, EQ_EXPR);
10258 141 : if (res) return res;
10259 : }
10260 : }
10261 840802 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
10262 : {
10263 146401 : {
10264 146401 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
10265 146401 : tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, EQ_EXPR);
10266 146401 : if (res) return res;
10267 : }
10268 : }
10269 : break;
10270 : }
10271 25167002 : default:;
10272 : }
10273 25167002 : switch (TREE_CODE (_p1))
10274 : {
10275 25538 : case BIT_AND_EXPR:
10276 25538 : {
10277 25538 : tree _q30 = TREE_OPERAND (_p1, 0);
10278 25538 : tree _q31 = TREE_OPERAND (_p1, 1);
10279 25538 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10280 : {
10281 0 : {
10282 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
10283 0 : tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, EQ_EXPR);
10284 0 : if (res) return res;
10285 : }
10286 : }
10287 25538 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
10288 : {
10289 0 : {
10290 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
10291 0 : tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, EQ_EXPR);
10292 0 : if (res) return res;
10293 : }
10294 : }
10295 : break;
10296 : }
10297 25167002 : default:;
10298 : }
10299 25167002 : switch (TREE_CODE (_p0))
10300 : {
10301 2399025 : CASE_CONVERT:
10302 2399025 : {
10303 2399025 : tree _q20 = TREE_OPERAND (_p0, 0);
10304 2399025 : switch (TREE_CODE (_q20))
10305 : {
10306 10 : case BIT_AND_EXPR:
10307 10 : {
10308 10 : tree _q30 = TREE_OPERAND (_q20, 0);
10309 10 : tree _q31 = TREE_OPERAND (_q20, 1);
10310 10 : switch (TREE_CODE (_q30))
10311 : {
10312 0 : CASE_CONVERT:
10313 0 : {
10314 0 : tree _q40 = TREE_OPERAND (_q30, 0);
10315 0 : switch (TREE_CODE (_q31))
10316 : {
10317 0 : case INTEGER_CST:
10318 0 : {
10319 0 : switch (TREE_CODE (_p1))
10320 : {
10321 0 : CASE_CONVERT:
10322 0 : {
10323 0 : tree _q70 = TREE_OPERAND (_p1, 0);
10324 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
10325 : {
10326 0 : {
10327 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q31 };
10328 0 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, EQ_EXPR);
10329 0 : if (res) return res;
10330 : }
10331 : }
10332 : break;
10333 : }
10334 : default:;
10335 : }
10336 : break;
10337 : }
10338 : default:;
10339 : }
10340 : break;
10341 : }
10342 : default:;
10343 : }
10344 : break;
10345 : }
10346 2399025 : default:;
10347 : }
10348 2399025 : switch (TREE_CODE (_p1))
10349 : {
10350 980888 : CASE_CONVERT:
10351 980888 : {
10352 980888 : tree _q40 = TREE_OPERAND (_p1, 0);
10353 980888 : switch (TREE_CODE (_q40))
10354 : {
10355 7 : case BIT_AND_EXPR:
10356 7 : {
10357 7 : tree _q50 = TREE_OPERAND (_q40, 0);
10358 7 : tree _q51 = TREE_OPERAND (_q40, 1);
10359 7 : switch (TREE_CODE (_q50))
10360 : {
10361 7 : CASE_CONVERT:
10362 7 : {
10363 7 : tree _q60 = TREE_OPERAND (_q50, 0);
10364 7 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10365 : {
10366 0 : switch (TREE_CODE (_q51))
10367 : {
10368 0 : case INTEGER_CST:
10369 0 : {
10370 0 : {
10371 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q51 };
10372 0 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, EQ_EXPR);
10373 0 : if (res) return res;
10374 : }
10375 0 : break;
10376 : }
10377 : default:;
10378 : }
10379 : }
10380 : break;
10381 : }
10382 : default:;
10383 : }
10384 : break;
10385 : }
10386 : default:;
10387 : }
10388 : break;
10389 : }
10390 : default:;
10391 : }
10392 : break;
10393 : }
10394 33567 : case BIT_IOR_EXPR:
10395 33567 : {
10396 33567 : tree _q20 = TREE_OPERAND (_p0, 0);
10397 33567 : tree _q21 = TREE_OPERAND (_p0, 1);
10398 33567 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
10399 : {
10400 25 : {
10401 25 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10402 25 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR);
10403 25 : if (res) return res;
10404 : }
10405 : }
10406 33567 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
10407 : {
10408 30 : {
10409 30 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
10410 30 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR);
10411 30 : if (res) return res;
10412 : }
10413 : }
10414 : break;
10415 : }
10416 25167002 : default:;
10417 : }
10418 25167002 : switch (TREE_CODE (_p1))
10419 : {
10420 576 : case BIT_IOR_EXPR:
10421 576 : {
10422 576 : tree _q30 = TREE_OPERAND (_p1, 0);
10423 576 : tree _q31 = TREE_OPERAND (_p1, 1);
10424 576 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
10425 : {
10426 0 : {
10427 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
10428 0 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR);
10429 0 : if (res) return res;
10430 : }
10431 : }
10432 576 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10433 : {
10434 0 : {
10435 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
10436 0 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR);
10437 0 : if (res) return res;
10438 : }
10439 : }
10440 : break;
10441 : }
10442 25167002 : default:;
10443 : }
10444 25167002 : switch (TREE_CODE (_p0))
10445 : {
10446 2399025 : CASE_CONVERT:
10447 2399025 : {
10448 2399025 : tree _q20 = TREE_OPERAND (_p0, 0);
10449 2399025 : switch (TREE_CODE (_q20))
10450 : {
10451 896 : case BIT_XOR_EXPR:
10452 896 : {
10453 896 : tree _q30 = TREE_OPERAND (_q20, 0);
10454 896 : tree _q31 = TREE_OPERAND (_q20, 1);
10455 896 : switch (TREE_CODE (_q31))
10456 : {
10457 7 : case INTEGER_CST:
10458 7 : {
10459 7 : switch (TREE_CODE (_p1))
10460 : {
10461 0 : case INTEGER_CST:
10462 0 : {
10463 0 : {
10464 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
10465 0 : tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, EQ_EXPR);
10466 0 : if (res) return res;
10467 : }
10468 0 : break;
10469 : }
10470 : default:;
10471 : }
10472 : break;
10473 : }
10474 : default:;
10475 : }
10476 : break;
10477 : }
10478 : default:;
10479 : }
10480 : break;
10481 : }
10482 401 : case BIT_XOR_EXPR:
10483 401 : {
10484 401 : tree _q20 = TREE_OPERAND (_p0, 0);
10485 401 : tree _q21 = TREE_OPERAND (_p0, 1);
10486 401 : switch (TREE_CODE (_q21))
10487 : {
10488 103 : case INTEGER_CST:
10489 103 : {
10490 103 : switch (TREE_CODE (_p1))
10491 : {
10492 16 : case INTEGER_CST:
10493 16 : {
10494 16 : {
10495 16 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10496 16 : tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, EQ_EXPR);
10497 16 : if (res) return res;
10498 : }
10499 0 : break;
10500 : }
10501 : default:;
10502 : }
10503 : break;
10504 : }
10505 : default:;
10506 : }
10507 : break;
10508 : }
10509 25166986 : default:;
10510 : }
10511 25166986 : {
10512 25166986 : tree _p0_pops[1];
10513 25166986 : if (tree_nop_convert (_p0, _p0_pops))
10514 : {
10515 2033972 : tree _q20 = _p0_pops[0];
10516 2033972 : if (integer_zerop (_p1))
10517 : {
10518 465554 : {
10519 465554 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10520 465554 : tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, EQ_EXPR);
10521 465554 : if (res) return res;
10522 : }
10523 : }
10524 : }
10525 : }
10526 24851566 : if (integer_zerop (_p1))
10527 : {
10528 9886331 : {
10529 9886331 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10530 9886331 : tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, EQ_EXPR);
10531 9886331 : if (res) return res;
10532 : }
10533 : }
10534 24776555 : switch (TREE_CODE (_p0))
10535 : {
10536 840802 : case BIT_AND_EXPR:
10537 840802 : {
10538 840802 : tree _q20 = TREE_OPERAND (_p0, 0);
10539 840802 : tree _q21 = TREE_OPERAND (_p0, 1);
10540 840802 : switch (TREE_CODE (_p1))
10541 : {
10542 25237 : case BIT_AND_EXPR:
10543 25237 : {
10544 25237 : tree _q50 = TREE_OPERAND (_p1, 0);
10545 25237 : tree _q51 = TREE_OPERAND (_p1, 1);
10546 25237 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10547 : {
10548 24712 : {
10549 24712 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
10550 24712 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, EQ_EXPR);
10551 24712 : if (res) return res;
10552 : }
10553 : }
10554 525 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
10555 : {
10556 28 : {
10557 28 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
10558 28 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, EQ_EXPR);
10559 28 : if (res) return res;
10560 : }
10561 : }
10562 497 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
10563 : {
10564 28 : {
10565 28 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
10566 28 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, EQ_EXPR);
10567 28 : if (res) return res;
10568 : }
10569 : }
10570 469 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10571 : {
10572 28 : {
10573 28 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
10574 28 : tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, EQ_EXPR);
10575 28 : if (res) return res;
10576 : }
10577 : }
10578 : break;
10579 : }
10580 816006 : default:;
10581 : }
10582 816006 : if (integer_pow2p (_q21))
10583 : {
10584 285823 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
10585 : {
10586 112815 : {
10587 112815 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
10588 112815 : tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
10589 112815 : if (res) return res;
10590 : }
10591 : }
10592 : }
10593 : break;
10594 : }
10595 33567 : case BIT_IOR_EXPR:
10596 33567 : {
10597 33567 : tree _q20 = TREE_OPERAND (_p0, 0);
10598 33567 : tree _q21 = TREE_OPERAND (_p0, 1);
10599 33567 : switch (TREE_CODE (_p1))
10600 : {
10601 469 : case BIT_IOR_EXPR:
10602 469 : {
10603 469 : tree _q50 = TREE_OPERAND (_p1, 0);
10604 469 : tree _q51 = TREE_OPERAND (_p1, 1);
10605 469 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
10606 : {
10607 152 : {
10608 152 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
10609 152 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, EQ_EXPR);
10610 152 : if (res) return res;
10611 : }
10612 : }
10613 317 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
10614 : {
10615 0 : {
10616 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
10617 0 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, EQ_EXPR);
10618 0 : if (res) return res;
10619 : }
10620 : }
10621 317 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
10622 : {
10623 0 : {
10624 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
10625 0 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, EQ_EXPR);
10626 0 : if (res) return res;
10627 : }
10628 : }
10629 317 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10630 : {
10631 0 : {
10632 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
10633 0 : tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, EQ_EXPR);
10634 0 : if (res) return res;
10635 : }
10636 : }
10637 : break;
10638 : }
10639 33415 : default:;
10640 : }
10641 33415 : if (integer_pow2p (_q21))
10642 : {
10643 1025 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
10644 : {
10645 0 : {
10646 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
10647 0 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
10648 0 : if (res) return res;
10649 : }
10650 : }
10651 : }
10652 : break;
10653 : }
10654 1218 : case GE_EXPR:
10655 1218 : {
10656 1218 : tree _q20 = TREE_OPERAND (_p0, 0);
10657 1218 : tree _q21 = TREE_OPERAND (_p0, 1);
10658 1218 : if (integer_zerop (_q21))
10659 : {
10660 98 : switch (TREE_CODE (_p1))
10661 : {
10662 5 : case GE_EXPR:
10663 5 : {
10664 5 : tree _q50 = TREE_OPERAND (_p1, 0);
10665 5 : tree _q51 = TREE_OPERAND (_p1, 1);
10666 5 : if (integer_zerop (_q51))
10667 : {
10668 5 : {
10669 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
10670 5 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, GE_EXPR);
10671 5 : if (res) return res;
10672 : }
10673 : }
10674 : break;
10675 : }
10676 1 : case LT_EXPR:
10677 1 : {
10678 1 : tree _q50 = TREE_OPERAND (_p1, 0);
10679 1 : tree _q51 = TREE_OPERAND (_p1, 1);
10680 1 : if (integer_zerop (_q51))
10681 : {
10682 1 : {
10683 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
10684 1 : tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
10685 1 : if (res) return res;
10686 : }
10687 : }
10688 : break;
10689 : }
10690 : default:;
10691 : }
10692 : }
10693 : break;
10694 : }
10695 836 : case LT_EXPR:
10696 836 : {
10697 836 : tree _q20 = TREE_OPERAND (_p0, 0);
10698 836 : tree _q21 = TREE_OPERAND (_p0, 1);
10699 836 : if (integer_zerop (_q21))
10700 : {
10701 139 : switch (TREE_CODE (_p1))
10702 : {
10703 11 : case LT_EXPR:
10704 11 : {
10705 11 : tree _q50 = TREE_OPERAND (_p1, 0);
10706 11 : tree _q51 = TREE_OPERAND (_p1, 1);
10707 11 : if (integer_zerop (_q51))
10708 : {
10709 9 : {
10710 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
10711 9 : tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GE_EXPR);
10712 9 : if (res) return res;
10713 : }
10714 : }
10715 : break;
10716 : }
10717 1 : case GE_EXPR:
10718 1 : {
10719 1 : tree _q50 = TREE_OPERAND (_p1, 0);
10720 1 : tree _q51 = TREE_OPERAND (_p1, 1);
10721 1 : if (integer_zerop (_q51))
10722 : {
10723 1 : {
10724 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
10725 1 : tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
10726 1 : if (res) return res;
10727 : }
10728 : }
10729 : break;
10730 : }
10731 : default:;
10732 : }
10733 : }
10734 : break;
10735 : }
10736 24638796 : default:;
10737 : }
10738 24638796 : switch (TREE_CODE (_p1))
10739 : {
10740 424 : case BIT_IOR_EXPR:
10741 424 : {
10742 424 : tree _q30 = TREE_OPERAND (_p1, 0);
10743 424 : tree _q31 = TREE_OPERAND (_p1, 1);
10744 424 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
10745 : {
10746 0 : if (integer_pow2p (_q31))
10747 : {
10748 0 : {
10749 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
10750 0 : tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
10751 0 : if (res) return res;
10752 : }
10753 : }
10754 : }
10755 : break;
10756 : }
10757 24638796 : default:;
10758 : }
10759 24638796 : switch (TREE_CODE (_p0))
10760 : {
10761 703211 : case BIT_AND_EXPR:
10762 703211 : {
10763 703211 : tree _q20 = TREE_OPERAND (_p0, 0);
10764 703211 : tree _q21 = TREE_OPERAND (_p0, 1);
10765 703211 : switch (TREE_CODE (_q20))
10766 : {
10767 30742 : CASE_CONVERT:
10768 30742 : {
10769 30742 : tree _q30 = TREE_OPERAND (_q20, 0);
10770 30742 : if (integer_pow2p (_q21))
10771 : {
10772 11050 : if (integer_zerop (_p1))
10773 : {
10774 11048 : {
10775 11048 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
10776 11048 : tree res = generic_simplify_302 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
10777 11048 : if (res) return res;
10778 : }
10779 : }
10780 : }
10781 : break;
10782 : }
10783 702254 : default:;
10784 : }
10785 702254 : if (integer_pow2p (_q21))
10786 : {
10787 172071 : if (integer_zerop (_p1))
10788 : {
10789 171906 : {
10790 171906 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _q21 };
10791 171906 : tree res = generic_simplify_303 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
10792 171906 : if (res) return res;
10793 : }
10794 : }
10795 : }
10796 : break;
10797 : }
10798 33415 : case BIT_IOR_EXPR:
10799 33415 : {
10800 33415 : tree _q20 = TREE_OPERAND (_p0, 0);
10801 33415 : tree _q21 = TREE_OPERAND (_p0, 1);
10802 33415 : switch (TREE_CODE (_q21))
10803 : {
10804 659 : CASE_CONVERT:
10805 659 : {
10806 659 : tree _q40 = TREE_OPERAND (_q21, 0);
10807 659 : switch (TREE_CODE (_q40))
10808 : {
10809 0 : case NE_EXPR:
10810 0 : {
10811 0 : tree _q50 = TREE_OPERAND (_q40, 0);
10812 0 : tree _q51 = TREE_OPERAND (_q40, 1);
10813 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
10814 : {
10815 0 : if (integer_zerop (_q51))
10816 : {
10817 0 : if (integer_zerop (_p1))
10818 : {
10819 0 : {
10820 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10821 0 : tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR);
10822 0 : if (res) return res;
10823 : }
10824 : }
10825 : }
10826 : }
10827 : break;
10828 : }
10829 : default:;
10830 : }
10831 : break;
10832 : }
10833 33415 : default:;
10834 : }
10835 33415 : switch (TREE_CODE (_q20))
10836 : {
10837 627 : CASE_CONVERT:
10838 627 : {
10839 627 : tree _q30 = TREE_OPERAND (_q20, 0);
10840 627 : switch (TREE_CODE (_q30))
10841 : {
10842 0 : case NE_EXPR:
10843 0 : {
10844 0 : tree _q40 = TREE_OPERAND (_q30, 0);
10845 0 : tree _q41 = TREE_OPERAND (_q30, 1);
10846 0 : if (integer_zerop (_q41))
10847 : {
10848 0 : if ((_q21 == _q40 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q40, 0) && types_match (_q21, _q40)))
10849 : {
10850 0 : if (integer_zerop (_p1))
10851 : {
10852 0 : {
10853 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
10854 0 : tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR);
10855 0 : if (res) return res;
10856 : }
10857 : }
10858 : }
10859 : }
10860 : break;
10861 : }
10862 : default:;
10863 : }
10864 : break;
10865 : }
10866 33415 : default:;
10867 : }
10868 33415 : switch (TREE_CODE (_q21))
10869 : {
10870 1 : case NE_EXPR:
10871 1 : {
10872 1 : tree _q40 = TREE_OPERAND (_q21, 0);
10873 1 : tree _q41 = TREE_OPERAND (_q21, 1);
10874 1 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
10875 : {
10876 0 : if (integer_zerop (_q41))
10877 : {
10878 0 : if (integer_zerop (_p1))
10879 : {
10880 0 : {
10881 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10882 0 : tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR);
10883 0 : if (res) return res;
10884 : }
10885 : }
10886 : }
10887 : }
10888 : break;
10889 : }
10890 33415 : default:;
10891 : }
10892 33415 : switch (TREE_CODE (_q20))
10893 : {
10894 9 : case NE_EXPR:
10895 9 : {
10896 9 : tree _q30 = TREE_OPERAND (_q20, 0);
10897 9 : tree _q31 = TREE_OPERAND (_q20, 1);
10898 9 : if (integer_zerop (_q31))
10899 : {
10900 0 : if ((_q21 == _q30 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q30, 0) && types_match (_q21, _q30)))
10901 : {
10902 0 : if (integer_zerop (_p1))
10903 : {
10904 0 : {
10905 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
10906 0 : tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR);
10907 0 : if (res) return res;
10908 : }
10909 : }
10910 : }
10911 : }
10912 : break;
10913 : }
10914 : default:;
10915 : }
10916 : break;
10917 : }
10918 2083602 : CASE_CONVERT:
10919 2083602 : {
10920 2083602 : tree _q20 = TREE_OPERAND (_p0, 0);
10921 2083602 : switch (TREE_CODE (_q20))
10922 : {
10923 627714 : case ADDR_EXPR:
10924 627714 : {
10925 627714 : switch (TREE_CODE (_p1))
10926 : {
10927 599571 : CASE_CONVERT:
10928 599571 : {
10929 599571 : tree _q40 = TREE_OPERAND (_p1, 0);
10930 599571 : switch (TREE_CODE (_q40))
10931 : {
10932 599571 : case ADDR_EXPR:
10933 599571 : {
10934 599571 : {
10935 599571 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
10936 599571 : tree res = generic_simplify_305 (loc, type, _p0, _p1, captures, EQ_EXPR);
10937 599571 : if (res) return res;
10938 : }
10939 30 : break;
10940 : }
10941 : default:;
10942 : }
10943 : break;
10944 : }
10945 20897 : case ADDR_EXPR:
10946 20897 : {
10947 20897 : {
10948 20897 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10949 20897 : tree res = generic_simplify_305 (loc, type, _p0, _p1, captures, EQ_EXPR);
10950 20897 : if (res) return res;
10951 : }
10952 7896 : break;
10953 : }
10954 : default:;
10955 : }
10956 : break;
10957 : }
10958 : default:;
10959 : }
10960 : break;
10961 : }
10962 19233 : case ADDR_EXPR:
10963 19233 : {
10964 19233 : switch (TREE_CODE (_p1))
10965 : {
10966 165 : CASE_CONVERT:
10967 165 : {
10968 165 : tree _q30 = TREE_OPERAND (_p1, 0);
10969 165 : switch (TREE_CODE (_q30))
10970 : {
10971 165 : case ADDR_EXPR:
10972 165 : {
10973 165 : {
10974 165 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
10975 165 : tree res = generic_simplify_306 (loc, type, _p0, _p1, captures, EQ_EXPR);
10976 165 : if (res) return res;
10977 : }
10978 0 : break;
10979 : }
10980 : default:;
10981 : }
10982 : break;
10983 : }
10984 16640 : case ADDR_EXPR:
10985 16640 : {
10986 16640 : {
10987 16640 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
10988 16640 : tree res = generic_simplify_306 (loc, type, _p0, _p1, captures, EQ_EXPR);
10989 16640 : if (res) return res;
10990 : }
10991 7259 : break;
10992 : }
10993 : default:;
10994 : }
10995 : break;
10996 : }
10997 24015459 : default:;
10998 : }
10999 24015459 : {
11000 24015459 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
11001 24015459 : tree res = generic_simplify_307 (loc, type, _p0, _p1, captures, EQ_EXPR);
11002 24015459 : if (res) return res;
11003 : }
11004 24013420 : switch (TREE_CODE (_p0))
11005 : {
11006 1471060 : CASE_CONVERT:
11007 1471060 : {
11008 1471060 : tree _q20 = TREE_OPERAND (_p0, 0);
11009 1471060 : switch (TREE_CODE (_p1))
11010 : {
11011 260431 : case INTEGER_CST:
11012 260431 : {
11013 260431 : {
11014 260431 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
11015 260431 : tree res = generic_simplify_308 (loc, type, _p0, _p1, captures, EQ_EXPR);
11016 260431 : if (res) return res;
11017 : }
11018 259014 : break;
11019 : }
11020 1469643 : default:;
11021 : }
11022 1469643 : switch (TREE_CODE (_q20))
11023 : {
11024 0 : case NE_EXPR:
11025 0 : {
11026 0 : tree _q30 = TREE_OPERAND (_q20, 0);
11027 0 : tree _q31 = TREE_OPERAND (_q20, 1);
11028 0 : switch (TREE_CODE (_q31))
11029 : {
11030 0 : case INTEGER_CST:
11031 0 : {
11032 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
11033 : {
11034 0 : {
11035 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
11036 0 : tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
11037 0 : if (res) return res;
11038 : }
11039 : }
11040 : break;
11041 : }
11042 : default:;
11043 : }
11044 : break;
11045 : }
11046 0 : case EQ_EXPR:
11047 0 : {
11048 0 : tree _q30 = TREE_OPERAND (_q20, 0);
11049 0 : tree _q31 = TREE_OPERAND (_q20, 1);
11050 0 : switch (TREE_CODE (_q31))
11051 : {
11052 0 : case INTEGER_CST:
11053 0 : {
11054 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
11055 : {
11056 0 : {
11057 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
11058 0 : tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
11059 0 : if (res) return res;
11060 : }
11061 : }
11062 : break;
11063 : }
11064 : default:;
11065 : }
11066 : break;
11067 : }
11068 : default:;
11069 : }
11070 : break;
11071 : }
11072 24012003 : default:;
11073 : }
11074 24012003 : switch (TREE_CODE (_p1))
11075 : {
11076 685697 : CASE_CONVERT:
11077 685697 : {
11078 685697 : tree _q30 = TREE_OPERAND (_p1, 0);
11079 685697 : switch (TREE_CODE (_q30))
11080 : {
11081 0 : case NE_EXPR:
11082 0 : {
11083 0 : tree _q40 = TREE_OPERAND (_q30, 0);
11084 0 : tree _q41 = TREE_OPERAND (_q30, 1);
11085 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
11086 : {
11087 0 : switch (TREE_CODE (_q41))
11088 : {
11089 0 : case INTEGER_CST:
11090 0 : {
11091 0 : {
11092 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
11093 0 : tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
11094 0 : if (res) return res;
11095 : }
11096 0 : break;
11097 : }
11098 : default:;
11099 : }
11100 : }
11101 : break;
11102 : }
11103 0 : case EQ_EXPR:
11104 0 : {
11105 0 : tree _q40 = TREE_OPERAND (_q30, 0);
11106 0 : tree _q41 = TREE_OPERAND (_q30, 1);
11107 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
11108 : {
11109 0 : switch (TREE_CODE (_q41))
11110 : {
11111 0 : case INTEGER_CST:
11112 0 : {
11113 0 : {
11114 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
11115 0 : tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
11116 0 : if (res) return res;
11117 : }
11118 0 : break;
11119 : }
11120 : default:;
11121 : }
11122 : }
11123 : break;
11124 : }
11125 : default:;
11126 : }
11127 : break;
11128 : }
11129 24012003 : default:;
11130 : }
11131 24012003 : if (integer_onep (_p1))
11132 : {
11133 1826648 : {
11134 1826648 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
11135 1826648 : if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
11136 1826648 : && types_match (type, TREE_TYPE (captures[0]))
11137 : )
11138 : {
11139 116634 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1581;
11140 116634 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1581;
11141 116634 : {
11142 116634 : tree res_op0;
11143 116634 : res_op0 = captures[0];
11144 116634 : tree _r;
11145 116634 : _r = non_lvalue_loc (loc, res_op0);
11146 116634 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1027, __FILE__, __LINE__, true);
11147 28253050 : return _r;
11148 : }
11149 23895369 : next_after_fail1581:;
11150 : }
11151 : }
11152 : }
11153 23895369 : switch (TREE_CODE (_p0))
11154 : {
11155 701962 : case BIT_AND_EXPR:
11156 701962 : {
11157 701962 : tree _q20 = TREE_OPERAND (_p0, 0);
11158 701962 : tree _q21 = TREE_OPERAND (_p0, 1);
11159 701962 : switch (TREE_CODE (_q21))
11160 : {
11161 688 : case VECTOR_CST:
11162 688 : {
11163 688 : if (integer_zerop (_p1))
11164 : {
11165 398 : {
11166 398 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
11167 398 : const enum tree_code cmp = EQ_EXPR;
11168 398 : const enum tree_code icmp = LE_EXPR;
11169 398 : {
11170 398 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
11171 398 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
11172 : )
11173 : {
11174 2 : {
11175 2 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
11176 2 : ? optab_vector : optab_default;
11177 2 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
11178 2 : if (target_supports_op_p (utype, icmp, optab)
11179 2 : || (optimize_vectors_before_lowering_p ()
11180 2 : && (!target_supports_op_p (type, cmp, optab)
11181 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
11182 : )
11183 : {
11184 2 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
11185 : )
11186 : {
11187 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1582;
11188 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1582;
11189 2 : {
11190 2 : tree res_op0;
11191 2 : res_op0 = captures[1];
11192 2 : tree res_op1;
11193 2 : res_op1 = csts;
11194 2 : tree _r;
11195 2 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
11196 2 : if (TREE_SIDE_EFFECTS (captures[2]))
11197 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11198 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
11199 : return _r;
11200 : }
11201 701045 : next_after_fail1582:;
11202 : }
11203 : else
11204 : {
11205 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1583;
11206 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1583;
11207 0 : {
11208 0 : tree res_op0;
11209 0 : {
11210 0 : tree _o1[1], _r1;
11211 0 : _o1[0] = captures[1];
11212 0 : if (TREE_TYPE (_o1[0]) != utype)
11213 : {
11214 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
11215 : }
11216 : else
11217 : _r1 = _o1[0];
11218 0 : res_op0 = _r1;
11219 : }
11220 0 : tree res_op1;
11221 0 : res_op1 = csts;
11222 0 : tree _r;
11223 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
11224 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11225 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11226 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
11227 : return _r;
11228 : }
11229 701045 : next_after_fail1583:;
11230 : }
11231 : }
11232 : }
11233 : }
11234 : }
11235 : }
11236 : }
11237 : break;
11238 : }
11239 658225 : case INTEGER_CST:
11240 658225 : {
11241 658225 : if (integer_zerop (_p1))
11242 : {
11243 541602 : {
11244 541602 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
11245 541602 : const enum tree_code cmp = EQ_EXPR;
11246 541602 : const enum tree_code icmp = LE_EXPR;
11247 541602 : {
11248 541602 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
11249 541602 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
11250 : )
11251 : {
11252 1061 : {
11253 1061 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
11254 1061 : ? optab_vector : optab_default;
11255 1061 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
11256 1061 : if (target_supports_op_p (utype, icmp, optab)
11257 1061 : || (optimize_vectors_before_lowering_p ()
11258 915 : && (!target_supports_op_p (type, cmp, optab)
11259 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
11260 : )
11261 : {
11262 915 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
11263 : )
11264 : {
11265 610 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1584;
11266 610 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1584;
11267 610 : {
11268 610 : tree res_op0;
11269 610 : res_op0 = captures[1];
11270 610 : tree res_op1;
11271 610 : res_op1 = csts;
11272 610 : tree _r;
11273 610 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
11274 610 : if (TREE_SIDE_EFFECTS (captures[2]))
11275 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11276 610 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
11277 : return _r;
11278 : }
11279 701045 : next_after_fail1584:;
11280 : }
11281 : else
11282 : {
11283 305 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1585;
11284 305 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1585;
11285 305 : {
11286 305 : tree res_op0;
11287 305 : {
11288 305 : tree _o1[1], _r1;
11289 305 : _o1[0] = captures[1];
11290 305 : if (TREE_TYPE (_o1[0]) != utype)
11291 : {
11292 305 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
11293 : }
11294 : else
11295 : _r1 = _o1[0];
11296 305 : res_op0 = _r1;
11297 : }
11298 305 : tree res_op1;
11299 305 : res_op1 = csts;
11300 305 : tree _r;
11301 305 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
11302 305 : if (TREE_SIDE_EFFECTS (captures[2]))
11303 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11304 305 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
11305 : return _r;
11306 : }
11307 701045 : next_after_fail1585:;
11308 : }
11309 : }
11310 : }
11311 : }
11312 : }
11313 : }
11314 : }
11315 : break;
11316 : }
11317 701045 : default:;
11318 : }
11319 701045 : switch (TREE_CODE (_q20))
11320 : {
11321 0 : case VECTOR_CST:
11322 0 : {
11323 0 : if (integer_zerop (_p1))
11324 : {
11325 0 : {
11326 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
11327 0 : const enum tree_code cmp = EQ_EXPR;
11328 0 : const enum tree_code icmp = LE_EXPR;
11329 0 : {
11330 0 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
11331 0 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
11332 : )
11333 : {
11334 0 : {
11335 0 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
11336 0 : ? optab_vector : optab_default;
11337 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
11338 0 : if (target_supports_op_p (utype, icmp, optab)
11339 0 : || (optimize_vectors_before_lowering_p ()
11340 0 : && (!target_supports_op_p (type, cmp, optab)
11341 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
11342 : )
11343 : {
11344 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
11345 : )
11346 : {
11347 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1586;
11348 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1586;
11349 0 : {
11350 0 : tree res_op0;
11351 0 : res_op0 = captures[1];
11352 0 : tree res_op1;
11353 0 : res_op1 = csts;
11354 0 : tree _r;
11355 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
11356 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11357 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11358 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
11359 : return _r;
11360 : }
11361 28253050 : next_after_fail1586:;
11362 : }
11363 : else
11364 : {
11365 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1587;
11366 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1587;
11367 0 : {
11368 0 : tree res_op0;
11369 0 : {
11370 0 : tree _o1[1], _r1;
11371 0 : _o1[0] = captures[1];
11372 0 : if (TREE_TYPE (_o1[0]) != utype)
11373 : {
11374 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
11375 : }
11376 : else
11377 : _r1 = _o1[0];
11378 0 : res_op0 = _r1;
11379 : }
11380 0 : tree res_op1;
11381 0 : res_op1 = csts;
11382 0 : tree _r;
11383 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
11384 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11385 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11386 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
11387 : return _r;
11388 : }
11389 28253050 : next_after_fail1587:;
11390 : }
11391 : }
11392 : }
11393 : }
11394 : }
11395 : }
11396 : }
11397 : break;
11398 : }
11399 0 : case INTEGER_CST:
11400 0 : {
11401 0 : if (integer_zerop (_p1))
11402 : {
11403 0 : {
11404 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
11405 0 : const enum tree_code cmp = EQ_EXPR;
11406 0 : const enum tree_code icmp = LE_EXPR;
11407 0 : {
11408 0 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
11409 0 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
11410 : )
11411 : {
11412 0 : {
11413 0 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
11414 0 : ? optab_vector : optab_default;
11415 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
11416 0 : if (target_supports_op_p (utype, icmp, optab)
11417 0 : || (optimize_vectors_before_lowering_p ()
11418 0 : && (!target_supports_op_p (type, cmp, optab)
11419 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
11420 : )
11421 : {
11422 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
11423 : )
11424 : {
11425 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1588;
11426 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1588;
11427 0 : {
11428 0 : tree res_op0;
11429 0 : res_op0 = captures[1];
11430 0 : tree res_op1;
11431 0 : res_op1 = csts;
11432 0 : tree _r;
11433 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
11434 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11435 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11436 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
11437 : return _r;
11438 : }
11439 28253050 : next_after_fail1588:;
11440 : }
11441 : else
11442 : {
11443 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1589;
11444 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1589;
11445 0 : {
11446 0 : tree res_op0;
11447 0 : {
11448 0 : tree _o1[1], _r1;
11449 0 : _o1[0] = captures[1];
11450 0 : if (TREE_TYPE (_o1[0]) != utype)
11451 : {
11452 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
11453 : }
11454 : else
11455 : _r1 = _o1[0];
11456 0 : res_op0 = _r1;
11457 : }
11458 0 : tree res_op1;
11459 0 : res_op1 = csts;
11460 0 : tree _r;
11461 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
11462 0 : if (TREE_SIDE_EFFECTS (captures[2]))
11463 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
11464 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
11465 : return _r;
11466 : }
11467 28253050 : next_after_fail1589:;
11468 : }
11469 : }
11470 : }
11471 : }
11472 : }
11473 : }
11474 : }
11475 : break;
11476 : }
11477 : default:;
11478 : }
11479 : break;
11480 : }
11481 17898 : case RSHIFT_EXPR:
11482 17898 : {
11483 17898 : tree _q20 = TREE_OPERAND (_p0, 0);
11484 17898 : tree _q21 = TREE_OPERAND (_p0, 1);
11485 17898 : switch (TREE_CODE (_q20))
11486 : {
11487 1 : case MULT_EXPR:
11488 1 : {
11489 1 : tree _q30 = TREE_OPERAND (_q20, 0);
11490 1 : tree _q31 = TREE_OPERAND (_q20, 1);
11491 1 : switch (TREE_CODE (_q30))
11492 : {
11493 1 : CASE_CONVERT:
11494 1 : {
11495 1 : tree _q40 = TREE_OPERAND (_q30, 0);
11496 1 : switch (TREE_CODE (_q31))
11497 : {
11498 1 : CASE_CONVERT:
11499 1 : {
11500 1 : tree _q60 = TREE_OPERAND (_q31, 0);
11501 1 : switch (TREE_CODE (_q21))
11502 : {
11503 1 : case INTEGER_CST:
11504 1 : {
11505 1 : if (integer_zerop (_p1))
11506 : {
11507 1 : {
11508 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q60, _q21 };
11509 1 : tree res = generic_simplify_310 (loc, type, _p0, _p1, captures, EQ_EXPR, LE_EXPR);
11510 1 : if (res) return res;
11511 : }
11512 : }
11513 : break;
11514 : }
11515 : default:;
11516 : }
11517 : break;
11518 : }
11519 : default:;
11520 : }
11521 : break;
11522 : }
11523 : default:;
11524 : }
11525 : break;
11526 : }
11527 : default:;
11528 : }
11529 : break;
11530 : }
11531 678747 : case PLUS_EXPR:
11532 678747 : {
11533 678747 : tree _q20 = TREE_OPERAND (_p0, 0);
11534 678747 : tree _q21 = TREE_OPERAND (_p0, 1);
11535 678747 : switch (TREE_CODE (_q21))
11536 : {
11537 631518 : case INTEGER_CST:
11538 631518 : {
11539 631518 : switch (TREE_CODE (_p1))
11540 : {
11541 361284 : case INTEGER_CST:
11542 361284 : {
11543 361284 : {
11544 361284 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
11545 361284 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, EQ_EXPR);
11546 361284 : if (res) return res;
11547 : }
11548 22 : break;
11549 : }
11550 : default:;
11551 : }
11552 : break;
11553 : }
11554 : default:;
11555 : }
11556 : break;
11557 : }
11558 99975 : case MINUS_EXPR:
11559 99975 : {
11560 99975 : tree _q20 = TREE_OPERAND (_p0, 0);
11561 99975 : tree _q21 = TREE_OPERAND (_p0, 1);
11562 99975 : switch (TREE_CODE (_q21))
11563 : {
11564 19 : case INTEGER_CST:
11565 19 : {
11566 19 : switch (TREE_CODE (_p1))
11567 : {
11568 16 : case INTEGER_CST:
11569 16 : {
11570 16 : {
11571 16 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
11572 16 : tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, EQ_EXPR);
11573 16 : if (res) return res;
11574 : }
11575 16 : break;
11576 : }
11577 : default:;
11578 : }
11579 : break;
11580 : }
11581 99975 : default:;
11582 : }
11583 99975 : switch (TREE_CODE (_q20))
11584 : {
11585 39785 : case INTEGER_CST:
11586 39785 : {
11587 39785 : switch (TREE_CODE (_p1))
11588 : {
11589 38456 : case INTEGER_CST:
11590 38456 : {
11591 38456 : {
11592 38456 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
11593 38456 : tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
11594 38456 : if (res) return res;
11595 : }
11596 0 : break;
11597 : }
11598 : default:;
11599 : }
11600 : break;
11601 : }
11602 : default:;
11603 : }
11604 : break;
11605 : }
11606 2023731 : case CALL_EXPR:
11607 2023731 : switch (get_call_combined_fn (_p0))
11608 : {
11609 19 : case CFN_BUILT_IN_CLZ:
11610 19 : if (call_expr_nargs (_p0) == 1)
11611 : {
11612 19 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11613 19 : switch (TREE_CODE (_p1))
11614 : {
11615 19 : case INTEGER_CST:
11616 19 : {
11617 19 : {
11618 19 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11619 19 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZ);
11620 19 : if (res) return res;
11621 : }
11622 16 : break;
11623 : }
11624 : default:;
11625 : }
11626 : }
11627 : break;
11628 17 : case CFN_BUILT_IN_CTZ:
11629 17 : if (call_expr_nargs (_p0) == 1)
11630 : {
11631 17 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11632 17 : switch (TREE_CODE (_p1))
11633 : {
11634 17 : case INTEGER_CST:
11635 17 : {
11636 17 : {
11637 17 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11638 17 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZ);
11639 17 : if (res) return res;
11640 : }
11641 16 : break;
11642 : }
11643 : default:;
11644 : }
11645 : }
11646 : break;
11647 4 : case CFN_BUILT_IN_FFS:
11648 4 : if (call_expr_nargs (_p0) == 1)
11649 : {
11650 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11651 4 : switch (TREE_CODE (_p1))
11652 : {
11653 4 : case INTEGER_CST:
11654 4 : {
11655 4 : {
11656 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11657 4 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFS);
11658 4 : if (res) return res;
11659 : }
11660 0 : break;
11661 : }
11662 : default:;
11663 : }
11664 : }
11665 : break;
11666 0 : case CFN_REDUC_IOR:
11667 0 : if (call_expr_nargs (_p0) == 1)
11668 : {
11669 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11670 0 : if (integer_zerop (_p1))
11671 : {
11672 0 : {
11673 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
11674 0 : tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, EQ_EXPR);
11675 0 : if (res) return res;
11676 : }
11677 : }
11678 : }
11679 : break;
11680 0 : case CFN_BUILT_IN_FFSIMAX:
11681 0 : if (call_expr_nargs (_p0) == 1)
11682 : {
11683 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11684 0 : switch (TREE_CODE (_p1))
11685 : {
11686 0 : case INTEGER_CST:
11687 0 : {
11688 0 : {
11689 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11690 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSIMAX);
11691 0 : if (res) return res;
11692 : }
11693 0 : break;
11694 : }
11695 : default:;
11696 : }
11697 : }
11698 : break;
11699 15 : case CFN_BUILT_IN_POPCOUNT:
11700 15 : if (call_expr_nargs (_p0) == 1)
11701 : {
11702 15 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11703 15 : if (integer_zerop (_p1))
11704 : {
11705 1 : {
11706 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
11707 1 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT);
11708 1 : if (res) return res;
11709 : }
11710 : }
11711 : }
11712 : break;
11713 0 : case CFN_BUILT_IN_CLZL:
11714 0 : if (call_expr_nargs (_p0) == 1)
11715 : {
11716 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11717 0 : switch (TREE_CODE (_p1))
11718 : {
11719 0 : case INTEGER_CST:
11720 0 : {
11721 0 : {
11722 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11723 0 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZL);
11724 0 : if (res) return res;
11725 : }
11726 0 : break;
11727 : }
11728 : default:;
11729 : }
11730 : }
11731 : break;
11732 16 : case CFN_BUILT_IN_CTZL:
11733 16 : if (call_expr_nargs (_p0) == 1)
11734 : {
11735 16 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11736 16 : switch (TREE_CODE (_p1))
11737 : {
11738 16 : case INTEGER_CST:
11739 16 : {
11740 16 : {
11741 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11742 16 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZL);
11743 16 : if (res) return res;
11744 : }
11745 16 : break;
11746 : }
11747 : default:;
11748 : }
11749 : }
11750 : break;
11751 1 : case CFN_BUILT_IN_FFSL:
11752 1 : if (call_expr_nargs (_p0) == 1)
11753 : {
11754 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11755 1 : switch (TREE_CODE (_p1))
11756 : {
11757 1 : case INTEGER_CST:
11758 1 : {
11759 1 : {
11760 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11761 1 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSL);
11762 1 : if (res) return res;
11763 : }
11764 0 : break;
11765 : }
11766 : default:;
11767 : }
11768 : }
11769 : break;
11770 7 : case CFN_BUILT_IN_POPCOUNTLL:
11771 7 : if (call_expr_nargs (_p0) == 1)
11772 : {
11773 7 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11774 7 : if (integer_zerop (_p1))
11775 : {
11776 1 : {
11777 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
11778 1 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL);
11779 1 : if (res) return res;
11780 : }
11781 : }
11782 : }
11783 : break;
11784 0 : case CFN_BUILT_IN_CTZIMAX:
11785 0 : if (call_expr_nargs (_p0) == 1)
11786 : {
11787 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11788 0 : switch (TREE_CODE (_p1))
11789 : {
11790 0 : case INTEGER_CST:
11791 0 : {
11792 0 : {
11793 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11794 0 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
11795 0 : if (res) return res;
11796 : }
11797 0 : break;
11798 : }
11799 : default:;
11800 : }
11801 : }
11802 : break;
11803 0 : case CFN_POPCOUNT:
11804 0 : if (call_expr_nargs (_p0) == 1)
11805 : {
11806 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11807 0 : if (integer_zerop (_p1))
11808 : {
11809 0 : {
11810 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
11811 0 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_POPCOUNT);
11812 0 : if (res) return res;
11813 : }
11814 : }
11815 : }
11816 : break;
11817 0 : case CFN_CLZ:
11818 0 : if (call_expr_nargs (_p0) == 1)
11819 : {
11820 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11821 0 : switch (TREE_CODE (_p1))
11822 : {
11823 0 : case INTEGER_CST:
11824 0 : {
11825 0 : {
11826 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11827 0 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_CLZ);
11828 0 : if (res) return res;
11829 : }
11830 0 : break;
11831 : }
11832 : default:;
11833 : }
11834 : }
11835 0 : if (call_expr_nargs (_p0) == 2)
11836 : {
11837 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11838 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
11839 0 : switch (TREE_CODE (_p1))
11840 : {
11841 0 : case INTEGER_CST:
11842 0 : {
11843 0 : {
11844 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
11845 0 : tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
11846 0 : if (res) return res;
11847 : }
11848 0 : break;
11849 : }
11850 : default:;
11851 : }
11852 : }
11853 : break;
11854 0 : case CFN_CTZ:
11855 0 : if (call_expr_nargs (_p0) == 1)
11856 : {
11857 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11858 0 : switch (TREE_CODE (_p1))
11859 : {
11860 0 : case INTEGER_CST:
11861 0 : {
11862 0 : {
11863 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11864 0 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_CTZ);
11865 0 : if (res) return res;
11866 : }
11867 0 : break;
11868 : }
11869 : default:;
11870 : }
11871 : }
11872 0 : if (call_expr_nargs (_p0) == 2)
11873 : {
11874 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11875 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
11876 0 : switch (TREE_CODE (_p1))
11877 : {
11878 0 : case INTEGER_CST:
11879 0 : {
11880 0 : {
11881 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
11882 0 : tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, EQ_EXPR);
11883 0 : if (res) return res;
11884 : }
11885 0 : break;
11886 : }
11887 : default:;
11888 : }
11889 : }
11890 : break;
11891 0 : case CFN_FFS:
11892 0 : if (call_expr_nargs (_p0) == 1)
11893 : {
11894 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11895 0 : switch (TREE_CODE (_p1))
11896 : {
11897 0 : case INTEGER_CST:
11898 0 : {
11899 0 : {
11900 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11901 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_FFS);
11902 0 : if (res) return res;
11903 : }
11904 0 : break;
11905 : }
11906 : default:;
11907 : }
11908 : }
11909 : break;
11910 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
11911 0 : if (call_expr_nargs (_p0) == 1)
11912 : {
11913 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11914 0 : if (integer_zerop (_p1))
11915 : {
11916 0 : {
11917 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
11918 0 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
11919 0 : if (res) return res;
11920 : }
11921 : }
11922 : }
11923 : break;
11924 0 : case CFN_BUILT_IN_CLZIMAX:
11925 0 : if (call_expr_nargs (_p0) == 1)
11926 : {
11927 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11928 0 : switch (TREE_CODE (_p1))
11929 : {
11930 0 : case INTEGER_CST:
11931 0 : {
11932 0 : {
11933 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11934 0 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZIMAX);
11935 0 : if (res) return res;
11936 : }
11937 0 : break;
11938 : }
11939 : default:;
11940 : }
11941 : }
11942 : break;
11943 7 : case CFN_BUILT_IN_POPCOUNTL:
11944 7 : if (call_expr_nargs (_p0) == 1)
11945 : {
11946 7 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11947 7 : if (integer_zerop (_p1))
11948 : {
11949 1 : {
11950 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
11951 1 : tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL);
11952 1 : if (res) return res;
11953 : }
11954 : }
11955 : }
11956 : break;
11957 16 : case CFN_BUILT_IN_CLZLL:
11958 16 : if (call_expr_nargs (_p0) == 1)
11959 : {
11960 16 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11961 16 : switch (TREE_CODE (_p1))
11962 : {
11963 16 : case INTEGER_CST:
11964 16 : {
11965 16 : {
11966 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11967 16 : tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZLL);
11968 16 : if (res) return res;
11969 : }
11970 16 : break;
11971 : }
11972 : default:;
11973 : }
11974 : }
11975 : break;
11976 0 : case CFN_BUILT_IN_CTZLL:
11977 0 : if (call_expr_nargs (_p0) == 1)
11978 : {
11979 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11980 0 : switch (TREE_CODE (_p1))
11981 : {
11982 0 : case INTEGER_CST:
11983 0 : {
11984 0 : {
11985 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
11986 0 : tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZLL);
11987 0 : if (res) return res;
11988 : }
11989 0 : break;
11990 : }
11991 : default:;
11992 : }
11993 : }
11994 : break;
11995 0 : case CFN_BUILT_IN_FFSLL:
11996 0 : if (call_expr_nargs (_p0) == 1)
11997 : {
11998 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
11999 0 : switch (TREE_CODE (_p1))
12000 : {
12001 0 : case INTEGER_CST:
12002 0 : {
12003 0 : {
12004 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
12005 0 : tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSLL);
12006 0 : if (res) return res;
12007 : }
12008 0 : break;
12009 : }
12010 : default:;
12011 : }
12012 : }
12013 : break;
12014 : default:;
12015 : }
12016 : break;
12017 : default:;
12018 : }
12019 : return NULL_TREE;
12020 : }
12021 :
12022 : tree
12023 758052 : generic_simplify_UNLT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
12024 : {
12025 758052 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
12026 758052 : switch (TREE_CODE (_p0))
12027 : {
12028 0 : case VEC_COND_EXPR:
12029 0 : {
12030 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12031 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12032 0 : tree _q22 = TREE_OPERAND (_p0, 2);
12033 0 : switch (TREE_CODE (_p1))
12034 : {
12035 0 : case VEC_COND_EXPR:
12036 0 : {
12037 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12038 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12039 0 : tree _q62 = TREE_OPERAND (_p1, 2);
12040 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
12041 : {
12042 0 : {
12043 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
12044 0 : if (VECTOR_TYPE_P (type)
12045 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
12046 0 : || types_match (type, TREE_TYPE (captures[2]))
12047 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
12048 : || (optimize_vectors_before_lowering_p ()
12049 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
12050 : )
12051 : {
12052 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1876;
12053 0 : {
12054 0 : tree res_op0;
12055 0 : res_op0 = captures[1];
12056 0 : tree res_op1;
12057 0 : {
12058 0 : tree _o1[2], _r1;
12059 0 : _o1[0] = captures[2];
12060 0 : _o1[1] = captures[5];
12061 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
12062 0 : if (EXPR_P (_r1))
12063 0 : goto next_after_fail1876;
12064 0 : res_op1 = _r1;
12065 : }
12066 0 : tree res_op2;
12067 0 : {
12068 0 : tree _o1[2], _r1;
12069 0 : _o1[0] = captures[3];
12070 0 : _o1[1] = captures[6];
12071 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
12072 0 : if (EXPR_P (_r1))
12073 0 : goto next_after_fail1876;
12074 0 : res_op2 = _r1;
12075 : }
12076 0 : tree _r;
12077 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12078 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 938, __FILE__, __LINE__, true);
12079 : return _r;
12080 : }
12081 0 : next_after_fail1876:;
12082 : }
12083 : }
12084 : }
12085 : break;
12086 : }
12087 0 : default:;
12088 : }
12089 0 : {
12090 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
12091 0 : if (VECTOR_TYPE_P (type)
12092 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
12093 0 : || types_match (type, TREE_TYPE (captures[2]))
12094 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
12095 : || (optimize_vectors_before_lowering_p ()
12096 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
12097 : )
12098 : {
12099 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1877;
12100 0 : {
12101 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1877;
12102 0 : tree res_op0;
12103 0 : res_op0 = captures[1];
12104 0 : tree res_op1;
12105 0 : {
12106 0 : tree _o1[2], _r1;
12107 0 : _o1[0] = captures[2];
12108 0 : _o1[1] = unshare_expr (captures[4]);
12109 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
12110 0 : if (EXPR_P (_r1))
12111 0 : goto next_after_fail1877;
12112 0 : res_op1 = _r1;
12113 : }
12114 0 : tree res_op2;
12115 0 : {
12116 0 : tree _o1[2], _r1;
12117 0 : _o1[0] = captures[3];
12118 0 : _o1[1] = captures[4];
12119 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
12120 0 : if (EXPR_P (_r1))
12121 0 : goto next_after_fail1877;
12122 0 : res_op2 = _r1;
12123 : }
12124 0 : tree _r;
12125 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12126 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 940, __FILE__, __LINE__, true);
12127 : return _r;
12128 : }
12129 758052 : next_after_fail1877:;
12130 : }
12131 : }
12132 : break;
12133 : }
12134 758052 : default:;
12135 : }
12136 758052 : switch (TREE_CODE (_p1))
12137 : {
12138 0 : case VEC_COND_EXPR:
12139 0 : {
12140 0 : tree _q30 = TREE_OPERAND (_p1, 0);
12141 0 : tree _q31 = TREE_OPERAND (_p1, 1);
12142 0 : tree _q32 = TREE_OPERAND (_p1, 2);
12143 0 : {
12144 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
12145 0 : if (VECTOR_TYPE_P (type)
12146 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
12147 0 : || types_match (type, TREE_TYPE (captures[3]))
12148 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
12149 : || (optimize_vectors_before_lowering_p ()
12150 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
12151 : )
12152 : {
12153 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1878;
12154 0 : {
12155 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1878;
12156 0 : tree res_op0;
12157 0 : res_op0 = captures[2];
12158 0 : tree res_op1;
12159 0 : {
12160 0 : tree _o1[2], _r1;
12161 0 : _o1[0] = unshare_expr (captures[0]);
12162 0 : _o1[1] = captures[3];
12163 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
12164 0 : if (EXPR_P (_r1))
12165 0 : goto next_after_fail1878;
12166 0 : res_op1 = _r1;
12167 : }
12168 0 : tree res_op2;
12169 0 : {
12170 0 : tree _o1[2], _r1;
12171 0 : _o1[0] = captures[0];
12172 0 : _o1[1] = captures[4];
12173 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
12174 0 : if (EXPR_P (_r1))
12175 0 : goto next_after_fail1878;
12176 0 : res_op2 = _r1;
12177 : }
12178 0 : tree _r;
12179 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12180 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 941, __FILE__, __LINE__, true);
12181 : return _r;
12182 : }
12183 758052 : next_after_fail1878:;
12184 : }
12185 : }
12186 : break;
12187 : }
12188 758052 : default:;
12189 : }
12190 758052 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
12191 : {
12192 0 : {
12193 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
12194 0 : tree res = generic_simplify_592 (loc, type, _p0, _p1, captures, UNLT_EXPR);
12195 0 : if (res) return res;
12196 : }
12197 : }
12198 758052 : switch (TREE_CODE (_p0))
12199 : {
12200 283 : case FLOAT_EXPR:
12201 283 : {
12202 283 : tree _q20 = TREE_OPERAND (_p0, 0);
12203 283 : switch (TREE_CODE (_p1))
12204 : {
12205 0 : case FLOAT_EXPR:
12206 0 : {
12207 0 : tree _q40 = TREE_OPERAND (_p1, 0);
12208 0 : {
12209 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
12210 0 : tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, UNLT_EXPR, LT_EXPR);
12211 0 : if (res) return res;
12212 : }
12213 0 : break;
12214 : }
12215 : default:;
12216 : }
12217 : break;
12218 : }
12219 0 : case NEGATE_EXPR:
12220 0 : {
12221 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12222 0 : switch (TREE_CODE (_p1))
12223 : {
12224 0 : case NEGATE_EXPR:
12225 0 : {
12226 0 : tree _q40 = TREE_OPERAND (_p1, 0);
12227 0 : {
12228 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
12229 0 : tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
12230 0 : if (res) return res;
12231 : }
12232 0 : break;
12233 : }
12234 0 : default:;
12235 : }
12236 0 : if (CONSTANT_CLASS_P (_p1))
12237 : {
12238 0 : {
12239 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12240 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
12241 0 : if (res) return res;
12242 : }
12243 : }
12244 : break;
12245 : }
12246 758052 : default:;
12247 : }
12248 758052 : switch (TREE_CODE (_p1))
12249 : {
12250 380293 : case REAL_CST:
12251 380293 : {
12252 380293 : {
12253 380293 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
12254 380293 : tree res = generic_simplify_591 (loc, type, _p0, _p1, captures, UNLT_EXPR);
12255 380293 : if (res) return res;
12256 : }
12257 380291 : break;
12258 : }
12259 : default:;
12260 : }
12261 : return NULL_TREE;
12262 : }
12263 :
12264 : tree
12265 79 : generic_simplify_LTGT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
12266 : {
12267 79 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
12268 79 : switch (TREE_CODE (_p0))
12269 : {
12270 0 : case VEC_COND_EXPR:
12271 0 : {
12272 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12273 0 : tree _q21 = TREE_OPERAND (_p0, 1);
12274 0 : tree _q22 = TREE_OPERAND (_p0, 2);
12275 0 : switch (TREE_CODE (_p1))
12276 : {
12277 0 : case VEC_COND_EXPR:
12278 0 : {
12279 0 : tree _q60 = TREE_OPERAND (_p1, 0);
12280 0 : tree _q61 = TREE_OPERAND (_p1, 1);
12281 0 : tree _q62 = TREE_OPERAND (_p1, 2);
12282 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
12283 : {
12284 0 : {
12285 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
12286 0 : if (VECTOR_TYPE_P (type)
12287 0 : && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
12288 0 : || types_match (type, TREE_TYPE (captures[2]))
12289 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
12290 : || (optimize_vectors_before_lowering_p ()
12291 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
12292 : )
12293 : {
12294 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1891;
12295 0 : {
12296 0 : tree res_op0;
12297 0 : res_op0 = captures[1];
12298 0 : tree res_op1;
12299 0 : {
12300 0 : tree _o1[2], _r1;
12301 0 : _o1[0] = captures[2];
12302 0 : _o1[1] = captures[5];
12303 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
12304 0 : if (EXPR_P (_r1))
12305 0 : goto next_after_fail1891;
12306 0 : res_op1 = _r1;
12307 : }
12308 0 : tree res_op2;
12309 0 : {
12310 0 : tree _o1[2], _r1;
12311 0 : _o1[0] = captures[3];
12312 0 : _o1[1] = captures[6];
12313 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
12314 0 : if (EXPR_P (_r1))
12315 0 : goto next_after_fail1891;
12316 0 : res_op2 = _r1;
12317 : }
12318 0 : tree _r;
12319 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12320 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 938, __FILE__, __LINE__, true);
12321 : return _r;
12322 : }
12323 0 : next_after_fail1891:;
12324 : }
12325 : }
12326 : }
12327 : break;
12328 : }
12329 0 : default:;
12330 : }
12331 0 : {
12332 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
12333 0 : if (VECTOR_TYPE_P (type)
12334 0 : && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
12335 0 : || types_match (type, TREE_TYPE (captures[2]))
12336 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
12337 : || (optimize_vectors_before_lowering_p ()
12338 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
12339 : )
12340 : {
12341 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1892;
12342 0 : {
12343 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1892;
12344 0 : tree res_op0;
12345 0 : res_op0 = captures[1];
12346 0 : tree res_op1;
12347 0 : {
12348 0 : tree _o1[2], _r1;
12349 0 : _o1[0] = captures[2];
12350 0 : _o1[1] = unshare_expr (captures[4]);
12351 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
12352 0 : if (EXPR_P (_r1))
12353 0 : goto next_after_fail1892;
12354 0 : res_op1 = _r1;
12355 : }
12356 0 : tree res_op2;
12357 0 : {
12358 0 : tree _o1[2], _r1;
12359 0 : _o1[0] = captures[3];
12360 0 : _o1[1] = captures[4];
12361 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
12362 0 : if (EXPR_P (_r1))
12363 0 : goto next_after_fail1892;
12364 0 : res_op2 = _r1;
12365 : }
12366 0 : tree _r;
12367 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12368 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 940, __FILE__, __LINE__, true);
12369 : return _r;
12370 : }
12371 79 : next_after_fail1892:;
12372 : }
12373 : }
12374 : break;
12375 : }
12376 79 : default:;
12377 : }
12378 79 : switch (TREE_CODE (_p1))
12379 : {
12380 0 : case VEC_COND_EXPR:
12381 0 : {
12382 0 : tree _q30 = TREE_OPERAND (_p1, 0);
12383 0 : tree _q31 = TREE_OPERAND (_p1, 1);
12384 0 : tree _q32 = TREE_OPERAND (_p1, 2);
12385 0 : {
12386 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
12387 0 : if (VECTOR_TYPE_P (type)
12388 0 : && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
12389 0 : || types_match (type, TREE_TYPE (captures[3]))
12390 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
12391 : || (optimize_vectors_before_lowering_p ()
12392 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
12393 : )
12394 : {
12395 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1893;
12396 0 : {
12397 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1893;
12398 0 : tree res_op0;
12399 0 : res_op0 = captures[2];
12400 0 : tree res_op1;
12401 0 : {
12402 0 : tree _o1[2], _r1;
12403 0 : _o1[0] = unshare_expr (captures[0]);
12404 0 : _o1[1] = captures[3];
12405 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
12406 0 : if (EXPR_P (_r1))
12407 0 : goto next_after_fail1893;
12408 0 : res_op1 = _r1;
12409 : }
12410 0 : tree res_op2;
12411 0 : {
12412 0 : tree _o1[2], _r1;
12413 0 : _o1[0] = captures[0];
12414 0 : _o1[1] = captures[4];
12415 0 : _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
12416 0 : if (EXPR_P (_r1))
12417 0 : goto next_after_fail1893;
12418 0 : res_op2 = _r1;
12419 : }
12420 0 : tree _r;
12421 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
12422 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 941, __FILE__, __LINE__, true);
12423 : return _r;
12424 : }
12425 79 : next_after_fail1893:;
12426 : }
12427 : }
12428 : break;
12429 : }
12430 79 : default:;
12431 : }
12432 79 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
12433 : {
12434 2 : {
12435 2 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
12436 2 : if (!flag_trapping_math || !tree_expr_maybe_nan_p (captures[0])
12437 : )
12438 : {
12439 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1894;
12440 0 : {
12441 0 : tree _r;
12442 0 : _r = constant_boolean_node (false, type);
12443 0 : if (TREE_SIDE_EFFECTS (captures[0]))
12444 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
12445 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1081, __FILE__, __LINE__, true);
12446 79 : return _r;
12447 : }
12448 0 : next_after_fail1894:;
12449 : }
12450 : }
12451 : }
12452 79 : switch (TREE_CODE (_p0))
12453 : {
12454 0 : case FLOAT_EXPR:
12455 0 : {
12456 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12457 0 : switch (TREE_CODE (_p1))
12458 : {
12459 0 : case FLOAT_EXPR:
12460 0 : {
12461 0 : tree _q40 = TREE_OPERAND (_p1, 0);
12462 0 : {
12463 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
12464 0 : tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, LTGT_EXPR, NE_EXPR);
12465 0 : if (res) return res;
12466 : }
12467 0 : break;
12468 : }
12469 : default:;
12470 : }
12471 : break;
12472 : }
12473 0 : case NEGATE_EXPR:
12474 0 : {
12475 0 : tree _q20 = TREE_OPERAND (_p0, 0);
12476 0 : switch (TREE_CODE (_p1))
12477 : {
12478 0 : case NEGATE_EXPR:
12479 0 : {
12480 0 : tree _q40 = TREE_OPERAND (_p1, 0);
12481 0 : {
12482 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
12483 0 : tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
12484 0 : if (res) return res;
12485 : }
12486 0 : break;
12487 : }
12488 0 : default:;
12489 : }
12490 0 : if (CONSTANT_CLASS_P (_p1))
12491 : {
12492 0 : {
12493 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
12494 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
12495 0 : if (res) return res;
12496 : }
12497 : }
12498 : break;
12499 : }
12500 79 : default:;
12501 : }
12502 79 : switch (TREE_CODE (_p1))
12503 : {
12504 2 : case REAL_CST:
12505 2 : {
12506 2 : {
12507 2 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
12508 2 : tree res = generic_simplify_591 (loc, type, _p0, _p1, captures, LTGT_EXPR);
12509 2 : if (res) return res;
12510 : }
12511 2 : break;
12512 : }
12513 : default:;
12514 : }
12515 : return NULL_TREE;
12516 : }
12517 :
12518 : tree
12519 47465723 : generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree _p0, tree _p1, tree _p2)
12520 : {
12521 47465723 : switch (code)
12522 : {
12523 13157089 : case COND_EXPR:
12524 13157089 : return generic_simplify_COND_EXPR (loc, code, type, _p0, _p1, _p2);
12525 465359 : case VEC_COND_EXPR:
12526 465359 : return generic_simplify_VEC_COND_EXPR (loc, code, type, _p0, _p1, _p2);
12527 945539 : case BIT_FIELD_REF:
12528 945539 : return generic_simplify_BIT_FIELD_REF (loc, code, type, _p0, _p1, _p2);
12529 16253 : case BIT_INSERT_EXPR:
12530 16253 : return generic_simplify_BIT_INSERT_EXPR (loc, code, type, _p0, _p1, _p2);
12531 836984 : case VEC_PERM_EXPR:
12532 836984 : return generic_simplify_VEC_PERM_EXPR (loc, code, type, _p0, _p1, _p2);
12533 : default:;
12534 : }
12535 : return NULL_TREE;
12536 : }
12537 :
12538 : tree
12539 0 : generic_simplify (location_t, enum tree_code,
12540 : const tree, tree, tree, tree, tree)
12541 : {
12542 0 : return NULL_TREE;
12543 : }
12544 :
12545 : tree
12546 0 : generic_simplify (location_t, enum tree_code,
12547 : const tree, tree, tree, tree, tree, tree)
12548 : {
12549 0 : return NULL_TREE;
12550 : }
12551 :
12552 : tree
12553 0 : generic_simplify (location_t, enum tree_code,
12554 : const tree, tree, tree, tree, tree, tree, tree)
12555 : {
12556 0 : return NULL_TREE;
12557 : }
12558 :
12559 : tree
12560 0 : generic_simplify (location_t, enum tree_code,
12561 : const tree, tree, tree, tree, tree, tree, tree, tree)
12562 : {
12563 0 : return NULL_TREE;
12564 : }
12565 : void
12566 18366 : generic_dump_logs (const char *file1, int line1_id, const char *file2, int line2, bool simplify)
12567 : {
12568 18366 : static int dbg_line_numbers[1159] = {
12569 : /* 0 */ 159, 162, 168, 170, 173, 176, 178, 184, 192, 190,
12570 : /* 10 */ 194, 196, 1038, 1040, 2418, 2424, 2426, 2429, 2434, 2437,
12571 : /* 20 */ 2691, 2695, 2697, 2699, 2701, 2703, 2705, 2707, 2730, 2746,
12572 : /* 30 */ 2754, 2736, 3367, 3369, 3371, 3378, 3375, 3385, 3387, 3394,
12573 : /* 40 */ 3391, 3593, 3603, 6232, 9978, 9999, 12520, 12523, 12528, 2385,
12574 : /* 50 */ 9798, 1446, 1693, 1708, 1713, 1760, 1761, 1765, 1766, 1808,
12575 : /* 60 */ 1831, 1836, 1946, 2079, 2216, 2102, 2280, 2092, 2274, 2110,
12576 : /* 70 */ 2268, 2326, 2287, 2293, 2963, 2300, 2314, 2360, 2583, 2649,
12577 : /* 80 */ 2672, 2683, 2686, 2825, 2857, 4677, 4690, 4700, 3444, 3446,
12578 : /* 90 */ 5088, 4714, 4726, 7852, 7854, 7934, 7942, 11396, 11402, 12291,
12579 : /* 100 */ 243, 286, 313, 314, 525, 1455, 2062, 2119, 2124, 2142,
12580 : /* 110 */ 2155, 2227, 4172, 4110, 4215, 4216, 4220, 4221, 4231, 4235,
12581 : /* 120 */ 4239, 4254, 4257, 4261, 4187, 4190, 4195, 4341, 4347, 4353,
12582 : /* 130 */ 4533, 4534, 4563, 4584, 4603, 5076, 5099, 6121, 7783, 7868,
12583 : /* 140 */ 7870, 9426, 9501, 11227, 11274, 11288, 12278, 12547, 13138, 1022,
12584 : /* 150 */ 1028, 1673, 1682, 2245, 2097, 2193, 2134, 2188, 2236, 2989,
12585 : /* 160 */ 4123, 4163, 4168, 4169, 4177, 4178, 4181, 4198, 4273, 4276,
12586 : /* 170 */ 4280, 4361, 4383, 4421, 4432, 4471, 4486, 5082, 7793, 9506,
12587 : /* 180 */ 11284, 12551, 1577, 1578, 1617, 1622, 1633, 1638, 1667, 1659,
12588 : /* 190 */ 1737, 1698, 1703, 1730, 1799, 1745, 1787, 1826, 2322, 1792,
12589 : /* 200 */ 1970, 2069, 2074, 2087, 2255, 2342, 2352, 2354, 2619, 2624,
12590 : /* 210 */ 2629, 2635, 2636, 2658, 2808, 2837, 2839, 2844, 2846, 2982,
12591 : /* 220 */ 3649, 3664, 3682, 3884, 3885, 3886, 3894, 3902, 3911, 3920,
12592 : /* 230 */ 4020, 4022, 3952, 3953, 3958, 3959, 3964, 3969, 3973, 4075,
12593 : /* 240 */ 4088, 3654, 3673, 3675, 3659, 8505, 8508, 10399, 13299, 13314,
12594 : /* 250 */ 493, 499, 531, 1392, 1412, 1417, 2410, 2411, 2448, 2998,
12595 : /* 260 */ 2783, 5796, 6107, 6114, 6165, 6168, 6227, 9419, 9833, 9663,
12596 : /* 270 */ 9670, 9827, 9872, 9877, 361, 968, 1463, 3275, 3071, 3077,
12597 : /* 280 */ 3080, 3085, 2892, 2893, 2977, 2772, 2912, 3159, 3022, 3032,
12598 : /* 290 */ 3101, 3103, 3104, 3107, 3109, 3110, 3112, 3114, 3116, 3118,
12599 : /* 300 */ 3120, 3122, 3136, 3137, 3193, 3281, 3222, 3249, 3289, 3294,
12600 : /* 310 */ 3306, 3322, 3330, 3337, 3403, 4002, 4060, 5009, 5017, 5020,
12601 : /* 320 */ 5026, 5029, 5055, 5555, 5556, 5622, 5626, 5757, 5565, 5566,
12602 : /* 330 */ 5640, 5643, 5644, 5649, 5652, 5655, 5656, 5598, 5600, 5580,
12603 : /* 340 */ 5583, 5829, 5833, 5838, 6133, 6294, 6298, 7879, 7895, 7897,
12604 : /* 350 */ 7909, 7954, 7960, 7961, 7976, 7977, 7981, 7999, 8004, 8036,
12605 : /* 360 */ 8044, 8054, 8063, 8067, 8073, 8080, 8096, 8100, 8104, 8111,
12606 : /* 370 */ 8112, 8117, 8118, 8125, 8126, 8128, 8129, 8145, 8156, 8168,
12607 : /* 380 */ 8172, 8174, 8179, 8182, 8185, 8193, 8255, 8256, 8260, 8261,
12608 : /* 390 */ 8268, 8272, 8276, 8279, 8285, 8286, 8290, 8293, 8300, 8330,
12609 : /* 400 */ 8333, 8336, 8339, 8413, 8416, 8423, 8430, 8437, 8445, 8454,
12610 : /* 410 */ 8455, 8548, 8558, 8597, 8603, 8619, 8632, 8634, 8636, 8647,
12611 : /* 420 */ 8675, 8717, 8696, 8697, 8704, 8706, 8722, 8728, 8733, 8742,
12612 : /* 430 */ 8748, 8754, 8759, 8764, 8805, 8772, 8813, 8787, 8797, 8876,
12613 : /* 440 */ 8905, 8924, 8926, 8928, 8930, 8932, 8934, 8938, 8940, 8963,
12614 : /* 450 */ 8986, 9097, 9104, 9105, 9113, 9114, 9315, 10463, 10465, 10543,
12615 : /* 460 */ 10545, 10546, 10552, 10568, 10570, 10572, 10590, 10591, 11012, 11015,
12616 : /* 470 */ 11029, 11038, 11102, 11103, 11157, 11159, 11235, 11827, 11829, 11831,
12617 : /* 480 */ 12300, 7875, 7886, 7888, 8011, 505, 1365, 1386, 9783, 9788,
12618 : /* 490 */ 9793, 565, 566, 577, 582, 589, 598, 606, 615, 662,
12619 : /* 500 */ 665, 903, 1073, 1101, 1132, 626, 933, 937, 942, 948,
12620 : /* 510 */ 952, 960, 1065, 1152, 778, 788, 790, 792, 9413, 9838,
12621 : /* 520 */ 9860, 9843, 9848, 9853, 9867, 9901, 9906, 878, 7069, 7071,
12622 : /* 530 */ 7073, 7173, 7176, 7386, 7388, 7402, 7406, 7429, 7435, 7446,
12623 : /* 540 */ 7508, 7523, 5126, 5146, 5153, 5159, 5165, 5171, 6512, 6513,
12624 : /* 550 */ 6526, 6527, 6541, 6542, 6554, 6555, 7514, 5139, 5182, 5195,
12625 : /* 560 */ 6980, 7321, 7329, 7674, 10416, 10417, 7684, 11456, 11464, 13363,
12626 : /* 570 */ 8829, 8830, 8844, 8845, 890, 893, 1921, 3045, 3048, 3167,
12627 : /* 580 */ 3179, 3264, 3208, 3235, 3358, 3361, 4874, 4885, 5039, 5047,
12628 : /* 590 */ 5066, 5381, 7817, 7924, 9241, 8467, 8470, 8496, 8497, 9011,
12629 : /* 600 */ 9013, 9015, 9017, 9021, 9023, 9025, 9027, 9031, 9036, 9043,
12630 : /* 610 */ 9048, 9068, 9070, 9072, 9074, 9254, 9267, 9277, 9285, 9295,
12631 : /* 620 */ 9440, 9442, 10477, 10486, 10526, 11080, 11082, 11083, 11138, 11141,
12632 : /* 630 */ 11143, 3061, 5611, 7807, 8535, 9339, 9514, 9519, 11848, 11850,
12633 : /* 640 */ 11852, 11854, 11858, 1011, 1047, 1437, 5230, 5332, 5335, 5343,
12634 : /* 650 */ 5496, 5498, 5499, 5500, 5768, 6596, 5260, 5262, 5296, 5305,
12635 : /* 660 */ 6349, 6352, 6353, 6361, 2594, 2604, 2611, 4033, 4038, 4946,
12636 : /* 670 */ 10282, 10284, 10315, 10350, 13082, 1329, 9731, 9752, 1338, 9475,
12637 : /* 680 */ 9481, 9778, 10229, 1352, 1356, 9773, 9956, 1563, 1725, 1773,
12638 : /* 690 */ 1718, 1750, 1781, 1821, 1862, 1873, 1884, 1896, 2869, 2198,
12639 : /* 700 */ 2206, 2211, 2334, 2713, 3004, 3589, 3619, 3621, 3631, 3633,
12640 : /* 710 */ 3741, 3742, 3743, 3751, 3759, 3768, 3777, 3812, 3813, 3818,
12641 : /* 720 */ 3819, 3824, 3829, 3833, 3639, 3644, 3689, 5107, 5726, 5744,
12642 : /* 730 */ 5745, 6320, 6326, 6374, 8026, 10385, 10387, 11269, 13334, 1816,
12643 : /* 740 */ 2942, 2001, 2947, 5807, 2919, 2953, 2957, 5821, 4989, 7844,
12644 : /* 750 */ 7846, 2455, 2469, 2924, 4148, 2494, 2517, 2518, 10866, 3012,
12645 : /* 760 */ 4734, 4738, 4744, 4765, 4796, 4805, 4825, 4857, 4898, 4901,
12646 : /* 770 */ 4910, 4911, 4929, 4931, 4933, 4935, 4984, 10407, 10990, 10997,
12647 : /* 780 */ 4758, 4751, 4956, 4965, 4968, 12057, 12063, 12071, 12077, 12086,
12648 : /* 790 */ 12092, 12100, 12106, 12152, 12160, 5217, 5468, 5478, 9368, 9371,
12649 : /* 800 */ 9390, 6270, 6282, 6285, 6289, 9129, 8019, 8015, 9349, 9356,
12650 : /* 810 */ 9491, 9496, 9597, 9694, 9711, 9743, 9763, 9768, 10019, 9996,
12651 : /* 820 */ 9975, 9804, 9808, 10122, 10132, 10139, 10148, 10166, 10173, 10154,
12652 : /* 830 */ 10442, 10448, 10856, 10862, 10859, 10879, 10884, 10890, 10898, 10904,
12653 : /* 840 */ 10912, 10918, 10928, 10934, 10942, 10948, 10956, 10962, 10970, 10976,
12654 : /* 850 */ 11047, 11249, 11264, 11300, 11555, 11558, 11363, 11364, 11377, 11390,
12655 : /* 860 */ 12234, 12249, 12375, 12376, 13191, 216, 2366, 2376, 6406, 2394,
12656 : /* 870 */ 1262, 2880, 3570, 5849, 5851, 5861, 5980, 5993, 6008, 6031,
12657 : /* 880 */ 6043, 6053, 6066, 6092, 6416, 6986, 1998, 2012, 2019, 2050,
12658 : /* 890 */ 2057, 2724, 2970, 2371, 2389, 2398, 2464, 2500, 2506, 4135,
12659 : /* 900 */ 7770, 4143, 10938, 10952, 10894, 10966, 10980, 10908, 10922, 5866,
12660 : /* 910 */ 5876, 5885, 5912, 5922, 5928, 6427, 5937, 5934, 6240, 6248,
12661 : /* 920 */ 6256, 6260, 6243, 6251, 6264, 6276, 234, 269, 1603, 1604,
12662 : /* 930 */ 1954, 1959, 2934, 2935, 2793, 2719, 3989, 4864, 6445, 6454,
12663 : /* 940 */ 6465, 6474, 13097, 760, 2171, 6180, 6186, 6189, 3451, 3455,
12664 : /* 950 */ 274, 3472, 3476, 3507, 3515, 3488, 3502, 292, 329, 1677,
12665 : /* 960 */ 2007, 2475, 3524, 3531, 3539, 2486, 3188, 3216, 3243, 3227,
12666 : /* 970 */ 3254, 4395, 4367, 4442, 4451, 4494, 4505, 5322, 6194, 6213,
12667 : /* 980 */ 13063, 13064, 1913, 1926, 1931, 4995, 12211, 12215, 279, 332,
12668 : /* 990 */ 3197, 3200, 3546, 3553, 3559, 3564, 4404, 4460, 4514, 6197,
12669 : /* 1000 */ 405, 336, 373, 382, 390, 464, 479, 487, 679, 719,
12670 : /* 1010 */ 839, 1082, 1300, 1315, 1305, 1420, 1423, 1555, 2778, 6218,
12671 : /* 1020 */ 9448, 9454, 9645, 9895, 6755, 6765, 8565, 9161, 9221, 9222,
12672 : /* 1030 */ 4047, 9155, 642, 645, 769, 798, 804, 810, 847, 852,
12673 : /* 1040 */ 857, 921, 925, 9460, 9466, 9079, 983, 984, 995, 1510,
12674 : /* 1050 */ 5246, 1499, 1502, 1534, 1545, 5223, 5327, 5529, 1584, 1843,
12675 : /* 1060 */ 1936, 1964, 2663, 5535, 5536, 13070, 4772, 4776, 4842, 4843,
12676 : /* 1070 */ 4977, 4783, 4787, 4833, 4834, 5449, 6237, 9137, 9139, 9146,
12677 : /* 1080 */ 9148, 8023, 7530, 5113, 6485, 5210, 6494, 7336, 7341, 7481,
12678 : /* 1090 */ 7483, 7489, 7498, 7499, 6392, 6394, 7536, 7539, 7548, 7552,
12679 : /* 1100 */ 7557, 7572, 7600, 7605, 7671, 7579, 7613, 7618, 7681, 8859,
12680 : /* 1110 */ 8861, 7637, 7638, 7639, 7694, 7661, 7662, 7663, 7709, 7710,
12681 : /* 1120 */ 8890, 8895, 7565, 6398, 6400, 6776, 6778, 10598, 10604, 10609,
12682 : /* 1130 */ 10618, 10620, 10640, 10685, 10688, 10689, 10721, 10727, 10729, 10730,
12683 : /* 1140 */ 10786, 10787, 10808, 10813, 10818, 10848, 13254, 12400, 12402, 12437,
12684 : /* 1150 */ 12512, 12515, 12596, 12535, 12541, 12662, 12664, 12723, 12725
12685 : };
12686 :
12687 27432 : fprintf (dump_file, "%s %s:%d, %s:%d\n",
12688 : simplify ? "Applying pattern" : "Matching expression", file1, dbg_line_numbers[line1_id], file2, line2);
12689 18366 : }
12690 :
12691 : #pragma GCC diagnostic pop
|