Branch data 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 : 98833711 : tree_bit_xor_cst (tree t, tree *res_ops)
11 : : {
12 : 98833711 : const tree type = TREE_TYPE (t);
13 : 98833711 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
14 : 98833711 : if (TREE_SIDE_EFFECTS (t)) return false;
15 : 98833711 : switch (TREE_CODE (t))
16 : : {
17 : 44027 : case BIT_XOR_EXPR:
18 : 44027 : {
19 : 44027 : tree _p0 = TREE_OPERAND (t, 0);
20 : 44027 : tree _p1 = TREE_OPERAND (t, 1);
21 : 44027 : if (uniform_integer_cst_p (_p1))
22 : : {
23 : 1586 : {
24 : 1586 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
25 : 1586 : {
26 : 1586 : res_ops[0] = captures[0];
27 : 1586 : res_ops[1] = captures[1];
28 : 1586 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 4, __FILE__, __LINE__, false);
29 : 1586 : return true;
30 : : }
31 : : }
32 : : }
33 : : break;
34 : : }
35 : : default:;
36 : : }
37 : : return false;
38 : : }
39 : :
40 : : bool
41 : 75143914 : tree_with_possible_nonzero_bits_1 (tree t)
42 : : {
43 : 75143914 : const tree type = TREE_TYPE (t);
44 : 75143914 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
45 : 75143914 : if (TREE_SIDE_EFFECTS (t)) return false;
46 : 75143914 : switch (TREE_CODE (t))
47 : : {
48 : 17252809 : case INTEGER_CST:
49 : 17252809 : {
50 : 17252809 : {
51 : 17252809 : tree captures[1] ATTRIBUTE_UNUSED = { t };
52 : 17252809 : {
53 : 17252809 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 32, __FILE__, __LINE__, false);
54 : 17252809 : return true;
55 : : }
56 : : }
57 : 0 : break;
58 : : }
59 : 0 : case POLY_INT_CST:
60 : 0 : {
61 : 0 : {
62 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { t };
63 : 0 : {
64 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 33, __FILE__, __LINE__, false);
65 : 0 : return true;
66 : : }
67 : : }
68 : 27114334 : break;
69 : : }
70 : 27114334 : case SSA_NAME:
71 : 27114334 : {
72 : 27114334 : {
73 : 27114334 : tree captures[1] ATTRIBUTE_UNUSED = { t };
74 : 27114334 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0]))
75 : : )
76 : : {
77 : 26602176 : {
78 : 26602176 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 34, __FILE__, __LINE__, false);
79 : 26602176 : return true;
80 : : }
81 : : }
82 : : }
83 : : break;
84 : : }
85 : : default:;
86 : : }
87 : : return false;
88 : : }
89 : :
90 : : bool
91 : 2143 : tree_max_value (tree t)
92 : : {
93 : 2143 : const tree type = TREE_TYPE (t);
94 : 2143 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
95 : 2143 : if (TREE_SIDE_EFFECTS (t)) return false;
96 : 2135 : if (uniform_integer_cst_p (t))
97 : : {
98 : 1887 : {
99 : 1887 : {
100 : 1887 : tree int_cst = uniform_integer_cst_p (t);
101 : 1887 : tree itype = TREE_TYPE (int_cst);
102 : 3774 : if ((INTEGRAL_TYPE_P (itype)
103 : 17 : || POINTER_TYPE_P (itype))
104 : 3791 : && wi::eq_p (wi::to_wide (int_cst), wi::max_value (itype))
105 : : )
106 : : {
107 : 24 : {
108 : 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 42, __FILE__, __LINE__, false);
109 : 24 : return true;
110 : : }
111 : : }
112 : : }
113 : : }
114 : : }
115 : : return false;
116 : : }
117 : :
118 : : tree
119 : 66 : generic_simplify_5 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
120 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
121 : : {
122 : 66 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
123 : 66 : if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type)
124 : : )
125 : : {
126 : 66 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail77;
127 : 66 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail77;
128 : 66 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail77;
129 : 66 : {
130 : 66 : tree res_op0;
131 : 66 : res_op0 = captures[0];
132 : 66 : tree _r;
133 : 66 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
134 : 66 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 54, __FILE__, __LINE__, true);
135 : 66 : return _r;
136 : : }
137 : : next_after_fail77:;
138 : : }
139 : : return NULL_TREE;
140 : : }
141 : :
142 : : tree
143 : 2 : generic_simplify_12 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
144 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
145 : : {
146 : 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
147 : 2 : if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
148 : 2 : && !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
149 : 2 : && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[0]))
150 : 4 : && !TYPE_SATURATING (TREE_TYPE (captures[0]))
151 : : )
152 : : {
153 : 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail84;
154 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail84;
155 : 2 : {
156 : 2 : tree res_op0;
157 : 2 : {
158 : 2 : tree _o1[1], _r1;
159 : 2 : {
160 : 2 : tree _o2[2], _r2;
161 : 2 : _o2[0] = captures[1];
162 : 2 : _o2[1] = captures[2];
163 : 2 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
164 : 2 : _o1[0] = _r2;
165 : : }
166 : 2 : if (TREE_TYPE (_o1[0]) != type)
167 : : {
168 : 1 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
169 : : }
170 : : else
171 : : _r1 = _o1[0];
172 : 2 : res_op0 = _r1;
173 : : }
174 : 2 : tree _r;
175 : 2 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
176 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 61, __FILE__, __LINE__, true);
177 : 2 : return _r;
178 : : }
179 : : next_after_fail84:;
180 : : }
181 : : return NULL_TREE;
182 : : }
183 : :
184 : : tree
185 : 6631543 : generic_simplify_22 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
186 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
187 : : const enum tree_code ARG_UNUSED (op))
188 : : {
189 : 6631543 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
190 : 6631543 : if (!TYPE_SATURATING (type)
191 : : )
192 : : {
193 : 6631543 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
194 : 12845605 : && !FIXED_POINT_TYPE_P (type)
195 : : )
196 : : {
197 : 6214062 : if (INTEGRAL_TYPE_P (type)
198 : 6213770 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
199 : 4891958 : && TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
200 : 4223676 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
201 : 3672300 : && !TYPE_OVERFLOW_TRAPS (type)
202 : 9886362 : && !TYPE_OVERFLOW_SANITIZED (type)
203 : : )
204 : : {
205 : 3672029 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail102;
206 : 3672029 : {
207 : 3672029 : tree res_op0;
208 : 3672029 : {
209 : 3672029 : tree _o1[2], _r1;
210 : 3672029 : _o1[0] = captures[0];
211 : 3672029 : _o1[1] = captures[1];
212 : 3672029 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
213 : 3672029 : if (EXPR_P (_r1))
214 : 3657936 : goto next_after_fail102;
215 : 14093 : res_op0 = _r1;
216 : : }
217 : 14093 : tree _r;
218 : 14093 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
219 : 14093 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 79, __FILE__, __LINE__, true);
220 : 14093 : return _r;
221 : : }
222 : : next_after_fail102:;
223 : : }
224 : : }
225 : : }
226 : : return NULL_TREE;
227 : : }
228 : :
229 : : tree
230 : 2 : generic_simplify_30 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
231 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
232 : : const enum tree_code ARG_UNUSED (div),
233 : : const enum tree_code ARG_UNUSED (mod))
234 : : {
235 : 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
236 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail111;
237 : 2 : {
238 : 2 : tree _r;
239 : 2 : _r = captures[0];
240 : 2 : if (TREE_SIDE_EFFECTS (captures[1]))
241 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
242 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 88, __FILE__, __LINE__, true);
243 : : return _r;
244 : : }
245 : 0 : next_after_fail111:;
246 : 0 : return NULL_TREE;
247 : : }
248 : :
249 : : tree
250 : 56 : generic_simplify_32 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
251 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
252 : : const enum tree_code ARG_UNUSED (cmp),
253 : : const enum tree_code ARG_UNUSED (icmp),
254 : : const enum tree_code ARG_UNUSED (ncmp))
255 : : {
256 : 56 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
257 : 56 : if (TYPE_PRECISION (type) > 1
258 : 56 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
259 : : )
260 : : {
261 : 0 : {
262 : 0 : enum tree_code ic = invert_tree_comparison
263 : 0 : (cmp, HONOR_NANS (captures[1]));
264 : 0 : tree cmptype = TREE_TYPE (captures[0]);
265 : 0 : if (ic == icmp
266 : : )
267 : : {
268 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail113;
269 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail113;
270 : 0 : {
271 : 0 : tree res_op0;
272 : 0 : {
273 : 0 : tree _o1[1], _r1;
274 : 0 : {
275 : 0 : tree _o2[2], _r2;
276 : 0 : _o2[0] = captures[1];
277 : 0 : _o2[1] = captures[2];
278 : 0 : _r2 = fold_build2_loc (loc, icmp, cmptype, _o2[0], _o2[1]);
279 : 0 : _o1[0] = _r2;
280 : : }
281 : 0 : if (TREE_TYPE (_o1[0]) != type)
282 : : {
283 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
284 : : }
285 : : else
286 : : _r1 = _o1[0];
287 : 0 : res_op0 = _r1;
288 : : }
289 : 0 : tree _r;
290 : 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
291 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 90, __FILE__, __LINE__, true);
292 : 0 : return _r;
293 : : }
294 : : next_after_fail113:;
295 : : }
296 : : else
297 : : {
298 : 0 : if (ic == ncmp
299 : : )
300 : : {
301 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail114;
302 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail114;
303 : 0 : {
304 : 0 : tree res_op0;
305 : 0 : {
306 : 0 : tree _o1[1], _r1;
307 : 0 : {
308 : 0 : tree _o2[2], _r2;
309 : 0 : _o2[0] = captures[1];
310 : 0 : _o2[1] = captures[2];
311 : 0 : _r2 = fold_build2_loc (loc, ncmp, cmptype, _o2[0], _o2[1]);
312 : 0 : _o1[0] = _r2;
313 : : }
314 : 0 : if (TREE_TYPE (_o1[0]) != type)
315 : : {
316 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
317 : : }
318 : : else
319 : : _r1 = _o1[0];
320 : 0 : res_op0 = _r1;
321 : : }
322 : 0 : tree _r;
323 : 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
324 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 91, __FILE__, __LINE__, true);
325 : 0 : return _r;
326 : : }
327 : : next_after_fail114:;
328 : : }
329 : : }
330 : : }
331 : : }
332 : : return NULL_TREE;
333 : : }
334 : :
335 : : tree
336 : 186 : generic_simplify_51 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
337 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
338 : : {
339 : 186 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
340 : 186 : if (!TYPE_SATURATING (type)
341 : : )
342 : : {
343 : 186 : if ((!FLOAT_TYPE_P (type) || flag_associative_math)
344 : 372 : && !FIXED_POINT_TYPE_P (type)
345 : : )
346 : : {
347 : 0 : if (!ANY_INTEGRAL_TYPE_P (type)
348 : 186 : || TYPE_OVERFLOW_WRAPS (type)
349 : : )
350 : : {
351 : 110 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail133;
352 : 110 : {
353 : 110 : tree res_op0;
354 : 110 : {
355 : 110 : tree _o1[1], _r1;
356 : 110 : _o1[0] = captures[1];
357 : 110 : if (TREE_TYPE (_o1[0]) != type)
358 : : {
359 : 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
360 : : }
361 : : else
362 : : _r1 = _o1[0];
363 : 110 : res_op0 = _r1;
364 : : }
365 : 110 : tree _r;
366 : 110 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
367 : 110 : if (TREE_SIDE_EFFECTS (captures[0]))
368 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
369 : 110 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 109, __FILE__, __LINE__, true);
370 : 110 : return _r;
371 : : }
372 : 0 : next_after_fail133:;
373 : : }
374 : : else
375 : : {
376 : 76 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail134;
377 : 76 : {
378 : 76 : tree res_op0;
379 : 76 : {
380 : 76 : tree _o1[1], _r1;
381 : 76 : _o1[0] = captures[1];
382 : 76 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
383 : 76 : res_op0 = _r1;
384 : : }
385 : 76 : tree _r;
386 : 76 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
387 : 76 : if (TREE_SIDE_EFFECTS (captures[0]))
388 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
389 : 76 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 110, __FILE__, __LINE__, true);
390 : 76 : return _r;
391 : : }
392 : 0 : next_after_fail134:;
393 : : }
394 : : }
395 : : }
396 : : return NULL_TREE;
397 : : }
398 : :
399 : : tree
400 : 2 : generic_simplify_62 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
401 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
402 : : const combined_fn ARG_UNUSED (logs))
403 : : {
404 : 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
405 : 2 : if (flag_unsafe_math_optimizations
406 : : )
407 : : {
408 : 2 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
409 : 2 : && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
410 : 2 : && ! flag_trapping_math
411 : 4 : && ! flag_errno_math
412 : : )
413 : : {
414 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail150;
415 : 2 : {
416 : 2 : tree res_op0;
417 : 2 : {
418 : 2 : tree _o1[2], _r1;
419 : 2 : _o1[0] = captures[1];
420 : 2 : _o1[1] = captures[3];
421 : 2 : _r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
422 : 2 : res_op0 = _r1;
423 : : }
424 : 2 : tree _r;
425 : 2 : _r = maybe_build_call_expr_loc (loc, logs, type, 1, res_op0);
426 : 2 : if (!_r)
427 : 0 : goto next_after_fail150;
428 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 126, __FILE__, __LINE__, true);
429 : 2 : return _r;
430 : : }
431 : : next_after_fail150:;
432 : : }
433 : : }
434 : : return NULL_TREE;
435 : : }
436 : :
437 : : tree
438 : 0 : generic_simplify_70 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
439 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
440 : : {
441 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
442 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail158;
443 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail158;
444 : 0 : {
445 : 0 : tree _r;
446 : 0 : _r = captures[2];
447 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 134, __FILE__, __LINE__, true);
448 : : return _r;
449 : : }
450 : : next_after_fail158:;
451 : : return NULL_TREE;
452 : : }
453 : :
454 : : tree
455 : 29 : generic_simplify_75 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
456 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
457 : : const enum tree_code ARG_UNUSED (bit_op))
458 : : {
459 : 29 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
460 : 29 : if (bit_op == BIT_AND_EXPR
461 : : )
462 : : {
463 : 9 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail163;
464 : 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail163;
465 : 9 : {
466 : 9 : tree _r;
467 : 9 : _r = build_zero_cst (type);
468 : 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 138, __FILE__, __LINE__, true);
469 : 9 : return _r;
470 : : }
471 : : next_after_fail163:;
472 : : }
473 : : else
474 : : {
475 : 20 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail164;
476 : 20 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail164;
477 : 20 : {
478 : 20 : tree _r;
479 : 20 : _r = build_minus_one_cst (type);
480 : 20 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 139, __FILE__, __LINE__, true);
481 : 20 : return _r;
482 : : }
483 : : next_after_fail164:;
484 : : }
485 : : return NULL_TREE;
486 : : }
487 : :
488 : : tree
489 : 2 : generic_simplify_84 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
490 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
491 : : {
492 : 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
493 : 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail176;
494 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail176;
495 : 2 : {
496 : 2 : tree res_op0;
497 : 2 : res_op0 = captures[0];
498 : 2 : tree res_op1;
499 : 2 : res_op1 = captures[3];
500 : 2 : tree _r;
501 : 2 : _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
502 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 146, __FILE__, __LINE__, true);
503 : : return _r;
504 : : }
505 : : next_after_fail176:;
506 : : return NULL_TREE;
507 : : }
508 : :
509 : : tree
510 : 0 : generic_simplify_95 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
511 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
512 : : {
513 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
514 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail187;
515 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail187;
516 : 0 : {
517 : 0 : tree _r;
518 : 0 : _r = captures[0];
519 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 150, __FILE__, __LINE__, true);
520 : : return _r;
521 : : }
522 : : next_after_fail187:;
523 : : return NULL_TREE;
524 : : }
525 : :
526 : : tree
527 : 0 : generic_simplify_101 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
528 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
529 : : const enum tree_code ARG_UNUSED (op))
530 : : {
531 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
532 : 0 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
533 : 0 : && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
534 : : )
535 : : {
536 : 0 : if (single_use (captures[4]) && single_use (captures[5])
537 : : )
538 : : {
539 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail195;
540 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail195;
541 : 0 : {
542 : 0 : tree res_op0;
543 : 0 : res_op0 = captures[0];
544 : 0 : tree res_op1;
545 : 0 : {
546 : 0 : tree _o1[1], _r1;
547 : 0 : _o1[0] = captures[6];
548 : 0 : if (TREE_TYPE (_o1[0]) != type)
549 : : {
550 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
551 : : }
552 : : else
553 : : _r1 = _o1[0];
554 : 0 : res_op1 = _r1;
555 : : }
556 : 0 : tree _r;
557 : 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
558 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 156, __FILE__, __LINE__, true);
559 : 0 : return _r;
560 : : }
561 : : next_after_fail195:;
562 : : }
563 : : else
564 : : {
565 : : if (single_use (captures[0]) && single_use (captures[1])
566 : : )
567 : : {
568 : : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail196;
569 : : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail196;
570 : : {
571 : : tree res_op0;
572 : : {
573 : : tree _o1[1], _r1;
574 : : _o1[0] = captures[3];
575 : : if (TREE_TYPE (_o1[0]) != type)
576 : : {
577 : : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
578 : : }
579 : : else
580 : : _r1 = _o1[0];
581 : : res_op0 = _r1;
582 : : }
583 : : tree res_op1;
584 : : res_op1 = captures[4];
585 : : tree _r;
586 : : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
587 : : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 157, __FILE__, __LINE__, true);
588 : : return _r;
589 : : }
590 : : next_after_fail196:;
591 : : }
592 : : }
593 : : }
594 : : return NULL_TREE;
595 : : }
596 : :
597 : : tree
598 : 0 : generic_simplify_115 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
599 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
600 : : const enum tree_code ARG_UNUSED (op))
601 : : {
602 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
603 : 0 : if (bitwise_equal_p (captures[4], captures[7])
604 : : )
605 : : {
606 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail212;
607 : 0 : {
608 : 0 : tree res_op0;
609 : 0 : {
610 : 0 : tree _o1[2], _r1;
611 : 0 : {
612 : 0 : tree _o2[2], _r2;
613 : 0 : _o2[0] = captures[5];
614 : 0 : {
615 : 0 : tree _o3[1], _r3;
616 : 0 : _o3[0] = captures[6];
617 : 0 : if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
618 : : {
619 : 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
620 : : }
621 : : else
622 : : _r3 = _o3[0];
623 : 0 : _o2[1] = _r3;
624 : : }
625 : 0 : _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
626 : 0 : _o1[0] = _r2;
627 : : }
628 : 0 : {
629 : 0 : tree _o2[1], _r2;
630 : 0 : _o2[0] = captures[4];
631 : 0 : if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
632 : : {
633 : 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
634 : : }
635 : : else
636 : : _r2 = _o2[0];
637 : 0 : _o1[1] = _r2;
638 : : }
639 : 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
640 : 0 : res_op0 = _r1;
641 : : }
642 : 0 : tree _r;
643 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
644 : 0 : if (TREE_SIDE_EFFECTS (captures[7]))
645 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
646 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 163, __FILE__, __LINE__, true);
647 : 0 : return _r;
648 : : }
649 : 0 : next_after_fail212:;
650 : : }
651 : : return NULL_TREE;
652 : : }
653 : :
654 : : tree
655 : 0 : generic_simplify_127 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
656 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
657 : : {
658 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
659 : 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
660 : 0 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
661 : : )
662 : : {
663 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail230;
664 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail230;
665 : 0 : {
666 : 0 : tree res_op0;
667 : 0 : res_op0 = captures[3];
668 : 0 : tree res_op1;
669 : 0 : {
670 : 0 : tree _o1[2], _r1;
671 : 0 : _o1[0] = captures[1];
672 : 0 : _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
673 : 0 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
674 : 0 : res_op1 = _r1;
675 : : }
676 : 0 : tree _r;
677 : 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
678 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 183, __FILE__, __LINE__, true);
679 : 0 : return _r;
680 : : }
681 : : next_after_fail230:;
682 : : }
683 : : return NULL_TREE;
684 : : }
685 : :
686 : : tree
687 : 0 : generic_simplify_134 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
688 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
689 : : {
690 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
691 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail255;
692 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail255;
693 : 0 : {
694 : 0 : tree _r;
695 : 0 : _r = constant_boolean_node (true, type);
696 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
697 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
698 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 200, __FILE__, __LINE__, true);
699 : : return _r;
700 : : }
701 : : next_after_fail255:;
702 : : return NULL_TREE;
703 : : }
704 : :
705 : : tree
706 : 4 : generic_simplify_139 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
707 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
708 : : {
709 : 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
710 : 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail273;
711 : 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail273;
712 : 4 : {
713 : 4 : tree _r;
714 : 4 : _r = constant_boolean_node (true, type);
715 : 4 : if (TREE_SIDE_EFFECTS (captures[1]))
716 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
717 : 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 200, __FILE__, __LINE__, true);
718 : : return _r;
719 : : }
720 : : next_after_fail273:;
721 : : return NULL_TREE;
722 : : }
723 : :
724 : : tree
725 : 2 : generic_simplify_142 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
726 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
727 : : {
728 : 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
729 : 4 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
730 : 4 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
731 : : )
732 : : {
733 : 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail277;
734 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail277;
735 : 2 : {
736 : 2 : tree res_op0;
737 : 2 : res_op0 = captures[3];
738 : 2 : tree res_op1;
739 : 2 : {
740 : 2 : tree _o1[2], _r1;
741 : 2 : _o1[0] = captures[1];
742 : 2 : _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
743 : 2 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
744 : 2 : res_op1 = _r1;
745 : : }
746 : 2 : tree _r;
747 : 2 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
748 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 183, __FILE__, __LINE__, true);
749 : 2 : return _r;
750 : : }
751 : : next_after_fail277:;
752 : : }
753 : : return NULL_TREE;
754 : : }
755 : :
756 : : tree
757 : 495 : generic_simplify_147 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
758 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
759 : : const enum tree_code ARG_UNUSED (op))
760 : : {
761 : 495 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
762 : 990 : if (INTEGRAL_TYPE_P (type)
763 : 493 : && tree_int_cst_sgn (captures[2]) > 0
764 : 1976 : && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[1])) == 0
765 : : )
766 : : {
767 : 6 : {
768 : 6 : tree t = type;
769 : 6 : if (!TYPE_OVERFLOW_WRAPS (t))
770 : 6 : t = unsigned_type_for (t);
771 : 6 : wide_int wone = wi::one (TYPE_PRECISION (t));
772 : 6 : wide_int c = wi::add (wi::lshift (wone, wi::to_wide (captures[2])), wone);
773 : 6 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail282;
774 : 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail282;
775 : 6 : {
776 : 6 : tree res_op0;
777 : 6 : {
778 : 6 : tree _o1[2], _r1;
779 : 6 : {
780 : 6 : tree _o2[1], _r2;
781 : 6 : _o2[0] = captures[1];
782 : 6 : if (TREE_TYPE (_o2[0]) != t)
783 : : {
784 : 6 : _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
785 : : }
786 : : else
787 : : _r2 = _o2[0];
788 : 6 : _o1[0] = _r2;
789 : : }
790 : 6 : _o1[1] = wide_int_to_tree (t, c);
791 : 6 : _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
792 : 6 : res_op0 = _r1;
793 : : }
794 : 6 : tree _r;
795 : 6 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
796 : 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 205, __FILE__, __LINE__, true);
797 : 6 : return _r;
798 : : }
799 : 0 : next_after_fail282:;
800 : 6 : }
801 : : }
802 : : return NULL_TREE;
803 : : }
804 : :
805 : : tree
806 : 196 : generic_simplify_154 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
807 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
808 : : {
809 : 196 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
810 : 196 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail289;
811 : 196 : {
812 : 196 : if (! tree_invariant_p (captures[3])) goto next_after_fail289;
813 : 15 : tree res_op0;
814 : 15 : {
815 : 15 : tree _o1[2], _r1;
816 : 15 : _o1[0] = captures[2];
817 : 15 : _o1[1] = unshare_expr (captures[3]);
818 : 15 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
819 : 15 : res_op0 = _r1;
820 : : }
821 : 15 : tree res_op1;
822 : 15 : {
823 : 15 : tree _o1[2], _r1;
824 : 15 : _o1[0] = captures[4];
825 : 15 : _o1[1] = captures[3];
826 : 15 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
827 : 15 : if (EXPR_P (_r1))
828 : 14 : goto next_after_fail289;
829 : 1 : res_op1 = _r1;
830 : : }
831 : 1 : tree _r;
832 : 1 : _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
833 : 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 211, __FILE__, __LINE__, true);
834 : : return _r;
835 : : }
836 : : next_after_fail289:;
837 : : return NULL_TREE;
838 : : }
839 : :
840 : : tree
841 : 8 : generic_simplify_161 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
842 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
843 : : {
844 : 8 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
845 : 8 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
846 : : )
847 : : {
848 : 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail296;
849 : 8 : {
850 : 8 : tree res_op0;
851 : 8 : {
852 : 8 : tree _o1[2], _r1;
853 : 8 : _o1[0] = captures[1];
854 : 8 : {
855 : 8 : tree _o2[1], _r2;
856 : 8 : _o2[0] = captures[0];
857 : 8 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
858 : 8 : _o1[1] = _r2;
859 : : }
860 : 8 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
861 : 8 : res_op0 = _r1;
862 : : }
863 : 8 : tree _r;
864 : 8 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
865 : 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 218, __FILE__, __LINE__, true);
866 : 8 : return _r;
867 : : }
868 : 0 : next_after_fail296:;
869 : : }
870 : : return NULL_TREE;
871 : : }
872 : :
873 : : tree
874 : 2 : generic_simplify_169 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
875 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
876 : : {
877 : 2 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
878 : 2 : if (INTEGRAL_TYPE_P (type)
879 : 2 : && (
880 : :
881 : 2 : || !TREE_SIDE_EFFECTS (captures[1]))
882 : : )
883 : : {
884 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail304;
885 : 2 : {
886 : 2 : tree res_op0;
887 : 2 : {
888 : 2 : tree _o1[1], _r1;
889 : 2 : _o1[0] = captures[2];
890 : 2 : if (TREE_TYPE (_o1[0]) != boolean_type_node)
891 : : {
892 : 2 : _r1 = fold_build1_loc (loc, NOP_EXPR, boolean_type_node, _o1[0]);
893 : : }
894 : : else
895 : : _r1 = _o1[0];
896 : 2 : res_op0 = _r1;
897 : : }
898 : 2 : tree res_op1;
899 : 2 : res_op1 = captures[1];
900 : 2 : tree res_op2;
901 : 2 : res_op2 = captures[0];
902 : 2 : tree _r;
903 : 2 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
904 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 225, __FILE__, __LINE__, true);
905 : 2 : return _r;
906 : : }
907 : 0 : next_after_fail304:;
908 : : }
909 : : return NULL_TREE;
910 : : }
911 : :
912 : : tree
913 : 4 : generic_simplify_175 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
914 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
915 : : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
916 : : {
917 : 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
918 : 4 : if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
919 : : )
920 : : {
921 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail312;
922 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail312;
923 : 0 : {
924 : 0 : tree res_op0;
925 : 0 : res_op0 = captures[0];
926 : 0 : tree _r;
927 : 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
928 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 232, __FILE__, __LINE__, true);
929 : 0 : return _r;
930 : : }
931 : : next_after_fail312:;
932 : : }
933 : : return NULL_TREE;
934 : : }
935 : :
936 : : tree
937 : 6 : generic_simplify_183 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
938 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
939 : : {
940 : 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
941 : 6 : if (INTEGRAL_TYPE_P (type)
942 : 6 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
943 : 12 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
944 : : )
945 : : {
946 : 6 : if (TYPE_UNSIGNED (type)
947 : : )
948 : : {
949 : 5 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail320;
950 : 5 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail320;
951 : 5 : {
952 : 5 : tree res_op0;
953 : 5 : res_op0 = captures[0];
954 : 5 : tree _r;
955 : 5 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
956 : 5 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 238, __FILE__, __LINE__, true);
957 : 5 : return _r;
958 : : }
959 : : next_after_fail320:;
960 : : }
961 : : else
962 : : {
963 : 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail321;
964 : 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail321;
965 : 1 : {
966 : 1 : tree res_op0;
967 : 1 : res_op0 = captures[0];
968 : 1 : tree _r;
969 : 1 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
970 : 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 239, __FILE__, __LINE__, true);
971 : 1 : return _r;
972 : : }
973 : : next_after_fail321:;
974 : : }
975 : : }
976 : : return NULL_TREE;
977 : : }
978 : :
979 : : tree
980 : 6 : generic_simplify_195 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
981 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
982 : : const combined_fn ARG_UNUSED (LDEXP))
983 : : {
984 : 6 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
985 : 6 : if (flag_unsafe_math_optimizations
986 : : )
987 : : {
988 : 6 : {
989 : 6 : HOST_WIDE_INT tmp = 0;
990 : 6 : if (real_isinteger (&TREE_REAL_CST (captures[0]), &tmp)
991 : 6 : && tmp > 0 && pow2p_hwi (tmp)
992 : : )
993 : : {
994 : 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail335;
995 : 3 : {
996 : 3 : tree res_op0;
997 : 3 : res_op0 = captures[1];
998 : 3 : tree res_op1;
999 : 3 : {
1000 : 3 : tree _o1[2], _r1;
1001 : 3 : _o1[0] = build_int_cst (integer_type_node,
1002 : 6 : exact_log2 (tmp));
1003 : 3 : _o1[1] = captures[2];
1004 : 3 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1005 : 3 : res_op1 = _r1;
1006 : : }
1007 : 3 : tree _r;
1008 : 3 : _r = maybe_build_call_expr_loc (loc, LDEXP, type, 2, res_op0, res_op1);
1009 : 3 : if (!_r)
1010 : 0 : goto next_after_fail335;
1011 : 3 : if (TREE_SIDE_EFFECTS (captures[0]))
1012 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1013 : 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 250, __FILE__, __LINE__, true);
1014 : 3 : return _r;
1015 : : }
1016 : 3 : next_after_fail335:;
1017 : : }
1018 : : }
1019 : : }
1020 : : return NULL_TREE;
1021 : : }
1022 : :
1023 : : tree
1024 : 4 : generic_simplify_207 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1025 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
1026 : : {
1027 : 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1028 : 8 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
1029 : 8 : && TYPE_PRECISION (TREE_TYPE (captures[1])) == 1
1030 : : )
1031 : : {
1032 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail350;
1033 : 0 : {
1034 : 0 : tree res_op0;
1035 : 0 : {
1036 : 0 : tree _o1[2], _r1;
1037 : 0 : _o1[0] = captures[1];
1038 : 0 : _o1[1] = captures[2];
1039 : 0 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1040 : 0 : res_op0 = _r1;
1041 : : }
1042 : 0 : tree _r;
1043 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1044 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 264, __FILE__, __LINE__, true);
1045 : 0 : return _r;
1046 : : }
1047 : 0 : next_after_fail350:;
1048 : : }
1049 : : return NULL_TREE;
1050 : : }
1051 : :
1052 : : tree
1053 : 7248 : generic_simplify_212 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1054 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1055 : : const enum tree_code ARG_UNUSED (op))
1056 : : {
1057 : 7248 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1058 : 7248 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail368;
1059 : 7248 : {
1060 : 7248 : tree res_op0;
1061 : 7248 : res_op0 = captures[1];
1062 : 7248 : tree res_op1;
1063 : 7248 : res_op1 = captures[2];
1064 : 7248 : tree _r;
1065 : 7248 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1066 : 7248 : if (TREE_SIDE_EFFECTS (captures[0]))
1067 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1068 : 7248 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 282, __FILE__, __LINE__, true);
1069 : : return _r;
1070 : : }
1071 : 0 : next_after_fail368:;
1072 : 0 : return NULL_TREE;
1073 : : }
1074 : :
1075 : : tree
1076 : 0 : generic_simplify_219 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1077 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1078 : : const enum tree_code ARG_UNUSED (neeq))
1079 : : {
1080 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1081 : 0 : {
1082 : 0 : poly_int64 diff; tree inner_type = TREE_TYPE (captures[1]);
1083 : 0 : if (ptr_difference_const (captures[0], captures[2], &diff)
1084 : : )
1085 : : {
1086 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail375;
1087 : 0 : {
1088 : 0 : tree res_op0;
1089 : 0 : {
1090 : 0 : tree _o1[2], _r1;
1091 : 0 : _o1[0] = build_int_cst_type (inner_type, diff);
1092 : 0 : _o1[1] = captures[1];
1093 : 0 : _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1094 : 0 : res_op0 = _r1;
1095 : : }
1096 : 0 : tree res_op1;
1097 : 0 : res_op1 = captures[3];
1098 : 0 : tree _r;
1099 : 0 : _r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
1100 : 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1101 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1102 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1103 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1104 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 288, __FILE__, __LINE__, true);
1105 : 0 : return _r;
1106 : : }
1107 : 0 : next_after_fail375:;
1108 : : }
1109 : : }
1110 : 0 : return NULL_TREE;
1111 : : }
1112 : :
1113 : : tree
1114 : 13 : generic_simplify_229 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1115 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1116 : : const enum tree_code ARG_UNUSED (cmp))
1117 : : {
1118 : 13 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1119 : 13 : if (tree_fits_shwi_p (captures[3])
1120 : 13 : && tree_to_shwi (captures[3]) > 0
1121 : 26 : && tree_to_shwi (captures[3]) < TYPE_PRECISION (TREE_TYPE (captures[2]))
1122 : : )
1123 : : {
1124 : 13 : if (tree_to_shwi (captures[3]) > wi::ctz (wi::to_wide (captures[5]))
1125 : : )
1126 : : {
1127 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail388;
1128 : 0 : {
1129 : 0 : tree _r;
1130 : 0 : _r = constant_boolean_node (cmp == NE_EXPR, type);
1131 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1132 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1133 : 0 : if (TREE_SIDE_EFFECTS (captures[3]))
1134 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
1135 : 0 : if (TREE_SIDE_EFFECTS (captures[4]))
1136 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
1137 : 0 : if (TREE_SIDE_EFFECTS (captures[5]))
1138 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
1139 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 301, __FILE__, __LINE__, true);
1140 : 0 : return _r;
1141 : : }
1142 : 0 : next_after_fail388:;
1143 : : }
1144 : : else
1145 : : {
1146 : 13 : {
1147 : 13 : wide_int c1 = wi::to_wide (captures[3]);
1148 : 13 : wide_int c2 = wi::lrshift (wi::to_wide (captures[4]), c1);
1149 : 13 : wide_int c3 = wi::lrshift (wi::to_wide (captures[5]), c1);
1150 : 13 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail389;
1151 : 13 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail389;
1152 : 13 : if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail389;
1153 : 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail389;
1154 : 13 : {
1155 : 13 : tree res_op0;
1156 : 13 : {
1157 : 13 : tree _o1[2], _r1;
1158 : 13 : _o1[0] = captures[2];
1159 : 13 : _o1[1] = wide_int_to_tree (TREE_TYPE (captures[2]), c2);
1160 : 13 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1161 : 13 : res_op0 = _r1;
1162 : : }
1163 : 13 : tree res_op1;
1164 : 13 : res_op1 = wide_int_to_tree (TREE_TYPE (captures[2]), c3);
1165 : 13 : tree _r;
1166 : 13 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1167 : 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 302, __FILE__, __LINE__, true);
1168 : 13 : return _r;
1169 : : }
1170 : 0 : next_after_fail389:;
1171 : 13 : }
1172 : : }
1173 : : }
1174 : : return NULL_TREE;
1175 : : }
1176 : :
1177 : : tree
1178 : 14428 : generic_simplify_243 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1179 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1180 : : const enum tree_code ARG_UNUSED (cmp))
1181 : : {
1182 : 14428 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1183 : 14428 : if (single_use (captures[0])
1184 : : )
1185 : : {
1186 : 14428 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail412;
1187 : 14428 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail412;
1188 : 14428 : {
1189 : 14428 : tree res_op0;
1190 : 14428 : res_op0 = captures[1];
1191 : 14428 : tree res_op1;
1192 : 14428 : res_op1 = captures[2];
1193 : 14428 : tree _r;
1194 : 14428 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1195 : 14428 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 324, __FILE__, __LINE__, true);
1196 : 14428 : return _r;
1197 : : }
1198 : : next_after_fail412:;
1199 : : }
1200 : : return NULL_TREE;
1201 : : }
1202 : :
1203 : : tree
1204 : 30 : generic_simplify_250 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1205 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1206 : : const enum tree_code ARG_UNUSED (cmp))
1207 : : {
1208 : 30 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1209 : 30 : if (single_use (captures[1]) && single_use (captures[3])
1210 : : )
1211 : : {
1212 : 30 : {
1213 : 30 : tree otype = TREE_TYPE (captures[0]);
1214 : 30 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail424;
1215 : 30 : {
1216 : 30 : tree res_op0;
1217 : 30 : {
1218 : 30 : tree _o1[1], _r1;
1219 : 30 : _o1[0] = captures[4];
1220 : 30 : if (TREE_TYPE (_o1[0]) != otype)
1221 : : {
1222 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1223 : : }
1224 : : else
1225 : : _r1 = _o1[0];
1226 : 30 : res_op0 = _r1;
1227 : : }
1228 : 30 : tree res_op1;
1229 : 30 : {
1230 : 30 : tree _o1[1], _r1;
1231 : 30 : _o1[0] = captures[2];
1232 : 30 : if (TREE_TYPE (_o1[0]) != otype)
1233 : : {
1234 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
1235 : : }
1236 : : else
1237 : : _r1 = _o1[0];
1238 : 30 : res_op1 = _r1;
1239 : : }
1240 : 30 : tree _r;
1241 : 30 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1242 : 30 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 334, __FILE__, __LINE__, true);
1243 : 30 : return _r;
1244 : : }
1245 : 0 : next_after_fail424:;
1246 : : }
1247 : : }
1248 : 0 : return NULL_TREE;
1249 : : }
1250 : :
1251 : : tree
1252 : 1255 : generic_simplify_256 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1253 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1254 : : const enum tree_code ARG_UNUSED (cmp),
1255 : : const enum tree_code ARG_UNUSED (icmp))
1256 : : {
1257 : 1255 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1258 : 1255 : if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1259 : 1255 : && ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
1260 : : )
1261 : : {
1262 : 1255 : {
1263 : 1255 : format_helper fmt (REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (captures[0]))));
1264 : 1255 : tree type1 = TREE_TYPE (captures[1]);
1265 : 1255 : bool type1_signed_p = TYPE_SIGN (type1) == SIGNED;
1266 : 1255 : tree type2 = TREE_TYPE (captures[2]);
1267 : 1255 : bool type2_signed_p = TYPE_SIGN (type2) == SIGNED;
1268 : 1255 : if (fmt.can_represent_integral_type_p (type1)
1269 : 1255 : && fmt.can_represent_integral_type_p (type2)
1270 : : )
1271 : : {
1272 : 229 : if (cmp == ORDERED_EXPR || cmp == UNORDERED_EXPR
1273 : : )
1274 : : {
1275 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail462;
1276 : 0 : {
1277 : 0 : tree _r;
1278 : 0 : _r = constant_boolean_node (cmp == ORDERED_EXPR, type);
1279 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1280 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1281 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1282 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1283 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 373, __FILE__, __LINE__, true);
1284 : 183 : return _r;
1285 : : }
1286 : 0 : next_after_fail462:;
1287 : : }
1288 : : else
1289 : : {
1290 : 229 : if (TYPE_PRECISION (type1) > TYPE_PRECISION (type2)
1291 : 229 : && type1_signed_p >= type2_signed_p
1292 : : )
1293 : : {
1294 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail463;
1295 : 0 : {
1296 : 0 : tree res_op0;
1297 : 0 : res_op0 = captures[1];
1298 : 0 : tree res_op1;
1299 : 0 : {
1300 : 0 : tree _o1[1], _r1;
1301 : 0 : _o1[0] = captures[2];
1302 : 0 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1303 : : {
1304 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1305 : : }
1306 : : else
1307 : : _r1 = _o1[0];
1308 : 0 : res_op1 = _r1;
1309 : : }
1310 : 0 : tree _r;
1311 : 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1312 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 374, __FILE__, __LINE__, true);
1313 : 0 : return _r;
1314 : : }
1315 : 0 : next_after_fail463:;
1316 : : }
1317 : : else
1318 : : {
1319 : 229 : if (TYPE_PRECISION (type1) < TYPE_PRECISION (type2)
1320 : 229 : && type1_signed_p <= type2_signed_p
1321 : : )
1322 : : {
1323 : 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail464;
1324 : 7 : {
1325 : 7 : tree res_op0;
1326 : 7 : {
1327 : 7 : tree _o1[1], _r1;
1328 : 7 : _o1[0] = captures[1];
1329 : 7 : if (TREE_TYPE (_o1[0]) != type2)
1330 : : {
1331 : 7 : _r1 = fold_build1_loc (loc, NOP_EXPR, type2, _o1[0]);
1332 : : }
1333 : : else
1334 : : _r1 = _o1[0];
1335 : 7 : res_op0 = _r1;
1336 : : }
1337 : 7 : tree res_op1;
1338 : 7 : res_op1 = captures[2];
1339 : 7 : tree _r;
1340 : 7 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1341 : 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 375, __FILE__, __LINE__, true);
1342 : 7 : return _r;
1343 : : }
1344 : 0 : next_after_fail464:;
1345 : : }
1346 : : else
1347 : : {
1348 : 222 : if (TYPE_PRECISION (type1) == TYPE_PRECISION (type2)
1349 : 222 : && type1_signed_p == type2_signed_p
1350 : : )
1351 : : {
1352 : 176 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail465;
1353 : 176 : {
1354 : 176 : tree res_op0;
1355 : 176 : res_op0 = captures[1];
1356 : 176 : tree res_op1;
1357 : 176 : {
1358 : 176 : tree _o1[1], _r1;
1359 : 176 : _o1[0] = captures[2];
1360 : 176 : if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
1361 : : {
1362 : 1 : _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
1363 : : }
1364 : : else
1365 : : _r1 = _o1[0];
1366 : 176 : res_op1 = _r1;
1367 : : }
1368 : 176 : tree _r;
1369 : 176 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1370 : 176 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 376, __FILE__, __LINE__, true);
1371 : 176 : return _r;
1372 : : }
1373 : 0 : next_after_fail465:;
1374 : : }
1375 : : }
1376 : : }
1377 : : }
1378 : : }
1379 : : }
1380 : : }
1381 : : return NULL_TREE;
1382 : : }
1383 : :
1384 : : tree
1385 : 445 : generic_simplify_269 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1386 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1387 : : const enum tree_code ARG_UNUSED (cmp))
1388 : : {
1389 : 445 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1390 : 445 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail499;
1391 : 445 : {
1392 : 445 : tree res_op0;
1393 : 445 : {
1394 : 445 : tree _o1[2], _r1;
1395 : 445 : _o1[0] = captures[0];
1396 : 445 : {
1397 : 445 : tree _o2[1], _r2;
1398 : 445 : _o2[0] = captures[1];
1399 : 445 : _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
1400 : 445 : if (EXPR_P (_r2))
1401 : 437 : goto next_after_fail499;
1402 : 8 : _o1[1] = _r2;
1403 : : }
1404 : 8 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1405 : 8 : res_op0 = _r1;
1406 : : }
1407 : 8 : tree res_op1;
1408 : 8 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1409 : 8 : tree _r;
1410 : 8 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1411 : 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 403, __FILE__, __LINE__, true);
1412 : : return _r;
1413 : : }
1414 : : next_after_fail499:;
1415 : : return NULL_TREE;
1416 : : }
1417 : :
1418 : : tree
1419 : 116264 : generic_simplify_273 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1420 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1421 : : const enum tree_code ARG_UNUSED (cmp),
1422 : : const enum tree_code ARG_UNUSED (icmp))
1423 : : {
1424 : 116264 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1425 : 116264 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail503;
1426 : 116242 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail503;
1427 : 116242 : {
1428 : 116242 : tree res_op0;
1429 : 116242 : res_op0 = captures[0];
1430 : 116242 : tree res_op1;
1431 : 116242 : res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
1432 : 116242 : tree _r;
1433 : 116242 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
1434 : 116242 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 407, __FILE__, __LINE__, true);
1435 : : return _r;
1436 : : }
1437 : : next_after_fail503:;
1438 : : return NULL_TREE;
1439 : : }
1440 : :
1441 : : tree
1442 : 18 : generic_simplify_278 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1443 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1444 : : const enum tree_code ARG_UNUSED (cmp),
1445 : : const enum tree_code ARG_UNUSED (ncmp))
1446 : : {
1447 : 18 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1448 : 36 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1449 : 18 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
1450 : 36 : && types_match (captures[0], captures[2])
1451 : : )
1452 : : {
1453 : 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail508;
1454 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail508;
1455 : 2 : {
1456 : 2 : tree res_op0;
1457 : 2 : {
1458 : 2 : tree _o1[2], _r1;
1459 : 2 : _o1[0] = captures[0];
1460 : 2 : _o1[1] = captures[2];
1461 : 2 : _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1462 : 2 : res_op0 = _r1;
1463 : : }
1464 : 2 : tree res_op1;
1465 : 2 : res_op1 = captures[1];
1466 : 2 : tree _r;
1467 : 2 : _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
1468 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 410, __FILE__, __LINE__, true);
1469 : 2 : return _r;
1470 : : }
1471 : : next_after_fail508:;
1472 : : }
1473 : : return NULL_TREE;
1474 : : }
1475 : :
1476 : : tree
1477 : 0 : generic_simplify_283 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1478 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1479 : : const enum tree_code ARG_UNUSED (inner),
1480 : : const enum tree_code ARG_UNUSED (outer))
1481 : : {
1482 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1483 : 0 : {
1484 : 0 : bool cst1 = integer_onep (captures[1]);
1485 : 0 : bool cst0 = integer_zerop (captures[1]);
1486 : 0 : bool innereq = inner == EQ_EXPR;
1487 : 0 : bool outereq = outer == EQ_EXPR;
1488 : 0 : if (innereq ? cst0 : cst1
1489 : : )
1490 : : {
1491 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail527;
1492 : 0 : {
1493 : 0 : tree _r;
1494 : 0 : _r = constant_boolean_node (!outereq, type);
1495 : 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1496 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1497 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1498 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1499 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 421, __FILE__, __LINE__, true);
1500 : 0 : return _r;
1501 : : }
1502 : 0 : next_after_fail527:;
1503 : : }
1504 : : else
1505 : : {
1506 : 0 : if (innereq ? cst1 : cst0
1507 : : )
1508 : : {
1509 : 0 : {
1510 : 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
1511 : 0 : tree ucst1 = build_one_cst (utype);
1512 : 0 : if (!outereq
1513 : : )
1514 : : {
1515 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail528;
1516 : 0 : {
1517 : 0 : tree res_op0;
1518 : 0 : {
1519 : 0 : tree _o1[1], _r1;
1520 : 0 : _o1[0] = captures[0];
1521 : 0 : if (TREE_TYPE (_o1[0]) != utype)
1522 : : {
1523 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
1524 : : }
1525 : : else
1526 : : _r1 = _o1[0];
1527 : 0 : res_op0 = _r1;
1528 : : }
1529 : 0 : tree res_op1;
1530 : 0 : res_op1 = ucst1;
1531 : 0 : tree _r;
1532 : 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
1533 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1534 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1535 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 422, __FILE__, __LINE__, true);
1536 : 0 : return _r;
1537 : : }
1538 : 0 : next_after_fail528:;
1539 : : }
1540 : : else
1541 : : {
1542 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail529;
1543 : 0 : {
1544 : 0 : tree res_op0;
1545 : 0 : {
1546 : 0 : tree _o1[1], _r1;
1547 : 0 : _o1[0] = captures[0];
1548 : 0 : if (TREE_TYPE (_o1[0]) != utype)
1549 : : {
1550 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
1551 : : }
1552 : : else
1553 : : _r1 = _o1[0];
1554 : 0 : res_op0 = _r1;
1555 : : }
1556 : 0 : tree res_op1;
1557 : 0 : res_op1 = ucst1;
1558 : 0 : tree _r;
1559 : 0 : _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
1560 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1561 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1562 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 423, __FILE__, __LINE__, true);
1563 : 0 : return _r;
1564 : : }
1565 : 0 : next_after_fail529:;
1566 : : }
1567 : : }
1568 : : }
1569 : : else
1570 : : {
1571 : 0 : {
1572 : 0 : tree value = build_int_cst (TREE_TYPE (captures[0]), !innereq);
1573 : 0 : if (outereq
1574 : : )
1575 : : {
1576 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail530;
1577 : 0 : {
1578 : 0 : tree res_op0;
1579 : 0 : res_op0 = captures[0];
1580 : 0 : tree res_op1;
1581 : 0 : res_op1 = value;
1582 : 0 : tree _r;
1583 : 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
1584 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1585 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1586 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 424, __FILE__, __LINE__, true);
1587 : 0 : return _r;
1588 : : }
1589 : 0 : next_after_fail530:;
1590 : : }
1591 : : else
1592 : : {
1593 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail531;
1594 : 0 : {
1595 : 0 : tree res_op0;
1596 : 0 : res_op0 = captures[0];
1597 : 0 : tree res_op1;
1598 : 0 : res_op1 = value;
1599 : 0 : tree _r;
1600 : 0 : _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
1601 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1602 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1603 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 425, __FILE__, __LINE__, true);
1604 : 0 : return _r;
1605 : : }
1606 : 0 : next_after_fail531:;
1607 : : }
1608 : : }
1609 : : }
1610 : : }
1611 : : }
1612 : : return NULL_TREE;
1613 : : }
1614 : :
1615 : : tree
1616 : 0 : generic_simplify_293 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1617 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1618 : : const enum tree_code ARG_UNUSED (cmp))
1619 : : {
1620 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1621 : 0 : if (VECTOR_MODE_P (TYPE_MODE (TREE_TYPE (captures[0])))
1622 : 0 : && can_compare_p (cmp == EQ_EXPR ? EQ : NE, TYPE_MODE (TREE_TYPE (captures[0])),
1623 : : ccp_jump)
1624 : : )
1625 : : {
1626 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail556;
1627 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail556;
1628 : 0 : {
1629 : 0 : tree res_op0;
1630 : 0 : res_op0 = captures[0];
1631 : 0 : tree res_op1;
1632 : 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
1633 : 0 : tree _r;
1634 : 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
1635 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 450, __FILE__, __LINE__, true);
1636 : 0 : return _r;
1637 : : }
1638 : : next_after_fail556:;
1639 : : }
1640 : : return NULL_TREE;
1641 : : }
1642 : :
1643 : : tree
1644 : 0 : generic_simplify_297 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1645 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1646 : : const combined_fn ARG_UNUSED (COPYSIGN_ALL))
1647 : : {
1648 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1649 : 0 : if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[0]))
1650 : : )
1651 : : {
1652 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail561;
1653 : 0 : {
1654 : 0 : tree res_op0;
1655 : 0 : {
1656 : 0 : tree _o1[1], _r1;
1657 : 0 : _o1[0] = captures[0];
1658 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
1659 : 0 : res_op0 = _r1;
1660 : : }
1661 : 0 : tree res_op1;
1662 : 0 : res_op1 = captures[1];
1663 : 0 : tree _r;
1664 : 0 : _r = maybe_build_call_expr_loc (loc, COPYSIGN_ALL, type, 2, res_op0, res_op1);
1665 : 0 : if (!_r)
1666 : 0 : goto next_after_fail561;
1667 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 455, __FILE__, __LINE__, true);
1668 : 0 : return _r;
1669 : : }
1670 : : next_after_fail561:;
1671 : : }
1672 : : return NULL_TREE;
1673 : : }
1674 : :
1675 : : tree
1676 : 2363 : generic_simplify_305 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1677 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1678 : : const enum tree_code ARG_UNUSED (div))
1679 : : {
1680 : 2363 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1681 : 2363 : if (!integer_zerop (captures[1])
1682 : : )
1683 : : {
1684 : 1737 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail571;
1685 : 1737 : {
1686 : 1737 : tree _r;
1687 : 1737 : _r = captures[0];
1688 : 1737 : if (TREE_SIDE_EFFECTS (captures[1]))
1689 : 59 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1690 : 1737 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 463, __FILE__, __LINE__, true);
1691 : 1737 : return _r;
1692 : : }
1693 : 0 : next_after_fail571:;
1694 : : }
1695 : : return NULL_TREE;
1696 : : }
1697 : :
1698 : : tree
1699 : 2672 : generic_simplify_311 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1700 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1701 : : const enum tree_code ARG_UNUSED (div))
1702 : : {
1703 : 2672 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1704 : 2672 : {
1705 : 2672 : wi::overflow_type overflow;
1706 : 2672 : wide_int mul = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[3]),
1707 : 5344 : TYPE_SIGN (type), &overflow);
1708 : 2672 : if (div == EXACT_DIV_EXPR
1709 : 2672 : || optimize_successive_divisions_p (captures[3], captures[0])
1710 : : )
1711 : : {
1712 : 0 : if (!overflow
1713 : : )
1714 : : {
1715 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail577;
1716 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail577;
1717 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail577;
1718 : 0 : {
1719 : 0 : tree res_op0;
1720 : 0 : res_op0 = captures[1];
1721 : 0 : tree res_op1;
1722 : 0 : res_op1 = wide_int_to_tree (type, mul);
1723 : 0 : tree _r;
1724 : 0 : _r = fold_build2_loc (loc, div, type, res_op0, res_op1);
1725 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 469, __FILE__, __LINE__, true);
1726 : 0 : return _r;
1727 : : }
1728 : 2672 : next_after_fail577:;
1729 : : }
1730 : : else
1731 : : {
1732 : 0 : if (TYPE_UNSIGNED (type)
1733 : 0 : || mul != wi::min_value (TYPE_PRECISION (type), SIGNED)
1734 : : )
1735 : : {
1736 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail578;
1737 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail578;
1738 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail578;
1739 : 0 : {
1740 : 0 : tree _r;
1741 : 0 : _r = build_zero_cst (type);
1742 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1743 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1744 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 470, __FILE__, __LINE__, true);
1745 : 0 : return _r;
1746 : : }
1747 : 2672 : next_after_fail578:;
1748 : : }
1749 : : }
1750 : : }
1751 : 0 : }
1752 : 2672 : return NULL_TREE;
1753 : : }
1754 : :
1755 : : tree
1756 : 7253 : generic_simplify_322 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1757 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1758 : : const enum tree_code ARG_UNUSED (mod))
1759 : : {
1760 : 7253 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1761 : 0 : if (ANY_INTEGRAL_TYPE_P (type)
1762 : 7253 : && TYPE_OVERFLOW_UNDEFINED (type)
1763 : 14506 : && wi::multiple_of_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
1764 : 195 : TYPE_SIGN (type))
1765 : : )
1766 : : {
1767 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail589;
1768 : 0 : {
1769 : 0 : tree _r;
1770 : 0 : _r = build_zero_cst (type);
1771 : 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1772 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1773 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1774 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1775 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
1776 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
1777 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 481, __FILE__, __LINE__, true);
1778 : 0 : return _r;
1779 : : }
1780 : 0 : next_after_fail589:;
1781 : : }
1782 : : return NULL_TREE;
1783 : : }
1784 : :
1785 : : tree
1786 : 24 : generic_simplify_334 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1787 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1788 : : const combined_fn ARG_UNUSED (POW))
1789 : : {
1790 : 24 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1791 : 24 : if (flag_unsafe_math_optimizations && canonicalize_math_p ()
1792 : : )
1793 : : {
1794 : 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail603;
1795 : 6 : {
1796 : 6 : tree res_op0;
1797 : 6 : res_op0 = captures[0];
1798 : 6 : tree res_op1;
1799 : 6 : {
1800 : 6 : tree _o1[2], _r1;
1801 : 6 : _o1[0] = captures[2];
1802 : 6 : {
1803 : 6 : tree _o2[1], _r2;
1804 : 6 : _o2[0] = captures[3];
1805 : 6 : _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
1806 : 6 : _o1[1] = _r2;
1807 : : }
1808 : 6 : _r1 = maybe_build_call_expr_loc (loc, POW, TREE_TYPE (_o1[0]), 2, _o1[0], _o1[1]);
1809 : 6 : if (!_r1)
1810 : 0 : goto next_after_fail603;
1811 : 6 : res_op1 = _r1;
1812 : : }
1813 : 6 : tree _r;
1814 : 6 : _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
1815 : 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 495, __FILE__, __LINE__, true);
1816 : 6 : return _r;
1817 : : }
1818 : : next_after_fail603:;
1819 : : }
1820 : : return NULL_TREE;
1821 : : }
1822 : :
1823 : : tree
1824 : 2003 : generic_simplify_343 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1825 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1826 : : {
1827 : 2003 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1828 : 2003 : if (INTEGRAL_TYPE_P (type)
1829 : : )
1830 : : {
1831 : 2003 : {
1832 : 2003 : tree itype = TREE_TYPE (captures[2]);
1833 : 2003 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail618;
1834 : 2003 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail618;
1835 : 2003 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail618;
1836 : 2003 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail618;
1837 : 2003 : {
1838 : 2003 : tree res_op0;
1839 : 2003 : {
1840 : 2003 : tree _o1[2], _r1;
1841 : 2003 : _o1[0] = captures[2];
1842 : 2003 : {
1843 : 2003 : tree _o2[1], _r2;
1844 : 2003 : _o2[0] = captures[0];
1845 : 2003 : if (TREE_TYPE (_o2[0]) != itype)
1846 : : {
1847 : 2003 : _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
1848 : : }
1849 : : else
1850 : : _r2 = _o2[0];
1851 : 2003 : _o1[1] = _r2;
1852 : : }
1853 : 2003 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
1854 : 2003 : res_op0 = _r1;
1855 : : }
1856 : 2003 : tree _r;
1857 : 2003 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
1858 : 2003 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 509, __FILE__, __LINE__, true);
1859 : 2003 : return _r;
1860 : : }
1861 : : next_after_fail618:;
1862 : : }
1863 : : }
1864 : : return NULL_TREE;
1865 : : }
1866 : :
1867 : : tree
1868 : 0 : generic_simplify_348 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1869 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
1870 : : {
1871 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1872 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail623;
1873 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail623;
1874 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail623;
1875 : 0 : {
1876 : 0 : tree _r;
1877 : 0 : _r = captures[2];
1878 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 514, __FILE__, __LINE__, true);
1879 : : return _r;
1880 : : }
1881 : : next_after_fail623:;
1882 : : return NULL_TREE;
1883 : : }
1884 : :
1885 : : tree
1886 : 0 : generic_simplify_354 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1887 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1888 : : const enum tree_code ARG_UNUSED (op))
1889 : : {
1890 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1891 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail629;
1892 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail629;
1893 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail629;
1894 : 0 : {
1895 : 0 : tree _r;
1896 : 0 : _r = captures[2];
1897 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 520, __FILE__, __LINE__, true);
1898 : : return _r;
1899 : : }
1900 : : next_after_fail629:;
1901 : : return NULL_TREE;
1902 : : }
1903 : :
1904 : : tree
1905 : 9 : generic_simplify_361 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1906 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
1907 : : const combined_fn ARG_UNUSED (func))
1908 : : {
1909 : 9 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1910 : 9 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail637;
1911 : 9 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail637;
1912 : 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail637;
1913 : 9 : {
1914 : 9 : tree _r;
1915 : 9 : _r = captures[2];
1916 : 9 : if (TREE_SIDE_EFFECTS (captures[1]))
1917 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1918 : 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 528, __FILE__, __LINE__, true);
1919 : : return _r;
1920 : : }
1921 : : next_after_fail637:;
1922 : : return NULL_TREE;
1923 : : }
1924 : :
1925 : : tree
1926 : 158064 : generic_simplify_369 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1927 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1928 : : const enum tree_code ARG_UNUSED (op))
1929 : : {
1930 : 158064 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1931 : 316128 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1932 : 316128 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
1933 : : )
1934 : : {
1935 : 64956 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail649;
1936 : 64956 : {
1937 : 64956 : tree res_op0;
1938 : 64956 : res_op0 = captures[0];
1939 : 64956 : tree res_op1;
1940 : 64956 : res_op1 = captures[2];
1941 : 64956 : tree _r;
1942 : 64956 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
1943 : 64956 : if (TREE_SIDE_EFFECTS (captures[1]))
1944 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1945 : 64956 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 539, __FILE__, __LINE__, true);
1946 : 64956 : return _r;
1947 : : }
1948 : 0 : next_after_fail649:;
1949 : : }
1950 : : return NULL_TREE;
1951 : : }
1952 : :
1953 : : tree
1954 : 3936 : generic_simplify_374 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
1955 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
1956 : : const enum tree_code ARG_UNUSED (cmp),
1957 : : const enum tree_code ARG_UNUSED (bitop))
1958 : : {
1959 : 3936 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
1960 : 3936 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
1961 : : )
1962 : : {
1963 : 3936 : if (bitop == BIT_AND_EXPR || tree_expr_nonnegative_p (captures[1])
1964 : : )
1965 : : {
1966 : 3936 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail654;
1967 : 3936 : {
1968 : 3936 : tree _r;
1969 : 3936 : _r = constant_boolean_node (cmp == GE_EXPR || cmp == LE_EXPR, type);
1970 : 3936 : if (TREE_SIDE_EFFECTS (captures[0]))
1971 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1972 : 3936 : if (TREE_SIDE_EFFECTS (captures[1]))
1973 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1974 : 3936 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 544, __FILE__, __LINE__, true);
1975 : 3936 : return _r;
1976 : : }
1977 : 0 : next_after_fail654:;
1978 : : }
1979 : : else
1980 : : {
1981 : 0 : if (TREE_CODE (captures[1]) == INTEGER_CST && wi::neg_p (wi::to_wide (captures[1]))
1982 : : )
1983 : : {
1984 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail655;
1985 : 0 : {
1986 : 0 : tree _r;
1987 : 0 : _r = constant_boolean_node (cmp == LT_EXPR, type);
1988 : 0 : if (TREE_SIDE_EFFECTS (captures[0]))
1989 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
1990 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
1991 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
1992 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 545, __FILE__, __LINE__, true);
1993 : 0 : return _r;
1994 : : }
1995 : 0 : next_after_fail655:;
1996 : : }
1997 : : }
1998 : : }
1999 : : return NULL_TREE;
2000 : : }
2001 : :
2002 : : tree
2003 : 1051 : generic_simplify_388 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2004 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2005 : : const enum tree_code ARG_UNUSED (cmp),
2006 : : const enum tree_code ARG_UNUSED (out))
2007 : : {
2008 : 1051 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2009 : 1051 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2]))
2010 : : )
2011 : : {
2012 : 1033 : {
2013 : 1033 : tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
2014 : 1033 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail701;
2015 : 1021 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail701;
2016 : 1021 : {
2017 : 1021 : tree res_op0;
2018 : 1021 : {
2019 : 1021 : tree _o1[1], _r1;
2020 : 1021 : {
2021 : 1021 : tree _o2[2], _r2;
2022 : 1021 : _o2[0] = captures[2];
2023 : 1021 : _o2[1] = captures[1];
2024 : 1021 : _r2 = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, _o2[0], _o2[1]);
2025 : 1021 : if (!_r2)
2026 : 0 : goto next_after_fail701;
2027 : 1021 : _o1[0] = _r2;
2028 : : }
2029 : 1021 : _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
2030 : 1021 : res_op0 = _r1;
2031 : : }
2032 : 1021 : tree res_op1;
2033 : 1021 : res_op1 = build_zero_cst (t);
2034 : 1021 : tree _r;
2035 : 1021 : _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
2036 : 1021 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 574, __FILE__, __LINE__, true);
2037 : 1021 : return _r;
2038 : : }
2039 : : next_after_fail701:;
2040 : : }
2041 : : }
2042 : : return NULL_TREE;
2043 : : }
2044 : :
2045 : : tree
2046 : 12014 : generic_simplify_395 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2047 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2048 : : const enum tree_code ARG_UNUSED (cmp),
2049 : : const enum tree_code ARG_UNUSED (eqcmp))
2050 : : {
2051 : 12014 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2052 : 12014 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
2053 : : )
2054 : : {
2055 : 12014 : {
2056 : 12014 : tree ty = TREE_TYPE (captures[0]);
2057 : 12014 : unsigned prec = TYPE_PRECISION (ty);
2058 : 12014 : wide_int mask = wi::to_wide (captures[2], prec);
2059 : 12014 : wide_int rhs = wi::to_wide (captures[3], prec);
2060 : 12014 : signop sgn = TYPE_SIGN (ty);
2061 : 33807 : if ((mask & (mask + 1)) == 0 && wi::gt_p (rhs, 0, sgn)
2062 : 43422 : && (rhs & (rhs + 1)) == 0 && wi::ge_p (mask, rhs, sgn)
2063 : : )
2064 : : {
2065 : 560 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail715;
2066 : 560 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail715;
2067 : 560 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail715;
2068 : 560 : {
2069 : 560 : tree res_op0;
2070 : 560 : {
2071 : 560 : tree _o1[2], _r1;
2072 : 560 : _o1[0] = captures[1];
2073 : 560 : _o1[1] = wide_int_to_tree (ty, mask - rhs);
2074 : 560 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2075 : 560 : res_op0 = _r1;
2076 : : }
2077 : 560 : tree res_op1;
2078 : 560 : res_op1 = build_zero_cst (ty);
2079 : 560 : tree _r;
2080 : 560 : _r = fold_build2_loc (loc, eqcmp, type, res_op0, res_op1);
2081 : 560 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 588, __FILE__, __LINE__, true);
2082 : 560 : return _r;
2083 : : }
2084 : 11454 : next_after_fail715:;
2085 : : }
2086 : 12014 : }
2087 : : }
2088 : : return NULL_TREE;
2089 : : }
2090 : :
2091 : : tree
2092 : 1 : generic_simplify_401 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2093 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2094 : : const combined_fn ARG_UNUSED (logs),
2095 : : const combined_fn ARG_UNUSED (exps),
2096 : : const enum tree_code ARG_UNUSED (cmp))
2097 : : {
2098 : 1 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2099 : 1 : if (flag_unsafe_math_optimizations
2100 : : )
2101 : : {
2102 : 1 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
2103 : 1 : && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
2104 : 1 : && ! flag_trapping_math
2105 : 2 : && ! flag_errno_math
2106 : : )
2107 : : {
2108 : 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail721;
2109 : 1 : {
2110 : 1 : tree res_op0;
2111 : 1 : res_op0 = captures[1];
2112 : 1 : tree res_op1;
2113 : 1 : {
2114 : 1 : tree _o1[1], _r1;
2115 : 1 : _o1[0] = captures[2];
2116 : 1 : _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
2117 : 1 : if (!_r1)
2118 : 0 : goto next_after_fail721;
2119 : 1 : if (EXPR_P (_r1))
2120 : 1 : goto next_after_fail721;
2121 : 0 : res_op1 = _r1;
2122 : : }
2123 : 0 : tree _r;
2124 : 0 : _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
2125 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 590, __FILE__, __LINE__, true);
2126 : 0 : return _r;
2127 : : }
2128 : : next_after_fail721:;
2129 : : }
2130 : : }
2131 : : return NULL_TREE;
2132 : : }
2133 : :
2134 : : tree
2135 : 330 : generic_simplify_408 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2136 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2137 : : const enum tree_code ARG_UNUSED (shiftrotate))
2138 : : {
2139 : 330 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2140 : 330 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail732;
2141 : 330 : {
2142 : 330 : tree _r;
2143 : 330 : _r = captures[0];
2144 : 330 : if (TREE_SIDE_EFFECTS (captures[1]))
2145 : 42 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2146 : 330 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 601, __FILE__, __LINE__, true);
2147 : : return _r;
2148 : : }
2149 : 0 : next_after_fail732:;
2150 : 0 : return NULL_TREE;
2151 : : }
2152 : :
2153 : : tree
2154 : 67 : generic_simplify_414 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2155 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2156 : : {
2157 : 67 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2158 : 67 : if (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type))
2159 : : )
2160 : : {
2161 : 67 : if (TYPE_UNSIGNED (type)
2162 : : )
2163 : : {
2164 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail741;
2165 : 2 : {
2166 : 2 : tree res_op0;
2167 : 2 : {
2168 : 2 : tree _o1[1], _r1;
2169 : 2 : _o1[0] = captures[0];
2170 : 2 : if (TREE_TYPE (_o1[0]) != type)
2171 : : {
2172 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2173 : : }
2174 : : else
2175 : : _r1 = _o1[0];
2176 : 2 : res_op0 = _r1;
2177 : : }
2178 : 2 : tree res_op1;
2179 : 2 : {
2180 : 2 : tree _o1[2], _r1;
2181 : 2 : _o1[0] = build_minus_one_cst (type);
2182 : 2 : _o1[1] = captures[1];
2183 : 2 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2184 : 2 : res_op1 = _r1;
2185 : : }
2186 : 2 : tree _r;
2187 : 2 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
2188 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 608, __FILE__, __LINE__, true);
2189 : 2 : return _r;
2190 : : }
2191 : 0 : next_after_fail741:;
2192 : : }
2193 : : else
2194 : : {
2195 : 65 : if (INTEGRAL_TYPE_P (type)
2196 : : )
2197 : : {
2198 : 65 : {
2199 : 65 : int width = element_precision (type) - tree_to_uhwi (captures[1]);
2200 : 65 : tree stype = NULL_TREE;
2201 : 130 : if (width <= MAX_FIXED_MODE_SIZE)
2202 : 65 : stype = build_nonstandard_integer_type (width, 0);
2203 : 65 : if (stype && (width == 1 || type_has_mode_precision_p (stype))
2204 : : )
2205 : : {
2206 : 25 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail742;
2207 : 25 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail742;
2208 : 25 : {
2209 : 25 : tree res_op0;
2210 : 25 : {
2211 : 25 : tree _o1[1], _r1;
2212 : 25 : _o1[0] = captures[0];
2213 : 25 : if (TREE_TYPE (_o1[0]) != stype)
2214 : : {
2215 : 25 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
2216 : : }
2217 : : else
2218 : : _r1 = _o1[0];
2219 : 25 : res_op0 = _r1;
2220 : : }
2221 : 25 : tree _r;
2222 : 25 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2223 : 25 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 609, __FILE__, __LINE__, true);
2224 : 25 : return _r;
2225 : : }
2226 : : next_after_fail742:;
2227 : : }
2228 : : }
2229 : : }
2230 : : }
2231 : : }
2232 : : return NULL_TREE;
2233 : : }
2234 : :
2235 : : tree
2236 : 2469557 : generic_simplify_422 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2237 : : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
2238 : : const enum tree_code ARG_UNUSED (op))
2239 : : {
2240 : 2469557 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2241 : 2469557 : if (INTEGRAL_TYPE_P (type)
2242 : 2009451 : && op != MULT_EXPR
2243 : 2009451 : && op != RDIV_EXPR
2244 : 1315990 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2245 : 1315990 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2246 : 1315990 : && type_has_mode_precision_p (TREE_TYPE (captures[2]))
2247 : 1315615 : && type_has_mode_precision_p (TREE_TYPE (captures[4]))
2248 : 1314825 : && type_has_mode_precision_p (type)
2249 : 1311020 : && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
2250 : 0 : && types_match (captures[2], type)
2251 : 2469557 : && (types_match (captures[2], captures[4])
2252 : 0 : || poly_int_tree_p (captures[3]))
2253 : : )
2254 : : {
2255 : 0 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
2256 : : )
2257 : : {
2258 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail760;
2259 : 0 : {
2260 : 0 : tree res_op0;
2261 : 0 : res_op0 = captures[2];
2262 : 0 : tree res_op1;
2263 : 0 : {
2264 : 0 : tree _o1[1], _r1;
2265 : 0 : _o1[0] = captures[4];
2266 : 0 : if (TREE_TYPE (_o1[0]) != type)
2267 : : {
2268 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
2269 : : }
2270 : : else
2271 : : _r1 = _o1[0];
2272 : 0 : res_op1 = _r1;
2273 : : }
2274 : 0 : tree _r;
2275 : 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2276 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 619, __FILE__, __LINE__, true);
2277 : 0 : return _r;
2278 : : }
2279 : 0 : next_after_fail760:;
2280 : : }
2281 : : else
2282 : : {
2283 : 0 : {
2284 : 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
2285 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail761;
2286 : 0 : {
2287 : 0 : tree res_op0;
2288 : 0 : {
2289 : 0 : tree _o1[2], _r1;
2290 : 0 : {
2291 : 0 : tree _o2[1], _r2;
2292 : 0 : _o2[0] = captures[2];
2293 : 0 : if (TREE_TYPE (_o2[0]) != utype)
2294 : : {
2295 : 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2296 : : }
2297 : : else
2298 : : _r2 = _o2[0];
2299 : 0 : _o1[0] = _r2;
2300 : : }
2301 : 0 : {
2302 : 0 : tree _o2[1], _r2;
2303 : 0 : _o2[0] = captures[4];
2304 : 0 : if (TREE_TYPE (_o2[0]) != utype)
2305 : : {
2306 : 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2307 : : }
2308 : : else
2309 : : _r2 = _o2[0];
2310 : 0 : _o1[1] = _r2;
2311 : : }
2312 : 0 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2313 : 0 : res_op0 = _r1;
2314 : : }
2315 : 0 : tree _r;
2316 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2317 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 620, __FILE__, __LINE__, true);
2318 : 0 : return _r;
2319 : : }
2320 : 0 : next_after_fail761:;
2321 : : }
2322 : : }
2323 : : }
2324 : : else
2325 : : {
2326 : 2450444 : if (FLOAT_TYPE_P (type)
2327 : 2488670 : && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
2328 : 19113 : == DECIMAL_FLOAT_TYPE_P (type)
2329 : : )
2330 : : {
2331 : 19090 : {
2332 : 19090 : tree arg0 = strip_float_extensions (captures[2]);
2333 : 19090 : tree arg1 = strip_float_extensions (captures[4]);
2334 : 19090 : tree itype = TREE_TYPE (captures[0]);
2335 : 19090 : tree ty1 = TREE_TYPE (arg0);
2336 : 19090 : tree ty2 = TREE_TYPE (arg1);
2337 : 19090 : enum tree_code code = TREE_CODE (itype);
2338 : 0 : if (FLOAT_TYPE_P (ty1)
2339 : 19090 : && FLOAT_TYPE_P (ty2)
2340 : : )
2341 : : {
2342 : 19090 : {
2343 : 19090 : tree newtype = type;
2344 : 19090 : if (TYPE_MODE (ty1) == SDmode
2345 : 19081 : || TYPE_MODE (ty2) == SDmode
2346 : 38171 : || TYPE_MODE (type) == SDmode)
2347 : 9 : newtype = dfloat32_type_node;
2348 : 19090 : if (TYPE_MODE (ty1) == DDmode
2349 : 19084 : || TYPE_MODE (ty2) == DDmode
2350 : 38174 : || TYPE_MODE (type) == DDmode)
2351 : 6 : newtype = dfloat64_type_node;
2352 : 19090 : if (TYPE_MODE (ty1) == TDmode
2353 : 19090 : || TYPE_MODE (ty2) == TDmode
2354 : 38180 : || TYPE_MODE (type) == TDmode)
2355 : 15 : newtype = dfloat128_type_node;
2356 : 19090 : if ((newtype == dfloat32_type_node
2357 : 19090 : || newtype == dfloat64_type_node
2358 : 19090 : || newtype == dfloat128_type_node)
2359 : 15 : && newtype == type
2360 : 19096 : && types_match (newtype, type)
2361 : : )
2362 : : {
2363 : 6 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail762;
2364 : 0 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail762;
2365 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail762;
2366 : 0 : {
2367 : 0 : tree res_op0;
2368 : 0 : {
2369 : 0 : tree _o1[1], _r1;
2370 : 0 : _o1[0] = captures[2];
2371 : 0 : if (TREE_TYPE (_o1[0]) != newtype)
2372 : : {
2373 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
2374 : : }
2375 : : else
2376 : : _r1 = _o1[0];
2377 : 0 : res_op0 = _r1;
2378 : : }
2379 : 0 : tree res_op1;
2380 : 0 : {
2381 : 0 : tree _o1[1], _r1;
2382 : 0 : _o1[0] = captures[4];
2383 : 0 : if (TREE_TYPE (_o1[0]) != newtype)
2384 : : {
2385 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
2386 : : }
2387 : : else
2388 : : _r1 = _o1[0];
2389 : 0 : res_op1 = _r1;
2390 : : }
2391 : 0 : tree _r;
2392 : 0 : _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
2393 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 621, __FILE__, __LINE__, true);
2394 : 0 : return _r;
2395 : : }
2396 : : next_after_fail762:;
2397 : : }
2398 : : else
2399 : : {
2400 : 19084 : {
2401 : 19084 : if (element_precision (ty1) > element_precision (newtype))
2402 : 745 : newtype = ty1;
2403 : 19084 : if (element_precision (ty2) > element_precision (newtype))
2404 : 1 : newtype = ty2;
2405 : 19084 : if (element_precision (newtype) < element_precision (itype)
2406 : 17784 : && (!VECTOR_MODE_P (TYPE_MODE (newtype))
2407 : 0 : || target_supports_op_p (newtype, op, optab_default))
2408 : 17784 : && (flag_unsafe_math_optimizations
2409 : 17772 : || (element_precision (newtype) == element_precision (type)
2410 : 17768 : && real_can_shorten_arithmetic (element_mode (itype),
2411 : : element_mode (type))
2412 : 7402 : && !excess_precision_type (newtype)))
2413 : 19757 : && !types_match (itype, newtype)
2414 : : )
2415 : : {
2416 : 673 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail763;
2417 : 673 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail763;
2418 : 655 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail763;
2419 : 655 : {
2420 : 655 : tree res_op0;
2421 : 655 : {
2422 : 655 : tree _o1[2], _r1;
2423 : 655 : {
2424 : 655 : tree _o2[1], _r2;
2425 : 655 : _o2[0] = captures[2];
2426 : 655 : if (TREE_TYPE (_o2[0]) != newtype)
2427 : : {
2428 : 655 : _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
2429 : : }
2430 : : else
2431 : : _r2 = _o2[0];
2432 : 655 : _o1[0] = _r2;
2433 : : }
2434 : 655 : {
2435 : 655 : tree _o2[1], _r2;
2436 : 655 : _o2[0] = captures[4];
2437 : 655 : if (TREE_TYPE (_o2[0]) != newtype)
2438 : : {
2439 : 604 : _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
2440 : : }
2441 : : else
2442 : : _r2 = _o2[0];
2443 : 655 : _o1[1] = _r2;
2444 : : }
2445 : 655 : _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2446 : 655 : res_op0 = _r1;
2447 : : }
2448 : 655 : tree _r;
2449 : 655 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2450 : 655 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 622, __FILE__, __LINE__, true);
2451 : 655 : return _r;
2452 : : }
2453 : : next_after_fail763:;
2454 : : }
2455 : : }
2456 : : }
2457 : : }
2458 : : }
2459 : : }
2460 : : }
2461 : : }
2462 : : return NULL_TREE;
2463 : : }
2464 : :
2465 : : tree
2466 : 1667 : generic_simplify_453 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2467 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2468 : : {
2469 : 1667 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2470 : 1667 : {
2471 : 1667 : bool wascmp;
2472 : 1667 : if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
2473 : 1667 : || bitwise_inverted_equal_p (captures[1], captures[2], wascmp)
2474 : : )
2475 : : {
2476 : 8 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail797;
2477 : 8 : {
2478 : 8 : tree _r;
2479 : 8 : _r = wascmp ? constant_boolean_node (false, type) : build_zero_cst (type);
2480 : 8 : if (TREE_SIDE_EFFECTS (captures[0]))
2481 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
2482 : 8 : if (TREE_SIDE_EFFECTS (captures[1]))
2483 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2484 : 8 : if (TREE_SIDE_EFFECTS (captures[2]))
2485 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2486 : 8 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 651, __FILE__, __LINE__, true);
2487 : 8 : return _r;
2488 : : }
2489 : 0 : next_after_fail797:;
2490 : : }
2491 : : }
2492 : 1659 : return NULL_TREE;
2493 : : }
2494 : :
2495 : : tree
2496 : 8 : generic_simplify_463 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2497 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2498 : : const enum tree_code ARG_UNUSED (eqne))
2499 : : {
2500 : 8 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2501 : 8 : if (eqne == EQ_EXPR
2502 : : )
2503 : : {
2504 : 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail813;
2505 : 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail813;
2506 : 4 : {
2507 : 4 : tree _r;
2508 : 4 : _r = constant_boolean_node (false, type);
2509 : 4 : if (TREE_SIDE_EFFECTS (captures[2]))
2510 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2511 : 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 663, __FILE__, __LINE__, true);
2512 : 4 : return _r;
2513 : : }
2514 : : next_after_fail813:;
2515 : : }
2516 : : else
2517 : : {
2518 : 4 : if (eqne == NE_EXPR
2519 : : )
2520 : : {
2521 : 4 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail814;
2522 : 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail814;
2523 : 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail814;
2524 : 4 : {
2525 : 4 : tree _r;
2526 : 4 : _r = captures[0];
2527 : 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 664, __FILE__, __LINE__, true);
2528 : 4 : return _r;
2529 : : }
2530 : : next_after_fail814:;
2531 : : }
2532 : : }
2533 : : return NULL_TREE;
2534 : : }
2535 : :
2536 : : tree
2537 : 0 : generic_simplify_469 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2538 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2539 : : const enum tree_code ARG_UNUSED (eqne))
2540 : : {
2541 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2542 : 0 : if (eqne == EQ_EXPR
2543 : : )
2544 : : {
2545 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail839;
2546 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail839;
2547 : 0 : {
2548 : 0 : tree _r;
2549 : 0 : _r = constant_boolean_node (false, type);
2550 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
2551 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2552 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 663, __FILE__, __LINE__, true);
2553 : 0 : return _r;
2554 : : }
2555 : : next_after_fail839:;
2556 : : }
2557 : : else
2558 : : {
2559 : 0 : if (eqne == NE_EXPR
2560 : : )
2561 : : {
2562 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail840;
2563 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail840;
2564 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail840;
2565 : 0 : {
2566 : 0 : tree _r;
2567 : 0 : _r = captures[0];
2568 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 664, __FILE__, __LINE__, true);
2569 : 0 : return _r;
2570 : : }
2571 : : next_after_fail840:;
2572 : : }
2573 : : }
2574 : : return NULL_TREE;
2575 : : }
2576 : :
2577 : : tree
2578 : 4 : generic_simplify_474 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2579 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2580 : : {
2581 : 4 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2582 : 4 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail857;
2583 : 4 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail857;
2584 : 4 : {
2585 : 4 : tree _r;
2586 : 4 : _r = captures[2];
2587 : 4 : if (TREE_SIDE_EFFECTS (captures[1]))
2588 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
2589 : 4 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 679, __FILE__, __LINE__, true);
2590 : : return _r;
2591 : : }
2592 : : next_after_fail857:;
2593 : : return NULL_TREE;
2594 : : }
2595 : :
2596 : : tree
2597 : 0 : generic_simplify_476 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2598 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2599 : : {
2600 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2601 : 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2602 : 0 : && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
2603 : : )
2604 : : {
2605 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail859;
2606 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail859;
2607 : 0 : {
2608 : 0 : tree res_op0;
2609 : 0 : res_op0 = captures[3];
2610 : 0 : tree res_op1;
2611 : 0 : {
2612 : 0 : tree _o1[2], _r1;
2613 : 0 : _o1[0] = captures[1];
2614 : 0 : _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
2615 : 0 : _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2616 : 0 : res_op1 = _r1;
2617 : : }
2618 : 0 : tree _r;
2619 : 0 : _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
2620 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 681, __FILE__, __LINE__, true);
2621 : 0 : return _r;
2622 : : }
2623 : : next_after_fail859:;
2624 : : }
2625 : : return NULL_TREE;
2626 : : }
2627 : :
2628 : : tree
2629 : 0 : generic_simplify_479 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2630 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
2631 : : {
2632 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2633 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail866;
2634 : 0 : {
2635 : 0 : tree res_op0;
2636 : 0 : res_op0 = captures[0];
2637 : 0 : tree res_op1;
2638 : 0 : res_op1 = captures[1];
2639 : 0 : tree _r;
2640 : 0 : _r = fold_build2_loc (loc, LTGT_EXPR, type, res_op0, res_op1);
2641 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 682, __FILE__, __LINE__, true);
2642 : : return _r;
2643 : : }
2644 : 0 : next_after_fail866:;
2645 : 0 : return NULL_TREE;
2646 : : }
2647 : :
2648 : : tree
2649 : 453940 : generic_simplify_482 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2650 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
2651 : : const enum tree_code ARG_UNUSED (op))
2652 : : {
2653 : 453940 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2654 : 907880 : if (INTEGRAL_TYPE_P (type)
2655 : 453940 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
2656 : 67111 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2657 : 67111 : && type_has_mode_precision_p (TREE_TYPE (captures[2]))
2658 : 67111 : && type_has_mode_precision_p (TREE_TYPE (captures[4]))
2659 : 67111 : && type_has_mode_precision_p (type)
2660 : 67111 : && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
2661 : 52 : && types_match (captures[2], captures[4])
2662 : 33 : && (tree_int_cst_min_precision (captures[5], TYPE_SIGN (TREE_TYPE (captures[2])))
2663 : 33 : <= TYPE_PRECISION (TREE_TYPE (captures[2])))
2664 : 453967 : && (wi::to_wide (captures[5])
2665 : 453994 : & wi::mask (TYPE_PRECISION (TREE_TYPE (captures[2])),
2666 : 453994 : true, TYPE_PRECISION (type))) == 0
2667 : : )
2668 : : {
2669 : 25 : if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
2670 : : )
2671 : : {
2672 : 12 : {
2673 : 12 : tree ntype = TREE_TYPE (captures[2]);
2674 : 12 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail869;
2675 : 12 : {
2676 : 12 : tree res_op0;
2677 : 12 : {
2678 : 12 : tree _o1[2], _r1;
2679 : 12 : {
2680 : 12 : tree _o2[2], _r2;
2681 : 12 : _o2[0] = captures[2];
2682 : 12 : _o2[1] = captures[4];
2683 : 12 : _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2684 : 12 : _o1[0] = _r2;
2685 : : }
2686 : 12 : {
2687 : 12 : tree _o2[1], _r2;
2688 : 12 : _o2[0] = captures[5];
2689 : 12 : if (TREE_TYPE (_o2[0]) != ntype)
2690 : : {
2691 : 12 : _r2 = fold_build1_loc (loc, NOP_EXPR, ntype, _o2[0]);
2692 : : }
2693 : : else
2694 : : _r2 = _o2[0];
2695 : 12 : _o1[1] = _r2;
2696 : : }
2697 : 12 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2698 : 12 : res_op0 = _r1;
2699 : : }
2700 : 12 : tree _r;
2701 : 12 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2702 : 12 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 684, __FILE__, __LINE__, true);
2703 : 12 : return _r;
2704 : : }
2705 : 0 : next_after_fail869:;
2706 : : }
2707 : : }
2708 : : else
2709 : : {
2710 : 13 : {
2711 : 13 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
2712 : 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail870;
2713 : 13 : {
2714 : 13 : tree res_op0;
2715 : 13 : {
2716 : 13 : tree _o1[2], _r1;
2717 : 13 : {
2718 : 13 : tree _o2[2], _r2;
2719 : 13 : {
2720 : 13 : tree _o3[1], _r3;
2721 : 13 : _o3[0] = captures[2];
2722 : 13 : if (TREE_TYPE (_o3[0]) != utype)
2723 : : {
2724 : 13 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2725 : : }
2726 : : else
2727 : : _r3 = _o3[0];
2728 : 13 : _o2[0] = _r3;
2729 : : }
2730 : 13 : {
2731 : 13 : tree _o3[1], _r3;
2732 : 13 : _o3[0] = captures[4];
2733 : 13 : if (TREE_TYPE (_o3[0]) != utype)
2734 : : {
2735 : 13 : _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
2736 : : }
2737 : : else
2738 : : _r3 = _o3[0];
2739 : 13 : _o2[1] = _r3;
2740 : : }
2741 : 13 : _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2742 : 13 : _o1[0] = _r2;
2743 : : }
2744 : 13 : {
2745 : 13 : tree _o2[1], _r2;
2746 : 13 : _o2[0] = captures[5];
2747 : 13 : if (TREE_TYPE (_o2[0]) != utype)
2748 : : {
2749 : 13 : _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
2750 : : }
2751 : : else
2752 : : _r2 = _o2[0];
2753 : 13 : _o1[1] = _r2;
2754 : : }
2755 : 13 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2756 : 13 : res_op0 = _r1;
2757 : : }
2758 : 13 : tree _r;
2759 : 13 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2760 : 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 685, __FILE__, __LINE__, true);
2761 : 13 : return _r;
2762 : : }
2763 : 0 : next_after_fail870:;
2764 : : }
2765 : : }
2766 : : }
2767 : : return NULL_TREE;
2768 : : }
2769 : :
2770 : : tree
2771 : 39050 : generic_simplify_498 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2772 : : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2773 : : {
2774 : 39050 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2775 : 39050 : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type)
2776 : 39050 : && !HONOR_SIGNED_ZEROS (type)
2777 : : )
2778 : : {
2779 : 39050 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail887;
2780 : 39050 : {
2781 : 39050 : tree res_op0;
2782 : 39050 : {
2783 : 39050 : tree _o1[1], _r1;
2784 : 39050 : _o1[0] = captures[1];
2785 : 39050 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
2786 : 39050 : res_op0 = _r1;
2787 : : }
2788 : 39050 : tree res_op1;
2789 : 39050 : res_op1 = captures[0];
2790 : 39050 : tree _r;
2791 : 39050 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
2792 : 39050 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 700, __FILE__, __LINE__, true);
2793 : 39050 : return _r;
2794 : : }
2795 : 0 : next_after_fail887:;
2796 : : }
2797 : : return NULL_TREE;
2798 : : }
2799 : :
2800 : : tree
2801 : 404 : generic_simplify_503 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2802 : : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2803 : : {
2804 : 404 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2805 : 404 : if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
2806 : 404 : && wi::to_wide (captures[1]) == element_precision (type) - 1
2807 : : )
2808 : : {
2809 : 44 : {
2810 : 44 : tree stype = TREE_TYPE (captures[0]);
2811 : 44 : tree ntype = TYPE_UNSIGNED (stype) ? signed_type_for (stype)
2812 : 9 : : unsigned_type_for (stype);
2813 : 44 : if (VECTOR_TYPE_P (type)
2814 : : )
2815 : : {
2816 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail892;
2817 : 0 : {
2818 : 0 : tree res_op0;
2819 : 0 : {
2820 : 0 : tree _o1[2], _r1;
2821 : 0 : {
2822 : 0 : tree _o2[1], _r2;
2823 : 0 : _o2[0] = captures[0];
2824 : 0 : if (TREE_TYPE (_o2[0]) != ntype)
2825 : : {
2826 : 0 : _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o2[0]);
2827 : : }
2828 : : else
2829 : : _r2 = _o2[0];
2830 : 0 : _o1[0] = _r2;
2831 : : }
2832 : 0 : _o1[1] = captures[1];
2833 : 0 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2834 : 0 : res_op0 = _r1;
2835 : : }
2836 : 0 : tree _r;
2837 : 0 : _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
2838 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 705, __FILE__, __LINE__, true);
2839 : 0 : return _r;
2840 : : }
2841 : 0 : next_after_fail892:;
2842 : : }
2843 : : else
2844 : : {
2845 : 44 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail893;
2846 : 44 : {
2847 : 44 : tree res_op0;
2848 : 44 : {
2849 : 44 : tree _o1[2], _r1;
2850 : 44 : {
2851 : 44 : tree _o2[1], _r2;
2852 : 44 : _o2[0] = captures[0];
2853 : 44 : if (TREE_TYPE (_o2[0]) != ntype)
2854 : : {
2855 : 44 : _r2 = fold_build1_loc (loc, NOP_EXPR, ntype, _o2[0]);
2856 : : }
2857 : : else
2858 : : _r2 = _o2[0];
2859 : 44 : _o1[0] = _r2;
2860 : : }
2861 : 44 : _o1[1] = captures[1];
2862 : 44 : _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
2863 : 44 : res_op0 = _r1;
2864 : : }
2865 : 44 : tree _r;
2866 : 44 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2867 : 44 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 706, __FILE__, __LINE__, true);
2868 : 44 : return _r;
2869 : : }
2870 : 0 : next_after_fail893:;
2871 : : }
2872 : : }
2873 : : }
2874 : : return NULL_TREE;
2875 : : }
2876 : :
2877 : : tree
2878 : 5779 : generic_simplify_524 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
2879 : : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
2880 : : {
2881 : 5779 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
2882 : 11558 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
2883 : 5779 : && TYPE_MAX_VALUE (TREE_TYPE (captures[1]))
2884 : 5779 : && types_match (TREE_TYPE (captures[1]), TREE_TYPE (TREE_TYPE (captures[0])))
2885 : 8068 : && int_fits_type_p (captures[2], TREE_TYPE (captures[1]))
2886 : : )
2887 : : {
2888 : 1897 : if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
2889 : : )
2890 : : {
2891 : 929 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail927;
2892 : 929 : {
2893 : 929 : tree res_op0;
2894 : 929 : {
2895 : 929 : tree _o1[2], _r1;
2896 : 929 : _o1[0] = captures[1];
2897 : 929 : {
2898 : 929 : tree _o2[2], _r2;
2899 : 929 : _o2[0] = TYPE_MAX_VALUE (TREE_TYPE (captures[1]));
2900 : 929 : _o2[1] = captures[2];
2901 : 929 : _r2 = fold_build2_loc (loc, TRUNC_DIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2902 : 929 : if (EXPR_P (_r2))
2903 : 0 : goto next_after_fail927;
2904 : 929 : _o1[1] = _r2;
2905 : : }
2906 : 929 : _r1 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o1[0], _o1[1]);
2907 : 929 : res_op0 = _r1;
2908 : : }
2909 : 929 : tree _r;
2910 : 929 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2911 : 929 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 727, __FILE__, __LINE__, true);
2912 : 929 : return _r;
2913 : : }
2914 : : next_after_fail927:;
2915 : : }
2916 : : else
2917 : : {
2918 : 968 : if (TYPE_MIN_VALUE (TREE_TYPE (captures[1]))
2919 : : )
2920 : : {
2921 : 968 : if (integer_minus_onep (captures[2])
2922 : : )
2923 : : {
2924 : 56 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail928;
2925 : 56 : {
2926 : 56 : tree res_op0;
2927 : 56 : {
2928 : 56 : tree _o1[2], _r1;
2929 : 56 : _o1[0] = captures[1];
2930 : 56 : _o1[1] = TYPE_MIN_VALUE (TREE_TYPE (captures[1]));
2931 : 56 : _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
2932 : 56 : res_op0 = _r1;
2933 : : }
2934 : 56 : tree _r;
2935 : 56 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2936 : 56 : if (TREE_SIDE_EFFECTS (captures[2]))
2937 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
2938 : 56 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 728, __FILE__, __LINE__, true);
2939 : 56 : return _r;
2940 : : }
2941 : 0 : next_after_fail928:;
2942 : : }
2943 : : else
2944 : : {
2945 : 912 : {
2946 : 912 : tree div = fold_convert (TREE_TYPE (captures[1]), captures[2]);
2947 : 1824 : tree lo = int_const_binop (TRUNC_DIV_EXPR,
2948 : 912 : TYPE_MIN_VALUE (TREE_TYPE (captures[1])), div);
2949 : 1824 : tree hi = int_const_binop (TRUNC_DIV_EXPR,
2950 : 912 : TYPE_MAX_VALUE (TREE_TYPE (captures[1])), div);
2951 : 912 : tree etype = range_check_type (TREE_TYPE (captures[1]));
2952 : 912 : if (etype)
2953 : : {
2954 : 912 : if (wi::neg_p (wi::to_wide (div)))
2955 : 88 : std::swap (lo, hi);
2956 : 912 : lo = fold_convert (etype, lo);
2957 : 912 : hi = fold_convert (etype, hi);
2958 : 912 : hi = int_const_binop (MINUS_EXPR, hi, lo);
2959 : : }
2960 : 912 : if (etype
2961 : : )
2962 : : {
2963 : 912 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail929;
2964 : 912 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail929;
2965 : 912 : {
2966 : 912 : tree res_op0;
2967 : 912 : {
2968 : 912 : tree _o1[2], _r1;
2969 : 912 : {
2970 : 912 : tree _o2[2], _r2;
2971 : 912 : {
2972 : 912 : tree _o3[1], _r3;
2973 : 912 : _o3[0] = captures[1];
2974 : 912 : if (TREE_TYPE (_o3[0]) != etype)
2975 : : {
2976 : 912 : _r3 = fold_build1_loc (loc, NOP_EXPR, etype, _o3[0]);
2977 : : }
2978 : : else
2979 : : _r3 = _o3[0];
2980 : 912 : _o2[0] = _r3;
2981 : : }
2982 : 912 : _o2[1] = lo;
2983 : 912 : _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
2984 : 912 : _o1[0] = _r2;
2985 : : }
2986 : 912 : _o1[1] = hi;
2987 : 912 : _r1 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o1[0], _o1[1]);
2988 : 912 : res_op0 = _r1;
2989 : : }
2990 : 912 : tree _r;
2991 : 912 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
2992 : 912 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 729, __FILE__, __LINE__, true);
2993 : 912 : return _r;
2994 : : }
2995 : : next_after_fail929:;
2996 : : }
2997 : : }
2998 : : }
2999 : : }
3000 : : }
3001 : : }
3002 : : return NULL_TREE;
3003 : : }
3004 : :
3005 : : tree
3006 : 0 : generic_simplify_554 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3007 : : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3008 : : const combined_fn ARG_UNUSED (sinhs),
3009 : : const combined_fn ARG_UNUSED (atanhs),
3010 : : const combined_fn ARG_UNUSED (sqrts))
3011 : : {
3012 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3013 : 0 : if (!flag_errno_math
3014 : : )
3015 : : {
3016 : 0 : {
3017 : 0 : tree t_one = build_one_cst (type);
3018 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail959;
3019 : 0 : {
3020 : 0 : if (! tree_invariant_p (captures[1])) goto next_after_fail959;
3021 : 0 : tree res_op0;
3022 : 0 : res_op0 = unshare_expr (captures[1]);
3023 : 0 : tree res_op1;
3024 : 0 : {
3025 : 0 : tree _o1[1], _r1;
3026 : 0 : {
3027 : 0 : tree _o2[2], _r2;
3028 : 0 : {
3029 : 0 : tree _o3[2], _r3;
3030 : 0 : _o3[0] = t_one;
3031 : 0 : _o3[1] = unshare_expr (captures[1]);
3032 : 0 : _r3 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
3033 : 0 : _o2[0] = _r3;
3034 : : }
3035 : 0 : {
3036 : 0 : tree _o3[2], _r3;
3037 : 0 : _o3[0] = t_one;
3038 : 0 : _o3[1] = captures[1];
3039 : 0 : _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
3040 : 0 : _o2[1] = _r3;
3041 : : }
3042 : 0 : _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
3043 : 0 : _o1[0] = _r2;
3044 : : }
3045 : 0 : _r1 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o1[0]), 1, _o1[0]);
3046 : 0 : if (!_r1)
3047 : 0 : goto next_after_fail959;
3048 : 0 : res_op1 = _r1;
3049 : : }
3050 : 0 : tree _r;
3051 : 0 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
3052 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 754, __FILE__, __LINE__, true);
3053 : 0 : return _r;
3054 : : }
3055 : : next_after_fail959:;
3056 : : }
3057 : : }
3058 : : return NULL_TREE;
3059 : : }
3060 : :
3061 : : tree
3062 : 0 : generic_simplify_572 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3063 : : tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
3064 : : const combined_fn ARG_UNUSED (fmas))
3065 : : {
3066 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3067 : 0 : if (canonicalize_math_after_vectorization_p ()
3068 : : )
3069 : : {
3070 : : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail977;
3071 : : {
3072 : : tree res_op0;
3073 : : res_op0 = captures[0];
3074 : : tree res_op1;
3075 : : res_op1 = captures[1];
3076 : : tree res_op2;
3077 : : res_op2 = captures[2];
3078 : : tree _r;
3079 : : _r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
3080 : : if (!_r)
3081 : : goto next_after_fail977;
3082 : : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 772, __FILE__, __LINE__, true);
3083 : : return _r;
3084 : : }
3085 : 0 : next_after_fail977:;
3086 : : }
3087 : 0 : return NULL_TREE;
3088 : : }
3089 : :
3090 : : tree
3091 : 0 : generic_simplify_582 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3092 : : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3093 : : const combined_fn ARG_UNUSED (ctz))
3094 : : {
3095 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3096 : 0 : {
3097 : 0 : tree t = TREE_TYPE (captures[0]);
3098 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail987;
3099 : 0 : {
3100 : 0 : tree res_op0;
3101 : 0 : {
3102 : 0 : tree _o1[1], _r1;
3103 : 0 : _o1[0] = captures[1];
3104 : 0 : if (TREE_TYPE (_o1[0]) != t)
3105 : : {
3106 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
3107 : : }
3108 : : else
3109 : : _r1 = _o1[0];
3110 : 0 : res_op0 = _r1;
3111 : : }
3112 : 0 : tree _r;
3113 : 0 : _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
3114 : 0 : if (!_r)
3115 : 0 : goto next_after_fail987;
3116 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 780, __FILE__, __LINE__, true);
3117 : : return _r;
3118 : : }
3119 : : next_after_fail987:;
3120 : : }
3121 : : return NULL_TREE;
3122 : : }
3123 : :
3124 : : tree
3125 : 0 : generic_simplify_592 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
3126 : : tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
3127 : : const combined_fn ARG_UNUSED (bswap),
3128 : : const combined_fn ARG_UNUSED (parity))
3129 : : {
3130 : 0 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3131 : 0 : if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
3132 : 0 : && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
3133 : 0 : && TYPE_PRECISION (TREE_TYPE (captures[0]))
3134 : 0 : >= TYPE_PRECISION (TREE_TYPE (captures[1]))
3135 : : )
3136 : : {
3137 : 0 : {
3138 : 0 : tree type0 = TREE_TYPE (captures[0]);
3139 : 0 : tree type1 = TREE_TYPE (captures[1]);
3140 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail998;
3141 : 0 : {
3142 : 0 : tree res_op0;
3143 : 0 : {
3144 : 0 : tree _o1[1], _r1;
3145 : 0 : {
3146 : 0 : tree _o2[1], _r2;
3147 : 0 : _o2[0] = captures[2];
3148 : 0 : if (TREE_TYPE (_o2[0]) != type1)
3149 : : {
3150 : 0 : _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
3151 : : }
3152 : : else
3153 : : _r2 = _o2[0];
3154 : 0 : _o1[0] = _r2;
3155 : : }
3156 : 0 : if (TREE_TYPE (_o1[0]) != type0)
3157 : : {
3158 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
3159 : : }
3160 : : else
3161 : : _r1 = _o1[0];
3162 : 0 : res_op0 = _r1;
3163 : : }
3164 : 0 : tree _r;
3165 : 0 : _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
3166 : 0 : if (!_r)
3167 : 0 : goto next_after_fail998;
3168 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 786, __FILE__, __LINE__, true);
3169 : 0 : return _r;
3170 : : }
3171 : : next_after_fail998:;
3172 : : }
3173 : : }
3174 : : return NULL_TREE;
3175 : : }
3176 : :
3177 : : tree
3178 : 3959011 : generic_simplify_NEGATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
3179 : : {
3180 : 3959011 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3181 : 3959011 : switch (TREE_CODE (_p0))
3182 : : {
3183 : 40190 : case PLUS_EXPR:
3184 : 40190 : {
3185 : 40190 : tree _q20 = TREE_OPERAND (_p0, 0);
3186 : 40190 : tree _q21 = TREE_OPERAND (_p0, 1);
3187 : 40190 : if (tree_negate_expr_p (_q21))
3188 : : {
3189 : 39041 : {
3190 : 39041 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3191 : 39041 : tree res = generic_simplify_498 (loc, type, _p0, captures);
3192 : 39041 : if (res) return res;
3193 : : }
3194 : : }
3195 : 1149 : if (tree_negate_expr_p (_q20))
3196 : : {
3197 : 9 : {
3198 : 9 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
3199 : 9 : tree res = generic_simplify_498 (loc, type, _p0, captures);
3200 : 9 : if (res) return res;
3201 : : }
3202 : : }
3203 : : break;
3204 : : }
3205 : 113063 : case MINUS_EXPR:
3206 : 113063 : {
3207 : 113063 : tree _q20 = TREE_OPERAND (_p0, 0);
3208 : 113063 : tree _q21 = TREE_OPERAND (_p0, 1);
3209 : 113063 : {
3210 : 113063 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3211 : 113063 : if ((ANY_INTEGRAL_TYPE_P (type) && !TYPE_OVERFLOW_SANITIZED (type))
3212 : 194280 : || (FLOAT_TYPE_P (type)
3213 : 81217 : && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
3214 : 81217 : && !HONOR_SIGNED_ZEROS (type))
3215 : : )
3216 : : {
3217 : 31903 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1045;
3218 : 31903 : {
3219 : 31903 : tree res_op0;
3220 : 31903 : res_op0 = captures[1];
3221 : 31903 : tree res_op1;
3222 : 31903 : res_op1 = captures[0];
3223 : 31903 : tree _r;
3224 : 31903 : _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
3225 : 31903 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 824, __FILE__, __LINE__, true);
3226 : 31903 : return _r;
3227 : : }
3228 : 0 : next_after_fail1045:;
3229 : : }
3230 : : }
3231 : 81160 : break;
3232 : : }
3233 : 16 : case POINTER_DIFF_EXPR:
3234 : 16 : {
3235 : 16 : tree _q20 = TREE_OPERAND (_p0, 0);
3236 : 16 : tree _q21 = TREE_OPERAND (_p0, 1);
3237 : 16 : {
3238 : 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3239 : 16 : tree res = generic_simplify_499 (loc, type, _p0, captures);
3240 : 16 : if (res) return res;
3241 : : }
3242 : 0 : break;
3243 : : }
3244 : 4111 : case MULT_EXPR:
3245 : 4111 : {
3246 : 4111 : tree _q20 = TREE_OPERAND (_p0, 0);
3247 : 4111 : tree _q21 = TREE_OPERAND (_p0, 1);
3248 : 4111 : if (tree_negate_expr_p (_q21))
3249 : : {
3250 : 1822 : {
3251 : 1822 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3252 : 1822 : tree res = generic_simplify_502 (loc, type, _p0, captures);
3253 : 1822 : if (res) return res;
3254 : : }
3255 : : }
3256 : 2704 : if (tree_negate_expr_p (_q20))
3257 : : {
3258 : 27 : {
3259 : 27 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
3260 : 27 : tree res = generic_simplify_502 (loc, type, _p0, captures);
3261 : 27 : if (res) return res;
3262 : : }
3263 : : }
3264 : : break;
3265 : : }
3266 : 188 : case RDIV_EXPR:
3267 : 188 : {
3268 : 188 : tree _q20 = TREE_OPERAND (_p0, 0);
3269 : 188 : tree _q21 = TREE_OPERAND (_p0, 1);
3270 : 188 : if (tree_negate_expr_p (_q21))
3271 : : {
3272 : 60 : {
3273 : 60 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3274 : 60 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
3275 : 60 : && single_use (captures[0])
3276 : : )
3277 : : {
3278 : 60 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1046;
3279 : 60 : {
3280 : 60 : tree res_op0;
3281 : 60 : res_op0 = captures[1];
3282 : 60 : tree res_op1;
3283 : 60 : {
3284 : 60 : tree _o1[1], _r1;
3285 : 60 : _o1[0] = captures[2];
3286 : 60 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3287 : 60 : res_op1 = _r1;
3288 : : }
3289 : 60 : tree _r;
3290 : 60 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
3291 : 60 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 825, __FILE__, __LINE__, true);
3292 : 60 : return _r;
3293 : : }
3294 : 0 : next_after_fail1046:;
3295 : : }
3296 : : }
3297 : : }
3298 : 128 : if (tree_negate_expr_p (_q20))
3299 : : {
3300 : 0 : {
3301 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
3302 : 0 : if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
3303 : 0 : && single_use (captures[0])
3304 : : )
3305 : : {
3306 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1047;
3307 : 0 : {
3308 : 0 : tree res_op0;
3309 : 0 : {
3310 : 0 : tree _o1[1], _r1;
3311 : 0 : _o1[0] = captures[1];
3312 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3313 : 0 : res_op0 = _r1;
3314 : : }
3315 : 0 : tree res_op1;
3316 : 0 : res_op1 = captures[2];
3317 : 0 : tree _r;
3318 : 0 : _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
3319 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 826, __FILE__, __LINE__, true);
3320 : 0 : return _r;
3321 : : }
3322 : 0 : next_after_fail1047:;
3323 : : }
3324 : : }
3325 : : }
3326 : : break;
3327 : : }
3328 : 906919 : CASE_CONVERT:
3329 : 906919 : {
3330 : 906919 : tree _q20 = TREE_OPERAND (_p0, 0);
3331 : 906919 : switch (TREE_CODE (_q20))
3332 : : {
3333 : 58 : case RSHIFT_EXPR:
3334 : 58 : {
3335 : 58 : tree _q30 = TREE_OPERAND (_q20, 0);
3336 : 58 : tree _q31 = TREE_OPERAND (_q20, 1);
3337 : 58 : switch (TREE_CODE (_q31))
3338 : : {
3339 : 43 : case INTEGER_CST:
3340 : 43 : {
3341 : 43 : {
3342 : 43 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
3343 : 43 : tree res = generic_simplify_503 (loc, type, _p0, captures);
3344 : 43 : if (res) return res;
3345 : : }
3346 : 36 : break;
3347 : : }
3348 : : default:;
3349 : : }
3350 : : break;
3351 : : }
3352 : 140 : case NEGATE_EXPR:
3353 : 140 : {
3354 : 140 : tree _q30 = TREE_OPERAND (_q20, 0);
3355 : 140 : {
3356 : 140 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3357 : 140 : if (!TYPE_SATURATING (type)
3358 : : )
3359 : : {
3360 : 140 : if (INTEGRAL_TYPE_P (type)
3361 : 140 : && (TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
3362 : 17 : || (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
3363 : 32 : && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
3364 : 139 : && !TYPE_OVERFLOW_SANITIZED (type)
3365 : 295 : && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
3366 : : )
3367 : : {
3368 : 139 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1048;
3369 : 139 : {
3370 : 139 : tree res_op0;
3371 : 139 : res_op0 = captures[0];
3372 : 139 : tree _r;
3373 : 139 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3374 : 139 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 827, __FILE__, __LINE__, true);
3375 : 139 : return _r;
3376 : : }
3377 : 0 : next_after_fail1048:;
3378 : : }
3379 : : }
3380 : : }
3381 : : break;
3382 : : }
3383 : 906773 : default:;
3384 : : }
3385 : 906773 : {
3386 : 906773 : tree _q20_pops[1];
3387 : 906773 : if (tree_logical_inverted_value (_q20, _q20_pops))
3388 : : {
3389 : 1 : tree _q30 = _q20_pops[0];
3390 : 1 : {
3391 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
3392 : 1 : if (INTEGRAL_TYPE_P (type)
3393 : 1 : && TREE_CODE (type) != BOOLEAN_TYPE
3394 : 1 : && TYPE_PRECISION (type) > 1
3395 : 1 : && TREE_CODE (captures[2]) == SSA_NAME
3396 : 1 : && ssa_name_has_boolean_range (captures[2])
3397 : : )
3398 : : {
3399 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1049;
3400 : 0 : {
3401 : 0 : tree res_op0;
3402 : 0 : {
3403 : 0 : tree _o1[1], _r1;
3404 : 0 : _o1[0] = captures[2];
3405 : 0 : if (TREE_TYPE (_o1[0]) != type)
3406 : : {
3407 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
3408 : : }
3409 : : else
3410 : : _r1 = _o1[0];
3411 : 0 : res_op0 = _r1;
3412 : : }
3413 : 0 : tree res_op1;
3414 : 0 : res_op1 = build_all_ones_cst (type);
3415 : 0 : tree _r;
3416 : 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3417 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 828, __FILE__, __LINE__, true);
3418 : 0 : return _r;
3419 : : }
3420 : 0 : next_after_fail1049:;
3421 : : }
3422 : : }
3423 : : }
3424 : : }
3425 : 906773 : if (tree_negate_expr_p (_q20))
3426 : : {
3427 : 1459 : {
3428 : 1459 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3429 : 1459 : if (!TYPE_SATURATING (type)
3430 : : )
3431 : : {
3432 : 1459 : if (SCALAR_FLOAT_TYPE_P (type)
3433 : 1459 : && ((DECIMAL_FLOAT_TYPE_P (type)
3434 : 0 : == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
3435 : 0 : && TYPE_PRECISION (type) >= TYPE_PRECISION (TREE_TYPE (captures[0])))
3436 : 0 : || !HONOR_SIGN_DEPENDENT_ROUNDING (type))
3437 : : )
3438 : : {
3439 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1050;
3440 : 0 : {
3441 : 0 : tree res_op0;
3442 : 0 : {
3443 : 0 : tree _o1[1], _r1;
3444 : 0 : _o1[0] = captures[0];
3445 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3446 : 0 : res_op0 = _r1;
3447 : : }
3448 : 0 : tree _r;
3449 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
3450 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 829, __FILE__, __LINE__, true);
3451 : 0 : return _r;
3452 : : }
3453 : 0 : next_after_fail1050:;
3454 : : }
3455 : : }
3456 : : }
3457 : : }
3458 : : break;
3459 : : }
3460 : 379 : case RSHIFT_EXPR:
3461 : 379 : {
3462 : 379 : tree _q20 = TREE_OPERAND (_p0, 0);
3463 : 379 : tree _q21 = TREE_OPERAND (_p0, 1);
3464 : 379 : switch (TREE_CODE (_q21))
3465 : : {
3466 : 361 : case INTEGER_CST:
3467 : 361 : {
3468 : 361 : {
3469 : 361 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
3470 : 361 : tree res = generic_simplify_503 (loc, type, _p0, captures);
3471 : 361 : if (res) return res;
3472 : : }
3473 : 324 : break;
3474 : : }
3475 : : default:;
3476 : : }
3477 : : break;
3478 : : }
3479 : 147 : case BIT_NOT_EXPR:
3480 : 147 : {
3481 : 147 : tree _q20 = TREE_OPERAND (_p0, 0);
3482 : 147 : {
3483 : 147 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3484 : 147 : tree res = generic_simplify_500 (loc, type, _p0, captures);
3485 : 147 : if (res) return res;
3486 : : }
3487 : 0 : break;
3488 : : }
3489 : 3982 : case NEGATE_EXPR:
3490 : 3982 : {
3491 : 3982 : tree _q20 = TREE_OPERAND (_p0, 0);
3492 : 3982 : {
3493 : 3982 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3494 : 3982 : tree res = generic_simplify_501 (loc, type, _p0, captures);
3495 : 3982 : if (res) return res;
3496 : : }
3497 : 13 : break;
3498 : : }
3499 : 72 : case VEC_COND_EXPR:
3500 : 72 : {
3501 : 72 : tree _q20 = TREE_OPERAND (_p0, 0);
3502 : 72 : tree _q21 = TREE_OPERAND (_p0, 1);
3503 : 72 : tree _q22 = TREE_OPERAND (_p0, 2);
3504 : 72 : {
3505 : 72 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3506 : 72 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1051;
3507 : 72 : {
3508 : 72 : tree res_op0;
3509 : 72 : res_op0 = captures[1];
3510 : 72 : tree res_op1;
3511 : 72 : {
3512 : 72 : tree _o1[1], _r1;
3513 : 72 : _o1[0] = captures[2];
3514 : 72 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3515 : 72 : if (EXPR_P (_r1))
3516 : 0 : goto next_after_fail1051;
3517 : 72 : res_op1 = _r1;
3518 : : }
3519 : 72 : tree res_op2;
3520 : 72 : {
3521 : 72 : tree _o1[1], _r1;
3522 : 72 : _o1[0] = captures[3];
3523 : 72 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
3524 : 72 : if (EXPR_P (_r1))
3525 : 0 : goto next_after_fail1051;
3526 : 72 : res_op2 = _r1;
3527 : : }
3528 : 72 : tree _r;
3529 : 72 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
3530 : 72 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 796, __FILE__, __LINE__, true);
3531 : 72 : return _r;
3532 : : }
3533 : 0 : next_after_fail1051:;
3534 : : }
3535 : 0 : break;
3536 : : }
3537 : 287498 : case CALL_EXPR:
3538 : 287498 : switch (get_call_combined_fn (_p0))
3539 : : {
3540 : 12 : case CFN_BUILT_IN_FMA:
3541 : 12 : if (call_expr_nargs (_p0) == 3)
3542 : : {
3543 : 12 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3544 : 12 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3545 : 12 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3546 : 12 : {
3547 : 12 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3548 : 12 : tree res = generic_simplify_504 (loc, type, _p0, captures, CFN_BUILT_IN_FMA);
3549 : 12 : if (res) return res;
3550 : : }
3551 : : }
3552 : : break;
3553 : 4 : case CFN_BUILT_IN_FMAF:
3554 : 4 : if (call_expr_nargs (_p0) == 3)
3555 : : {
3556 : 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3557 : 4 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3558 : 4 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3559 : 4 : {
3560 : 4 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3561 : 4 : tree res = generic_simplify_504 (loc, type, _p0, captures, CFN_BUILT_IN_FMAF);
3562 : 4 : if (res) return res;
3563 : : }
3564 : : }
3565 : : break;
3566 : 0 : case CFN_BUILT_IN_FMAL:
3567 : 0 : if (call_expr_nargs (_p0) == 3)
3568 : : {
3569 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3570 : 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3571 : 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3572 : 0 : {
3573 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3574 : 0 : tree res = generic_simplify_504 (loc, type, _p0, captures, CFN_BUILT_IN_FMAL);
3575 : 0 : if (res) return res;
3576 : : }
3577 : : }
3578 : : break;
3579 : 0 : case CFN_FMA:
3580 : 0 : if (call_expr_nargs (_p0) == 3)
3581 : : {
3582 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3583 : 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3584 : 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3585 : 0 : {
3586 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3587 : 0 : tree res = generic_simplify_504 (loc, type, _p0, captures, CFN_FMA);
3588 : 0 : if (res) return res;
3589 : : }
3590 : : }
3591 : : break;
3592 : 0 : case CFN_FMS:
3593 : 0 : if (call_expr_nargs (_p0) == 3)
3594 : : {
3595 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3596 : 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3597 : 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3598 : 0 : {
3599 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3600 : 0 : if (canonicalize_math_after_vectorization_p ()
3601 : : )
3602 : : {
3603 : : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3604 : : )
3605 : : {
3606 : : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1052;
3607 : : {
3608 : : tree res_op0;
3609 : : res_op0 = captures[1];
3610 : : tree res_op1;
3611 : : res_op1 = captures[2];
3612 : : tree res_op2;
3613 : : res_op2 = captures[3];
3614 : : tree _r;
3615 : : _r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
3616 : : if (!_r)
3617 : : goto next_after_fail1052;
3618 : : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 830, __FILE__, __LINE__, true);
3619 : : return _r;
3620 : : }
3621 : 0 : next_after_fail1052:;
3622 : : }
3623 : : }
3624 : : }
3625 : : }
3626 : : break;
3627 : 0 : case CFN_FNMA:
3628 : 0 : if (call_expr_nargs (_p0) == 3)
3629 : : {
3630 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3631 : 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3632 : 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3633 : 0 : {
3634 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3635 : 0 : if (canonicalize_math_after_vectorization_p ()
3636 : : )
3637 : : {
3638 : : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3639 : : )
3640 : : {
3641 : : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1053;
3642 : : {
3643 : : tree res_op0;
3644 : : res_op0 = captures[1];
3645 : : tree res_op1;
3646 : : res_op1 = captures[2];
3647 : : tree res_op2;
3648 : : res_op2 = captures[3];
3649 : : tree _r;
3650 : : _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
3651 : : if (!_r)
3652 : : goto next_after_fail1053;
3653 : : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 831, __FILE__, __LINE__, true);
3654 : : return _r;
3655 : : }
3656 : 0 : next_after_fail1053:;
3657 : : }
3658 : : }
3659 : : }
3660 : : }
3661 : : break;
3662 : 0 : case CFN_FNMS:
3663 : 0 : if (call_expr_nargs (_p0) == 3)
3664 : : {
3665 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
3666 : 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
3667 : 0 : tree _q22 = CALL_EXPR_ARG (_p0, 2);
3668 : 0 : {
3669 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
3670 : 0 : if (canonicalize_math_after_vectorization_p ()
3671 : : )
3672 : : {
3673 : : if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
3674 : : )
3675 : : {
3676 : : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1054;
3677 : : {
3678 : : tree res_op0;
3679 : : res_op0 = captures[1];
3680 : : tree res_op1;
3681 : : res_op1 = captures[2];
3682 : : tree res_op2;
3683 : : res_op2 = captures[3];
3684 : : tree _r;
3685 : : _r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
3686 : : if (!_r)
3687 : : goto next_after_fail1054;
3688 : : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 832, __FILE__, __LINE__, true);
3689 : : return _r;
3690 : : }
3691 : 0 : next_after_fail1054:;
3692 : : }
3693 : : }
3694 : : }
3695 : : }
3696 : : break;
3697 : : default:;
3698 : : }
3699 : : break;
3700 : 3882177 : default:;
3701 : : }
3702 : 3882177 : {
3703 : 3882177 : tree _p0_pops[1];
3704 : 3882177 : if (tree_nop_convert (_p0, _p0_pops))
3705 : : {
3706 : 1174025 : tree _q20 = _p0_pops[0];
3707 : 1174025 : switch (TREE_CODE (_q20))
3708 : : {
3709 : 0 : case POINTER_DIFF_EXPR:
3710 : 0 : {
3711 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3712 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
3713 : 0 : {
3714 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
3715 : 0 : tree res = generic_simplify_499 (loc, type, _p0, captures);
3716 : 0 : if (res) return res;
3717 : : }
3718 : 0 : break;
3719 : : }
3720 : 0 : case BIT_NOT_EXPR:
3721 : 0 : {
3722 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3723 : 0 : {
3724 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3725 : 0 : tree res = generic_simplify_500 (loc, type, _p0, captures);
3726 : 0 : if (res) return res;
3727 : : }
3728 : 0 : break;
3729 : : }
3730 : 0 : case NEGATE_EXPR:
3731 : 0 : {
3732 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
3733 : 0 : {
3734 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
3735 : 0 : tree res = generic_simplify_501 (loc, type, _p0, captures);
3736 : 0 : if (res) return res;
3737 : : }
3738 : 0 : break;
3739 : : }
3740 : : default:;
3741 : : }
3742 : : }
3743 : : }
3744 : 3882177 : {
3745 : 3882177 : tree _p0_pops[1];
3746 : 3882177 : if (tree_logical_inverted_value (_p0, _p0_pops))
3747 : : {
3748 : 70 : tree _q20 = _p0_pops[0];
3749 : 70 : {
3750 : 70 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
3751 : 70 : if (INTEGRAL_TYPE_P (type)
3752 : 70 : && TREE_CODE (type) != BOOLEAN_TYPE
3753 : 70 : && TYPE_PRECISION (type) > 1
3754 : 70 : && TREE_CODE (captures[2]) == SSA_NAME
3755 : 70 : && ssa_name_has_boolean_range (captures[2])
3756 : : )
3757 : : {
3758 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1055;
3759 : 0 : {
3760 : 0 : tree res_op0;
3761 : 0 : {
3762 : 0 : tree _o1[1], _r1;
3763 : 0 : _o1[0] = captures[2];
3764 : 0 : if (TREE_TYPE (_o1[0]) != type)
3765 : : {
3766 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
3767 : : }
3768 : : else
3769 : : _r1 = _o1[0];
3770 : 0 : res_op0 = _r1;
3771 : : }
3772 : 0 : tree res_op1;
3773 : 0 : res_op1 = build_all_ones_cst (type);
3774 : 0 : tree _r;
3775 : 0 : _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
3776 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 828, __FILE__, __LINE__, true);
3777 : 0 : return _r;
3778 : : }
3779 : 0 : next_after_fail1055:;
3780 : : }
3781 : : }
3782 : : }
3783 : : }
3784 : 3882177 : {
3785 : 3882177 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3786 : 3882177 : tree res = generic_simplify_424 (loc, type, _p0, captures);
3787 : 3882177 : if (res) return res;
3788 : : }
3789 : 3867167 : return NULL_TREE;
3790 : : }
3791 : :
3792 : : tree
3793 : 26473175 : generic_simplify_EQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
3794 : : {
3795 : 26473175 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
3796 : 26473175 : switch (TREE_CODE (_p1))
3797 : : {
3798 : 44 : case NEGATE_EXPR:
3799 : 44 : {
3800 : 44 : tree _q30 = TREE_OPERAND (_p1, 0);
3801 : 44 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
3802 : : {
3803 : 0 : {
3804 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
3805 : 0 : tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, EQ_EXPR);
3806 : 0 : if (res) return res;
3807 : : }
3808 : : }
3809 : : break;
3810 : : }
3811 : 26473175 : default:;
3812 : : }
3813 : 26473175 : switch (TREE_CODE (_p0))
3814 : : {
3815 : 924 : case NEGATE_EXPR:
3816 : 924 : {
3817 : 924 : tree _q20 = TREE_OPERAND (_p0, 0);
3818 : 924 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
3819 : : {
3820 : 83 : {
3821 : 83 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
3822 : 83 : tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, EQ_EXPR);
3823 : 83 : if (res) return res;
3824 : : }
3825 : : }
3826 : : break;
3827 : : }
3828 : 0 : case CEIL_MOD_EXPR:
3829 : 0 : {
3830 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3831 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
3832 : 0 : if (integer_pow2p (_q21))
3833 : : {
3834 : 0 : if (integer_zerop (_p1))
3835 : : {
3836 : 0 : {
3837 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
3838 : 0 : tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, EQ_EXPR, CEIL_MOD_EXPR);
3839 : 0 : if (res) return res;
3840 : : }
3841 : : }
3842 : : }
3843 : : break;
3844 : : }
3845 : 876 : case FLOOR_MOD_EXPR:
3846 : 876 : {
3847 : 876 : tree _q20 = TREE_OPERAND (_p0, 0);
3848 : 876 : tree _q21 = TREE_OPERAND (_p0, 1);
3849 : 876 : if (integer_pow2p (_q21))
3850 : : {
3851 : 26 : if (integer_zerop (_p1))
3852 : : {
3853 : 26 : {
3854 : 26 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
3855 : 26 : tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, EQ_EXPR, FLOOR_MOD_EXPR);
3856 : 26 : if (res) return res;
3857 : : }
3858 : : }
3859 : : }
3860 : : break;
3861 : : }
3862 : 0 : case ROUND_MOD_EXPR:
3863 : 0 : {
3864 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
3865 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
3866 : 0 : if (integer_pow2p (_q21))
3867 : : {
3868 : 0 : if (integer_zerop (_p1))
3869 : : {
3870 : 0 : {
3871 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
3872 : 0 : tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, EQ_EXPR, ROUND_MOD_EXPR);
3873 : 0 : if (res) return res;
3874 : : }
3875 : : }
3876 : : }
3877 : : break;
3878 : : }
3879 : 68768 : case TRUNC_MOD_EXPR:
3880 : 68768 : {
3881 : 68768 : tree _q20 = TREE_OPERAND (_p0, 0);
3882 : 68768 : tree _q21 = TREE_OPERAND (_p0, 1);
3883 : 68768 : if (integer_pow2p (_q21))
3884 : : {
3885 : 41943 : if (integer_zerop (_p1))
3886 : : {
3887 : 613 : {
3888 : 613 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
3889 : 613 : tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, EQ_EXPR, TRUNC_MOD_EXPR);
3890 : 613 : if (res) return res;
3891 : : }
3892 : : }
3893 : : }
3894 : : break;
3895 : : }
3896 : 4728262 : CASE_CONVERT:
3897 : 4728262 : {
3898 : 4728262 : tree _q20 = TREE_OPERAND (_p0, 0);
3899 : 4728262 : switch (TREE_CODE (_p1))
3900 : : {
3901 : 2 : case LSHIFT_EXPR:
3902 : 2 : {
3903 : 2 : tree _q40 = TREE_OPERAND (_p1, 0);
3904 : 2 : tree _q41 = TREE_OPERAND (_p1, 1);
3905 : 2 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
3906 : : {
3907 : 0 : {
3908 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
3909 : 0 : tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, EQ_EXPR);
3910 : 0 : if (res) return res;
3911 : : }
3912 : : }
3913 : : break;
3914 : : }
3915 : 4728262 : default:;
3916 : : }
3917 : 4728262 : {
3918 : 4728262 : tree _p1_pops[1];
3919 : 4728262 : if (tree_nop_convert (_p1, _p1_pops))
3920 : : {
3921 : 862641 : tree _q40 = _p1_pops[0];
3922 : 862641 : switch (TREE_CODE (_q40))
3923 : : {
3924 : 0 : case LSHIFT_EXPR:
3925 : 0 : {
3926 : 0 : tree _q50 = TREE_OPERAND (_q40, 0);
3927 : 0 : tree _q51 = TREE_OPERAND (_q40, 1);
3928 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
3929 : : {
3930 : 0 : {
3931 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
3932 : 0 : tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, EQ_EXPR);
3933 : 0 : if (res) return res;
3934 : : }
3935 : : }
3936 : : break;
3937 : : }
3938 : : default:;
3939 : : }
3940 : : }
3941 : : }
3942 : 4728262 : switch (TREE_CODE (_q20))
3943 : : {
3944 : 80 : case EXACT_DIV_EXPR:
3945 : 80 : {
3946 : 80 : tree _q30 = TREE_OPERAND (_q20, 0);
3947 : 80 : tree _q31 = TREE_OPERAND (_q20, 1);
3948 : 80 : switch (TREE_CODE (_q31))
3949 : : {
3950 : 80 : case INTEGER_CST:
3951 : 80 : {
3952 : 80 : switch (TREE_CODE (_p1))
3953 : : {
3954 : 0 : CASE_CONVERT:
3955 : 0 : {
3956 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
3957 : 0 : switch (TREE_CODE (_q60))
3958 : : {
3959 : 0 : case EXACT_DIV_EXPR:
3960 : 0 : {
3961 : 0 : tree _q70 = TREE_OPERAND (_q60, 0);
3962 : 0 : tree _q71 = TREE_OPERAND (_q60, 1);
3963 : 0 : if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
3964 : : {
3965 : 0 : {
3966 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
3967 : 0 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
3968 : 0 : if (res) return res;
3969 : : }
3970 : : }
3971 : : break;
3972 : : }
3973 : : default:;
3974 : : }
3975 : : break;
3976 : : }
3977 : : default:;
3978 : : }
3979 : : break;
3980 : : }
3981 : : default:;
3982 : : }
3983 : : break;
3984 : : }
3985 : 4728262 : default:;
3986 : : }
3987 : 4728262 : switch (TREE_CODE (_p1))
3988 : : {
3989 : 28897 : case PLUS_EXPR:
3990 : 28897 : {
3991 : 28897 : tree _q40 = TREE_OPERAND (_p1, 0);
3992 : 28897 : tree _q41 = TREE_OPERAND (_p1, 1);
3993 : 28897 : switch (TREE_CODE (_q41))
3994 : : {
3995 : 26 : CASE_CONVERT:
3996 : 26 : {
3997 : 26 : tree _q60 = TREE_OPERAND (_q41, 0);
3998 : 26 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
3999 : : {
4000 : 0 : {
4001 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
4002 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4003 : 0 : if (res) return res;
4004 : : }
4005 : : }
4006 : : break;
4007 : : }
4008 : 28897 : default:;
4009 : : }
4010 : 28897 : switch (TREE_CODE (_q40))
4011 : : {
4012 : 4003 : CASE_CONVERT:
4013 : 4003 : {
4014 : 4003 : tree _q50 = TREE_OPERAND (_q40, 0);
4015 : 4003 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4016 : : {
4017 : 0 : {
4018 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
4019 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4020 : 0 : if (res) return res;
4021 : : }
4022 : : }
4023 : : break;
4024 : : }
4025 : 28897 : default:;
4026 : : }
4027 : 28897 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
4028 : : {
4029 : 0 : {
4030 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
4031 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4032 : 0 : if (res) return res;
4033 : : }
4034 : : }
4035 : 28897 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
4036 : : {
4037 : 0 : {
4038 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
4039 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4040 : 0 : if (res) return res;
4041 : : }
4042 : : }
4043 : : break;
4044 : : }
4045 : 4728262 : default:;
4046 : : }
4047 : 4728262 : {
4048 : 4728262 : tree _p1_pops[1];
4049 : 4728262 : if (tree_nop_convert (_p1, _p1_pops))
4050 : : {
4051 : 862641 : tree _q40 = _p1_pops[0];
4052 : 862641 : switch (TREE_CODE (_q40))
4053 : : {
4054 : 472 : case PLUS_EXPR:
4055 : 472 : {
4056 : 472 : tree _q50 = TREE_OPERAND (_q40, 0);
4057 : 472 : tree _q51 = TREE_OPERAND (_q40, 1);
4058 : 472 : switch (TREE_CODE (_q51))
4059 : : {
4060 : 0 : CASE_CONVERT:
4061 : 0 : {
4062 : 0 : tree _q70 = TREE_OPERAND (_q51, 0);
4063 : 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
4064 : : {
4065 : 0 : {
4066 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
4067 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4068 : 0 : if (res) return res;
4069 : : }
4070 : : }
4071 : : break;
4072 : : }
4073 : 472 : default:;
4074 : : }
4075 : 472 : switch (TREE_CODE (_q50))
4076 : : {
4077 : 403 : CASE_CONVERT:
4078 : 403 : {
4079 : 403 : tree _q60 = TREE_OPERAND (_q50, 0);
4080 : 403 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
4081 : : {
4082 : 0 : {
4083 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
4084 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4085 : 0 : if (res) return res;
4086 : : }
4087 : : }
4088 : : break;
4089 : : }
4090 : 472 : default:;
4091 : : }
4092 : 472 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4093 : : {
4094 : 0 : {
4095 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
4096 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4097 : 0 : if (res) return res;
4098 : : }
4099 : : }
4100 : 472 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4101 : : {
4102 : 0 : {
4103 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
4104 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4105 : 0 : if (res) return res;
4106 : : }
4107 : : }
4108 : : break;
4109 : : }
4110 : : default:;
4111 : : }
4112 : : }
4113 : : }
4114 : 4728262 : break;
4115 : : }
4116 : 26472533 : default:;
4117 : : }
4118 : 26472533 : {
4119 : 26472533 : tree _p0_pops[1];
4120 : 26472533 : if (tree_nop_convert (_p0, _p0_pops))
4121 : : {
4122 : 2848045 : tree _q20 = _p0_pops[0];
4123 : 2848045 : switch (TREE_CODE (_q20))
4124 : : {
4125 : 1 : case LSHIFT_EXPR:
4126 : 1 : {
4127 : 1 : tree _q30 = TREE_OPERAND (_q20, 0);
4128 : 1 : tree _q31 = TREE_OPERAND (_q20, 1);
4129 : 1 : switch (TREE_CODE (_p1))
4130 : : {
4131 : 0 : CASE_CONVERT:
4132 : 0 : {
4133 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
4134 : 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
4135 : : {
4136 : 0 : {
4137 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
4138 : 0 : tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, EQ_EXPR);
4139 : 0 : if (res) return res;
4140 : : }
4141 : : }
4142 : : break;
4143 : : }
4144 : 1 : default:;
4145 : : }
4146 : 1 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
4147 : : {
4148 : 1 : {
4149 : 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
4150 : 1 : tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, EQ_EXPR);
4151 : 1 : if (res) return res;
4152 : : }
4153 : : }
4154 : : break;
4155 : : }
4156 : 2457 : case PLUS_EXPR:
4157 : 2457 : {
4158 : 2457 : tree _q30 = TREE_OPERAND (_q20, 0);
4159 : 2457 : tree _q31 = TREE_OPERAND (_q20, 1);
4160 : 2457 : switch (TREE_CODE (_q31))
4161 : : {
4162 : 0 : CASE_CONVERT:
4163 : 0 : {
4164 : 0 : tree _q50 = TREE_OPERAND (_q31, 0);
4165 : 0 : switch (TREE_CODE (_p1))
4166 : : {
4167 : 0 : CASE_CONVERT:
4168 : 0 : {
4169 : 0 : tree _q70 = TREE_OPERAND (_p1, 0);
4170 : 0 : if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
4171 : : {
4172 : 0 : {
4173 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
4174 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4175 : 0 : if (res) return res;
4176 : : }
4177 : : }
4178 : : break;
4179 : : }
4180 : : default:;
4181 : : }
4182 : : break;
4183 : : }
4184 : 2457 : default:;
4185 : : }
4186 : 2457 : switch (TREE_CODE (_q30))
4187 : : {
4188 : 1281 : CASE_CONVERT:
4189 : 1281 : {
4190 : 1281 : tree _q40 = TREE_OPERAND (_q30, 0);
4191 : 1281 : switch (TREE_CODE (_p1))
4192 : : {
4193 : 32 : CASE_CONVERT:
4194 : 32 : {
4195 : 32 : tree _q70 = TREE_OPERAND (_p1, 0);
4196 : 32 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
4197 : : {
4198 : 0 : {
4199 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
4200 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4201 : 0 : if (res) return res;
4202 : : }
4203 : : }
4204 : : break;
4205 : : }
4206 : 1281 : default:;
4207 : : }
4208 : 1281 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
4209 : : {
4210 : 0 : {
4211 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
4212 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4213 : 0 : if (res) return res;
4214 : : }
4215 : : }
4216 : : break;
4217 : : }
4218 : 2457 : default:;
4219 : : }
4220 : 2457 : switch (TREE_CODE (_q31))
4221 : : {
4222 : 0 : CASE_CONVERT:
4223 : 0 : {
4224 : 0 : tree _q50 = TREE_OPERAND (_q31, 0);
4225 : 0 : if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
4226 : : {
4227 : 0 : {
4228 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
4229 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4230 : 0 : if (res) return res;
4231 : : }
4232 : : }
4233 : : break;
4234 : : }
4235 : 2457 : default:;
4236 : : }
4237 : 2457 : switch (TREE_CODE (_p1))
4238 : : {
4239 : 101 : CASE_CONVERT:
4240 : 101 : {
4241 : 101 : tree _q60 = TREE_OPERAND (_p1, 0);
4242 : 101 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
4243 : : {
4244 : 0 : {
4245 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
4246 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4247 : 0 : if (res) return res;
4248 : : }
4249 : : }
4250 : 101 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4251 : : {
4252 : 0 : {
4253 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
4254 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4255 : 0 : if (res) return res;
4256 : : }
4257 : : }
4258 : : break;
4259 : : }
4260 : 2457 : default:;
4261 : : }
4262 : 2457 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
4263 : : {
4264 : 0 : {
4265 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
4266 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4267 : 0 : if (res) return res;
4268 : : }
4269 : : }
4270 : 2457 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
4271 : : {
4272 : 0 : {
4273 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
4274 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
4275 : 0 : if (res) return res;
4276 : : }
4277 : : }
4278 : : break;
4279 : : }
4280 : : default:;
4281 : : }
4282 : : }
4283 : : }
4284 : 26472532 : {
4285 : 26472532 : tree _p1_pops[1];
4286 : 26472532 : if (tree_nop_convert (_p1, _p1_pops))
4287 : : {
4288 : 1105457 : tree _q30 = _p1_pops[0];
4289 : 1105457 : switch (TREE_CODE (_q30))
4290 : : {
4291 : 0 : case LSHIFT_EXPR:
4292 : 0 : {
4293 : 0 : tree _q40 = TREE_OPERAND (_q30, 0);
4294 : 0 : tree _q41 = TREE_OPERAND (_q30, 1);
4295 : 0 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
4296 : : {
4297 : 0 : {
4298 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
4299 : 0 : tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, EQ_EXPR);
4300 : 0 : if (res) return res;
4301 : : }
4302 : : }
4303 : : break;
4304 : : }
4305 : : default:;
4306 : : }
4307 : : }
4308 : : }
4309 : 26472532 : switch (TREE_CODE (_p0))
4310 : : {
4311 : 1439 : case LSHIFT_EXPR:
4312 : 1439 : {
4313 : 1439 : tree _q20 = TREE_OPERAND (_p0, 0);
4314 : 1439 : tree _q21 = TREE_OPERAND (_p0, 1);
4315 : 1439 : switch (TREE_CODE (_p1))
4316 : : {
4317 : 65 : CASE_CONVERT:
4318 : 65 : {
4319 : 65 : tree _q50 = TREE_OPERAND (_p1, 0);
4320 : 65 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4321 : : {
4322 : 4 : {
4323 : 4 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4324 : 4 : tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, EQ_EXPR);
4325 : 4 : if (res) return res;
4326 : : }
4327 : : }
4328 : : break;
4329 : : }
4330 : 1438 : default:;
4331 : : }
4332 : 1438 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4333 : : {
4334 : 27 : {
4335 : 27 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4336 : 27 : tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, EQ_EXPR);
4337 : 27 : if (res) return res;
4338 : : }
4339 : : }
4340 : 1434 : if (tree_zero_one_valued_p (_q20))
4341 : : {
4342 : 232 : switch (TREE_CODE (_q21))
4343 : : {
4344 : 10 : case INTEGER_CST:
4345 : 10 : {
4346 : 10 : if (integer_zerop (_p1))
4347 : : {
4348 : 2 : {
4349 : 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
4350 : 2 : if (tree_fits_shwi_p (captures[1])
4351 : 2 : && tree_to_shwi (captures[1]) > 0
4352 : 4 : && tree_to_shwi (captures[1]) < TYPE_PRECISION (TREE_TYPE (captures[0]))
4353 : : )
4354 : : {
4355 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1449;
4356 : 2 : {
4357 : 2 : tree res_op0;
4358 : 2 : res_op0 = captures[0];
4359 : 2 : tree res_op1;
4360 : 2 : res_op1 = captures[2];
4361 : 2 : tree _r;
4362 : 2 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
4363 : 2 : if (TREE_SIDE_EFFECTS (captures[1]))
4364 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4365 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 944, __FILE__, __LINE__, true);
4366 : 2 : return _r;
4367 : : }
4368 : 0 : next_after_fail1449:;
4369 : : }
4370 : : }
4371 : : }
4372 : : break;
4373 : : }
4374 : : default:;
4375 : : }
4376 : : }
4377 : : break;
4378 : : }
4379 : 26472525 : default:;
4380 : : }
4381 : 26472525 : switch (TREE_CODE (_p1))
4382 : : {
4383 : 72 : case LSHIFT_EXPR:
4384 : 72 : {
4385 : 72 : tree _q30 = TREE_OPERAND (_p1, 0);
4386 : 72 : tree _q31 = TREE_OPERAND (_p1, 1);
4387 : 72 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
4388 : : {
4389 : 0 : {
4390 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
4391 : 0 : tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, EQ_EXPR);
4392 : 0 : if (res) return res;
4393 : : }
4394 : : }
4395 : : break;
4396 : : }
4397 : 26472525 : default:;
4398 : : }
4399 : 26472525 : switch (TREE_CODE (_p0))
4400 : : {
4401 : 45293 : case VIEW_CONVERT_EXPR:
4402 : 45293 : {
4403 : 45293 : tree _q20 = TREE_OPERAND (_p0, 0);
4404 : 45293 : if (tree_zero_one_valued_p (_q20))
4405 : : {
4406 : 0 : if (integer_zerop (_p1))
4407 : : {
4408 : 0 : {
4409 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
4410 : 0 : tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, EQ_EXPR);
4411 : 0 : if (res) return res;
4412 : : }
4413 : : }
4414 : : }
4415 : : break;
4416 : : }
4417 : 906888 : case BIT_AND_EXPR:
4418 : 906888 : {
4419 : 906888 : tree _q20 = TREE_OPERAND (_p0, 0);
4420 : 906888 : tree _q21 = TREE_OPERAND (_p0, 1);
4421 : 906888 : if (tree_truth_valued_p (_q20))
4422 : : {
4423 : 19 : if (tree_truth_valued_p (_q21))
4424 : : {
4425 : 18 : switch (TREE_CODE (_p1))
4426 : : {
4427 : 0 : case BIT_XOR_EXPR:
4428 : 0 : {
4429 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4430 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4431 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4432 : : {
4433 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4434 : : {
4435 : 0 : {
4436 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4437 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1450;
4438 : 0 : {
4439 : 0 : tree res_op0;
4440 : 0 : {
4441 : 0 : tree _o1[2], _r1;
4442 : 0 : _o1[0] = captures[0];
4443 : 0 : _o1[1] = captures[1];
4444 : 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4445 : 0 : res_op0 = _r1;
4446 : : }
4447 : 0 : tree _r;
4448 : 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4449 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
4450 : 0 : return _r;
4451 : : }
4452 : 0 : next_after_fail1450:;
4453 : : }
4454 : : }
4455 : : }
4456 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4457 : : {
4458 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4459 : : {
4460 : 0 : {
4461 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
4462 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1451;
4463 : 0 : {
4464 : 0 : tree res_op0;
4465 : 0 : {
4466 : 0 : tree _o1[2], _r1;
4467 : 0 : _o1[0] = captures[0];
4468 : 0 : _o1[1] = captures[1];
4469 : 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4470 : 0 : res_op0 = _r1;
4471 : : }
4472 : 0 : tree _r;
4473 : 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4474 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
4475 : 0 : return _r;
4476 : : }
4477 : 0 : next_after_fail1451:;
4478 : : }
4479 : : }
4480 : : }
4481 : : break;
4482 : : }
4483 : : default:;
4484 : : }
4485 : : }
4486 : : }
4487 : : break;
4488 : : }
4489 : 595 : case BIT_XOR_EXPR:
4490 : 595 : {
4491 : 595 : tree _q20 = TREE_OPERAND (_p0, 0);
4492 : 595 : tree _q21 = TREE_OPERAND (_p0, 1);
4493 : 595 : switch (TREE_CODE (_p1))
4494 : : {
4495 : 0 : case BIT_AND_EXPR:
4496 : 0 : {
4497 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4498 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4499 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4500 : : {
4501 : 0 : if (tree_truth_valued_p (_q50))
4502 : : {
4503 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4504 : : {
4505 : 0 : if (tree_truth_valued_p (_q51))
4506 : : {
4507 : 0 : {
4508 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4509 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1452;
4510 : 0 : {
4511 : 0 : tree res_op0;
4512 : 0 : {
4513 : 0 : tree _o1[2], _r1;
4514 : 0 : _o1[0] = captures[0];
4515 : 0 : _o1[1] = captures[1];
4516 : 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4517 : 0 : res_op0 = _r1;
4518 : : }
4519 : 0 : tree _r;
4520 : 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4521 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
4522 : 0 : return _r;
4523 : : }
4524 : 0 : next_after_fail1452:;
4525 : : }
4526 : : }
4527 : : }
4528 : : }
4529 : : }
4530 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4531 : : {
4532 : 0 : if (tree_truth_valued_p (_q50))
4533 : : {
4534 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4535 : : {
4536 : 0 : if (tree_truth_valued_p (_q51))
4537 : : {
4538 : 0 : {
4539 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
4540 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1453;
4541 : 0 : {
4542 : 0 : tree res_op0;
4543 : 0 : {
4544 : 0 : tree _o1[2], _r1;
4545 : 0 : _o1[0] = captures[0];
4546 : 0 : _o1[1] = captures[1];
4547 : 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
4548 : 0 : res_op0 = _r1;
4549 : : }
4550 : 0 : tree _r;
4551 : 0 : _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
4552 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
4553 : 0 : return _r;
4554 : : }
4555 : 0 : next_after_fail1453:;
4556 : : }
4557 : : }
4558 : : }
4559 : : }
4560 : : }
4561 : : break;
4562 : : }
4563 : : default:;
4564 : : }
4565 : : break;
4566 : : }
4567 : 414 : case BIT_NOT_EXPR:
4568 : 414 : {
4569 : 414 : tree _q20 = TREE_OPERAND (_p0, 0);
4570 : 414 : if (tree_truth_valued_p (_q20))
4571 : : {
4572 : 0 : if (tree_truth_valued_p (_p1))
4573 : : {
4574 : 0 : {
4575 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
4576 : 0 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures);
4577 : 0 : if (res) return res;
4578 : : }
4579 : : }
4580 : : }
4581 : : break;
4582 : : }
4583 : 64151 : case MULT_EXPR:
4584 : 64151 : {
4585 : 64151 : tree _q20 = TREE_OPERAND (_p0, 0);
4586 : 64151 : tree _q21 = TREE_OPERAND (_p0, 1);
4587 : 64151 : switch (TREE_CODE (_p1))
4588 : : {
4589 : 819 : case MULT_EXPR:
4590 : 819 : {
4591 : 819 : tree _q50 = TREE_OPERAND (_p1, 0);
4592 : 819 : tree _q51 = TREE_OPERAND (_p1, 1);
4593 : 819 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4594 : : {
4595 : 538 : {
4596 : 538 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4597 : 538 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4598 : 538 : if (res) return res;
4599 : : }
4600 : : }
4601 : 811 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4602 : : {
4603 : 0 : {
4604 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
4605 : 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4606 : 0 : if (res) return res;
4607 : : }
4608 : : }
4609 : 811 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4610 : : {
4611 : 0 : {
4612 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
4613 : 0 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4614 : 0 : if (res) return res;
4615 : : }
4616 : : }
4617 : 811 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4618 : : {
4619 : 16 : {
4620 : 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
4621 : 16 : tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
4622 : 16 : if (res) return res;
4623 : : }
4624 : : }
4625 : : break;
4626 : : }
4627 : 64143 : default:;
4628 : : }
4629 : 64143 : switch (TREE_CODE (_q21))
4630 : : {
4631 : 56506 : case INTEGER_CST:
4632 : 56506 : {
4633 : 56506 : switch (TREE_CODE (_p1))
4634 : : {
4635 : 775 : case MULT_EXPR:
4636 : 775 : {
4637 : 775 : tree _q50 = TREE_OPERAND (_p1, 0);
4638 : 775 : tree _q51 = TREE_OPERAND (_p1, 1);
4639 : 775 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4640 : : {
4641 : 501 : {
4642 : 501 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4643 : 501 : tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, EQ_EXPR);
4644 : 501 : if (res) return res;
4645 : : }
4646 : : }
4647 : : break;
4648 : : }
4649 : : default:;
4650 : : }
4651 : : break;
4652 : : }
4653 : : default:;
4654 : : }
4655 : : break;
4656 : : }
4657 : 9397 : case EXACT_DIV_EXPR:
4658 : 9397 : {
4659 : 9397 : tree _q20 = TREE_OPERAND (_p0, 0);
4660 : 9397 : tree _q21 = TREE_OPERAND (_p0, 1);
4661 : 9397 : switch (TREE_CODE (_q21))
4662 : : {
4663 : 9397 : case INTEGER_CST:
4664 : 9397 : {
4665 : 9397 : switch (TREE_CODE (_p1))
4666 : : {
4667 : 0 : case EXACT_DIV_EXPR:
4668 : 0 : {
4669 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
4670 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
4671 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4672 : : {
4673 : 0 : {
4674 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
4675 : 0 : tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
4676 : 0 : if (res) return res;
4677 : : }
4678 : : }
4679 : : break;
4680 : : }
4681 : : default:;
4682 : : }
4683 : : break;
4684 : : }
4685 : : default:;
4686 : : }
4687 : : break;
4688 : : }
4689 : 5390 : case TRUNC_DIV_EXPR:
4690 : 5390 : {
4691 : 5390 : tree _q20 = TREE_OPERAND (_p0, 0);
4692 : 5390 : tree _q21 = TREE_OPERAND (_p0, 1);
4693 : 5390 : switch (TREE_CODE (_q21))
4694 : : {
4695 : 3904 : case INTEGER_CST:
4696 : 3904 : {
4697 : 3904 : switch (TREE_CODE (_p1))
4698 : : {
4699 : 973 : case INTEGER_CST:
4700 : 973 : {
4701 : 973 : {
4702 : 973 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
4703 : 973 : tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
4704 : 973 : if (res) return res;
4705 : : }
4706 : 19 : break;
4707 : : }
4708 : : default:;
4709 : : }
4710 : : break;
4711 : : }
4712 : : default:;
4713 : : }
4714 : : break;
4715 : : }
4716 : 679176 : case PLUS_EXPR:
4717 : 679176 : {
4718 : 679176 : tree _q20 = TREE_OPERAND (_p0, 0);
4719 : 679176 : tree _q21 = TREE_OPERAND (_p0, 1);
4720 : 679176 : switch (TREE_CODE (_p1))
4721 : : {
4722 : 50391 : case PLUS_EXPR:
4723 : 50391 : {
4724 : 50391 : tree _q50 = TREE_OPERAND (_p1, 0);
4725 : 50391 : tree _q51 = TREE_OPERAND (_p1, 1);
4726 : 50391 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
4727 : : {
4728 : 388 : {
4729 : 388 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
4730 : 776 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
4731 : 713 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
4732 : 291 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
4733 : : )
4734 : : {
4735 : 325 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1454;
4736 : 325 : {
4737 : 325 : tree res_op0;
4738 : 325 : res_op0 = captures[0];
4739 : 325 : tree res_op1;
4740 : 325 : res_op1 = captures[2];
4741 : 325 : tree _r;
4742 : 325 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
4743 : 325 : if (TREE_SIDE_EFFECTS (captures[1]))
4744 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4745 : 325 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 884, __FILE__, __LINE__, true);
4746 : 325 : return _r;
4747 : : }
4748 : 0 : next_after_fail1454:;
4749 : : }
4750 : : }
4751 : : }
4752 : 50066 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4753 : : {
4754 : 0 : {
4755 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
4756 : 0 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
4757 : 0 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
4758 : 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
4759 : : )
4760 : : {
4761 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1455;
4762 : 0 : {
4763 : 0 : tree res_op0;
4764 : 0 : res_op0 = captures[0];
4765 : 0 : tree res_op1;
4766 : 0 : res_op1 = captures[2];
4767 : 0 : tree _r;
4768 : 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
4769 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
4770 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4771 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 884, __FILE__, __LINE__, true);
4772 : 0 : return _r;
4773 : : }
4774 : 0 : next_after_fail1455:;
4775 : : }
4776 : : }
4777 : : }
4778 : 50066 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
4779 : : {
4780 : 0 : {
4781 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
4782 : 0 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
4783 : 0 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
4784 : 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
4785 : : )
4786 : : {
4787 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1456;
4788 : 0 : {
4789 : 0 : tree res_op0;
4790 : 0 : res_op0 = captures[0];
4791 : 0 : tree res_op1;
4792 : 0 : res_op1 = captures[2];
4793 : 0 : tree _r;
4794 : 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
4795 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
4796 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4797 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 884, __FILE__, __LINE__, true);
4798 : 0 : return _r;
4799 : : }
4800 : 0 : next_after_fail1456:;
4801 : : }
4802 : : }
4803 : : }
4804 : 50066 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4805 : : {
4806 : 35 : {
4807 : 35 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
4808 : 70 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
4809 : 35 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
4810 : 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
4811 : : )
4812 : : {
4813 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1457;
4814 : 0 : {
4815 : 0 : tree res_op0;
4816 : 0 : res_op0 = captures[0];
4817 : 0 : tree res_op1;
4818 : 0 : res_op1 = captures[2];
4819 : 0 : tree _r;
4820 : 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
4821 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
4822 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
4823 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 884, __FILE__, __LINE__, true);
4824 : 0 : return _r;
4825 : : }
4826 : 0 : next_after_fail1457:;
4827 : : }
4828 : : }
4829 : : }
4830 : : break;
4831 : : }
4832 : 678851 : default:;
4833 : : }
4834 : 678851 : switch (TREE_CODE (_q21))
4835 : : {
4836 : 2599 : CASE_CONVERT:
4837 : 2599 : {
4838 : 2599 : tree _q40 = TREE_OPERAND (_q21, 0);
4839 : 2599 : switch (TREE_CODE (_p1))
4840 : : {
4841 : 158 : CASE_CONVERT:
4842 : 158 : {
4843 : 158 : tree _q60 = TREE_OPERAND (_p1, 0);
4844 : 158 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
4845 : : {
4846 : 0 : {
4847 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
4848 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4849 : 0 : if (res) return res;
4850 : : }
4851 : : }
4852 : : break;
4853 : : }
4854 : : default:;
4855 : : }
4856 : : break;
4857 : : }
4858 : 678851 : default:;
4859 : : }
4860 : 678851 : switch (TREE_CODE (_q20))
4861 : : {
4862 : 26338 : CASE_CONVERT:
4863 : 26338 : {
4864 : 26338 : tree _q30 = TREE_OPERAND (_q20, 0);
4865 : 26338 : switch (TREE_CODE (_p1))
4866 : : {
4867 : 367 : CASE_CONVERT:
4868 : 367 : {
4869 : 367 : tree _q60 = TREE_OPERAND (_p1, 0);
4870 : 367 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4871 : : {
4872 : 1 : {
4873 : 1 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
4874 : 1 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4875 : 1 : if (res) return res;
4876 : : }
4877 : : }
4878 : : break;
4879 : : }
4880 : 26337 : default:;
4881 : : }
4882 : 26337 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
4883 : : {
4884 : 0 : {
4885 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
4886 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4887 : 0 : if (res) return res;
4888 : : }
4889 : : }
4890 : : break;
4891 : : }
4892 : 678850 : default:;
4893 : : }
4894 : 678850 : switch (TREE_CODE (_q21))
4895 : : {
4896 : 2599 : CASE_CONVERT:
4897 : 2599 : {
4898 : 2599 : tree _q40 = TREE_OPERAND (_q21, 0);
4899 : 2599 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
4900 : : {
4901 : 0 : {
4902 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
4903 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4904 : 0 : if (res) return res;
4905 : : }
4906 : : }
4907 : : break;
4908 : : }
4909 : 678850 : default:;
4910 : : }
4911 : 678850 : switch (TREE_CODE (_p1))
4912 : : {
4913 : 13831 : CASE_CONVERT:
4914 : 13831 : {
4915 : 13831 : tree _q50 = TREE_OPERAND (_p1, 0);
4916 : 13831 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
4917 : : {
4918 : 0 : {
4919 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
4920 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4921 : 0 : if (res) return res;
4922 : : }
4923 : : }
4924 : 13831 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4925 : : {
4926 : 0 : {
4927 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
4928 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4929 : 0 : if (res) return res;
4930 : : }
4931 : : }
4932 : : break;
4933 : : }
4934 : 678850 : default:;
4935 : : }
4936 : 678850 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
4937 : : {
4938 : 20381 : {
4939 : 20381 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
4940 : 20381 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4941 : 20381 : if (res) return res;
4942 : : }
4943 : : }
4944 : 658531 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
4945 : : {
4946 : 61 : {
4947 : 61 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
4948 : 61 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
4949 : 61 : if (res) return res;
4950 : : }
4951 : : }
4952 : : break;
4953 : : }
4954 : 75885 : case POINTER_PLUS_EXPR:
4955 : 75885 : {
4956 : 75885 : tree _q20 = TREE_OPERAND (_p0, 0);
4957 : 75885 : tree _q21 = TREE_OPERAND (_p0, 1);
4958 : 75885 : switch (TREE_CODE (_p1))
4959 : : {
4960 : 2582 : case POINTER_PLUS_EXPR:
4961 : 2582 : {
4962 : 2582 : tree _q50 = TREE_OPERAND (_p1, 0);
4963 : 2582 : tree _q51 = TREE_OPERAND (_p1, 1);
4964 : 2582 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
4965 : : {
4966 : 26 : {
4967 : 26 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
4968 : 26 : tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
4969 : 26 : if (res) return res;
4970 : : }
4971 : : }
4972 : : break;
4973 : : }
4974 : 75859 : default:;
4975 : : }
4976 : 75859 : switch (TREE_CODE (_q20))
4977 : : {
4978 : 1474 : CASE_CONVERT:
4979 : 1474 : {
4980 : 1474 : tree _q30 = TREE_OPERAND (_q20, 0);
4981 : 1474 : switch (TREE_CODE (_p1))
4982 : : {
4983 : 96 : CASE_CONVERT:
4984 : 96 : {
4985 : 96 : tree _q60 = TREE_OPERAND (_p1, 0);
4986 : 96 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
4987 : : {
4988 : 60 : {
4989 : 60 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
4990 : 60 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, EQ_EXPR);
4991 : 60 : if (res) return res;
4992 : : }
4993 : : }
4994 : : break;
4995 : : }
4996 : 1414 : default:;
4997 : : }
4998 : 1414 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
4999 : : {
5000 : 0 : {
5001 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
5002 : 0 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, EQ_EXPR);
5003 : 0 : if (res) return res;
5004 : : }
5005 : : }
5006 : : break;
5007 : : }
5008 : 75799 : default:;
5009 : : }
5010 : 75799 : switch (TREE_CODE (_p1))
5011 : : {
5012 : 495 : CASE_CONVERT:
5013 : 495 : {
5014 : 495 : tree _q50 = TREE_OPERAND (_p1, 0);
5015 : 495 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5016 : : {
5017 : 0 : {
5018 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5019 : 0 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, EQ_EXPR);
5020 : 0 : if (res) return res;
5021 : : }
5022 : : }
5023 : : break;
5024 : : }
5025 : 75799 : default:;
5026 : : }
5027 : 75799 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5028 : : {
5029 : 1342 : {
5030 : 1342 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
5031 : 1342 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, EQ_EXPR);
5032 : 1342 : if (res) return res;
5033 : : }
5034 : : }
5035 : : break;
5036 : : }
5037 : 132710 : case MINUS_EXPR:
5038 : 132710 : {
5039 : 132710 : tree _q20 = TREE_OPERAND (_p0, 0);
5040 : 132710 : tree _q21 = TREE_OPERAND (_p0, 1);
5041 : 132710 : switch (TREE_CODE (_p1))
5042 : : {
5043 : 189 : case MINUS_EXPR:
5044 : 189 : {
5045 : 189 : tree _q50 = TREE_OPERAND (_p1, 0);
5046 : 189 : tree _q51 = TREE_OPERAND (_p1, 1);
5047 : 189 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5048 : : {
5049 : 18 : {
5050 : 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
5051 : 36 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
5052 : 18 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
5053 : 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
5054 : : )
5055 : : {
5056 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1458;
5057 : 0 : {
5058 : 0 : tree res_op0;
5059 : 0 : res_op0 = captures[0];
5060 : 0 : tree res_op1;
5061 : 0 : res_op1 = captures[2];
5062 : 0 : tree _r;
5063 : 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5064 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
5065 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
5066 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 885, __FILE__, __LINE__, true);
5067 : 0 : return _r;
5068 : : }
5069 : 0 : next_after_fail1458:;
5070 : : }
5071 : : }
5072 : : }
5073 : 189 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5074 : : {
5075 : 18 : {
5076 : 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
5077 : 36 : if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
5078 : 18 : && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
5079 : 0 : || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
5080 : : )
5081 : : {
5082 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1459;
5083 : 0 : {
5084 : 0 : tree res_op0;
5085 : 0 : res_op0 = captures[2];
5086 : 0 : tree res_op1;
5087 : 0 : res_op1 = captures[1];
5088 : 0 : tree _r;
5089 : 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
5090 : 0 : if (TREE_SIDE_EFFECTS (captures[0]))
5091 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
5092 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
5093 : 0 : return _r;
5094 : : }
5095 : 0 : next_after_fail1459:;
5096 : : }
5097 : : }
5098 : : }
5099 : : break;
5100 : : }
5101 : 132710 : default:;
5102 : : }
5103 : 132710 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5104 : : {
5105 : 74 : {
5106 : 74 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
5107 : 74 : tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
5108 : 74 : if (res) return res;
5109 : : }
5110 : : }
5111 : : break;
5112 : : }
5113 : 39500 : case POINTER_DIFF_EXPR:
5114 : 39500 : {
5115 : 39500 : tree _q20 = TREE_OPERAND (_p0, 0);
5116 : 39500 : tree _q21 = TREE_OPERAND (_p0, 1);
5117 : 39500 : switch (TREE_CODE (_p1))
5118 : : {
5119 : 1028 : case POINTER_DIFF_EXPR:
5120 : 1028 : {
5121 : 1028 : tree _q50 = TREE_OPERAND (_p1, 0);
5122 : 1028 : tree _q51 = TREE_OPERAND (_p1, 1);
5123 : 1028 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
5124 : : {
5125 : 0 : {
5126 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
5127 : 0 : tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, EQ_EXPR);
5128 : 0 : if (res) return res;
5129 : : }
5130 : : }
5131 : 1028 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5132 : : {
5133 : 0 : {
5134 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
5135 : 0 : tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, EQ_EXPR);
5136 : 0 : if (res) return res;
5137 : : }
5138 : : }
5139 : : break;
5140 : : }
5141 : : default:;
5142 : : }
5143 : : break;
5144 : : }
5145 : 26449363 : default:;
5146 : : }
5147 : 26449363 : {
5148 : 26449363 : tree _p0_pops[1];
5149 : 26449363 : if (tree_logical_inverted_value (_p0, _p0_pops))
5150 : : {
5151 : 7830 : tree _q20 = _p0_pops[0];
5152 : 7830 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
5153 : : {
5154 : 9 : if (tree_truth_valued_p (_p1))
5155 : : {
5156 : 0 : {
5157 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
5158 : 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
5159 : 0 : if (res) return res;
5160 : : }
5161 : : }
5162 : : }
5163 : : }
5164 : : }
5165 : 26449363 : if (tree_truth_valued_p (_p0))
5166 : : {
5167 : 521380 : switch (TREE_CODE (_p1))
5168 : : {
5169 : 24 : case BIT_NOT_EXPR:
5170 : 24 : {
5171 : 24 : tree _q30 = TREE_OPERAND (_p1, 0);
5172 : 24 : if (tree_truth_valued_p (_q30))
5173 : : {
5174 : 4 : {
5175 : 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
5176 : 4 : tree res = generic_simplify_207 (loc, type, _p0, _p1, captures);
5177 : 4 : if (res) return res;
5178 : : }
5179 : : }
5180 : : break;
5181 : : }
5182 : 521380 : default:;
5183 : : }
5184 : 521380 : {
5185 : 521380 : tree _p1_pops[1];
5186 : 521380 : if (tree_logical_inverted_value (_p1, _p1_pops))
5187 : : {
5188 : 93 : tree _q30 = _p1_pops[0];
5189 : 93 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5190 : : {
5191 : 0 : {
5192 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
5193 : 0 : tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, EQ_EXPR);
5194 : 0 : if (res) return res;
5195 : : }
5196 : : }
5197 : : }
5198 : : }
5199 : : }
5200 : 26449363 : switch (TREE_CODE (_p1))
5201 : : {
5202 : 85255 : case PLUS_EXPR:
5203 : 85255 : {
5204 : 85255 : tree _q30 = TREE_OPERAND (_p1, 0);
5205 : 85255 : tree _q31 = TREE_OPERAND (_p1, 1);
5206 : 85255 : switch (TREE_CODE (_q31))
5207 : : {
5208 : 26 : CASE_CONVERT:
5209 : 26 : {
5210 : 26 : tree _q50 = TREE_OPERAND (_q31, 0);
5211 : 26 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5212 : : {
5213 : 0 : {
5214 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
5215 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
5216 : 0 : if (res) return res;
5217 : : }
5218 : : }
5219 : : break;
5220 : : }
5221 : 85255 : default:;
5222 : : }
5223 : 85255 : switch (TREE_CODE (_q30))
5224 : : {
5225 : 22143 : CASE_CONVERT:
5226 : 22143 : {
5227 : 22143 : tree _q40 = TREE_OPERAND (_q30, 0);
5228 : 22143 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5229 : : {
5230 : 0 : {
5231 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
5232 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
5233 : 0 : if (res) return res;
5234 : : }
5235 : : }
5236 : : break;
5237 : : }
5238 : 85255 : default:;
5239 : : }
5240 : 85255 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
5241 : : {
5242 : 0 : {
5243 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
5244 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
5245 : 0 : if (res) return res;
5246 : : }
5247 : : }
5248 : 85255 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5249 : : {
5250 : 0 : {
5251 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
5252 : 0 : tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
5253 : 0 : if (res) return res;
5254 : : }
5255 : : }
5256 : : break;
5257 : : }
5258 : 26449363 : default:;
5259 : : }
5260 : 26449363 : {
5261 : 26449363 : tree _p1_pops[1];
5262 : 26449363 : if (tree_nop_convert (_p1, _p1_pops))
5263 : : {
5264 : 1105394 : tree _q30 = _p1_pops[0];
5265 : 1105394 : switch (TREE_CODE (_q30))
5266 : : {
5267 : 1647 : case PLUS_EXPR:
5268 : 1647 : {
5269 : 1647 : tree _q40 = TREE_OPERAND (_q30, 0);
5270 : 1647 : tree _q41 = TREE_OPERAND (_q30, 1);
5271 : 1647 : switch (TREE_CODE (_q41))
5272 : : {
5273 : 2 : CASE_CONVERT:
5274 : 2 : {
5275 : 2 : tree _q60 = TREE_OPERAND (_q41, 0);
5276 : 2 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
5277 : : {
5278 : 0 : {
5279 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
5280 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
5281 : 0 : if (res) return res;
5282 : : }
5283 : : }
5284 : : break;
5285 : : }
5286 : 1647 : default:;
5287 : : }
5288 : 1647 : switch (TREE_CODE (_q40))
5289 : : {
5290 : 1545 : CASE_CONVERT:
5291 : 1545 : {
5292 : 1545 : tree _q50 = TREE_OPERAND (_q40, 0);
5293 : 1545 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5294 : : {
5295 : 0 : {
5296 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
5297 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
5298 : 0 : if (res) return res;
5299 : : }
5300 : : }
5301 : : break;
5302 : : }
5303 : 1647 : default:;
5304 : : }
5305 : 1647 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
5306 : : {
5307 : 0 : {
5308 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
5309 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
5310 : 0 : if (res) return res;
5311 : : }
5312 : : }
5313 : 1647 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5314 : : {
5315 : 0 : {
5316 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
5317 : 0 : tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
5318 : 0 : if (res) return res;
5319 : : }
5320 : : }
5321 : : break;
5322 : : }
5323 : : default:;
5324 : : }
5325 : : }
5326 : : }
5327 : 26449363 : switch (TREE_CODE (_p0))
5328 : : {
5329 : 4728261 : CASE_CONVERT:
5330 : 4728261 : {
5331 : 4728261 : tree _q20 = TREE_OPERAND (_p0, 0);
5332 : 4728261 : switch (TREE_CODE (_p1))
5333 : : {
5334 : 161 : case POINTER_PLUS_EXPR:
5335 : 161 : {
5336 : 161 : tree _q40 = TREE_OPERAND (_p1, 0);
5337 : 161 : tree _q41 = TREE_OPERAND (_p1, 1);
5338 : 161 : switch (TREE_CODE (_q40))
5339 : : {
5340 : 101 : CASE_CONVERT:
5341 : 101 : {
5342 : 101 : tree _q50 = TREE_OPERAND (_q40, 0);
5343 : 101 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5344 : : {
5345 : 6 : {
5346 : 6 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
5347 : 6 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, EQ_EXPR);
5348 : 6 : if (res) return res;
5349 : : }
5350 : : }
5351 : : break;
5352 : : }
5353 : 155 : default:;
5354 : : }
5355 : 155 : if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
5356 : : {
5357 : 0 : {
5358 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
5359 : 0 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, EQ_EXPR);
5360 : 0 : if (res) return res;
5361 : : }
5362 : : }
5363 : : break;
5364 : : }
5365 : 4728255 : default:;
5366 : : }
5367 : 4728255 : {
5368 : 4728255 : tree _p1_pops[1];
5369 : 4728255 : if (tree_nop_convert (_p1, _p1_pops))
5370 : : {
5371 : 862641 : tree _q40 = _p1_pops[0];
5372 : 862641 : switch (TREE_CODE (_q40))
5373 : : {
5374 : 6 : case POINTER_PLUS_EXPR:
5375 : 6 : {
5376 : 6 : tree _q50 = TREE_OPERAND (_q40, 0);
5377 : 6 : tree _q51 = TREE_OPERAND (_q40, 1);
5378 : 6 : switch (TREE_CODE (_q50))
5379 : : {
5380 : 0 : CASE_CONVERT:
5381 : 0 : {
5382 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
5383 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5384 : : {
5385 : 0 : {
5386 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
5387 : 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
5388 : 0 : if (res) return res;
5389 : : }
5390 : : }
5391 : : break;
5392 : : }
5393 : 6 : default:;
5394 : : }
5395 : 6 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
5396 : : {
5397 : 0 : {
5398 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
5399 : 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
5400 : 0 : if (res) return res;
5401 : : }
5402 : : }
5403 : : break;
5404 : : }
5405 : : default:;
5406 : : }
5407 : : }
5408 : : }
5409 : 4728255 : break;
5410 : : }
5411 : 26449357 : default:;
5412 : : }
5413 : 26449357 : {
5414 : 26449357 : tree _p0_pops[1];
5415 : 26449357 : if (tree_nop_convert (_p0, _p0_pops))
5416 : : {
5417 : 2848038 : tree _q20 = _p0_pops[0];
5418 : 2848038 : switch (TREE_CODE (_q20))
5419 : : {
5420 : 97 : case POINTER_PLUS_EXPR:
5421 : 97 : {
5422 : 97 : tree _q30 = TREE_OPERAND (_q20, 0);
5423 : 97 : tree _q31 = TREE_OPERAND (_q20, 1);
5424 : 97 : switch (TREE_CODE (_q30))
5425 : : {
5426 : 21 : CASE_CONVERT:
5427 : 21 : {
5428 : 21 : tree _q40 = TREE_OPERAND (_q30, 0);
5429 : 21 : switch (TREE_CODE (_p1))
5430 : : {
5431 : 0 : CASE_CONVERT:
5432 : 0 : {
5433 : 0 : tree _q70 = TREE_OPERAND (_p1, 0);
5434 : 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
5435 : : {
5436 : 0 : {
5437 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
5438 : 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
5439 : 0 : if (res) return res;
5440 : : }
5441 : : }
5442 : : break;
5443 : : }
5444 : 21 : default:;
5445 : : }
5446 : 21 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
5447 : : {
5448 : 0 : {
5449 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
5450 : 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
5451 : 0 : if (res) return res;
5452 : : }
5453 : : }
5454 : : break;
5455 : : }
5456 : 97 : default:;
5457 : : }
5458 : 97 : switch (TREE_CODE (_p1))
5459 : : {
5460 : 27 : CASE_CONVERT:
5461 : 27 : {
5462 : 27 : tree _q60 = TREE_OPERAND (_p1, 0);
5463 : 27 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
5464 : : {
5465 : 0 : {
5466 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
5467 : 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
5468 : 0 : if (res) return res;
5469 : : }
5470 : : }
5471 : : break;
5472 : : }
5473 : 97 : default:;
5474 : : }
5475 : 97 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
5476 : : {
5477 : 0 : {
5478 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
5479 : 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
5480 : 0 : if (res) return res;
5481 : : }
5482 : : }
5483 : : break;
5484 : : }
5485 : : default:;
5486 : : }
5487 : : }
5488 : : }
5489 : 26449357 : switch (TREE_CODE (_p1))
5490 : : {
5491 : 6877 : case POINTER_PLUS_EXPR:
5492 : 6877 : {
5493 : 6877 : tree _q30 = TREE_OPERAND (_p1, 0);
5494 : 6877 : tree _q31 = TREE_OPERAND (_p1, 1);
5495 : 6877 : switch (TREE_CODE (_q30))
5496 : : {
5497 : 4024 : CASE_CONVERT:
5498 : 4024 : {
5499 : 4024 : tree _q40 = TREE_OPERAND (_q30, 0);
5500 : 4024 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5501 : : {
5502 : 0 : {
5503 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
5504 : 0 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, EQ_EXPR);
5505 : 0 : if (res) return res;
5506 : : }
5507 : : }
5508 : : break;
5509 : : }
5510 : 6877 : default:;
5511 : : }
5512 : 6877 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5513 : : {
5514 : 0 : {
5515 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
5516 : 0 : tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, EQ_EXPR);
5517 : 0 : if (res) return res;
5518 : : }
5519 : : }
5520 : : break;
5521 : : }
5522 : 26449357 : default:;
5523 : : }
5524 : 26449357 : {
5525 : 26449357 : tree _p1_pops[1];
5526 : 26449357 : if (tree_nop_convert (_p1, _p1_pops))
5527 : : {
5528 : 1105394 : tree _q30 = _p1_pops[0];
5529 : 1105394 : switch (TREE_CODE (_q30))
5530 : : {
5531 : 18 : case POINTER_PLUS_EXPR:
5532 : 18 : {
5533 : 18 : tree _q40 = TREE_OPERAND (_q30, 0);
5534 : 18 : tree _q41 = TREE_OPERAND (_q30, 1);
5535 : 18 : switch (TREE_CODE (_q40))
5536 : : {
5537 : 0 : CASE_CONVERT:
5538 : 0 : {
5539 : 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5540 : 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
5541 : : {
5542 : 0 : {
5543 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
5544 : 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
5545 : 0 : if (res) return res;
5546 : : }
5547 : : }
5548 : : break;
5549 : : }
5550 : 18 : default:;
5551 : : }
5552 : 18 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
5553 : : {
5554 : 0 : {
5555 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
5556 : 0 : tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
5557 : 0 : if (res) return res;
5558 : : }
5559 : : }
5560 : : break;
5561 : : }
5562 : : default:;
5563 : : }
5564 : : }
5565 : : }
5566 : 26449357 : switch (TREE_CODE (_p0))
5567 : : {
5568 : 74457 : case POINTER_PLUS_EXPR:
5569 : 74457 : {
5570 : 74457 : tree _q20 = TREE_OPERAND (_p0, 0);
5571 : 74457 : tree _q21 = TREE_OPERAND (_p0, 1);
5572 : 74457 : switch (TREE_CODE (_p1))
5573 : : {
5574 : 11623 : case ADDR_EXPR:
5575 : 11623 : {
5576 : 11623 : {
5577 : 11623 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
5578 : 11623 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR);
5579 : 11623 : if (res) return res;
5580 : : }
5581 : 11622 : break;
5582 : : }
5583 : 74456 : default:;
5584 : : }
5585 : 74456 : switch (TREE_CODE (_q20))
5586 : : {
5587 : 1264 : case ADDR_EXPR:
5588 : 1264 : {
5589 : 1264 : switch (TREE_CODE (_p1))
5590 : : {
5591 : 24 : case POINTER_PLUS_EXPR:
5592 : 24 : {
5593 : 24 : tree _q50 = TREE_OPERAND (_p1, 0);
5594 : 24 : tree _q51 = TREE_OPERAND (_p1, 1);
5595 : 24 : switch (TREE_CODE (_q50))
5596 : : {
5597 : 0 : case ADDR_EXPR:
5598 : 0 : {
5599 : 0 : {
5600 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
5601 : 0 : tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, EQ_EXPR);
5602 : 0 : if (res) return res;
5603 : : }
5604 : 0 : break;
5605 : : }
5606 : : default:;
5607 : : }
5608 : : break;
5609 : : }
5610 : : default:;
5611 : : }
5612 : : break;
5613 : : }
5614 : : default:;
5615 : : }
5616 : : break;
5617 : : }
5618 : 85075 : case ADDR_EXPR:
5619 : 85075 : {
5620 : 85075 : switch (TREE_CODE (_p1))
5621 : : {
5622 : 0 : case POINTER_PLUS_EXPR:
5623 : 0 : {
5624 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
5625 : 0 : tree _q31 = TREE_OPERAND (_p1, 1);
5626 : 0 : {
5627 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
5628 : 0 : tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR);
5629 : 0 : if (res) return res;
5630 : : }
5631 : 0 : break;
5632 : : }
5633 : : default:;
5634 : : }
5635 : : break;
5636 : : }
5637 : 26449356 : default:;
5638 : : }
5639 : 26449356 : switch (TREE_CODE (_p1))
5640 : : {
5641 : 3589 : case MINUS_EXPR:
5642 : 3589 : {
5643 : 3589 : tree _q30 = TREE_OPERAND (_p1, 0);
5644 : 3589 : tree _q31 = TREE_OPERAND (_p1, 1);
5645 : 3589 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
5646 : : {
5647 : 0 : {
5648 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
5649 : 0 : tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
5650 : 0 : if (res) return res;
5651 : : }
5652 : : }
5653 : : break;
5654 : : }
5655 : 26449356 : default:;
5656 : : }
5657 : 26449356 : switch (TREE_CODE (_p0))
5658 : : {
5659 : 4436 : case TRUNC_DIV_EXPR:
5660 : 4436 : {
5661 : 4436 : tree _q20 = TREE_OPERAND (_p0, 0);
5662 : 4436 : tree _q21 = TREE_OPERAND (_p0, 1);
5663 : 4436 : if (integer_zerop (_p1))
5664 : : {
5665 : 319 : {
5666 : 319 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
5667 : 319 : tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
5668 : 319 : if (res) return res;
5669 : : }
5670 : : }
5671 : : break;
5672 : : }
5673 : 4728255 : CASE_CONVERT:
5674 : 4728255 : {
5675 : 4728255 : tree _q20 = TREE_OPERAND (_p0, 0);
5676 : 4728255 : switch (TREE_CODE (_p1))
5677 : : {
5678 : 1189621 : CASE_CONVERT:
5679 : 1189621 : {
5680 : 1189621 : tree _q40 = TREE_OPERAND (_p1, 0);
5681 : 1189621 : switch (TREE_CODE (_q40))
5682 : : {
5683 : 0 : case MINUS_EXPR:
5684 : 0 : {
5685 : 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5686 : 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5687 : 0 : switch (TREE_CODE (_q50))
5688 : : {
5689 : 0 : case INTEGER_CST:
5690 : 0 : {
5691 : 0 : switch (TREE_CODE (_q51))
5692 : : {
5693 : 0 : CASE_CONVERT:
5694 : 0 : {
5695 : 0 : tree _q70 = TREE_OPERAND (_q51, 0);
5696 : 0 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
5697 : : {
5698 : 0 : {
5699 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
5700 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5701 : 0 : if (res) return res;
5702 : : }
5703 : : }
5704 : : break;
5705 : : }
5706 : : default:;
5707 : : }
5708 : : break;
5709 : : }
5710 : : default:;
5711 : : }
5712 : : break;
5713 : : }
5714 : : default:;
5715 : : }
5716 : : break;
5717 : : }
5718 : 4728255 : default:;
5719 : : }
5720 : 4728255 : switch (TREE_CODE (_q20))
5721 : : {
5722 : 242 : case MINUS_EXPR:
5723 : 242 : {
5724 : 242 : tree _q30 = TREE_OPERAND (_q20, 0);
5725 : 242 : tree _q31 = TREE_OPERAND (_q20, 1);
5726 : 242 : switch (TREE_CODE (_q30))
5727 : : {
5728 : 56 : case INTEGER_CST:
5729 : 56 : {
5730 : 56 : switch (TREE_CODE (_q31))
5731 : : {
5732 : 0 : CASE_CONVERT:
5733 : 0 : {
5734 : 0 : tree _q50 = TREE_OPERAND (_q31, 0);
5735 : 0 : switch (TREE_CODE (_p1))
5736 : : {
5737 : 0 : CASE_CONVERT:
5738 : 0 : {
5739 : 0 : tree _q70 = TREE_OPERAND (_p1, 0);
5740 : 0 : if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
5741 : : {
5742 : 0 : {
5743 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
5744 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5745 : 0 : if (res) return res;
5746 : : }
5747 : : }
5748 : : break;
5749 : : }
5750 : 0 : default:;
5751 : : }
5752 : 0 : if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
5753 : : {
5754 : 0 : {
5755 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
5756 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5757 : 0 : if (res) return res;
5758 : : }
5759 : : }
5760 : : break;
5761 : : }
5762 : 56 : default:;
5763 : : }
5764 : 56 : switch (TREE_CODE (_p1))
5765 : : {
5766 : 0 : CASE_CONVERT:
5767 : 0 : {
5768 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5769 : 0 : if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
5770 : : {
5771 : 0 : {
5772 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
5773 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5774 : 0 : if (res) return res;
5775 : : }
5776 : : }
5777 : : break;
5778 : : }
5779 : 56 : default:;
5780 : : }
5781 : 56 : if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
5782 : : {
5783 : 0 : {
5784 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
5785 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5786 : 0 : if (res) return res;
5787 : : }
5788 : : }
5789 : : break;
5790 : : }
5791 : : default:;
5792 : : }
5793 : : break;
5794 : : }
5795 : 4728255 : default:;
5796 : : }
5797 : 4728255 : switch (TREE_CODE (_p1))
5798 : : {
5799 : 1189621 : CASE_CONVERT:
5800 : 1189621 : {
5801 : 1189621 : tree _q40 = TREE_OPERAND (_p1, 0);
5802 : 1189621 : switch (TREE_CODE (_q40))
5803 : : {
5804 : 0 : case MINUS_EXPR:
5805 : 0 : {
5806 : 0 : tree _q50 = TREE_OPERAND (_q40, 0);
5807 : 0 : tree _q51 = TREE_OPERAND (_q40, 1);
5808 : 0 : switch (TREE_CODE (_q50))
5809 : : {
5810 : 0 : case INTEGER_CST:
5811 : 0 : {
5812 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
5813 : : {
5814 : 0 : {
5815 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
5816 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5817 : 0 : if (res) return res;
5818 : : }
5819 : : }
5820 : : break;
5821 : : }
5822 : : default:;
5823 : : }
5824 : : break;
5825 : : }
5826 : : default:;
5827 : : }
5828 : : break;
5829 : : }
5830 : 271 : case MINUS_EXPR:
5831 : 271 : {
5832 : 271 : tree _q40 = TREE_OPERAND (_p1, 0);
5833 : 271 : tree _q41 = TREE_OPERAND (_p1, 1);
5834 : 271 : switch (TREE_CODE (_q40))
5835 : : {
5836 : 64 : case INTEGER_CST:
5837 : 64 : {
5838 : 64 : switch (TREE_CODE (_q41))
5839 : : {
5840 : 12 : CASE_CONVERT:
5841 : 12 : {
5842 : 12 : tree _q60 = TREE_OPERAND (_q41, 0);
5843 : 12 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
5844 : : {
5845 : 0 : {
5846 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
5847 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5848 : 0 : if (res) return res;
5849 : : }
5850 : : }
5851 : : break;
5852 : : }
5853 : 64 : default:;
5854 : : }
5855 : 64 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
5856 : : {
5857 : 0 : {
5858 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
5859 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5860 : 0 : if (res) return res;
5861 : : }
5862 : : }
5863 : : break;
5864 : : }
5865 : : default:;
5866 : : }
5867 : : break;
5868 : : }
5869 : : default:;
5870 : : }
5871 : : break;
5872 : : }
5873 : 132636 : case MINUS_EXPR:
5874 : 132636 : {
5875 : 132636 : tree _q20 = TREE_OPERAND (_p0, 0);
5876 : 132636 : tree _q21 = TREE_OPERAND (_p0, 1);
5877 : 132636 : switch (TREE_CODE (_q20))
5878 : : {
5879 : 42363 : case INTEGER_CST:
5880 : 42363 : {
5881 : 42363 : switch (TREE_CODE (_q21))
5882 : : {
5883 : 23621 : CASE_CONVERT:
5884 : 23621 : {
5885 : 23621 : tree _q40 = TREE_OPERAND (_q21, 0);
5886 : 23621 : switch (TREE_CODE (_p1))
5887 : : {
5888 : 0 : CASE_CONVERT:
5889 : 0 : {
5890 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
5891 : 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
5892 : : {
5893 : 0 : {
5894 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
5895 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5896 : 0 : if (res) return res;
5897 : : }
5898 : : }
5899 : : break;
5900 : : }
5901 : 23621 : default:;
5902 : : }
5903 : 23621 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
5904 : : {
5905 : 0 : {
5906 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
5907 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5908 : 0 : if (res) return res;
5909 : : }
5910 : : }
5911 : : break;
5912 : : }
5913 : 42363 : default:;
5914 : : }
5915 : 42363 : switch (TREE_CODE (_p1))
5916 : : {
5917 : 5 : CASE_CONVERT:
5918 : 5 : {
5919 : 5 : tree _q50 = TREE_OPERAND (_p1, 0);
5920 : 5 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
5921 : : {
5922 : 0 : {
5923 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5924 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5925 : 0 : if (res) return res;
5926 : : }
5927 : : }
5928 : : break;
5929 : : }
5930 : 42363 : default:;
5931 : : }
5932 : 42363 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
5933 : : {
5934 : 2 : {
5935 : 2 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
5936 : 2 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5937 : 2 : if (res) return res;
5938 : : }
5939 : : }
5940 : : break;
5941 : : }
5942 : : default:;
5943 : : }
5944 : : break;
5945 : : }
5946 : 26449120 : default:;
5947 : : }
5948 : 26449120 : switch (TREE_CODE (_p1))
5949 : : {
5950 : 1490073 : CASE_CONVERT:
5951 : 1490073 : {
5952 : 1490073 : tree _q30 = TREE_OPERAND (_p1, 0);
5953 : 1490073 : switch (TREE_CODE (_q30))
5954 : : {
5955 : 12 : case MINUS_EXPR:
5956 : 12 : {
5957 : 12 : tree _q40 = TREE_OPERAND (_q30, 0);
5958 : 12 : tree _q41 = TREE_OPERAND (_q30, 1);
5959 : 12 : switch (TREE_CODE (_q40))
5960 : : {
5961 : 12 : case INTEGER_CST:
5962 : 12 : {
5963 : 12 : switch (TREE_CODE (_q41))
5964 : : {
5965 : 12 : CASE_CONVERT:
5966 : 12 : {
5967 : 12 : tree _q60 = TREE_OPERAND (_q41, 0);
5968 : 12 : if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
5969 : : {
5970 : 0 : {
5971 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
5972 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5973 : 0 : if (res) return res;
5974 : : }
5975 : : }
5976 : : break;
5977 : : }
5978 : 12 : default:;
5979 : : }
5980 : 12 : if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
5981 : : {
5982 : 0 : {
5983 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
5984 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
5985 : 0 : if (res) return res;
5986 : : }
5987 : : }
5988 : : break;
5989 : : }
5990 : : default:;
5991 : : }
5992 : : break;
5993 : : }
5994 : : default:;
5995 : : }
5996 : : break;
5997 : : }
5998 : 3589 : case MINUS_EXPR:
5999 : 3589 : {
6000 : 3589 : tree _q30 = TREE_OPERAND (_p1, 0);
6001 : 3589 : tree _q31 = TREE_OPERAND (_p1, 1);
6002 : 3589 : switch (TREE_CODE (_q30))
6003 : : {
6004 : 157 : case INTEGER_CST:
6005 : 157 : {
6006 : 157 : switch (TREE_CODE (_q31))
6007 : : {
6008 : 16 : CASE_CONVERT:
6009 : 16 : {
6010 : 16 : tree _q50 = TREE_OPERAND (_q31, 0);
6011 : 16 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
6012 : : {
6013 : 0 : {
6014 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6015 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
6016 : 0 : if (res) return res;
6017 : : }
6018 : : }
6019 : : break;
6020 : : }
6021 : 157 : default:;
6022 : : }
6023 : 157 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6024 : : {
6025 : 0 : {
6026 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6027 : 0 : tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
6028 : 0 : if (res) return res;
6029 : : }
6030 : : }
6031 : : break;
6032 : : }
6033 : : default:;
6034 : : }
6035 : : break;
6036 : : }
6037 : 26449120 : default:;
6038 : : }
6039 : 26449120 : switch (TREE_CODE (_p0))
6040 : : {
6041 : 1190 : case LT_EXPR:
6042 : 1190 : {
6043 : 1190 : tree _q20 = TREE_OPERAND (_p0, 0);
6044 : 1190 : tree _q21 = TREE_OPERAND (_p0, 1);
6045 : 1190 : switch (TREE_CODE (_p1))
6046 : : {
6047 : 21 : case GT_EXPR:
6048 : 21 : {
6049 : 21 : tree _q50 = TREE_OPERAND (_p1, 0);
6050 : 21 : tree _q51 = TREE_OPERAND (_p1, 1);
6051 : 21 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6052 : : {
6053 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6054 : : {
6055 : 0 : {
6056 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6057 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
6058 : 0 : if (res) return res;
6059 : : }
6060 : : }
6061 : : }
6062 : : break;
6063 : : }
6064 : 0 : case EQ_EXPR:
6065 : 0 : {
6066 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6067 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6068 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6069 : : {
6070 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6071 : : {
6072 : 0 : {
6073 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6074 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
6075 : 0 : if (res) return res;
6076 : : }
6077 : : }
6078 : : }
6079 : : break;
6080 : : }
6081 : 1 : case NE_EXPR:
6082 : 1 : {
6083 : 1 : tree _q50 = TREE_OPERAND (_p1, 0);
6084 : 1 : tree _q51 = TREE_OPERAND (_p1, 1);
6085 : 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6086 : : {
6087 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6088 : : {
6089 : 0 : {
6090 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6091 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
6092 : 0 : if (res) return res;
6093 : : }
6094 : : }
6095 : : }
6096 : : break;
6097 : : }
6098 : : default:;
6099 : : }
6100 : : break;
6101 : : }
6102 : 1580 : case LE_EXPR:
6103 : 1580 : {
6104 : 1580 : tree _q20 = TREE_OPERAND (_p0, 0);
6105 : 1580 : tree _q21 = TREE_OPERAND (_p0, 1);
6106 : 1580 : switch (TREE_CODE (_p1))
6107 : : {
6108 : 9 : case GE_EXPR:
6109 : 9 : {
6110 : 9 : tree _q50 = TREE_OPERAND (_p1, 0);
6111 : 9 : tree _q51 = TREE_OPERAND (_p1, 1);
6112 : 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6113 : : {
6114 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6115 : : {
6116 : 0 : {
6117 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6118 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
6119 : 0 : if (res) return res;
6120 : : }
6121 : : }
6122 : : }
6123 : : break;
6124 : : }
6125 : 0 : case EQ_EXPR:
6126 : 0 : {
6127 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6128 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6129 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6130 : : {
6131 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6132 : : {
6133 : 0 : {
6134 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6135 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
6136 : 0 : if (res) return res;
6137 : : }
6138 : : }
6139 : : }
6140 : : break;
6141 : : }
6142 : 8 : case NE_EXPR:
6143 : 8 : {
6144 : 8 : tree _q50 = TREE_OPERAND (_p1, 0);
6145 : 8 : tree _q51 = TREE_OPERAND (_p1, 1);
6146 : 8 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6147 : : {
6148 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6149 : : {
6150 : 0 : {
6151 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6152 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
6153 : 0 : if (res) return res;
6154 : : }
6155 : : }
6156 : : }
6157 : : break;
6158 : : }
6159 : : default:;
6160 : : }
6161 : : break;
6162 : : }
6163 : 33690 : case GT_EXPR:
6164 : 33690 : {
6165 : 33690 : tree _q20 = TREE_OPERAND (_p0, 0);
6166 : 33690 : tree _q21 = TREE_OPERAND (_p0, 1);
6167 : 33690 : switch (TREE_CODE (_p1))
6168 : : {
6169 : 31885 : case GT_EXPR:
6170 : 31885 : {
6171 : 31885 : tree _q50 = TREE_OPERAND (_p1, 0);
6172 : 31885 : tree _q51 = TREE_OPERAND (_p1, 1);
6173 : 31885 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6174 : : {
6175 : 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6176 : : {
6177 : 0 : {
6178 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6179 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
6180 : 0 : if (res) return res;
6181 : : }
6182 : 0 : {
6183 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6184 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
6185 : 0 : if (res) return res;
6186 : : }
6187 : : }
6188 : : }
6189 : : break;
6190 : : }
6191 : 57 : case EQ_EXPR:
6192 : 57 : {
6193 : 57 : tree _q50 = TREE_OPERAND (_p1, 0);
6194 : 57 : tree _q51 = TREE_OPERAND (_p1, 1);
6195 : 57 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6196 : : {
6197 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6198 : : {
6199 : 0 : {
6200 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6201 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
6202 : 0 : if (res) return res;
6203 : : }
6204 : : }
6205 : : }
6206 : : break;
6207 : : }
6208 : 37 : case NE_EXPR:
6209 : 37 : {
6210 : 37 : tree _q50 = TREE_OPERAND (_p1, 0);
6211 : 37 : tree _q51 = TREE_OPERAND (_p1, 1);
6212 : 37 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6213 : : {
6214 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6215 : : {
6216 : 0 : {
6217 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6218 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
6219 : 0 : if (res) return res;
6220 : : }
6221 : : }
6222 : : }
6223 : : break;
6224 : : }
6225 : 52 : case LT_EXPR:
6226 : 52 : {
6227 : 52 : tree _q50 = TREE_OPERAND (_p1, 0);
6228 : 52 : tree _q51 = TREE_OPERAND (_p1, 1);
6229 : 52 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6230 : : {
6231 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6232 : : {
6233 : 0 : {
6234 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6235 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
6236 : 0 : if (res) return res;
6237 : : }
6238 : : }
6239 : : }
6240 : : break;
6241 : : }
6242 : : default:;
6243 : : }
6244 : : break;
6245 : : }
6246 : 6796 : case GE_EXPR:
6247 : 6796 : {
6248 : 6796 : tree _q20 = TREE_OPERAND (_p0, 0);
6249 : 6796 : tree _q21 = TREE_OPERAND (_p0, 1);
6250 : 6796 : switch (TREE_CODE (_p1))
6251 : : {
6252 : 35 : case GE_EXPR:
6253 : 35 : {
6254 : 35 : tree _q50 = TREE_OPERAND (_p1, 0);
6255 : 35 : tree _q51 = TREE_OPERAND (_p1, 1);
6256 : 35 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6257 : : {
6258 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6259 : : {
6260 : 0 : {
6261 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6262 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
6263 : 0 : if (res) return res;
6264 : : }
6265 : 0 : {
6266 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6267 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
6268 : 0 : if (res) return res;
6269 : : }
6270 : : }
6271 : : }
6272 : : break;
6273 : : }
6274 : 90 : case EQ_EXPR:
6275 : 90 : {
6276 : 90 : tree _q50 = TREE_OPERAND (_p1, 0);
6277 : 90 : tree _q51 = TREE_OPERAND (_p1, 1);
6278 : 90 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6279 : : {
6280 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6281 : : {
6282 : 0 : {
6283 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6284 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
6285 : 0 : if (res) return res;
6286 : : }
6287 : : }
6288 : : }
6289 : : break;
6290 : : }
6291 : 56 : case NE_EXPR:
6292 : 56 : {
6293 : 56 : tree _q50 = TREE_OPERAND (_p1, 0);
6294 : 56 : tree _q51 = TREE_OPERAND (_p1, 1);
6295 : 56 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6296 : : {
6297 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6298 : : {
6299 : 0 : {
6300 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6301 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
6302 : 0 : if (res) return res;
6303 : : }
6304 : : }
6305 : : }
6306 : : break;
6307 : : }
6308 : 17 : case LE_EXPR:
6309 : 17 : {
6310 : 17 : tree _q50 = TREE_OPERAND (_p1, 0);
6311 : 17 : tree _q51 = TREE_OPERAND (_p1, 1);
6312 : 17 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6313 : : {
6314 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6315 : : {
6316 : 0 : {
6317 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6318 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
6319 : 0 : if (res) return res;
6320 : : }
6321 : : }
6322 : : }
6323 : : break;
6324 : : }
6325 : : default:;
6326 : : }
6327 : : break;
6328 : : }
6329 : 31695 : case EQ_EXPR:
6330 : 31695 : {
6331 : 31695 : tree _q20 = TREE_OPERAND (_p0, 0);
6332 : 31695 : tree _q21 = TREE_OPERAND (_p0, 1);
6333 : 31695 : switch (TREE_CODE (_p1))
6334 : : {
6335 : 4 : case LT_EXPR:
6336 : 4 : {
6337 : 4 : tree _q50 = TREE_OPERAND (_p1, 0);
6338 : 4 : tree _q51 = TREE_OPERAND (_p1, 1);
6339 : 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6340 : : {
6341 : 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6342 : : {
6343 : 0 : {
6344 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6345 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
6346 : 0 : if (res) return res;
6347 : : }
6348 : : }
6349 : : }
6350 : : break;
6351 : : }
6352 : 4 : case LE_EXPR:
6353 : 4 : {
6354 : 4 : tree _q50 = TREE_OPERAND (_p1, 0);
6355 : 4 : tree _q51 = TREE_OPERAND (_p1, 1);
6356 : 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6357 : : {
6358 : 4 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6359 : : {
6360 : 0 : {
6361 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6362 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
6363 : 0 : if (res) return res;
6364 : : }
6365 : : }
6366 : : }
6367 : : break;
6368 : : }
6369 : 75 : case GT_EXPR:
6370 : 75 : {
6371 : 75 : tree _q50 = TREE_OPERAND (_p1, 0);
6372 : 75 : tree _q51 = TREE_OPERAND (_p1, 1);
6373 : 75 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6374 : : {
6375 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6376 : : {
6377 : 0 : {
6378 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6379 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
6380 : 0 : if (res) return res;
6381 : : }
6382 : : }
6383 : : }
6384 : : break;
6385 : : }
6386 : 112 : case GE_EXPR:
6387 : 112 : {
6388 : 112 : tree _q50 = TREE_OPERAND (_p1, 0);
6389 : 112 : tree _q51 = TREE_OPERAND (_p1, 1);
6390 : 112 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6391 : : {
6392 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6393 : : {
6394 : 0 : {
6395 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6396 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
6397 : 0 : if (res) return res;
6398 : : }
6399 : : }
6400 : : }
6401 : : break;
6402 : : }
6403 : : default:;
6404 : : }
6405 : : break;
6406 : : }
6407 : 11572 : case NE_EXPR:
6408 : 11572 : {
6409 : 11572 : tree _q20 = TREE_OPERAND (_p0, 0);
6410 : 11572 : tree _q21 = TREE_OPERAND (_p0, 1);
6411 : 11572 : switch (TREE_CODE (_p1))
6412 : : {
6413 : 4 : case LT_EXPR:
6414 : 4 : {
6415 : 4 : tree _q50 = TREE_OPERAND (_p1, 0);
6416 : 4 : tree _q51 = TREE_OPERAND (_p1, 1);
6417 : 4 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6418 : : {
6419 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6420 : : {
6421 : 0 : {
6422 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6423 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
6424 : 0 : if (res) return res;
6425 : : }
6426 : : }
6427 : : }
6428 : : break;
6429 : : }
6430 : 0 : case LE_EXPR:
6431 : 0 : {
6432 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6433 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6434 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6435 : : {
6436 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6437 : : {
6438 : 0 : {
6439 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6440 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
6441 : 0 : if (res) return res;
6442 : : }
6443 : : }
6444 : : }
6445 : : break;
6446 : : }
6447 : 21 : case GT_EXPR:
6448 : 21 : {
6449 : 21 : tree _q50 = TREE_OPERAND (_p1, 0);
6450 : 21 : tree _q51 = TREE_OPERAND (_p1, 1);
6451 : 21 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6452 : : {
6453 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6454 : : {
6455 : 0 : {
6456 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6457 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
6458 : 0 : if (res) return res;
6459 : : }
6460 : : }
6461 : : }
6462 : : break;
6463 : : }
6464 : 2 : case GE_EXPR:
6465 : 2 : {
6466 : 2 : tree _q50 = TREE_OPERAND (_p1, 0);
6467 : 2 : tree _q51 = TREE_OPERAND (_p1, 1);
6468 : 2 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6469 : : {
6470 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6471 : : {
6472 : 0 : {
6473 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6474 : 0 : tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
6475 : 0 : if (res) return res;
6476 : : }
6477 : : }
6478 : : }
6479 : : break;
6480 : : }
6481 : : default:;
6482 : : }
6483 : : break;
6484 : : }
6485 : 14565 : case MIN_EXPR:
6486 : 14565 : {
6487 : 14565 : tree _q20 = TREE_OPERAND (_p0, 0);
6488 : 14565 : tree _q21 = TREE_OPERAND (_p0, 1);
6489 : 14565 : switch (TREE_CODE (_p1))
6490 : : {
6491 : 0 : case MAX_EXPR:
6492 : 0 : {
6493 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6494 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6495 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6496 : : {
6497 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6498 : : {
6499 : 0 : {
6500 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6501 : 0 : if (!HONOR_NANS (captures[0])
6502 : : )
6503 : : {
6504 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1460;
6505 : 0 : {
6506 : 0 : tree res_op0;
6507 : 0 : res_op0 = captures[0];
6508 : 0 : tree res_op1;
6509 : 0 : res_op1 = captures[1];
6510 : 0 : tree _r;
6511 : 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6512 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 853, __FILE__, __LINE__, true);
6513 : 0 : return _r;
6514 : : }
6515 : 0 : next_after_fail1460:;
6516 : : }
6517 : : }
6518 : : }
6519 : : }
6520 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6521 : : {
6522 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6523 : : {
6524 : 0 : {
6525 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6526 : 0 : if (!HONOR_NANS (captures[0])
6527 : : )
6528 : : {
6529 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1461;
6530 : 0 : {
6531 : 0 : tree res_op0;
6532 : 0 : res_op0 = captures[0];
6533 : 0 : tree res_op1;
6534 : 0 : res_op1 = captures[1];
6535 : 0 : tree _r;
6536 : 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6537 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 853, __FILE__, __LINE__, true);
6538 : 0 : return _r;
6539 : : }
6540 : 0 : next_after_fail1461:;
6541 : : }
6542 : : }
6543 : : }
6544 : : }
6545 : : break;
6546 : : }
6547 : 14565 : default:;
6548 : : }
6549 : 14565 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6550 : : {
6551 : 0 : {
6552 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6553 : 0 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
6554 : 0 : if (res) return res;
6555 : : }
6556 : : }
6557 : 14565 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6558 : : {
6559 : 0 : {
6560 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6561 : 0 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
6562 : 0 : if (res) return res;
6563 : : }
6564 : : }
6565 : : break;
6566 : : }
6567 : 597 : case MAX_EXPR:
6568 : 597 : {
6569 : 597 : tree _q20 = TREE_OPERAND (_p0, 0);
6570 : 597 : tree _q21 = TREE_OPERAND (_p0, 1);
6571 : 597 : switch (TREE_CODE (_p1))
6572 : : {
6573 : 0 : case MIN_EXPR:
6574 : 0 : {
6575 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6576 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6577 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
6578 : : {
6579 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6580 : : {
6581 : 0 : {
6582 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6583 : 0 : if (!HONOR_NANS (captures[0])
6584 : : )
6585 : : {
6586 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1462;
6587 : 0 : {
6588 : 0 : tree res_op0;
6589 : 0 : res_op0 = captures[0];
6590 : 0 : tree res_op1;
6591 : 0 : res_op1 = captures[1];
6592 : 0 : tree _r;
6593 : 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6594 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 853, __FILE__, __LINE__, true);
6595 : 0 : return _r;
6596 : : }
6597 : 0 : next_after_fail1462:;
6598 : : }
6599 : : }
6600 : : }
6601 : : }
6602 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
6603 : : {
6604 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
6605 : : {
6606 : 0 : {
6607 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6608 : 0 : if (!HONOR_NANS (captures[0])
6609 : : )
6610 : : {
6611 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1463;
6612 : 0 : {
6613 : 0 : tree res_op0;
6614 : 0 : res_op0 = captures[0];
6615 : 0 : tree res_op1;
6616 : 0 : res_op1 = captures[1];
6617 : 0 : tree _r;
6618 : 0 : _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
6619 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 853, __FILE__, __LINE__, true);
6620 : 0 : return _r;
6621 : : }
6622 : 0 : next_after_fail1463:;
6623 : : }
6624 : : }
6625 : : }
6626 : : }
6627 : : break;
6628 : : }
6629 : 597 : default:;
6630 : : }
6631 : 597 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
6632 : : {
6633 : 0 : {
6634 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6635 : 0 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
6636 : 0 : if (res) return res;
6637 : : }
6638 : : }
6639 : 597 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
6640 : : {
6641 : 1 : {
6642 : 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
6643 : 1 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
6644 : 1 : if (res) return res;
6645 : : }
6646 : : }
6647 : : break;
6648 : : }
6649 : 26449120 : default:;
6650 : : }
6651 : 26449120 : if (tree_with_possible_nonzero_bits (_p0))
6652 : : {
6653 : 9895358 : if (tree_with_known_nonzero_bits (_p1))
6654 : : {
6655 : 8443721 : {
6656 : 8443721 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
6657 : 8443721 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
6658 : 8443721 : if (res) return res;
6659 : : }
6660 : : }
6661 : : }
6662 : 26429647 : if (tree_with_known_nonzero_bits (_p0))
6663 : : {
6664 : 6421137 : if (tree_with_possible_nonzero_bits (_p1))
6665 : : {
6666 : 6384271 : {
6667 : 6384271 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
6668 : 6384271 : tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
6669 : 6384271 : if (res) return res;
6670 : : }
6671 : : }
6672 : : }
6673 : 26429200 : switch (TREE_CODE (_p1))
6674 : : {
6675 : 109 : case MIN_EXPR:
6676 : 109 : {
6677 : 109 : tree _q30 = TREE_OPERAND (_p1, 0);
6678 : 109 : tree _q31 = TREE_OPERAND (_p1, 1);
6679 : 109 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6680 : : {
6681 : 0 : {
6682 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
6683 : 0 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
6684 : 0 : if (res) return res;
6685 : : }
6686 : : }
6687 : 109 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6688 : : {
6689 : 0 : {
6690 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6691 : 0 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
6692 : 0 : if (res) return res;
6693 : : }
6694 : : }
6695 : : break;
6696 : : }
6697 : 40 : case MAX_EXPR:
6698 : 40 : {
6699 : 40 : tree _q30 = TREE_OPERAND (_p1, 0);
6700 : 40 : tree _q31 = TREE_OPERAND (_p1, 1);
6701 : 40 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
6702 : : {
6703 : 0 : {
6704 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
6705 : 0 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
6706 : 0 : if (res) return res;
6707 : : }
6708 : : }
6709 : 40 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
6710 : : {
6711 : 0 : {
6712 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
6713 : 0 : tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
6714 : 0 : if (res) return res;
6715 : : }
6716 : : }
6717 : : break;
6718 : : }
6719 : 26429200 : default:;
6720 : : }
6721 : 26429200 : switch (TREE_CODE (_p0))
6722 : : {
6723 : 14565 : case MIN_EXPR:
6724 : 14565 : {
6725 : 14565 : tree _q20 = TREE_OPERAND (_p0, 0);
6726 : 14565 : tree _q21 = TREE_OPERAND (_p0, 1);
6727 : 14565 : switch (TREE_CODE (_q21))
6728 : : {
6729 : 93 : case INTEGER_CST:
6730 : 93 : {
6731 : 93 : switch (TREE_CODE (_p1))
6732 : : {
6733 : 0 : case INTEGER_CST:
6734 : 0 : {
6735 : 0 : {
6736 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6737 : 0 : tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, EQ_EXPR);
6738 : 0 : if (res) return res;
6739 : : }
6740 : 0 : break;
6741 : : }
6742 : : default:;
6743 : : }
6744 : : break;
6745 : : }
6746 : : default:;
6747 : : }
6748 : : break;
6749 : : }
6750 : 597 : case MAX_EXPR:
6751 : 597 : {
6752 : 597 : tree _q20 = TREE_OPERAND (_p0, 0);
6753 : 597 : tree _q21 = TREE_OPERAND (_p0, 1);
6754 : 597 : switch (TREE_CODE (_q21))
6755 : : {
6756 : 381 : case INTEGER_CST:
6757 : 381 : {
6758 : 381 : switch (TREE_CODE (_p1))
6759 : : {
6760 : 42 : case INTEGER_CST:
6761 : 42 : {
6762 : 42 : {
6763 : 42 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6764 : 42 : tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
6765 : 42 : if (res) return res;
6766 : : }
6767 : 0 : break;
6768 : : }
6769 : : default:;
6770 : : }
6771 : : break;
6772 : : }
6773 : 555 : default:;
6774 : : }
6775 : 555 : if (integer_zerop (_p1))
6776 : : {
6777 : 11 : {
6778 : 11 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
6779 : 11 : tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, EQ_EXPR);
6780 : 11 : if (res) return res;
6781 : : }
6782 : : }
6783 : : break;
6784 : : }
6785 : 906733 : case BIT_AND_EXPR:
6786 : 906733 : {
6787 : 906733 : tree _q20 = TREE_OPERAND (_p0, 0);
6788 : 906733 : tree _q21 = TREE_OPERAND (_p0, 1);
6789 : 906733 : switch (TREE_CODE (_q20))
6790 : : {
6791 : 748 : case LSHIFT_EXPR:
6792 : 748 : {
6793 : 748 : tree _q30 = TREE_OPERAND (_q20, 0);
6794 : 748 : tree _q31 = TREE_OPERAND (_q20, 1);
6795 : 748 : if (integer_pow2p (_q30))
6796 : : {
6797 : 740 : if (integer_pow2p (_q21))
6798 : : {
6799 : 1 : if (integer_zerop (_p1))
6800 : : {
6801 : 1 : {
6802 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
6803 : 1 : tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
6804 : 1 : if (res) return res;
6805 : : }
6806 : : }
6807 : : }
6808 : : }
6809 : 747 : switch (TREE_CODE (_q31))
6810 : : {
6811 : 0 : case INTEGER_CST:
6812 : 0 : {
6813 : 0 : switch (TREE_CODE (_q21))
6814 : : {
6815 : 0 : case INTEGER_CST:
6816 : 0 : {
6817 : 0 : switch (TREE_CODE (_p1))
6818 : : {
6819 : 0 : case INTEGER_CST:
6820 : 0 : {
6821 : 0 : {
6822 : 0 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
6823 : 0 : tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
6824 : 0 : if (res) return res;
6825 : : }
6826 : 0 : break;
6827 : : }
6828 : : default:;
6829 : : }
6830 : : break;
6831 : : }
6832 : : default:;
6833 : : }
6834 : : break;
6835 : : }
6836 : 747 : default:;
6837 : : }
6838 : 747 : if (integer_onep (_q30))
6839 : : {
6840 : 739 : if (integer_pow2p (_q21))
6841 : : {
6842 : 0 : if (integer_zerop (_p1))
6843 : : {
6844 : 0 : {
6845 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q21 };
6846 : 0 : tree res = generic_simplify_230 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
6847 : 0 : if (res) return res;
6848 : : }
6849 : : }
6850 : : }
6851 : : }
6852 : : break;
6853 : : }
6854 : 2545 : case RSHIFT_EXPR:
6855 : 2545 : {
6856 : 2545 : tree _q30 = TREE_OPERAND (_q20, 0);
6857 : 2545 : tree _q31 = TREE_OPERAND (_q20, 1);
6858 : 2545 : if (integer_pow2p (_q30))
6859 : : {
6860 : 1 : if (integer_pow2p (_q21))
6861 : : {
6862 : 1 : if (integer_zerop (_p1))
6863 : : {
6864 : 1 : {
6865 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
6866 : 1 : tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
6867 : 1 : if (res) return res;
6868 : : }
6869 : : }
6870 : : }
6871 : : }
6872 : 2544 : switch (TREE_CODE (_q31))
6873 : : {
6874 : 383 : case INTEGER_CST:
6875 : 383 : {
6876 : 383 : switch (TREE_CODE (_q21))
6877 : : {
6878 : 383 : case INTEGER_CST:
6879 : 383 : {
6880 : 383 : switch (TREE_CODE (_p1))
6881 : : {
6882 : 383 : case INTEGER_CST:
6883 : 383 : {
6884 : 383 : {
6885 : 383 : tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
6886 : 383 : tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
6887 : 383 : if (res) return res;
6888 : : }
6889 : 0 : break;
6890 : : }
6891 : : default:;
6892 : : }
6893 : : break;
6894 : : }
6895 : : default:;
6896 : : }
6897 : : break;
6898 : : }
6899 : : default:;
6900 : : }
6901 : : break;
6902 : : }
6903 : 906348 : default:;
6904 : : }
6905 : 906348 : {
6906 : 906348 : tree _q20_pops[1];
6907 : 906348 : if (tree_nop_convert (_q20, _q20_pops))
6908 : : {
6909 : 26674 : tree _q30 = _q20_pops[0];
6910 : 26674 : switch (TREE_CODE (_q30))
6911 : : {
6912 : 0 : case LSHIFT_EXPR:
6913 : 0 : {
6914 : 0 : tree _q40 = TREE_OPERAND (_q30, 0);
6915 : 0 : tree _q41 = TREE_OPERAND (_q30, 1);
6916 : 0 : if (integer_onep (_q40))
6917 : : {
6918 : 0 : if (integer_pow2p (_q21))
6919 : : {
6920 : 0 : if (integer_zerop (_p1))
6921 : : {
6922 : 0 : {
6923 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q41, _q21 };
6924 : 0 : tree res = generic_simplify_230 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
6925 : 0 : if (res) return res;
6926 : : }
6927 : : }
6928 : : }
6929 : : }
6930 : : break;
6931 : : }
6932 : : default:;
6933 : : }
6934 : : }
6935 : : }
6936 : 906348 : break;
6937 : : }
6938 : 1432 : case LSHIFT_EXPR:
6939 : 1432 : {
6940 : 1432 : tree _q20 = TREE_OPERAND (_p0, 0);
6941 : 1432 : tree _q21 = TREE_OPERAND (_p0, 1);
6942 : 1432 : switch (TREE_CODE (_q20))
6943 : : {
6944 : 285 : case INTEGER_CST:
6945 : 285 : {
6946 : 285 : switch (TREE_CODE (_p1))
6947 : : {
6948 : 20 : case INTEGER_CST:
6949 : 20 : {
6950 : 20 : {
6951 : 20 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6952 : 20 : tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, EQ_EXPR);
6953 : 20 : if (res) return res;
6954 : : }
6955 : 3 : break;
6956 : : }
6957 : : default:;
6958 : : }
6959 : : break;
6960 : : }
6961 : : default:;
6962 : : }
6963 : : break;
6964 : : }
6965 : 0 : case LROTATE_EXPR:
6966 : 0 : {
6967 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
6968 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
6969 : 0 : switch (TREE_CODE (_p1))
6970 : : {
6971 : 0 : case LROTATE_EXPR:
6972 : 0 : {
6973 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
6974 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
6975 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
6976 : : {
6977 : 0 : {
6978 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
6979 : 0 : tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
6980 : 0 : if (res) return res;
6981 : : }
6982 : : }
6983 : : break;
6984 : : }
6985 : 0 : default:;
6986 : : }
6987 : 0 : switch (TREE_CODE (_q21))
6988 : : {
6989 : 0 : case INTEGER_CST:
6990 : 0 : {
6991 : 0 : switch (TREE_CODE (_p1))
6992 : : {
6993 : 0 : case INTEGER_CST:
6994 : 0 : {
6995 : 0 : {
6996 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
6997 : 0 : tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
6998 : 0 : if (res) return res;
6999 : : }
7000 : 0 : break;
7001 : : }
7002 : : default:;
7003 : : }
7004 : : break;
7005 : : }
7006 : 0 : default:;
7007 : : }
7008 : 0 : switch (TREE_CODE (_p1))
7009 : : {
7010 : 0 : case INTEGER_CST:
7011 : 0 : {
7012 : 0 : {
7013 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7014 : 0 : tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
7015 : 0 : if (res) return res;
7016 : : }
7017 : 0 : break;
7018 : : }
7019 : : default:;
7020 : : }
7021 : : break;
7022 : : }
7023 : 6 : case RROTATE_EXPR:
7024 : 6 : {
7025 : 6 : tree _q20 = TREE_OPERAND (_p0, 0);
7026 : 6 : tree _q21 = TREE_OPERAND (_p0, 1);
7027 : 6 : switch (TREE_CODE (_p1))
7028 : : {
7029 : 0 : case RROTATE_EXPR:
7030 : 0 : {
7031 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
7032 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
7033 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
7034 : : {
7035 : 0 : {
7036 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
7037 : 0 : tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
7038 : 0 : if (res) return res;
7039 : : }
7040 : : }
7041 : : break;
7042 : : }
7043 : 6 : default:;
7044 : : }
7045 : 6 : switch (TREE_CODE (_q21))
7046 : : {
7047 : 6 : case INTEGER_CST:
7048 : 6 : {
7049 : 6 : switch (TREE_CODE (_p1))
7050 : : {
7051 : 0 : case INTEGER_CST:
7052 : 0 : {
7053 : 0 : {
7054 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7055 : 0 : tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
7056 : 0 : if (res) return res;
7057 : : }
7058 : 0 : break;
7059 : : }
7060 : : default:;
7061 : : }
7062 : : break;
7063 : : }
7064 : 6 : default:;
7065 : : }
7066 : 6 : switch (TREE_CODE (_p1))
7067 : : {
7068 : 0 : case INTEGER_CST:
7069 : 0 : {
7070 : 0 : {
7071 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
7072 : 0 : tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
7073 : 0 : if (res) return res;
7074 : : }
7075 : 0 : break;
7076 : : }
7077 : : default:;
7078 : : }
7079 : : break;
7080 : : }
7081 : 64143 : case MULT_EXPR:
7082 : 64143 : {
7083 : 64143 : tree _q20 = TREE_OPERAND (_p0, 0);
7084 : 64143 : tree _q21 = TREE_OPERAND (_p0, 1);
7085 : 64143 : switch (TREE_CODE (_q20))
7086 : : {
7087 : 66 : case TRUNC_DIV_EXPR:
7088 : 66 : {
7089 : 66 : tree _q30 = TREE_OPERAND (_q20, 0);
7090 : 66 : tree _q31 = TREE_OPERAND (_q20, 1);
7091 : 66 : if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
7092 : : {
7093 : 47 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
7094 : : {
7095 : 47 : {
7096 : 47 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
7097 : 47 : tree res = generic_simplify_237 (loc, type, _p0, _p1, captures);
7098 : 47 : if (res) return res;
7099 : : }
7100 : : }
7101 : : }
7102 : : break;
7103 : : }
7104 : 64096 : default:;
7105 : : }
7106 : 64096 : switch (TREE_CODE (_q21))
7107 : : {
7108 : 0 : case TRUNC_DIV_EXPR:
7109 : 0 : {
7110 : 0 : tree _q40 = TREE_OPERAND (_q21, 0);
7111 : 0 : tree _q41 = TREE_OPERAND (_q21, 1);
7112 : 0 : if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
7113 : : {
7114 : 0 : if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
7115 : : {
7116 : 0 : {
7117 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
7118 : 0 : tree res = generic_simplify_237 (loc, type, _p0, _p1, captures);
7119 : 0 : if (res) return res;
7120 : : }
7121 : : }
7122 : : }
7123 : : break;
7124 : : }
7125 : : default:;
7126 : : }
7127 : : break;
7128 : : }
7129 : 26428709 : default:;
7130 : : }
7131 : 26428709 : switch (TREE_CODE (_p1))
7132 : : {
7133 : 13696 : case MULT_EXPR:
7134 : 13696 : {
7135 : 13696 : tree _q30 = TREE_OPERAND (_p1, 0);
7136 : 13696 : tree _q31 = TREE_OPERAND (_p1, 1);
7137 : 13696 : switch (TREE_CODE (_q30))
7138 : : {
7139 : 0 : case TRUNC_DIV_EXPR:
7140 : 0 : {
7141 : 0 : tree _q40 = TREE_OPERAND (_q30, 0);
7142 : 0 : tree _q41 = TREE_OPERAND (_q30, 1);
7143 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
7144 : : {
7145 : 0 : if ((_q31 == _q41 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q41, 0) && types_match (_q31, _q41)))
7146 : : {
7147 : 0 : {
7148 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
7149 : 0 : tree res = generic_simplify_237 (loc, type, _p0, _p1, captures);
7150 : 0 : if (res) return res;
7151 : : }
7152 : : }
7153 : : }
7154 : : break;
7155 : : }
7156 : 13696 : default:;
7157 : : }
7158 : 13696 : switch (TREE_CODE (_q31))
7159 : : {
7160 : 0 : case TRUNC_DIV_EXPR:
7161 : 0 : {
7162 : 0 : tree _q50 = TREE_OPERAND (_q31, 0);
7163 : 0 : tree _q51 = TREE_OPERAND (_q31, 1);
7164 : 0 : if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
7165 : : {
7166 : 0 : if ((_q51 == _q30 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q30, 0) && types_match (_q51, _q30)))
7167 : : {
7168 : 0 : {
7169 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q31, _p0, _q30 };
7170 : 0 : tree res = generic_simplify_237 (loc, type, _p0, _p1, captures);
7171 : 0 : if (res) return res;
7172 : : }
7173 : : }
7174 : : }
7175 : : break;
7176 : : }
7177 : : default:;
7178 : : }
7179 : : break;
7180 : : }
7181 : 26428709 : default:;
7182 : : }
7183 : 26428709 : switch (TREE_CODE (_p0))
7184 : : {
7185 : 130 : case VEC_COND_EXPR:
7186 : 130 : {
7187 : 130 : tree _q20 = TREE_OPERAND (_p0, 0);
7188 : 130 : tree _q21 = TREE_OPERAND (_p0, 1);
7189 : 130 : tree _q22 = TREE_OPERAND (_p0, 2);
7190 : 130 : switch (TREE_CODE (_p1))
7191 : : {
7192 : 27 : case VEC_COND_EXPR:
7193 : 27 : {
7194 : 27 : tree _q60 = TREE_OPERAND (_p1, 0);
7195 : 27 : tree _q61 = TREE_OPERAND (_p1, 1);
7196 : 27 : tree _q62 = TREE_OPERAND (_p1, 2);
7197 : 27 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
7198 : : {
7199 : 0 : {
7200 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
7201 : 0 : if (VECTOR_TYPE_P (type)
7202 : 0 : && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
7203 : 0 : || types_match (type, TREE_TYPE (captures[2]))
7204 : 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7205 : : || (optimize_vectors_before_lowering_p ()
7206 : 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7207 : : )
7208 : : {
7209 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1464;
7210 : 0 : {
7211 : 0 : tree res_op0;
7212 : 0 : res_op0 = captures[1];
7213 : 0 : tree res_op1;
7214 : 0 : {
7215 : 0 : tree _o1[2], _r1;
7216 : 0 : _o1[0] = captures[2];
7217 : 0 : _o1[1] = captures[5];
7218 : 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7219 : 0 : if (EXPR_P (_r1))
7220 : 0 : goto next_after_fail1464;
7221 : 0 : res_op1 = _r1;
7222 : : }
7223 : 0 : tree res_op2;
7224 : 0 : {
7225 : 0 : tree _o1[2], _r1;
7226 : 0 : _o1[0] = captures[3];
7227 : 0 : _o1[1] = captures[6];
7228 : 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7229 : 0 : if (EXPR_P (_r1))
7230 : 0 : goto next_after_fail1464;
7231 : 0 : res_op2 = _r1;
7232 : : }
7233 : 0 : tree _r;
7234 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7235 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 857, __FILE__, __LINE__, true);
7236 : 0 : return _r;
7237 : : }
7238 : 0 : next_after_fail1464:;
7239 : : }
7240 : : }
7241 : : }
7242 : : break;
7243 : : }
7244 : 130 : default:;
7245 : : }
7246 : 130 : {
7247 : 130 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
7248 : 130 : if (VECTOR_TYPE_P (type)
7249 : 130 : && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
7250 : 130 : || types_match (type, TREE_TYPE (captures[2]))
7251 : 130 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
7252 : : || (optimize_vectors_before_lowering_p ()
7253 : 79 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
7254 : : )
7255 : : {
7256 : 130 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1465;
7257 : 130 : {
7258 : 130 : if (! tree_invariant_p (captures[4])) goto next_after_fail1465;
7259 : 22 : tree res_op0;
7260 : 22 : res_op0 = captures[1];
7261 : 22 : tree res_op1;
7262 : 22 : {
7263 : 22 : tree _o1[2], _r1;
7264 : 22 : _o1[0] = captures[2];
7265 : 22 : _o1[1] = unshare_expr (captures[4]);
7266 : 22 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7267 : 22 : if (EXPR_P (_r1))
7268 : 0 : goto next_after_fail1465;
7269 : 22 : res_op1 = _r1;
7270 : : }
7271 : 22 : tree res_op2;
7272 : 22 : {
7273 : 22 : tree _o1[2], _r1;
7274 : 22 : _o1[0] = captures[3];
7275 : 22 : _o1[1] = captures[4];
7276 : 22 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7277 : 22 : if (EXPR_P (_r1))
7278 : 1 : goto next_after_fail1465;
7279 : 21 : res_op2 = _r1;
7280 : : }
7281 : 21 : tree _r;
7282 : 21 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7283 : 21 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 858, __FILE__, __LINE__, true);
7284 : 21 : return _r;
7285 : : }
7286 : 109 : next_after_fail1465:;
7287 : : }
7288 : : }
7289 : 109 : break;
7290 : : }
7291 : 1843680 : case CALL_EXPR:
7292 : 1843680 : switch (get_call_combined_fn (_p0))
7293 : : {
7294 : 0 : case CFN_BUILT_IN_BSWAP128:
7295 : 0 : if (call_expr_nargs (_p0) == 1)
7296 : : {
7297 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7298 : 0 : switch (TREE_CODE (_p1))
7299 : : {
7300 : 0 : case INTEGER_CST:
7301 : 0 : {
7302 : 0 : {
7303 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7304 : 0 : tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128);
7305 : 0 : if (res) return res;
7306 : : }
7307 : 0 : break;
7308 : : }
7309 : 0 : case CALL_EXPR:
7310 : 0 : switch (get_call_combined_fn (_p1))
7311 : : {
7312 : 0 : case CFN_BUILT_IN_BSWAP128:
7313 : 0 : if (call_expr_nargs (_p1) == 1)
7314 : : {
7315 : 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7316 : 0 : {
7317 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7318 : 0 : tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128);
7319 : 0 : if (res) return res;
7320 : : }
7321 : : }
7322 : : break;
7323 : : default:;
7324 : : }
7325 : : break;
7326 : : default:;
7327 : : }
7328 : : }
7329 : : break;
7330 : 2 : case CFN_BUILT_IN_BSWAP16:
7331 : 2 : if (call_expr_nargs (_p0) == 1)
7332 : : {
7333 : 2 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7334 : 2 : switch (TREE_CODE (_p1))
7335 : : {
7336 : 1 : case INTEGER_CST:
7337 : 1 : {
7338 : 1 : {
7339 : 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7340 : 1 : tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16);
7341 : 1 : if (res) return res;
7342 : : }
7343 : 1 : break;
7344 : : }
7345 : 1 : case CALL_EXPR:
7346 : 1 : switch (get_call_combined_fn (_p1))
7347 : : {
7348 : 1 : case CFN_BUILT_IN_BSWAP16:
7349 : 1 : if (call_expr_nargs (_p1) == 1)
7350 : : {
7351 : 1 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7352 : 1 : {
7353 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7354 : 1 : tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16);
7355 : 1 : if (res) return res;
7356 : : }
7357 : : }
7358 : : break;
7359 : : default:;
7360 : : }
7361 : : break;
7362 : : default:;
7363 : : }
7364 : : }
7365 : : break;
7366 : 6 : case CFN_BUILT_IN_BSWAP32:
7367 : 6 : if (call_expr_nargs (_p0) == 1)
7368 : : {
7369 : 6 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7370 : 6 : switch (TREE_CODE (_p1))
7371 : : {
7372 : 3 : case INTEGER_CST:
7373 : 3 : {
7374 : 3 : {
7375 : 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7376 : 3 : tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32);
7377 : 3 : if (res) return res;
7378 : : }
7379 : 3 : break;
7380 : : }
7381 : 3 : case CALL_EXPR:
7382 : 3 : switch (get_call_combined_fn (_p1))
7383 : : {
7384 : 3 : case CFN_BUILT_IN_BSWAP32:
7385 : 3 : if (call_expr_nargs (_p1) == 1)
7386 : : {
7387 : 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7388 : 3 : {
7389 : 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7390 : 3 : tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32);
7391 : 3 : if (res) return res;
7392 : : }
7393 : : }
7394 : : break;
7395 : : default:;
7396 : : }
7397 : : break;
7398 : : default:;
7399 : : }
7400 : : }
7401 : : break;
7402 : 6 : case CFN_BUILT_IN_BSWAP64:
7403 : 6 : if (call_expr_nargs (_p0) == 1)
7404 : : {
7405 : 6 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
7406 : 6 : switch (TREE_CODE (_p1))
7407 : : {
7408 : 3 : case INTEGER_CST:
7409 : 3 : {
7410 : 3 : {
7411 : 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
7412 : 3 : tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64);
7413 : 3 : if (res) return res;
7414 : : }
7415 : 3 : break;
7416 : : }
7417 : 3 : case CALL_EXPR:
7418 : 3 : switch (get_call_combined_fn (_p1))
7419 : : {
7420 : 3 : case CFN_BUILT_IN_BSWAP64:
7421 : 3 : if (call_expr_nargs (_p1) == 1)
7422 : : {
7423 : 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
7424 : 3 : {
7425 : 3 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
7426 : 3 : tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64);
7427 : 3 : if (res) return res;
7428 : : }
7429 : : }
7430 : : break;
7431 : : default:;
7432 : : }
7433 : : break;
7434 : : default:;
7435 : : }
7436 : : }
7437 : : break;
7438 : : default:;
7439 : : }
7440 : : break;
7441 : 26428681 : default:;
7442 : : }
7443 : 26428681 : switch (TREE_CODE (_p1))
7444 : : {
7445 : 29 : case VEC_COND_EXPR:
7446 : 29 : {
7447 : 29 : tree _q30 = TREE_OPERAND (_p1, 0);
7448 : 29 : tree _q31 = TREE_OPERAND (_p1, 1);
7449 : 29 : tree _q32 = TREE_OPERAND (_p1, 2);
7450 : 29 : {
7451 : 29 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
7452 : 29 : if (VECTOR_TYPE_P (type)
7453 : 29 : && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
7454 : 29 : || types_match (type, TREE_TYPE (captures[3]))
7455 : 29 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
7456 : : || (optimize_vectors_before_lowering_p ()
7457 : 21 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
7458 : : )
7459 : : {
7460 : 29 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1466;
7461 : 29 : {
7462 : 29 : if (! tree_invariant_p (captures[0])) goto next_after_fail1466;
7463 : 0 : tree res_op0;
7464 : 0 : res_op0 = captures[2];
7465 : 0 : tree res_op1;
7466 : 0 : {
7467 : 0 : tree _o1[2], _r1;
7468 : 0 : _o1[0] = unshare_expr (captures[0]);
7469 : 0 : _o1[1] = captures[3];
7470 : 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7471 : 0 : if (EXPR_P (_r1))
7472 : 0 : goto next_after_fail1466;
7473 : 0 : res_op1 = _r1;
7474 : : }
7475 : 0 : tree res_op2;
7476 : 0 : {
7477 : 0 : tree _o1[2], _r1;
7478 : 0 : _o1[0] = captures[0];
7479 : 0 : _o1[1] = captures[4];
7480 : 0 : _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
7481 : 0 : if (EXPR_P (_r1))
7482 : 0 : goto next_after_fail1466;
7483 : 0 : res_op2 = _r1;
7484 : : }
7485 : 0 : tree _r;
7486 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7487 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 859, __FILE__, __LINE__, true);
7488 : 0 : return _r;
7489 : : }
7490 : 29 : next_after_fail1466:;
7491 : : }
7492 : : }
7493 : 29 : break;
7494 : : }
7495 : 26428681 : default:;
7496 : : }
7497 : 26428681 : switch (TREE_CODE (_p0))
7498 : : {
7499 : 41147 : case COND_EXPR:
7500 : 41147 : {
7501 : 41147 : tree _q20 = TREE_OPERAND (_p0, 0);
7502 : 41147 : tree _q21 = TREE_OPERAND (_p0, 1);
7503 : 41147 : tree _q22 = TREE_OPERAND (_p0, 2);
7504 : 41147 : switch (TREE_CODE (_p1))
7505 : : {
7506 : 37 : case COND_EXPR:
7507 : 37 : {
7508 : 37 : tree _q60 = TREE_OPERAND (_p1, 0);
7509 : 37 : tree _q61 = TREE_OPERAND (_p1, 1);
7510 : 37 : tree _q62 = TREE_OPERAND (_p1, 2);
7511 : 37 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
7512 : : {
7513 : 3 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
7514 : : {
7515 : 3 : {
7516 : 3 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
7517 : 3 : const enum tree_code eqne = EQ_EXPR;
7518 : 3 : if (!HONOR_NANS (captures[1])
7519 : 3 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
7520 : 6 : && types_match (type, TREE_TYPE (captures[0]))
7521 : : )
7522 : : {
7523 : 3 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1467;
7524 : 3 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1467;
7525 : 3 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1467;
7526 : 3 : {
7527 : 3 : tree res_op0;
7528 : 3 : {
7529 : 3 : tree _o1[2], _r1;
7530 : 3 : {
7531 : 3 : tree _o2[2], _r2;
7532 : 3 : _o2[0] = captures[0];
7533 : 3 : _o2[1] = captures[3];
7534 : 3 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
7535 : 3 : _o1[0] = _r2;
7536 : : }
7537 : 3 : {
7538 : 3 : tree _o2[2], _r2;
7539 : 3 : _o2[0] = captures[1];
7540 : 3 : _o2[1] = captures[2];
7541 : 3 : _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
7542 : 3 : _o1[1] = _r2;
7543 : : }
7544 : 3 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
7545 : 3 : res_op0 = _r1;
7546 : : }
7547 : 3 : tree res_op1;
7548 : 3 : res_op1 = constant_boolean_node (eqne == NE_EXPR, type);
7549 : 3 : tree res_op2;
7550 : 3 : res_op2 = constant_boolean_node (eqne != NE_EXPR, type);
7551 : 3 : tree _r;
7552 : 3 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
7553 : 3 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 945, __FILE__, __LINE__, true);
7554 : 3 : return _r;
7555 : : }
7556 : 0 : next_after_fail1467:;
7557 : : }
7558 : : }
7559 : : }
7560 : : }
7561 : 34 : if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
7562 : : {
7563 : 7 : if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
7564 : : {
7565 : 7 : {
7566 : 7 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
7567 : 7 : const enum tree_code eqne = EQ_EXPR;
7568 : 7 : if (!HONOR_NANS (captures[1])
7569 : 0 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
7570 : 7 : && types_match (type, TREE_TYPE (captures[0]))
7571 : : )
7572 : : {
7573 : 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1468;
7574 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1468;
7575 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1468;
7576 : 0 : {
7577 : 0 : tree res_op0;
7578 : 0 : {
7579 : 0 : tree _o1[2], _r1;
7580 : 0 : {
7581 : 0 : tree _o2[2], _r2;
7582 : 0 : _o2[0] = captures[0];
7583 : 0 : _o2[1] = captures[3];
7584 : 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
7585 : 0 : _o1[0] = _r2;
7586 : : }
7587 : 0 : {
7588 : 0 : tree _o2[2], _r2;
7589 : 0 : _o2[0] = captures[1];
7590 : 0 : _o2[1] = captures[2];
7591 : 0 : _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
7592 : 0 : _o1[1] = _r2;
7593 : : }
7594 : 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
7595 : 0 : res_op0 = _r1;
7596 : : }
7597 : 0 : tree res_op1;
7598 : 0 : res_op1 = constant_boolean_node (eqne != NE_EXPR, type);
7599 : 0 : tree res_op2;
7600 : 0 : res_op2 = constant_boolean_node (eqne == NE_EXPR, type);
7601 : 0 : tree _r;
7602 : 0 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
7603 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 946, __FILE__, __LINE__, true);
7604 : 0 : return _r;
7605 : : }
7606 : 7 : next_after_fail1468:;
7607 : : }
7608 : : }
7609 : : }
7610 : : }
7611 : : break;
7612 : : }
7613 : : default:;
7614 : : }
7615 : : break;
7616 : : }
7617 : 109 : case VEC_COND_EXPR:
7618 : 109 : {
7619 : 109 : tree _q20 = TREE_OPERAND (_p0, 0);
7620 : 109 : tree _q21 = TREE_OPERAND (_p0, 1);
7621 : 109 : tree _q22 = TREE_OPERAND (_p0, 2);
7622 : 109 : switch (TREE_CODE (_p1))
7623 : : {
7624 : 27 : case VEC_COND_EXPR:
7625 : 27 : {
7626 : 27 : tree _q60 = TREE_OPERAND (_p1, 0);
7627 : 27 : tree _q61 = TREE_OPERAND (_p1, 1);
7628 : 27 : tree _q62 = TREE_OPERAND (_p1, 2);
7629 : 27 : if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
7630 : : {
7631 : 6 : if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
7632 : : {
7633 : 6 : {
7634 : 6 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
7635 : 6 : const enum tree_code eqne = EQ_EXPR;
7636 : 6 : if (!HONOR_NANS (captures[1])
7637 : 6 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
7638 : 12 : && types_match (type, TREE_TYPE (captures[0]))
7639 : : )
7640 : : {
7641 : 6 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1469;
7642 : 6 : {
7643 : 6 : tree res_op0;
7644 : 6 : {
7645 : 6 : tree _o1[2], _r1;
7646 : 6 : {
7647 : 6 : tree _o2[2], _r2;
7648 : 6 : _o2[0] = captures[0];
7649 : 6 : _o2[1] = captures[3];
7650 : 6 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
7651 : 6 : _o1[0] = _r2;
7652 : : }
7653 : 6 : {
7654 : 6 : tree _o2[2], _r2;
7655 : 6 : _o2[0] = captures[1];
7656 : 6 : _o2[1] = captures[2];
7657 : 6 : _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
7658 : 6 : _o1[1] = _r2;
7659 : : }
7660 : 6 : _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
7661 : 6 : res_op0 = _r1;
7662 : : }
7663 : 6 : tree res_op1;
7664 : 6 : res_op1 = constant_boolean_node (eqne == NE_EXPR, type);
7665 : 6 : tree res_op2;
7666 : 6 : res_op2 = constant_boolean_node (eqne != NE_EXPR, type);
7667 : 6 : tree _r;
7668 : 6 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7669 : 6 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 945, __FILE__, __LINE__, true);
7670 : 6 : return _r;
7671 : : }
7672 : 0 : next_after_fail1469:;
7673 : : }
7674 : : }
7675 : : }
7676 : : }
7677 : 21 : if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
7678 : : {
7679 : 21 : if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
7680 : : {
7681 : 21 : {
7682 : 21 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
7683 : 21 : const enum tree_code eqne = EQ_EXPR;
7684 : 21 : if (!HONOR_NANS (captures[1])
7685 : 0 : && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
7686 : 21 : && types_match (type, TREE_TYPE (captures[0]))
7687 : : )
7688 : : {
7689 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1470;
7690 : 0 : {
7691 : 0 : tree res_op0;
7692 : 0 : {
7693 : 0 : tree _o1[2], _r1;
7694 : 0 : {
7695 : 0 : tree _o2[2], _r2;
7696 : 0 : _o2[0] = captures[0];
7697 : 0 : _o2[1] = captures[3];
7698 : 0 : _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
7699 : 0 : _o1[0] = _r2;
7700 : : }
7701 : 0 : {
7702 : 0 : tree _o2[2], _r2;
7703 : 0 : _o2[0] = captures[1];
7704 : 0 : _o2[1] = captures[2];
7705 : 0 : _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
7706 : 0 : _o1[1] = _r2;
7707 : : }
7708 : 0 : _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
7709 : 0 : res_op0 = _r1;
7710 : : }
7711 : 0 : tree res_op1;
7712 : 0 : res_op1 = constant_boolean_node (eqne != NE_EXPR, type);
7713 : 0 : tree res_op2;
7714 : 0 : res_op2 = constant_boolean_node (eqne == NE_EXPR, type);
7715 : 0 : tree _r;
7716 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
7717 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 946, __FILE__, __LINE__, true);
7718 : 0 : return _r;
7719 : : }
7720 : 0 : next_after_fail1470:;
7721 : : }
7722 : : }
7723 : : }
7724 : : }
7725 : : break;
7726 : : }
7727 : : default:;
7728 : : }
7729 : : break;
7730 : : }
7731 : 1190 : case LT_EXPR:
7732 : 1190 : {
7733 : 1190 : tree _q20 = TREE_OPERAND (_p0, 0);
7734 : 1190 : tree _q21 = TREE_OPERAND (_p0, 1);
7735 : 1190 : if (integer_truep (_p1))
7736 : : {
7737 : 5 : {
7738 : 5 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7739 : 5 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
7740 : 5 : if (res) return res;
7741 : : }
7742 : : }
7743 : 1190 : if (integer_zerop (_p1))
7744 : : {
7745 : 424 : {
7746 : 424 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7747 : 424 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
7748 : 424 : if (res) return res;
7749 : : }
7750 : : }
7751 : : break;
7752 : : }
7753 : 1580 : case LE_EXPR:
7754 : 1580 : {
7755 : 1580 : tree _q20 = TREE_OPERAND (_p0, 0);
7756 : 1580 : tree _q21 = TREE_OPERAND (_p0, 1);
7757 : 1580 : if (integer_truep (_p1))
7758 : : {
7759 : 0 : {
7760 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7761 : 0 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
7762 : 0 : if (res) return res;
7763 : : }
7764 : : }
7765 : 1580 : if (integer_zerop (_p1))
7766 : : {
7767 : 662 : {
7768 : 662 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7769 : 662 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
7770 : 662 : if (res) return res;
7771 : : }
7772 : : }
7773 : : break;
7774 : : }
7775 : 31695 : case EQ_EXPR:
7776 : 31695 : {
7777 : 31695 : tree _q20 = TREE_OPERAND (_p0, 0);
7778 : 31695 : tree _q21 = TREE_OPERAND (_p0, 1);
7779 : 31695 : if (integer_truep (_p1))
7780 : : {
7781 : 46 : {
7782 : 46 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7783 : 46 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
7784 : 46 : if (res) return res;
7785 : : }
7786 : : }
7787 : 31690 : if (integer_zerop (_p1))
7788 : : {
7789 : 7753 : {
7790 : 7753 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7791 : 7753 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
7792 : 7753 : if (res) return res;
7793 : : }
7794 : : }
7795 : : break;
7796 : : }
7797 : 11572 : case NE_EXPR:
7798 : 11572 : {
7799 : 11572 : tree _q20 = TREE_OPERAND (_p0, 0);
7800 : 11572 : tree _q21 = TREE_OPERAND (_p0, 1);
7801 : 11572 : if (integer_truep (_p1))
7802 : : {
7803 : 126 : {
7804 : 126 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7805 : 126 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
7806 : 126 : if (res) return res;
7807 : : }
7808 : : }
7809 : 11452 : if (integer_zerop (_p1))
7810 : : {
7811 : 9811 : {
7812 : 9811 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7813 : 9811 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
7814 : 9811 : if (res) return res;
7815 : : }
7816 : : }
7817 : : break;
7818 : : }
7819 : 6796 : case GE_EXPR:
7820 : 6796 : {
7821 : 6796 : tree _q20 = TREE_OPERAND (_p0, 0);
7822 : 6796 : tree _q21 = TREE_OPERAND (_p0, 1);
7823 : 6796 : if (integer_truep (_p1))
7824 : : {
7825 : 0 : {
7826 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7827 : 0 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
7828 : 0 : if (res) return res;
7829 : : }
7830 : : }
7831 : 6796 : if (integer_zerop (_p1))
7832 : : {
7833 : 5623 : {
7834 : 5623 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7835 : 5623 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
7836 : 5623 : if (res) return res;
7837 : : }
7838 : : }
7839 : : break;
7840 : : }
7841 : 33690 : case GT_EXPR:
7842 : 33690 : {
7843 : 33690 : tree _q20 = TREE_OPERAND (_p0, 0);
7844 : 33690 : tree _q21 = TREE_OPERAND (_p0, 1);
7845 : 33690 : if (integer_truep (_p1))
7846 : : {
7847 : 0 : {
7848 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7849 : 0 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
7850 : 0 : if (res) return res;
7851 : : }
7852 : : }
7853 : 33690 : if (integer_zerop (_p1))
7854 : : {
7855 : 447 : {
7856 : 447 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7857 : 447 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
7858 : 447 : if (res) return res;
7859 : : }
7860 : : }
7861 : : break;
7862 : : }
7863 : 1023 : case UNORDERED_EXPR:
7864 : 1023 : {
7865 : 1023 : tree _q20 = TREE_OPERAND (_p0, 0);
7866 : 1023 : tree _q21 = TREE_OPERAND (_p0, 1);
7867 : 1023 : if (integer_truep (_p1))
7868 : : {
7869 : 0 : {
7870 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7871 : 0 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
7872 : 0 : if (res) return res;
7873 : : }
7874 : : }
7875 : 1023 : if (integer_zerop (_p1))
7876 : : {
7877 : 1017 : {
7878 : 1017 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7879 : 1017 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
7880 : 1017 : if (res) return res;
7881 : : }
7882 : : }
7883 : : break;
7884 : : }
7885 : 0 : case ORDERED_EXPR:
7886 : 0 : {
7887 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7888 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7889 : 0 : if (integer_truep (_p1))
7890 : : {
7891 : 0 : {
7892 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7893 : 0 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
7894 : 0 : if (res) return res;
7895 : : }
7896 : : }
7897 : 0 : if (integer_zerop (_p1))
7898 : : {
7899 : 0 : {
7900 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7901 : 0 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
7902 : 0 : if (res) return res;
7903 : : }
7904 : : }
7905 : : break;
7906 : : }
7907 : 0 : case UNLT_EXPR:
7908 : 0 : {
7909 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7910 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7911 : 0 : if (integer_truep (_p1))
7912 : : {
7913 : 0 : {
7914 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7915 : 0 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
7916 : 0 : if (res) return res;
7917 : : }
7918 : : }
7919 : 0 : if (integer_zerop (_p1))
7920 : : {
7921 : 0 : {
7922 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7923 : 0 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
7924 : 0 : if (res) return res;
7925 : : }
7926 : : }
7927 : : break;
7928 : : }
7929 : 0 : case UNLE_EXPR:
7930 : 0 : {
7931 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7932 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7933 : 0 : if (integer_truep (_p1))
7934 : : {
7935 : 0 : {
7936 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7937 : 0 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
7938 : 0 : if (res) return res;
7939 : : }
7940 : : }
7941 : 0 : if (integer_zerop (_p1))
7942 : : {
7943 : 0 : {
7944 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7945 : 0 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
7946 : 0 : if (res) return res;
7947 : : }
7948 : : }
7949 : : break;
7950 : : }
7951 : 0 : case UNGT_EXPR:
7952 : 0 : {
7953 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7954 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7955 : 0 : if (integer_truep (_p1))
7956 : : {
7957 : 0 : {
7958 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7959 : 0 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
7960 : 0 : if (res) return res;
7961 : : }
7962 : : }
7963 : 0 : if (integer_zerop (_p1))
7964 : : {
7965 : 0 : {
7966 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7967 : 0 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
7968 : 0 : if (res) return res;
7969 : : }
7970 : : }
7971 : : break;
7972 : : }
7973 : 0 : case UNGE_EXPR:
7974 : 0 : {
7975 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7976 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7977 : 0 : if (integer_truep (_p1))
7978 : : {
7979 : 0 : {
7980 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7981 : 0 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
7982 : 0 : if (res) return res;
7983 : : }
7984 : : }
7985 : 0 : if (integer_zerop (_p1))
7986 : : {
7987 : 0 : {
7988 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
7989 : 0 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
7990 : 0 : if (res) return res;
7991 : : }
7992 : : }
7993 : : break;
7994 : : }
7995 : 0 : case UNEQ_EXPR:
7996 : 0 : {
7997 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
7998 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
7999 : 0 : if (integer_truep (_p1))
8000 : : {
8001 : 0 : {
8002 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8003 : 0 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
8004 : 0 : if (res) return res;
8005 : : }
8006 : : }
8007 : 0 : if (integer_zerop (_p1))
8008 : : {
8009 : 0 : {
8010 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8011 : 0 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
8012 : 0 : if (res) return res;
8013 : : }
8014 : : }
8015 : : break;
8016 : : }
8017 : 0 : case LTGT_EXPR:
8018 : 0 : {
8019 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
8020 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
8021 : 0 : if (integer_truep (_p1))
8022 : : {
8023 : 0 : {
8024 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8025 : 0 : tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
8026 : 0 : if (res) return res;
8027 : : }
8028 : : }
8029 : 0 : if (integer_zerop (_p1))
8030 : : {
8031 : 0 : {
8032 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8033 : 0 : tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
8034 : 0 : if (res) return res;
8035 : : }
8036 : : }
8037 : : break;
8038 : : }
8039 : 132635 : case MINUS_EXPR:
8040 : 132635 : {
8041 : 132635 : tree _q20 = TREE_OPERAND (_p0, 0);
8042 : 132635 : tree _q21 = TREE_OPERAND (_p0, 1);
8043 : 132635 : if (integer_zerop (_p1))
8044 : : {
8045 : 38060 : {
8046 : 38060 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8047 : 38060 : tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR);
8048 : 38060 : if (res) return res;
8049 : : }
8050 : : }
8051 : : break;
8052 : : }
8053 : 39500 : case POINTER_DIFF_EXPR:
8054 : 39500 : {
8055 : 39500 : tree _q20 = TREE_OPERAND (_p0, 0);
8056 : 39500 : tree _q21 = TREE_OPERAND (_p0, 1);
8057 : 39500 : if (integer_zerop (_p1))
8058 : : {
8059 : 1363 : {
8060 : 1363 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
8061 : 1363 : tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, EQ_EXPR);
8062 : 1363 : if (res) return res;
8063 : : }
8064 : : }
8065 : : break;
8066 : : }
8067 : 64096 : case MULT_EXPR:
8068 : 64096 : {
8069 : 64096 : tree _q20 = TREE_OPERAND (_p0, 0);
8070 : 64096 : tree _q21 = TREE_OPERAND (_p0, 1);
8071 : 64096 : switch (TREE_CODE (_q21))
8072 : : {
8073 : 56506 : case INTEGER_CST:
8074 : 56506 : {
8075 : 56506 : switch (TREE_CODE (_p1))
8076 : : {
8077 : 11132 : case INTEGER_CST:
8078 : 11132 : {
8079 : 11132 : {
8080 : 11132 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8081 : 11132 : tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, EQ_EXPR);
8082 : 11132 : if (res) return res;
8083 : : }
8084 : 10166 : break;
8085 : : }
8086 : 55540 : default:;
8087 : : }
8088 : 55540 : if (integer_zerop (_p1))
8089 : : {
8090 : 5024 : {
8091 : 5024 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8092 : 5024 : tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8093 : 5024 : if (res) return res;
8094 : : }
8095 : : }
8096 : : break;
8097 : : }
8098 : : default:;
8099 : : }
8100 : : break;
8101 : : }
8102 : 26363321 : default:;
8103 : : }
8104 : 26363321 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
8105 : : {
8106 : 95543 : {
8107 : 95543 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
8108 : 95543 : tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, EQ_EXPR);
8109 : 95543 : if (res) return res;
8110 : : }
8111 : : }
8112 : 26272483 : switch (TREE_CODE (_p0))
8113 : : {
8114 : 4667521 : CASE_CONVERT:
8115 : 4667521 : {
8116 : 4667521 : tree _q20 = TREE_OPERAND (_p0, 0);
8117 : 4667521 : switch (TREE_CODE (_p1))
8118 : : {
8119 : 1128969 : CASE_CONVERT:
8120 : 1128969 : {
8121 : 1128969 : tree _q40 = TREE_OPERAND (_p1, 0);
8122 : 1128969 : {
8123 : 1128969 : tree _q40_pops[1];
8124 : 1128969 : if (tree_maybe_bit_not (_q40, _q40_pops))
8125 : : {
8126 : 0 : tree _q50 = _q40_pops[0];
8127 : 0 : {
8128 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
8129 : 0 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR);
8130 : 0 : if (res) return res;
8131 : : }
8132 : : }
8133 : : }
8134 : 1128969 : break;
8135 : : }
8136 : 4667521 : default:;
8137 : : }
8138 : 4667521 : {
8139 : 4667521 : tree _q20_pops[1];
8140 : 4667521 : if (tree_maybe_bit_not (_q20, _q20_pops))
8141 : : {
8142 : 232 : tree _q30 = _q20_pops[0];
8143 : 232 : switch (TREE_CODE (_p1))
8144 : : {
8145 : 74 : CASE_CONVERT:
8146 : 74 : {
8147 : 74 : tree _q50 = TREE_OPERAND (_p1, 0);
8148 : 74 : {
8149 : 74 : tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
8150 : 74 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR);
8151 : 74 : if (res) return res;
8152 : : }
8153 : 74 : break;
8154 : : }
8155 : : default:;
8156 : : }
8157 : : }
8158 : : }
8159 : 4667521 : break;
8160 : : }
8161 : 26272483 : default:;
8162 : : }
8163 : 26272483 : {
8164 : 26272483 : tree _p1_pops[1];
8165 : 26272483 : if (tree_maybe_bit_not (_p1, _p1_pops))
8166 : : {
8167 : 19065469 : tree _q30 = _p1_pops[0];
8168 : 19065469 : {
8169 : 19065469 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8170 : 19065469 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR);
8171 : 19065469 : if (res) return res;
8172 : : }
8173 : : }
8174 : : }
8175 : 26272481 : switch (TREE_CODE (_p0))
8176 : : {
8177 : 414 : case BIT_NOT_EXPR:
8178 : 414 : {
8179 : 414 : tree _q20 = TREE_OPERAND (_p0, 0);
8180 : 414 : switch (TREE_CODE (_p1))
8181 : : {
8182 : 1 : case BIT_NOT_EXPR:
8183 : 1 : {
8184 : 1 : tree _q40 = TREE_OPERAND (_p1, 0);
8185 : 1 : {
8186 : 1 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
8187 : 1 : tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR);
8188 : 1 : if (res) return res;
8189 : : }
8190 : 0 : break;
8191 : : }
8192 : 413 : default:;
8193 : : }
8194 : 413 : {
8195 : 413 : tree _p1_pops[1];
8196 : 413 : if (tree_nop_convert (_p1, _p1_pops))
8197 : : {
8198 : 6 : tree _q40 = _p1_pops[0];
8199 : 6 : switch (TREE_CODE (_q40))
8200 : : {
8201 : 0 : case BIT_NOT_EXPR:
8202 : 0 : {
8203 : 0 : tree _q50 = TREE_OPERAND (_q40, 0);
8204 : 0 : {
8205 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
8206 : 0 : tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR);
8207 : 0 : if (res) return res;
8208 : : }
8209 : 0 : break;
8210 : : }
8211 : : default:;
8212 : : }
8213 : : }
8214 : : }
8215 : 413 : if (CONSTANT_CLASS_P (_p1))
8216 : : {
8217 : 195 : {
8218 : 195 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
8219 : 195 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8220 : 195 : if (res) return res;
8221 : : }
8222 : : }
8223 : : break;
8224 : : }
8225 : 26272285 : default:;
8226 : : }
8227 : 26272285 : {
8228 : 26272285 : tree _p0_pops[1];
8229 : 26272285 : if (tree_maybe_bit_not (_p0, _p0_pops))
8230 : : {
8231 : 62448 : tree _q20 = _p0_pops[0];
8232 : 62448 : {
8233 : 62448 : tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
8234 : 62448 : tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, EQ_EXPR);
8235 : 62448 : if (res) return res;
8236 : : }
8237 : : }
8238 : : }
8239 : 26272284 : {
8240 : 26272284 : tree _p0_pops[1];
8241 : 26272284 : if (tree_nop_convert (_p0, _p0_pops))
8242 : : {
8243 : 2787318 : tree _q20 = _p0_pops[0];
8244 : 2787318 : switch (TREE_CODE (_q20))
8245 : : {
8246 : 41 : case BIT_NOT_EXPR:
8247 : 41 : {
8248 : 41 : tree _q30 = TREE_OPERAND (_q20, 0);
8249 : 41 : switch (TREE_CODE (_p1))
8250 : : {
8251 : 0 : case BIT_NOT_EXPR:
8252 : 0 : {
8253 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
8254 : 0 : {
8255 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
8256 : 0 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, EQ_EXPR);
8257 : 0 : if (res) return res;
8258 : : }
8259 : 0 : break;
8260 : : }
8261 : 41 : default:;
8262 : : }
8263 : 41 : {
8264 : 41 : tree _p1_pops[1];
8265 : 41 : if (tree_nop_convert (_p1, _p1_pops))
8266 : : {
8267 : 0 : tree _q50 = _p1_pops[0];
8268 : 0 : switch (TREE_CODE (_q50))
8269 : : {
8270 : 0 : case BIT_NOT_EXPR:
8271 : 0 : {
8272 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
8273 : 0 : {
8274 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
8275 : 0 : tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, EQ_EXPR);
8276 : 0 : if (res) return res;
8277 : : }
8278 : 0 : break;
8279 : : }
8280 : : default:;
8281 : : }
8282 : : }
8283 : : }
8284 : 41 : if (CONSTANT_CLASS_P (_p1))
8285 : : {
8286 : 41 : {
8287 : 41 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
8288 : 41 : tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8289 : 41 : if (res) return res;
8290 : : }
8291 : : }
8292 : : break;
8293 : : }
8294 : : default:;
8295 : : }
8296 : : }
8297 : : }
8298 : 26272243 : switch (TREE_CODE (_p1))
8299 : : {
8300 : 1006706 : case REAL_CST:
8301 : 1006706 : {
8302 : 1006706 : {
8303 : 1006706 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8304 : 1006706 : tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, EQ_EXPR);
8305 : 1006706 : if (res) return res;
8306 : : }
8307 : 1005714 : break;
8308 : : }
8309 : 26271251 : default:;
8310 : : }
8311 : 26271251 : switch (TREE_CODE (_p0))
8312 : : {
8313 : 658478 : case PLUS_EXPR:
8314 : 658478 : {
8315 : 658478 : tree _q20 = TREE_OPERAND (_p0, 0);
8316 : 658478 : tree _q21 = TREE_OPERAND (_p0, 1);
8317 : 658478 : switch (TREE_CODE (_q21))
8318 : : {
8319 : 590 : case REAL_CST:
8320 : 590 : {
8321 : 590 : switch (TREE_CODE (_p1))
8322 : : {
8323 : 409 : case REAL_CST:
8324 : 409 : {
8325 : 409 : {
8326 : 409 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8327 : 409 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR);
8328 : 409 : if (res) return res;
8329 : : }
8330 : 409 : break;
8331 : : }
8332 : : default:;
8333 : : }
8334 : : break;
8335 : : }
8336 : : default:;
8337 : : }
8338 : : break;
8339 : : }
8340 : 94575 : case MINUS_EXPR:
8341 : 94575 : {
8342 : 94575 : tree _q20 = TREE_OPERAND (_p0, 0);
8343 : 94575 : tree _q21 = TREE_OPERAND (_p0, 1);
8344 : 94575 : switch (TREE_CODE (_q21))
8345 : : {
8346 : 60 : case REAL_CST:
8347 : 60 : {
8348 : 60 : switch (TREE_CODE (_p1))
8349 : : {
8350 : 60 : case REAL_CST:
8351 : 60 : {
8352 : 60 : {
8353 : 60 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8354 : 60 : tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, MINUS_EXPR, EQ_EXPR);
8355 : 60 : if (res) return res;
8356 : : }
8357 : 60 : break;
8358 : : }
8359 : : default:;
8360 : : }
8361 : : break;
8362 : : }
8363 : 94575 : default:;
8364 : : }
8365 : 94575 : switch (TREE_CODE (_q20))
8366 : : {
8367 : 273 : case REAL_CST:
8368 : 273 : {
8369 : 273 : switch (TREE_CODE (_p1))
8370 : : {
8371 : 245 : case REAL_CST:
8372 : 245 : {
8373 : 245 : {
8374 : 245 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8375 : 245 : tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, EQ_EXPR);
8376 : 245 : if (res) return res;
8377 : : }
8378 : 244 : break;
8379 : : }
8380 : : default:;
8381 : : }
8382 : : break;
8383 : : }
8384 : : default:;
8385 : : }
8386 : : break;
8387 : : }
8388 : 2614 : case FLOAT_EXPR:
8389 : 2614 : {
8390 : 2614 : tree _q20 = TREE_OPERAND (_p0, 0);
8391 : 2614 : switch (TREE_CODE (_p1))
8392 : : {
8393 : 1 : case FLOAT_EXPR:
8394 : 1 : {
8395 : 1 : tree _q40 = TREE_OPERAND (_p1, 0);
8396 : 1 : {
8397 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
8398 : 1 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8399 : 1 : if (res) return res;
8400 : : }
8401 : 0 : break;
8402 : : }
8403 : 180 : case REAL_CST:
8404 : 180 : {
8405 : 180 : {
8406 : 180 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8407 : 180 : tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8408 : 180 : if (res) return res;
8409 : : }
8410 : 149 : break;
8411 : : }
8412 : : default:;
8413 : : }
8414 : : break;
8415 : : }
8416 : 9397 : case EXACT_DIV_EXPR:
8417 : 9397 : {
8418 : 9397 : tree _q20 = TREE_OPERAND (_p0, 0);
8419 : 9397 : tree _q21 = TREE_OPERAND (_p0, 1);
8420 : 9397 : switch (TREE_CODE (_p1))
8421 : : {
8422 : 33 : case INTEGER_CST:
8423 : 33 : {
8424 : 33 : {
8425 : 33 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
8426 : 33 : tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, EQ_EXPR);
8427 : 33 : if (res) return res;
8428 : : }
8429 : 0 : break;
8430 : : }
8431 : : default:;
8432 : : }
8433 : : break;
8434 : : }
8435 : 921 : case NEGATE_EXPR:
8436 : 921 : {
8437 : 921 : tree _q20 = TREE_OPERAND (_p0, 0);
8438 : 921 : switch (TREE_CODE (_p1))
8439 : : {
8440 : 1 : case NEGATE_EXPR:
8441 : 1 : {
8442 : 1 : tree _q40 = TREE_OPERAND (_p1, 0);
8443 : 1 : {
8444 : 1 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8445 : 1 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8446 : 1 : if (res) return res;
8447 : : }
8448 : 0 : break;
8449 : : }
8450 : 920 : default:;
8451 : : }
8452 : 920 : if (CONSTANT_CLASS_P (_p1))
8453 : : {
8454 : 208 : {
8455 : 208 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8456 : 208 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
8457 : 208 : if (res) return res;
8458 : : }
8459 : : }
8460 : : break;
8461 : : }
8462 : 1314 : case ABS_EXPR:
8463 : 1314 : {
8464 : 1314 : tree _q20 = TREE_OPERAND (_p0, 0);
8465 : 1314 : if (zerop (_p1))
8466 : : {
8467 : 72 : {
8468 : 72 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8469 : 72 : const enum tree_code eqne = EQ_EXPR;
8470 : 72 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1471;
8471 : 72 : {
8472 : 72 : tree res_op0;
8473 : 72 : res_op0 = captures[0];
8474 : 72 : tree res_op1;
8475 : 72 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
8476 : 72 : tree _r;
8477 : 72 : _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
8478 : 72 : if (TREE_SIDE_EFFECTS (captures[1]))
8479 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
8480 : 72 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
8481 : 72 : return _r;
8482 : : }
8483 : 0 : next_after_fail1471:;
8484 : : }
8485 : : }
8486 : : break;
8487 : : }
8488 : 1 : case ABSU_EXPR:
8489 : 1 : {
8490 : 1 : tree _q20 = TREE_OPERAND (_p0, 0);
8491 : 1 : if (zerop (_p1))
8492 : : {
8493 : 0 : {
8494 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8495 : 0 : const enum tree_code eqne = EQ_EXPR;
8496 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1472;
8497 : 0 : {
8498 : 0 : tree res_op0;
8499 : 0 : res_op0 = captures[0];
8500 : 0 : tree res_op1;
8501 : 0 : res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
8502 : 0 : tree _r;
8503 : 0 : _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
8504 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
8505 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
8506 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
8507 : 0 : return _r;
8508 : : }
8509 : 0 : next_after_fail1472:;
8510 : : }
8511 : : }
8512 : : break;
8513 : : }
8514 : 4667442 : CASE_CONVERT:
8515 : 4667442 : {
8516 : 4667442 : tree _q20 = TREE_OPERAND (_p0, 0);
8517 : 4667442 : switch (TREE_CODE (_p1))
8518 : : {
8519 : 1128969 : CASE_CONVERT:
8520 : 1128969 : {
8521 : 1128969 : tree _q40 = TREE_OPERAND (_p1, 0);
8522 : 1128969 : {
8523 : 1128969 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
8524 : 1128969 : tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR);
8525 : 1128969 : if (res) return res;
8526 : : }
8527 : 594453 : break;
8528 : : }
8529 : 4132926 : default:;
8530 : : }
8531 : 4132926 : {
8532 : 4132926 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
8533 : 4132926 : tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR);
8534 : 4132926 : if (res) return res;
8535 : : }
8536 : 2024781 : switch (TREE_CODE (_q20))
8537 : : {
8538 : 3 : case BIT_IOR_EXPR:
8539 : 3 : {
8540 : 3 : tree _q30 = TREE_OPERAND (_q20, 0);
8541 : 3 : tree _q31 = TREE_OPERAND (_q20, 1);
8542 : 3 : switch (TREE_CODE (_q31))
8543 : : {
8544 : 0 : case INTEGER_CST:
8545 : 0 : {
8546 : 0 : switch (TREE_CODE (_p1))
8547 : : {
8548 : 0 : case INTEGER_CST:
8549 : 0 : {
8550 : 0 : {
8551 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
8552 : 0 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, EQ_EXPR);
8553 : 0 : if (res) return res;
8554 : : }
8555 : 0 : break;
8556 : : }
8557 : : default:;
8558 : : }
8559 : : break;
8560 : : }
8561 : : default:;
8562 : : }
8563 : : break;
8564 : : }
8565 : : default:;
8566 : : }
8567 : : break;
8568 : : }
8569 : 9065741 : case SSA_NAME:
8570 : 9065741 : {
8571 : 9065741 : switch (TREE_CODE (_p1))
8572 : : {
8573 : 783198 : case ADDR_EXPR:
8574 : 783198 : {
8575 : 783198 : {
8576 : 783198 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
8577 : 783198 : tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, EQ_EXPR);
8578 : 783198 : if (res) return res;
8579 : : }
8580 : 783198 : break;
8581 : : }
8582 : : default:;
8583 : : }
8584 : : break;
8585 : : }
8586 : 33854 : case BIT_IOR_EXPR:
8587 : 33854 : {
8588 : 33854 : tree _q20 = TREE_OPERAND (_p0, 0);
8589 : 33854 : tree _q21 = TREE_OPERAND (_p0, 1);
8590 : 33854 : switch (TREE_CODE (_q21))
8591 : : {
8592 : 1666 : case INTEGER_CST:
8593 : 1666 : {
8594 : 1666 : switch (TREE_CODE (_p1))
8595 : : {
8596 : 464 : case INTEGER_CST:
8597 : 464 : {
8598 : 464 : {
8599 : 464 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
8600 : 464 : tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, EQ_EXPR);
8601 : 464 : if (res) return res;
8602 : : }
8603 : 464 : break;
8604 : : }
8605 : : default:;
8606 : : }
8607 : : break;
8608 : : }
8609 : : default:;
8610 : : }
8611 : : break;
8612 : : }
8613 : 588 : case BIT_XOR_EXPR:
8614 : 588 : {
8615 : 588 : tree _q20 = TREE_OPERAND (_p0, 0);
8616 : 588 : tree _q21 = TREE_OPERAND (_p0, 1);
8617 : 588 : if (integer_zerop (_p1))
8618 : : {
8619 : 163 : {
8620 : 163 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8621 : 163 : tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, EQ_EXPR);
8622 : 163 : if (res) return res;
8623 : : }
8624 : : }
8625 : 425 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8626 : : {
8627 : 29 : {
8628 : 29 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8629 : 29 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, EQ_EXPR);
8630 : 29 : if (res) return res;
8631 : : }
8632 : : }
8633 : 396 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8634 : : {
8635 : 30 : {
8636 : 30 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8637 : 30 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, EQ_EXPR);
8638 : 30 : if (res) return res;
8639 : : }
8640 : : }
8641 : : break;
8642 : : }
8643 : 1843670 : case CALL_EXPR:
8644 : 1843670 : switch (get_call_combined_fn (_p0))
8645 : : {
8646 : 3 : case CFN_BUILT_IN_SQRTF:
8647 : 3 : if (call_expr_nargs (_p0) == 1)
8648 : : {
8649 : 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8650 : 3 : switch (TREE_CODE (_p1))
8651 : : {
8652 : 0 : case REAL_CST:
8653 : 0 : {
8654 : 0 : {
8655 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8656 : 0 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
8657 : 0 : if (res) return res;
8658 : : }
8659 : 0 : break;
8660 : : }
8661 : 3 : case CALL_EXPR:
8662 : 3 : switch (get_call_combined_fn (_p1))
8663 : : {
8664 : 3 : case CFN_BUILT_IN_SQRTF:
8665 : 3 : if (call_expr_nargs (_p1) == 1)
8666 : : {
8667 : 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8668 : 3 : {
8669 : 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8670 : 3 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
8671 : 3 : if (res) return res;
8672 : : }
8673 : : }
8674 : : break;
8675 : : default:;
8676 : : }
8677 : : break;
8678 : : default:;
8679 : : }
8680 : : }
8681 : : break;
8682 : 3 : case CFN_BUILT_IN_SQRTL:
8683 : 3 : if (call_expr_nargs (_p0) == 1)
8684 : : {
8685 : 3 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8686 : 3 : switch (TREE_CODE (_p1))
8687 : : {
8688 : 0 : case REAL_CST:
8689 : 0 : {
8690 : 0 : {
8691 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8692 : 0 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
8693 : 0 : if (res) return res;
8694 : : }
8695 : 0 : break;
8696 : : }
8697 : 3 : case CALL_EXPR:
8698 : 3 : switch (get_call_combined_fn (_p1))
8699 : : {
8700 : 3 : case CFN_BUILT_IN_SQRTL:
8701 : 3 : if (call_expr_nargs (_p1) == 1)
8702 : : {
8703 : 3 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8704 : 3 : {
8705 : 3 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8706 : 3 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
8707 : 3 : if (res) return res;
8708 : : }
8709 : : }
8710 : : break;
8711 : : default:;
8712 : : }
8713 : : break;
8714 : : default:;
8715 : : }
8716 : : }
8717 : : break;
8718 : 0 : case CFN_BUILT_IN_SQRT:
8719 : 0 : if (call_expr_nargs (_p0) == 1)
8720 : : {
8721 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8722 : 0 : switch (TREE_CODE (_p1))
8723 : : {
8724 : 0 : case REAL_CST:
8725 : 0 : {
8726 : 0 : {
8727 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8728 : 0 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
8729 : 0 : if (res) return res;
8730 : : }
8731 : 0 : break;
8732 : : }
8733 : 0 : case CALL_EXPR:
8734 : 0 : switch (get_call_combined_fn (_p1))
8735 : : {
8736 : 0 : case CFN_BUILT_IN_SQRT:
8737 : 0 : if (call_expr_nargs (_p1) == 1)
8738 : : {
8739 : 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8740 : 0 : {
8741 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8742 : 0 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
8743 : 0 : if (res) return res;
8744 : : }
8745 : : }
8746 : : break;
8747 : : default:;
8748 : : }
8749 : : break;
8750 : : default:;
8751 : : }
8752 : : }
8753 : : break;
8754 : 0 : case CFN_SQRT:
8755 : 0 : if (call_expr_nargs (_p0) == 1)
8756 : : {
8757 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
8758 : 0 : switch (TREE_CODE (_p1))
8759 : : {
8760 : 0 : case REAL_CST:
8761 : 0 : {
8762 : 0 : {
8763 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
8764 : 0 : tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, CFN_SQRT, EQ_EXPR);
8765 : 0 : if (res) return res;
8766 : : }
8767 : 0 : break;
8768 : : }
8769 : 0 : case CALL_EXPR:
8770 : 0 : switch (get_call_combined_fn (_p1))
8771 : : {
8772 : 0 : case CFN_SQRT:
8773 : 0 : if (call_expr_nargs (_p1) == 1)
8774 : : {
8775 : 0 : tree _q40 = CALL_EXPR_ARG (_p1, 0);
8776 : 0 : {
8777 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
8778 : 0 : tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, CFN_SQRT, EQ_EXPR);
8779 : 0 : if (res) return res;
8780 : : }
8781 : : }
8782 : : break;
8783 : : default:;
8784 : : }
8785 : : break;
8786 : : default:;
8787 : : }
8788 : : }
8789 : : break;
8790 : : default:;
8791 : : }
8792 : : break;
8793 : 23628031 : default:;
8794 : : }
8795 : 23628031 : switch (TREE_CODE (_p1))
8796 : : {
8797 : 22 : case BIT_XOR_EXPR:
8798 : 22 : {
8799 : 22 : tree _q30 = TREE_OPERAND (_p1, 0);
8800 : 22 : tree _q31 = TREE_OPERAND (_p1, 1);
8801 : 22 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8802 : : {
8803 : 0 : {
8804 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
8805 : 0 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, EQ_EXPR);
8806 : 0 : if (res) return res;
8807 : : }
8808 : : }
8809 : 22 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8810 : : {
8811 : 0 : {
8812 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8813 : 0 : tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, EQ_EXPR);
8814 : 0 : if (res) return res;
8815 : : }
8816 : : }
8817 : : break;
8818 : : }
8819 : 23628031 : default:;
8820 : : }
8821 : 23628031 : switch (TREE_CODE (_p0))
8822 : : {
8823 : 906348 : case BIT_AND_EXPR:
8824 : 906348 : {
8825 : 906348 : tree _q20 = TREE_OPERAND (_p0, 0);
8826 : 906348 : tree _q21 = TREE_OPERAND (_p0, 1);
8827 : 906348 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8828 : : {
8829 : 194 : {
8830 : 194 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8831 : 194 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, EQ_EXPR);
8832 : 194 : if (res) return res;
8833 : : }
8834 : : }
8835 : 906347 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8836 : : {
8837 : 152241 : {
8838 : 152241 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8839 : 152241 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, EQ_EXPR);
8840 : 152241 : if (res) return res;
8841 : : }
8842 : : }
8843 : : break;
8844 : : }
8845 : 23628030 : default:;
8846 : : }
8847 : 23628030 : switch (TREE_CODE (_p1))
8848 : : {
8849 : 10620 : case BIT_AND_EXPR:
8850 : 10620 : {
8851 : 10620 : tree _q30 = TREE_OPERAND (_p1, 0);
8852 : 10620 : tree _q31 = TREE_OPERAND (_p1, 1);
8853 : 10620 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
8854 : : {
8855 : 0 : {
8856 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
8857 : 0 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, EQ_EXPR);
8858 : 0 : if (res) return res;
8859 : : }
8860 : : }
8861 : 10620 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8862 : : {
8863 : 0 : {
8864 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
8865 : 0 : tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, EQ_EXPR);
8866 : 0 : if (res) return res;
8867 : : }
8868 : : }
8869 : : break;
8870 : : }
8871 : 23628030 : default:;
8872 : : }
8873 : 23628030 : switch (TREE_CODE (_p0))
8874 : : {
8875 : 2024781 : CASE_CONVERT:
8876 : 2024781 : {
8877 : 2024781 : tree _q20 = TREE_OPERAND (_p0, 0);
8878 : 2024781 : switch (TREE_CODE (_q20))
8879 : : {
8880 : 2 : case BIT_AND_EXPR:
8881 : 2 : {
8882 : 2 : tree _q30 = TREE_OPERAND (_q20, 0);
8883 : 2 : tree _q31 = TREE_OPERAND (_q20, 1);
8884 : 2 : switch (TREE_CODE (_q30))
8885 : : {
8886 : 0 : CASE_CONVERT:
8887 : 0 : {
8888 : 0 : tree _q40 = TREE_OPERAND (_q30, 0);
8889 : 0 : switch (TREE_CODE (_q31))
8890 : : {
8891 : 0 : case INTEGER_CST:
8892 : 0 : {
8893 : 0 : switch (TREE_CODE (_p1))
8894 : : {
8895 : 0 : CASE_CONVERT:
8896 : 0 : {
8897 : 0 : tree _q70 = TREE_OPERAND (_p1, 0);
8898 : 0 : if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
8899 : : {
8900 : 0 : {
8901 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q31 };
8902 : 0 : tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, EQ_EXPR);
8903 : 0 : if (res) return res;
8904 : : }
8905 : : }
8906 : : break;
8907 : : }
8908 : : default:;
8909 : : }
8910 : : break;
8911 : : }
8912 : : default:;
8913 : : }
8914 : : break;
8915 : : }
8916 : : default:;
8917 : : }
8918 : : break;
8919 : : }
8920 : 2024781 : default:;
8921 : : }
8922 : 2024781 : switch (TREE_CODE (_p1))
8923 : : {
8924 : 594453 : CASE_CONVERT:
8925 : 594453 : {
8926 : 594453 : tree _q40 = TREE_OPERAND (_p1, 0);
8927 : 594453 : switch (TREE_CODE (_q40))
8928 : : {
8929 : 7 : case BIT_AND_EXPR:
8930 : 7 : {
8931 : 7 : tree _q50 = TREE_OPERAND (_q40, 0);
8932 : 7 : tree _q51 = TREE_OPERAND (_q40, 1);
8933 : 7 : switch (TREE_CODE (_q50))
8934 : : {
8935 : 7 : CASE_CONVERT:
8936 : 7 : {
8937 : 7 : tree _q60 = TREE_OPERAND (_q50, 0);
8938 : 7 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
8939 : : {
8940 : 0 : switch (TREE_CODE (_q51))
8941 : : {
8942 : 0 : case INTEGER_CST:
8943 : 0 : {
8944 : 0 : {
8945 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q51 };
8946 : 0 : tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, EQ_EXPR);
8947 : 0 : if (res) return res;
8948 : : }
8949 : 0 : break;
8950 : : }
8951 : : default:;
8952 : : }
8953 : : }
8954 : : break;
8955 : : }
8956 : : default:;
8957 : : }
8958 : : break;
8959 : : }
8960 : : default:;
8961 : : }
8962 : : break;
8963 : : }
8964 : : default:;
8965 : : }
8966 : : break;
8967 : : }
8968 : 33854 : case BIT_IOR_EXPR:
8969 : 33854 : {
8970 : 33854 : tree _q20 = TREE_OPERAND (_p0, 0);
8971 : 33854 : tree _q21 = TREE_OPERAND (_p0, 1);
8972 : 33854 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
8973 : : {
8974 : 24 : {
8975 : 24 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
8976 : 24 : tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, EQ_EXPR);
8977 : 24 : if (res) return res;
8978 : : }
8979 : : }
8980 : 33854 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
8981 : : {
8982 : 46 : {
8983 : 46 : tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
8984 : 46 : tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, EQ_EXPR);
8985 : 46 : if (res) return res;
8986 : : }
8987 : : }
8988 : : break;
8989 : : }
8990 : 23628030 : default:;
8991 : : }
8992 : 23628030 : switch (TREE_CODE (_p1))
8993 : : {
8994 : 679 : case BIT_IOR_EXPR:
8995 : 679 : {
8996 : 679 : tree _q30 = TREE_OPERAND (_p1, 0);
8997 : 679 : tree _q31 = TREE_OPERAND (_p1, 1);
8998 : 679 : if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
8999 : : {
9000 : 0 : {
9001 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
9002 : 0 : tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, EQ_EXPR);
9003 : 0 : if (res) return res;
9004 : : }
9005 : : }
9006 : 679 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
9007 : : {
9008 : 0 : {
9009 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
9010 : 0 : tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, EQ_EXPR);
9011 : 0 : if (res) return res;
9012 : : }
9013 : : }
9014 : : break;
9015 : : }
9016 : 23628030 : default:;
9017 : : }
9018 : 23628030 : switch (TREE_CODE (_p0))
9019 : : {
9020 : 2024781 : CASE_CONVERT:
9021 : 2024781 : {
9022 : 2024781 : tree _q20 = TREE_OPERAND (_p0, 0);
9023 : 2024781 : switch (TREE_CODE (_q20))
9024 : : {
9025 : 9 : case BIT_XOR_EXPR:
9026 : 9 : {
9027 : 9 : tree _q30 = TREE_OPERAND (_q20, 0);
9028 : 9 : tree _q31 = TREE_OPERAND (_q20, 1);
9029 : 9 : switch (TREE_CODE (_q31))
9030 : : {
9031 : 7 : case INTEGER_CST:
9032 : 7 : {
9033 : 7 : switch (TREE_CODE (_p1))
9034 : : {
9035 : 0 : case INTEGER_CST:
9036 : 0 : {
9037 : 0 : {
9038 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
9039 : 0 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, EQ_EXPR);
9040 : 0 : if (res) return res;
9041 : : }
9042 : 0 : break;
9043 : : }
9044 : : default:;
9045 : : }
9046 : : break;
9047 : : }
9048 : : default:;
9049 : : }
9050 : : break;
9051 : : }
9052 : : default:;
9053 : : }
9054 : : break;
9055 : : }
9056 : 366 : case BIT_XOR_EXPR:
9057 : 366 : {
9058 : 366 : tree _q20 = TREE_OPERAND (_p0, 0);
9059 : 366 : tree _q21 = TREE_OPERAND (_p0, 1);
9060 : 366 : switch (TREE_CODE (_q21))
9061 : : {
9062 : 103 : case INTEGER_CST:
9063 : 103 : {
9064 : 103 : switch (TREE_CODE (_p1))
9065 : : {
9066 : 16 : case INTEGER_CST:
9067 : 16 : {
9068 : 16 : {
9069 : 16 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9070 : 16 : tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, EQ_EXPR);
9071 : 16 : if (res) return res;
9072 : : }
9073 : 0 : break;
9074 : : }
9075 : : default:;
9076 : : }
9077 : : break;
9078 : : }
9079 : : default:;
9080 : : }
9081 : : break;
9082 : : }
9083 : 23628014 : default:;
9084 : : }
9085 : 23628014 : {
9086 : 23628014 : tree _p0_pops[1];
9087 : 23628014 : if (tree_nop_convert (_p0, _p0_pops))
9088 : : {
9089 : 1691409 : tree _q20 = _p0_pops[0];
9090 : 1691409 : if (integer_zerop (_p1))
9091 : : {
9092 : 526319 : {
9093 : 526319 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
9094 : 526319 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, EQ_EXPR);
9095 : 526319 : if (res) return res;
9096 : : }
9097 : : }
9098 : : }
9099 : : }
9100 : 23245565 : if (integer_zerop (_p1))
9101 : : {
9102 : 9406667 : {
9103 : 9406667 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
9104 : 9406667 : tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, EQ_EXPR);
9105 : 9406667 : if (res) return res;
9106 : : }
9107 : : }
9108 : 23166245 : switch (TREE_CODE (_p0))
9109 : : {
9110 : 906347 : case BIT_AND_EXPR:
9111 : 906347 : {
9112 : 906347 : tree _q20 = TREE_OPERAND (_p0, 0);
9113 : 906347 : tree _q21 = TREE_OPERAND (_p0, 1);
9114 : 906347 : switch (TREE_CODE (_p1))
9115 : : {
9116 : 10362 : case BIT_AND_EXPR:
9117 : 10362 : {
9118 : 10362 : tree _q50 = TREE_OPERAND (_p1, 0);
9119 : 10362 : tree _q51 = TREE_OPERAND (_p1, 1);
9120 : 10362 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
9121 : : {
9122 : 9837 : {
9123 : 9837 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
9124 : 9837 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, EQ_EXPR);
9125 : 9837 : if (res) return res;
9126 : : }
9127 : : }
9128 : 525 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
9129 : : {
9130 : 28 : {
9131 : 28 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
9132 : 28 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, EQ_EXPR);
9133 : 28 : if (res) return res;
9134 : : }
9135 : : }
9136 : 497 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
9137 : : {
9138 : 28 : {
9139 : 28 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
9140 : 28 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, EQ_EXPR);
9141 : 28 : if (res) return res;
9142 : : }
9143 : : }
9144 : 469 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
9145 : : {
9146 : 28 : {
9147 : 28 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
9148 : 28 : tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, EQ_EXPR);
9149 : 28 : if (res) return res;
9150 : : }
9151 : : }
9152 : : break;
9153 : : }
9154 : 896426 : default:;
9155 : : }
9156 : 896426 : if (integer_pow2p (_q21))
9157 : : {
9158 : 309075 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
9159 : : {
9160 : 115685 : {
9161 : 115685 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9162 : 115685 : tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
9163 : 115685 : if (res) return res;
9164 : : }
9165 : : }
9166 : : }
9167 : 780759 : switch (TREE_CODE (_q20))
9168 : : {
9169 : 47087 : CASE_CONVERT:
9170 : 47087 : {
9171 : 47087 : tree _q30 = TREE_OPERAND (_q20, 0);
9172 : 47087 : if (integer_pow2p (_q21))
9173 : : {
9174 : 21946 : if (integer_zerop (_p1))
9175 : : {
9176 : 21944 : {
9177 : 21944 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
9178 : 21944 : tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
9179 : 21944 : if (res) return res;
9180 : : }
9181 : : }
9182 : : }
9183 : : break;
9184 : : }
9185 : 779790 : default:;
9186 : : }
9187 : 779790 : if (integer_pow2p (_q21))
9188 : : {
9189 : 192439 : if (integer_zerop (_p1))
9190 : : {
9191 : 192310 : {
9192 : 192310 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _q21 };
9193 : 192310 : tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
9194 : 192310 : if (res) return res;
9195 : : }
9196 : : }
9197 : : }
9198 : : break;
9199 : : }
9200 : 1265 : case GE_EXPR:
9201 : 1265 : {
9202 : 1265 : tree _q20 = TREE_OPERAND (_p0, 0);
9203 : 1265 : tree _q21 = TREE_OPERAND (_p0, 1);
9204 : 1265 : if (integer_zerop (_q21))
9205 : : {
9206 : 120 : switch (TREE_CODE (_p1))
9207 : : {
9208 : 5 : case GE_EXPR:
9209 : 5 : {
9210 : 5 : tree _q50 = TREE_OPERAND (_p1, 0);
9211 : 5 : tree _q51 = TREE_OPERAND (_p1, 1);
9212 : 5 : if (integer_zerop (_q51))
9213 : : {
9214 : 5 : {
9215 : 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9216 : 5 : tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, GE_EXPR);
9217 : 5 : if (res) return res;
9218 : : }
9219 : : }
9220 : : break;
9221 : : }
9222 : 1 : case LT_EXPR:
9223 : 1 : {
9224 : 1 : tree _q50 = TREE_OPERAND (_p1, 0);
9225 : 1 : tree _q51 = TREE_OPERAND (_p1, 1);
9226 : 1 : if (integer_zerop (_q51))
9227 : : {
9228 : 1 : {
9229 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
9230 : 1 : tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
9231 : 1 : if (res) return res;
9232 : : }
9233 : : }
9234 : : break;
9235 : : }
9236 : : default:;
9237 : : }
9238 : : }
9239 : : break;
9240 : : }
9241 : 886 : case LT_EXPR:
9242 : 886 : {
9243 : 886 : tree _q20 = TREE_OPERAND (_p0, 0);
9244 : 886 : tree _q21 = TREE_OPERAND (_p0, 1);
9245 : 886 : if (integer_zerop (_q21))
9246 : : {
9247 : 150 : switch (TREE_CODE (_p1))
9248 : : {
9249 : 11 : case LT_EXPR:
9250 : 11 : {
9251 : 11 : tree _q50 = TREE_OPERAND (_p1, 0);
9252 : 11 : tree _q51 = TREE_OPERAND (_p1, 1);
9253 : 11 : if (integer_zerop (_q51))
9254 : : {
9255 : 9 : {
9256 : 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9257 : 9 : tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GE_EXPR);
9258 : 9 : if (res) return res;
9259 : : }
9260 : : }
9261 : : break;
9262 : : }
9263 : 1 : case GE_EXPR:
9264 : 1 : {
9265 : 1 : tree _q50 = TREE_OPERAND (_p1, 0);
9266 : 1 : tree _q51 = TREE_OPERAND (_p1, 1);
9267 : 1 : if (integer_zerop (_q51))
9268 : : {
9269 : 1 : {
9270 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
9271 : 1 : tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
9272 : 1 : if (res) return res;
9273 : : }
9274 : : }
9275 : : break;
9276 : : }
9277 : : default:;
9278 : : }
9279 : : }
9280 : : break;
9281 : : }
9282 : 1642329 : CASE_CONVERT:
9283 : 1642329 : {
9284 : 1642329 : tree _q20 = TREE_OPERAND (_p0, 0);
9285 : 1642329 : switch (TREE_CODE (_q20))
9286 : : {
9287 : 239471 : case ADDR_EXPR:
9288 : 239471 : {
9289 : 239471 : switch (TREE_CODE (_p1))
9290 : : {
9291 : 212206 : CASE_CONVERT:
9292 : 212206 : {
9293 : 212206 : tree _q40 = TREE_OPERAND (_p1, 0);
9294 : 212206 : switch (TREE_CODE (_q40))
9295 : : {
9296 : 212206 : case ADDR_EXPR:
9297 : 212206 : {
9298 : 212206 : {
9299 : 212206 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
9300 : 212206 : tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, EQ_EXPR);
9301 : 212206 : if (res) return res;
9302 : : }
9303 : 30 : break;
9304 : : }
9305 : : default:;
9306 : : }
9307 : : break;
9308 : : }
9309 : 20494 : case ADDR_EXPR:
9310 : 20494 : {
9311 : 20494 : {
9312 : 20494 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9313 : 20494 : tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, EQ_EXPR);
9314 : 20494 : if (res) return res;
9315 : : }
9316 : 7824 : break;
9317 : : }
9318 : : default:;
9319 : : }
9320 : : break;
9321 : : }
9322 : : default:;
9323 : : }
9324 : : break;
9325 : : }
9326 : 16571 : case ADDR_EXPR:
9327 : 16571 : {
9328 : 16571 : switch (TREE_CODE (_p1))
9329 : : {
9330 : 110 : CASE_CONVERT:
9331 : 110 : {
9332 : 110 : tree _q30 = TREE_OPERAND (_p1, 0);
9333 : 110 : switch (TREE_CODE (_q30))
9334 : : {
9335 : 110 : case ADDR_EXPR:
9336 : 110 : {
9337 : 110 : {
9338 : 110 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
9339 : 110 : tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, EQ_EXPR);
9340 : 110 : if (res) return res;
9341 : : }
9342 : 0 : break;
9343 : : }
9344 : : default:;
9345 : : }
9346 : : break;
9347 : : }
9348 : 14062 : case ADDR_EXPR:
9349 : 14062 : {
9350 : 14062 : {
9351 : 14062 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
9352 : 14062 : tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, EQ_EXPR);
9353 : 14062 : if (res) return res;
9354 : : }
9355 : 5711 : break;
9356 : : }
9357 : : default:;
9358 : : }
9359 : : break;
9360 : : }
9361 : 22806069 : default:;
9362 : : }
9363 : 22806069 : {
9364 : 22806069 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
9365 : 22806069 : tree res = generic_simplify_281 (loc, type, _p0, _p1, captures, EQ_EXPR);
9366 : 22806069 : if (res) return res;
9367 : : }
9368 : 22803409 : switch (TREE_CODE (_p0))
9369 : : {
9370 : 1417483 : CASE_CONVERT:
9371 : 1417483 : {
9372 : 1417483 : tree _q20 = TREE_OPERAND (_p0, 0);
9373 : 1417483 : switch (TREE_CODE (_p1))
9374 : : {
9375 : 244874 : case INTEGER_CST:
9376 : 244874 : {
9377 : 244874 : {
9378 : 244874 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
9379 : 244874 : tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, EQ_EXPR);
9380 : 244874 : if (res) return res;
9381 : : }
9382 : 243708 : break;
9383 : : }
9384 : 1416317 : default:;
9385 : : }
9386 : 1416317 : switch (TREE_CODE (_q20))
9387 : : {
9388 : 0 : case NE_EXPR:
9389 : 0 : {
9390 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9391 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9392 : 0 : switch (TREE_CODE (_q31))
9393 : : {
9394 : 0 : case INTEGER_CST:
9395 : 0 : {
9396 : 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9397 : : {
9398 : 0 : {
9399 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9400 : 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
9401 : 0 : if (res) return res;
9402 : : }
9403 : : }
9404 : : break;
9405 : : }
9406 : : default:;
9407 : : }
9408 : : break;
9409 : : }
9410 : 0 : case EQ_EXPR:
9411 : 0 : {
9412 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
9413 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
9414 : 0 : switch (TREE_CODE (_q31))
9415 : : {
9416 : 0 : case INTEGER_CST:
9417 : 0 : {
9418 : 0 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
9419 : : {
9420 : 0 : {
9421 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
9422 : 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
9423 : 0 : if (res) return res;
9424 : : }
9425 : : }
9426 : : break;
9427 : : }
9428 : : default:;
9429 : : }
9430 : : break;
9431 : : }
9432 : : default:;
9433 : : }
9434 : : break;
9435 : : }
9436 : 22802243 : default:;
9437 : : }
9438 : 22802243 : switch (TREE_CODE (_p1))
9439 : : {
9440 : 682610 : CASE_CONVERT:
9441 : 682610 : {
9442 : 682610 : tree _q30 = TREE_OPERAND (_p1, 0);
9443 : 682610 : switch (TREE_CODE (_q30))
9444 : : {
9445 : 0 : case NE_EXPR:
9446 : 0 : {
9447 : 0 : tree _q40 = TREE_OPERAND (_q30, 0);
9448 : 0 : tree _q41 = TREE_OPERAND (_q30, 1);
9449 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
9450 : : {
9451 : 0 : switch (TREE_CODE (_q41))
9452 : : {
9453 : 0 : case INTEGER_CST:
9454 : 0 : {
9455 : 0 : {
9456 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
9457 : 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
9458 : 0 : if (res) return res;
9459 : : }
9460 : 0 : break;
9461 : : }
9462 : : default:;
9463 : : }
9464 : : }
9465 : : break;
9466 : : }
9467 : 0 : case EQ_EXPR:
9468 : 0 : {
9469 : 0 : tree _q40 = TREE_OPERAND (_q30, 0);
9470 : 0 : tree _q41 = TREE_OPERAND (_q30, 1);
9471 : 0 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
9472 : : {
9473 : 0 : switch (TREE_CODE (_q41))
9474 : : {
9475 : 0 : case INTEGER_CST:
9476 : 0 : {
9477 : 0 : {
9478 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
9479 : 0 : tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
9480 : 0 : if (res) return res;
9481 : : }
9482 : 0 : break;
9483 : : }
9484 : : default:;
9485 : : }
9486 : : }
9487 : : break;
9488 : : }
9489 : : default:;
9490 : : }
9491 : : break;
9492 : : }
9493 : 22802243 : default:;
9494 : : }
9495 : 22802243 : if (integer_onep (_p1))
9496 : : {
9497 : 1781806 : {
9498 : 1781806 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
9499 : 1781806 : if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
9500 : 1781806 : && types_match (type, TREE_TYPE (captures[0]))
9501 : : )
9502 : : {
9503 : 89549 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1473;
9504 : 89549 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1473;
9505 : 89549 : {
9506 : 89549 : tree res_op0;
9507 : 89549 : res_op0 = captures[0];
9508 : 89549 : tree _r;
9509 : 89549 : _r = non_lvalue_loc (loc, res_op0);
9510 : 89549 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
9511 : 89549 : return _r;
9512 : : }
9513 : : next_after_fail1473:;
9514 : : }
9515 : : }
9516 : : }
9517 : 22712694 : switch (TREE_CODE (_p0))
9518 : : {
9519 : 779494 : case BIT_AND_EXPR:
9520 : 779494 : {
9521 : 779494 : tree _q20 = TREE_OPERAND (_p0, 0);
9522 : 779494 : tree _q21 = TREE_OPERAND (_p0, 1);
9523 : 779494 : switch (TREE_CODE (_q21))
9524 : : {
9525 : 399 : case VECTOR_CST:
9526 : 399 : {
9527 : 399 : if (integer_zerop (_p1))
9528 : : {
9529 : 393 : {
9530 : 393 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9531 : 393 : const enum tree_code cmp = EQ_EXPR;
9532 : 393 : const enum tree_code icmp = LE_EXPR;
9533 : 393 : {
9534 : 393 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
9535 : 393 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
9536 : : )
9537 : : {
9538 : 2 : {
9539 : 2 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
9540 : 2 : ? optab_vector : optab_default;
9541 : 2 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
9542 : 2 : if (target_supports_op_p (utype, icmp, optab)
9543 : 2 : || (optimize_vectors_before_lowering_p ()
9544 : 2 : && (!target_supports_op_p (type, cmp, optab)
9545 : 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
9546 : : )
9547 : : {
9548 : 2 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
9549 : : )
9550 : : {
9551 : 2 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1474;
9552 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1474;
9553 : 2 : {
9554 : 2 : tree res_op0;
9555 : 2 : res_op0 = captures[1];
9556 : 2 : tree res_op1;
9557 : 2 : res_op1 = csts;
9558 : 2 : tree _r;
9559 : 2 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
9560 : 2 : if (TREE_SIDE_EFFECTS (captures[2]))
9561 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
9562 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 949, __FILE__, __LINE__, true);
9563 : 2 : return _r;
9564 : : }
9565 : 391 : next_after_fail1474:;
9566 : : }
9567 : : else
9568 : : {
9569 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1475;
9570 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1475;
9571 : 0 : {
9572 : 0 : tree res_op0;
9573 : 0 : {
9574 : 0 : tree _o1[1], _r1;
9575 : 0 : _o1[0] = captures[1];
9576 : 0 : if (TREE_TYPE (_o1[0]) != utype)
9577 : : {
9578 : 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
9579 : : }
9580 : : else
9581 : : _r1 = _o1[0];
9582 : 0 : res_op0 = _r1;
9583 : : }
9584 : 0 : tree res_op1;
9585 : 0 : res_op1 = csts;
9586 : 0 : tree _r;
9587 : 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
9588 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
9589 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
9590 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 950, __FILE__, __LINE__, true);
9591 : 0 : return _r;
9592 : : }
9593 : 391 : next_after_fail1475:;
9594 : : }
9595 : : }
9596 : : }
9597 : : }
9598 : : }
9599 : : }
9600 : : }
9601 : : break;
9602 : : }
9603 : 729814 : case INTEGER_CST:
9604 : 729814 : {
9605 : 729814 : if (integer_zerop (_p1))
9606 : : {
9607 : 577843 : {
9608 : 577843 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
9609 : 577843 : const enum tree_code cmp = EQ_EXPR;
9610 : 577843 : const enum tree_code icmp = LE_EXPR;
9611 : 577843 : {
9612 : 577843 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
9613 : 577843 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
9614 : : )
9615 : : {
9616 : 1051 : {
9617 : 1051 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
9618 : 1051 : ? optab_vector : optab_default;
9619 : 1051 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
9620 : 1051 : if (target_supports_op_p (utype, icmp, optab)
9621 : 1051 : || (optimize_vectors_before_lowering_p ()
9622 : 904 : && (!target_supports_op_p (type, cmp, optab)
9623 : 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
9624 : : )
9625 : : {
9626 : 904 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
9627 : : )
9628 : : {
9629 : 615 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1476;
9630 : 615 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1476;
9631 : 615 : {
9632 : 615 : tree res_op0;
9633 : 615 : res_op0 = captures[1];
9634 : 615 : tree res_op1;
9635 : 615 : res_op1 = csts;
9636 : 615 : tree _r;
9637 : 615 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
9638 : 615 : if (TREE_SIDE_EFFECTS (captures[2]))
9639 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
9640 : 615 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 949, __FILE__, __LINE__, true);
9641 : 615 : return _r;
9642 : : }
9643 : 576939 : next_after_fail1476:;
9644 : : }
9645 : : else
9646 : : {
9647 : 289 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1477;
9648 : 289 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1477;
9649 : 289 : {
9650 : 289 : tree res_op0;
9651 : 289 : {
9652 : 289 : tree _o1[1], _r1;
9653 : 289 : _o1[0] = captures[1];
9654 : 289 : if (TREE_TYPE (_o1[0]) != utype)
9655 : : {
9656 : 289 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
9657 : : }
9658 : : else
9659 : : _r1 = _o1[0];
9660 : 289 : res_op0 = _r1;
9661 : : }
9662 : 289 : tree res_op1;
9663 : 289 : res_op1 = csts;
9664 : 289 : tree _r;
9665 : 289 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
9666 : 289 : if (TREE_SIDE_EFFECTS (captures[2]))
9667 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
9668 : 289 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 950, __FILE__, __LINE__, true);
9669 : 289 : return _r;
9670 : : }
9671 : 576939 : next_after_fail1477:;
9672 : : }
9673 : : }
9674 : : }
9675 : : }
9676 : : }
9677 : : }
9678 : : }
9679 : : break;
9680 : : }
9681 : 778588 : default:;
9682 : : }
9683 : 778588 : switch (TREE_CODE (_q20))
9684 : : {
9685 : 0 : case VECTOR_CST:
9686 : 0 : {
9687 : 0 : if (integer_zerop (_p1))
9688 : : {
9689 : 0 : {
9690 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
9691 : 0 : const enum tree_code cmp = EQ_EXPR;
9692 : 0 : const enum tree_code icmp = LE_EXPR;
9693 : 0 : {
9694 : 0 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
9695 : 0 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
9696 : : )
9697 : : {
9698 : 0 : {
9699 : 0 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
9700 : 0 : ? optab_vector : optab_default;
9701 : 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
9702 : 0 : if (target_supports_op_p (utype, icmp, optab)
9703 : 0 : || (optimize_vectors_before_lowering_p ()
9704 : 0 : && (!target_supports_op_p (type, cmp, optab)
9705 : 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
9706 : : )
9707 : : {
9708 : 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
9709 : : )
9710 : : {
9711 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1478;
9712 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1478;
9713 : 0 : {
9714 : 0 : tree res_op0;
9715 : 0 : res_op0 = captures[1];
9716 : 0 : tree res_op1;
9717 : 0 : res_op1 = csts;
9718 : 0 : tree _r;
9719 : 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
9720 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
9721 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
9722 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 949, __FILE__, __LINE__, true);
9723 : 0 : return _r;
9724 : : }
9725 : 0 : next_after_fail1478:;
9726 : : }
9727 : : else
9728 : : {
9729 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1479;
9730 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1479;
9731 : 0 : {
9732 : 0 : tree res_op0;
9733 : 0 : {
9734 : 0 : tree _o1[1], _r1;
9735 : 0 : _o1[0] = captures[1];
9736 : 0 : if (TREE_TYPE (_o1[0]) != utype)
9737 : : {
9738 : 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
9739 : : }
9740 : : else
9741 : : _r1 = _o1[0];
9742 : 0 : res_op0 = _r1;
9743 : : }
9744 : 0 : tree res_op1;
9745 : 0 : res_op1 = csts;
9746 : 0 : tree _r;
9747 : 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
9748 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
9749 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
9750 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 950, __FILE__, __LINE__, true);
9751 : 0 : return _r;
9752 : : }
9753 : 0 : next_after_fail1479:;
9754 : : }
9755 : : }
9756 : : }
9757 : : }
9758 : : }
9759 : : }
9760 : : }
9761 : : break;
9762 : : }
9763 : 0 : case INTEGER_CST:
9764 : 0 : {
9765 : 0 : if (integer_zerop (_p1))
9766 : : {
9767 : 0 : {
9768 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
9769 : 0 : const enum tree_code cmp = EQ_EXPR;
9770 : 0 : const enum tree_code icmp = LE_EXPR;
9771 : 0 : {
9772 : 0 : tree csts = bitmask_inv_cst_vector_p (captures[2]);
9773 : 0 : if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
9774 : : )
9775 : : {
9776 : 0 : {
9777 : 0 : auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
9778 : 0 : ? optab_vector : optab_default;
9779 : 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
9780 : 0 : if (target_supports_op_p (utype, icmp, optab)
9781 : 0 : || (optimize_vectors_before_lowering_p ()
9782 : 0 : && (!target_supports_op_p (type, cmp, optab)
9783 : 0 : || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
9784 : : )
9785 : : {
9786 : 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
9787 : : )
9788 : : {
9789 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1480;
9790 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1480;
9791 : 0 : {
9792 : 0 : tree res_op0;
9793 : 0 : res_op0 = captures[1];
9794 : 0 : tree res_op1;
9795 : 0 : res_op1 = csts;
9796 : 0 : tree _r;
9797 : 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
9798 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
9799 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
9800 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 949, __FILE__, __LINE__, true);
9801 : 0 : return _r;
9802 : : }
9803 : 0 : next_after_fail1480:;
9804 : : }
9805 : : else
9806 : : {
9807 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1481;
9808 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1481;
9809 : 0 : {
9810 : 0 : tree res_op0;
9811 : 0 : {
9812 : 0 : tree _o1[1], _r1;
9813 : 0 : _o1[0] = captures[1];
9814 : 0 : if (TREE_TYPE (_o1[0]) != utype)
9815 : : {
9816 : 0 : _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
9817 : : }
9818 : : else
9819 : : _r1 = _o1[0];
9820 : 0 : res_op0 = _r1;
9821 : : }
9822 : 0 : tree res_op1;
9823 : 0 : res_op1 = csts;
9824 : 0 : tree _r;
9825 : 0 : _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
9826 : 0 : if (TREE_SIDE_EFFECTS (captures[2]))
9827 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
9828 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 950, __FILE__, __LINE__, true);
9829 : 0 : return _r;
9830 : : }
9831 : 0 : next_after_fail1481:;
9832 : : }
9833 : : }
9834 : : }
9835 : : }
9836 : : }
9837 : : }
9838 : : }
9839 : : break;
9840 : : }
9841 : : default:;
9842 : : }
9843 : : break;
9844 : : }
9845 : 17156 : case RSHIFT_EXPR:
9846 : 17156 : {
9847 : 17156 : tree _q20 = TREE_OPERAND (_p0, 0);
9848 : 17156 : tree _q21 = TREE_OPERAND (_p0, 1);
9849 : 17156 : switch (TREE_CODE (_q20))
9850 : : {
9851 : 1 : case MULT_EXPR:
9852 : 1 : {
9853 : 1 : tree _q30 = TREE_OPERAND (_q20, 0);
9854 : 1 : tree _q31 = TREE_OPERAND (_q20, 1);
9855 : 1 : switch (TREE_CODE (_q30))
9856 : : {
9857 : 1 : CASE_CONVERT:
9858 : 1 : {
9859 : 1 : tree _q40 = TREE_OPERAND (_q30, 0);
9860 : 1 : switch (TREE_CODE (_q31))
9861 : : {
9862 : 1 : CASE_CONVERT:
9863 : 1 : {
9864 : 1 : tree _q60 = TREE_OPERAND (_q31, 0);
9865 : 1 : switch (TREE_CODE (_q21))
9866 : : {
9867 : 1 : case INTEGER_CST:
9868 : 1 : {
9869 : 1 : if (integer_zerop (_p1))
9870 : : {
9871 : 1 : {
9872 : 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q60, _q21 };
9873 : 1 : tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, EQ_EXPR);
9874 : 1 : if (res) return res;
9875 : : }
9876 : : }
9877 : : break;
9878 : : }
9879 : : default:;
9880 : : }
9881 : : break;
9882 : : }
9883 : : default:;
9884 : : }
9885 : : break;
9886 : : }
9887 : : default:;
9888 : : }
9889 : : break;
9890 : : }
9891 : : default:;
9892 : : }
9893 : : break;
9894 : : }
9895 : 658466 : case PLUS_EXPR:
9896 : 658466 : {
9897 : 658466 : tree _q20 = TREE_OPERAND (_p0, 0);
9898 : 658466 : tree _q21 = TREE_OPERAND (_p0, 1);
9899 : 658466 : switch (TREE_CODE (_q21))
9900 : : {
9901 : 610947 : case INTEGER_CST:
9902 : 610947 : {
9903 : 610947 : switch (TREE_CODE (_p1))
9904 : : {
9905 : 339294 : case INTEGER_CST:
9906 : 339294 : {
9907 : 339294 : {
9908 : 339294 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9909 : 339294 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, EQ_EXPR);
9910 : 339294 : if (res) return res;
9911 : : }
9912 : 14 : break;
9913 : : }
9914 : : default:;
9915 : : }
9916 : : break;
9917 : : }
9918 : : default:;
9919 : : }
9920 : : break;
9921 : : }
9922 : 94574 : case MINUS_EXPR:
9923 : 94574 : {
9924 : 94574 : tree _q20 = TREE_OPERAND (_p0, 0);
9925 : 94574 : tree _q21 = TREE_OPERAND (_p0, 1);
9926 : 94574 : switch (TREE_CODE (_q21))
9927 : : {
9928 : 19 : case INTEGER_CST:
9929 : 19 : {
9930 : 19 : switch (TREE_CODE (_p1))
9931 : : {
9932 : 16 : case INTEGER_CST:
9933 : 16 : {
9934 : 16 : {
9935 : 16 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
9936 : 16 : tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, EQ_EXPR);
9937 : 16 : if (res) return res;
9938 : : }
9939 : 16 : break;
9940 : : }
9941 : : default:;
9942 : : }
9943 : : break;
9944 : : }
9945 : 94574 : default:;
9946 : : }
9947 : 94574 : switch (TREE_CODE (_q20))
9948 : : {
9949 : 39902 : case INTEGER_CST:
9950 : 39902 : {
9951 : 39902 : switch (TREE_CODE (_p1))
9952 : : {
9953 : 38954 : case INTEGER_CST:
9954 : 38954 : {
9955 : 38954 : {
9956 : 38954 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
9957 : 38954 : tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
9958 : 38954 : if (res) return res;
9959 : : }
9960 : 0 : break;
9961 : : }
9962 : : default:;
9963 : : }
9964 : : break;
9965 : : }
9966 : : default:;
9967 : : }
9968 : : break;
9969 : : }
9970 : 1839342 : case CALL_EXPR:
9971 : 1839342 : switch (get_call_combined_fn (_p0))
9972 : : {
9973 : 19 : case CFN_BUILT_IN_CLZ:
9974 : 19 : if (call_expr_nargs (_p0) == 1)
9975 : : {
9976 : 19 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9977 : 19 : switch (TREE_CODE (_p1))
9978 : : {
9979 : 19 : case INTEGER_CST:
9980 : 19 : {
9981 : 19 : {
9982 : 19 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
9983 : 19 : tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZ);
9984 : 19 : if (res) return res;
9985 : : }
9986 : 16 : break;
9987 : : }
9988 : : default:;
9989 : : }
9990 : : }
9991 : : break;
9992 : 17 : case CFN_BUILT_IN_CTZ:
9993 : 17 : if (call_expr_nargs (_p0) == 1)
9994 : : {
9995 : 17 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
9996 : 17 : switch (TREE_CODE (_p1))
9997 : : {
9998 : 17 : case INTEGER_CST:
9999 : 17 : {
10000 : 17 : {
10001 : 17 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10002 : 17 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZ);
10003 : 17 : if (res) return res;
10004 : : }
10005 : 16 : break;
10006 : : }
10007 : : default:;
10008 : : }
10009 : : }
10010 : : break;
10011 : 4 : case CFN_BUILT_IN_FFS:
10012 : 4 : if (call_expr_nargs (_p0) == 1)
10013 : : {
10014 : 4 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10015 : 4 : switch (TREE_CODE (_p1))
10016 : : {
10017 : 4 : case INTEGER_CST:
10018 : 4 : {
10019 : 4 : {
10020 : 4 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10021 : 4 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFS);
10022 : 4 : if (res) return res;
10023 : : }
10024 : 0 : break;
10025 : : }
10026 : : default:;
10027 : : }
10028 : : }
10029 : : break;
10030 : 0 : case CFN_REDUC_IOR:
10031 : 0 : if (call_expr_nargs (_p0) == 1)
10032 : : {
10033 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10034 : 0 : if (integer_zerop (_p1))
10035 : : {
10036 : 0 : {
10037 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10038 : 0 : tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, EQ_EXPR);
10039 : 0 : if (res) return res;
10040 : : }
10041 : : }
10042 : : }
10043 : : break;
10044 : 0 : case CFN_BUILT_IN_FFSIMAX:
10045 : 0 : if (call_expr_nargs (_p0) == 1)
10046 : : {
10047 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10048 : 0 : switch (TREE_CODE (_p1))
10049 : : {
10050 : 0 : case INTEGER_CST:
10051 : 0 : {
10052 : 0 : {
10053 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10054 : 0 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSIMAX);
10055 : 0 : if (res) return res;
10056 : : }
10057 : 0 : break;
10058 : : }
10059 : : default:;
10060 : : }
10061 : : }
10062 : : break;
10063 : 15 : case CFN_BUILT_IN_POPCOUNT:
10064 : 15 : if (call_expr_nargs (_p0) == 1)
10065 : : {
10066 : 15 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10067 : 15 : if (integer_zerop (_p1))
10068 : : {
10069 : 1 : {
10070 : 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10071 : 1 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT);
10072 : 1 : if (res) return res;
10073 : : }
10074 : : }
10075 : : }
10076 : : break;
10077 : 0 : case CFN_BUILT_IN_CLZL:
10078 : 0 : if (call_expr_nargs (_p0) == 1)
10079 : : {
10080 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10081 : 0 : switch (TREE_CODE (_p1))
10082 : : {
10083 : 0 : case INTEGER_CST:
10084 : 0 : {
10085 : 0 : {
10086 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10087 : 0 : tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZL);
10088 : 0 : if (res) return res;
10089 : : }
10090 : 0 : break;
10091 : : }
10092 : : default:;
10093 : : }
10094 : : }
10095 : : break;
10096 : 16 : case CFN_BUILT_IN_CTZL:
10097 : 16 : if (call_expr_nargs (_p0) == 1)
10098 : : {
10099 : 16 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10100 : 16 : switch (TREE_CODE (_p1))
10101 : : {
10102 : 16 : case INTEGER_CST:
10103 : 16 : {
10104 : 16 : {
10105 : 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10106 : 16 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZL);
10107 : 16 : if (res) return res;
10108 : : }
10109 : 16 : break;
10110 : : }
10111 : : default:;
10112 : : }
10113 : : }
10114 : : break;
10115 : 1 : case CFN_BUILT_IN_FFSL:
10116 : 1 : if (call_expr_nargs (_p0) == 1)
10117 : : {
10118 : 1 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10119 : 1 : switch (TREE_CODE (_p1))
10120 : : {
10121 : 1 : case INTEGER_CST:
10122 : 1 : {
10123 : 1 : {
10124 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10125 : 1 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSL);
10126 : 1 : if (res) return res;
10127 : : }
10128 : 0 : break;
10129 : : }
10130 : : default:;
10131 : : }
10132 : : }
10133 : : break;
10134 : 7 : case CFN_BUILT_IN_POPCOUNTLL:
10135 : 7 : if (call_expr_nargs (_p0) == 1)
10136 : : {
10137 : 7 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10138 : 7 : if (integer_zerop (_p1))
10139 : : {
10140 : 1 : {
10141 : 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10142 : 1 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL);
10143 : 1 : if (res) return res;
10144 : : }
10145 : : }
10146 : : }
10147 : : break;
10148 : 0 : case CFN_BUILT_IN_CTZIMAX:
10149 : 0 : if (call_expr_nargs (_p0) == 1)
10150 : : {
10151 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10152 : 0 : switch (TREE_CODE (_p1))
10153 : : {
10154 : 0 : case INTEGER_CST:
10155 : 0 : {
10156 : 0 : {
10157 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10158 : 0 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
10159 : 0 : if (res) return res;
10160 : : }
10161 : 0 : break;
10162 : : }
10163 : : default:;
10164 : : }
10165 : : }
10166 : : break;
10167 : 0 : case CFN_POPCOUNT:
10168 : 0 : if (call_expr_nargs (_p0) == 1)
10169 : : {
10170 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10171 : 0 : if (integer_zerop (_p1))
10172 : : {
10173 : 0 : {
10174 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10175 : 0 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_POPCOUNT);
10176 : 0 : if (res) return res;
10177 : : }
10178 : : }
10179 : : }
10180 : : break;
10181 : 0 : case CFN_CLZ:
10182 : 0 : if (call_expr_nargs (_p0) == 1)
10183 : : {
10184 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10185 : 0 : switch (TREE_CODE (_p1))
10186 : : {
10187 : 0 : case INTEGER_CST:
10188 : 0 : {
10189 : 0 : {
10190 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10191 : 0 : tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_CLZ);
10192 : 0 : if (res) return res;
10193 : : }
10194 : 0 : break;
10195 : : }
10196 : : default:;
10197 : : }
10198 : : }
10199 : 0 : if (call_expr_nargs (_p0) == 2)
10200 : : {
10201 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10202 : 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
10203 : 0 : switch (TREE_CODE (_p1))
10204 : : {
10205 : 0 : case INTEGER_CST:
10206 : 0 : {
10207 : 0 : {
10208 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10209 : 0 : tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
10210 : 0 : if (res) return res;
10211 : : }
10212 : 0 : break;
10213 : : }
10214 : : default:;
10215 : : }
10216 : : }
10217 : : break;
10218 : 0 : case CFN_CTZ:
10219 : 0 : if (call_expr_nargs (_p0) == 1)
10220 : : {
10221 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10222 : 0 : switch (TREE_CODE (_p1))
10223 : : {
10224 : 0 : case INTEGER_CST:
10225 : 0 : {
10226 : 0 : {
10227 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10228 : 0 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_CTZ);
10229 : 0 : if (res) return res;
10230 : : }
10231 : 0 : break;
10232 : : }
10233 : : default:;
10234 : : }
10235 : : }
10236 : 0 : if (call_expr_nargs (_p0) == 2)
10237 : : {
10238 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10239 : 0 : tree _q21 = CALL_EXPR_ARG (_p0, 1);
10240 : 0 : switch (TREE_CODE (_p1))
10241 : : {
10242 : 0 : case INTEGER_CST:
10243 : 0 : {
10244 : 0 : {
10245 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
10246 : 0 : tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, EQ_EXPR);
10247 : 0 : if (res) return res;
10248 : : }
10249 : 0 : break;
10250 : : }
10251 : : default:;
10252 : : }
10253 : : }
10254 : : break;
10255 : 0 : case CFN_FFS:
10256 : 0 : if (call_expr_nargs (_p0) == 1)
10257 : : {
10258 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10259 : 0 : switch (TREE_CODE (_p1))
10260 : : {
10261 : 0 : case INTEGER_CST:
10262 : 0 : {
10263 : 0 : {
10264 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10265 : 0 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_FFS);
10266 : 0 : if (res) return res;
10267 : : }
10268 : 0 : break;
10269 : : }
10270 : : default:;
10271 : : }
10272 : : }
10273 : : break;
10274 : 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
10275 : 0 : if (call_expr_nargs (_p0) == 1)
10276 : : {
10277 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10278 : 0 : if (integer_zerop (_p1))
10279 : : {
10280 : 0 : {
10281 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10282 : 0 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
10283 : 0 : if (res) return res;
10284 : : }
10285 : : }
10286 : : }
10287 : : break;
10288 : 0 : case CFN_BUILT_IN_CLZIMAX:
10289 : 0 : if (call_expr_nargs (_p0) == 1)
10290 : : {
10291 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10292 : 0 : switch (TREE_CODE (_p1))
10293 : : {
10294 : 0 : case INTEGER_CST:
10295 : 0 : {
10296 : 0 : {
10297 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10298 : 0 : tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZIMAX);
10299 : 0 : if (res) return res;
10300 : : }
10301 : 0 : break;
10302 : : }
10303 : : default:;
10304 : : }
10305 : : }
10306 : : break;
10307 : 7 : case CFN_BUILT_IN_POPCOUNTL:
10308 : 7 : if (call_expr_nargs (_p0) == 1)
10309 : : {
10310 : 7 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10311 : 7 : if (integer_zerop (_p1))
10312 : : {
10313 : 1 : {
10314 : 1 : tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
10315 : 1 : tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL);
10316 : 1 : if (res) return res;
10317 : : }
10318 : : }
10319 : : }
10320 : : break;
10321 : 16 : case CFN_BUILT_IN_CLZLL:
10322 : 16 : if (call_expr_nargs (_p0) == 1)
10323 : : {
10324 : 16 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10325 : 16 : switch (TREE_CODE (_p1))
10326 : : {
10327 : 16 : case INTEGER_CST:
10328 : 16 : {
10329 : 16 : {
10330 : 16 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10331 : 16 : tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZLL);
10332 : 16 : if (res) return res;
10333 : : }
10334 : 16 : break;
10335 : : }
10336 : : default:;
10337 : : }
10338 : : }
10339 : : break;
10340 : 0 : case CFN_BUILT_IN_CTZLL:
10341 : 0 : if (call_expr_nargs (_p0) == 1)
10342 : : {
10343 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10344 : 0 : switch (TREE_CODE (_p1))
10345 : : {
10346 : 0 : case INTEGER_CST:
10347 : 0 : {
10348 : 0 : {
10349 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10350 : 0 : tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZLL);
10351 : 0 : if (res) return res;
10352 : : }
10353 : 0 : break;
10354 : : }
10355 : : default:;
10356 : : }
10357 : : }
10358 : : break;
10359 : 0 : case CFN_BUILT_IN_FFSLL:
10360 : 0 : if (call_expr_nargs (_p0) == 1)
10361 : : {
10362 : 0 : tree _q20 = CALL_EXPR_ARG (_p0, 0);
10363 : 0 : switch (TREE_CODE (_p1))
10364 : : {
10365 : 0 : case INTEGER_CST:
10366 : 0 : {
10367 : 0 : {
10368 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
10369 : 0 : tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSLL);
10370 : 0 : if (res) return res;
10371 : : }
10372 : 0 : break;
10373 : : }
10374 : : default:;
10375 : : }
10376 : : }
10377 : : break;
10378 : : default:;
10379 : : }
10380 : : break;
10381 : : default:;
10382 : : }
10383 : : return NULL_TREE;
10384 : : }
10385 : :
10386 : : tree
10387 : 847537 : generic_simplify_UNLT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10388 : : {
10389 : 847537 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10390 : 847537 : switch (TREE_CODE (_p0))
10391 : : {
10392 : 0 : case VEC_COND_EXPR:
10393 : 0 : {
10394 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10395 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10396 : 0 : tree _q22 = TREE_OPERAND (_p0, 2);
10397 : 0 : switch (TREE_CODE (_p1))
10398 : : {
10399 : 0 : case VEC_COND_EXPR:
10400 : 0 : {
10401 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10402 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10403 : 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10404 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10405 : : {
10406 : 0 : {
10407 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
10408 : 0 : if (VECTOR_TYPE_P (type)
10409 : 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
10410 : 0 : || types_match (type, TREE_TYPE (captures[2]))
10411 : 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10412 : : || (optimize_vectors_before_lowering_p ()
10413 : 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10414 : : )
10415 : : {
10416 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1728;
10417 : 0 : {
10418 : 0 : tree res_op0;
10419 : 0 : res_op0 = captures[1];
10420 : 0 : tree res_op1;
10421 : 0 : {
10422 : 0 : tree _o1[2], _r1;
10423 : 0 : _o1[0] = captures[2];
10424 : 0 : _o1[1] = captures[5];
10425 : 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10426 : 0 : if (EXPR_P (_r1))
10427 : 0 : goto next_after_fail1728;
10428 : 0 : res_op1 = _r1;
10429 : : }
10430 : 0 : tree res_op2;
10431 : 0 : {
10432 : 0 : tree _o1[2], _r1;
10433 : 0 : _o1[0] = captures[3];
10434 : 0 : _o1[1] = captures[6];
10435 : 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10436 : 0 : if (EXPR_P (_r1))
10437 : 0 : goto next_after_fail1728;
10438 : 0 : res_op2 = _r1;
10439 : : }
10440 : 0 : tree _r;
10441 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10442 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 857, __FILE__, __LINE__, true);
10443 : 0 : return _r;
10444 : : }
10445 : 0 : next_after_fail1728:;
10446 : : }
10447 : : }
10448 : : }
10449 : : break;
10450 : : }
10451 : 0 : default:;
10452 : : }
10453 : 0 : {
10454 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
10455 : 0 : if (VECTOR_TYPE_P (type)
10456 : 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
10457 : 0 : || types_match (type, TREE_TYPE (captures[2]))
10458 : 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10459 : : || (optimize_vectors_before_lowering_p ()
10460 : 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10461 : : )
10462 : : {
10463 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1729;
10464 : 0 : {
10465 : 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1729;
10466 : 0 : tree res_op0;
10467 : 0 : res_op0 = captures[1];
10468 : 0 : tree res_op1;
10469 : 0 : {
10470 : 0 : tree _o1[2], _r1;
10471 : 0 : _o1[0] = captures[2];
10472 : 0 : _o1[1] = unshare_expr (captures[4]);
10473 : 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10474 : 0 : if (EXPR_P (_r1))
10475 : 0 : goto next_after_fail1729;
10476 : 0 : res_op1 = _r1;
10477 : : }
10478 : 0 : tree res_op2;
10479 : 0 : {
10480 : 0 : tree _o1[2], _r1;
10481 : 0 : _o1[0] = captures[3];
10482 : 0 : _o1[1] = captures[4];
10483 : 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10484 : 0 : if (EXPR_P (_r1))
10485 : 0 : goto next_after_fail1729;
10486 : 0 : res_op2 = _r1;
10487 : : }
10488 : 0 : tree _r;
10489 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10490 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 858, __FILE__, __LINE__, true);
10491 : 0 : return _r;
10492 : : }
10493 : 0 : next_after_fail1729:;
10494 : : }
10495 : : }
10496 : 0 : break;
10497 : : }
10498 : 847537 : default:;
10499 : : }
10500 : 847537 : switch (TREE_CODE (_p1))
10501 : : {
10502 : 0 : case VEC_COND_EXPR:
10503 : 0 : {
10504 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10505 : 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10506 : 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10507 : 0 : {
10508 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
10509 : 0 : if (VECTOR_TYPE_P (type)
10510 : 0 : && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
10511 : 0 : || types_match (type, TREE_TYPE (captures[3]))
10512 : 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
10513 : : || (optimize_vectors_before_lowering_p ()
10514 : 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
10515 : : )
10516 : : {
10517 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1730;
10518 : 0 : {
10519 : 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1730;
10520 : 0 : tree res_op0;
10521 : 0 : res_op0 = captures[2];
10522 : 0 : tree res_op1;
10523 : 0 : {
10524 : 0 : tree _o1[2], _r1;
10525 : 0 : _o1[0] = unshare_expr (captures[0]);
10526 : 0 : _o1[1] = captures[3];
10527 : 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10528 : 0 : if (EXPR_P (_r1))
10529 : 0 : goto next_after_fail1730;
10530 : 0 : res_op1 = _r1;
10531 : : }
10532 : 0 : tree res_op2;
10533 : 0 : {
10534 : 0 : tree _o1[2], _r1;
10535 : 0 : _o1[0] = captures[0];
10536 : 0 : _o1[1] = captures[4];
10537 : 0 : _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
10538 : 0 : if (EXPR_P (_r1))
10539 : 0 : goto next_after_fail1730;
10540 : 0 : res_op2 = _r1;
10541 : : }
10542 : 0 : tree _r;
10543 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10544 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 859, __FILE__, __LINE__, true);
10545 : 0 : return _r;
10546 : : }
10547 : 0 : next_after_fail1730:;
10548 : : }
10549 : : }
10550 : 0 : break;
10551 : : }
10552 : 847537 : default:;
10553 : : }
10554 : 847537 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
10555 : : {
10556 : 0 : {
10557 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10558 : 0 : tree res = generic_simplify_545 (loc, type, _p0, _p1, captures, UNLT_EXPR);
10559 : 0 : if (res) return res;
10560 : : }
10561 : : }
10562 : 847537 : switch (TREE_CODE (_p0))
10563 : : {
10564 : 283 : case FLOAT_EXPR:
10565 : 283 : {
10566 : 283 : tree _q20 = TREE_OPERAND (_p0, 0);
10567 : 283 : switch (TREE_CODE (_p1))
10568 : : {
10569 : 0 : case FLOAT_EXPR:
10570 : 0 : {
10571 : 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10572 : 0 : {
10573 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
10574 : 0 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, UNLT_EXPR, LT_EXPR);
10575 : 0 : if (res) return res;
10576 : : }
10577 : 0 : break;
10578 : : }
10579 : : default:;
10580 : : }
10581 : : break;
10582 : : }
10583 : 0 : case NEGATE_EXPR:
10584 : 0 : {
10585 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10586 : 0 : switch (TREE_CODE (_p1))
10587 : : {
10588 : 0 : case NEGATE_EXPR:
10589 : 0 : {
10590 : 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10591 : 0 : {
10592 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
10593 : 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
10594 : 0 : if (res) return res;
10595 : : }
10596 : 0 : break;
10597 : : }
10598 : 0 : default:;
10599 : : }
10600 : 0 : if (CONSTANT_CLASS_P (_p1))
10601 : : {
10602 : 0 : {
10603 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10604 : 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
10605 : 0 : if (res) return res;
10606 : : }
10607 : : }
10608 : : break;
10609 : : }
10610 : 847537 : default:;
10611 : : }
10612 : 847537 : switch (TREE_CODE (_p1))
10613 : : {
10614 : 425166 : case REAL_CST:
10615 : 425166 : {
10616 : 425166 : {
10617 : 425166 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10618 : 425166 : tree res = generic_simplify_544 (loc, type, _p0, _p1, captures, UNLT_EXPR);
10619 : 425166 : if (res) return res;
10620 : : }
10621 : 425164 : break;
10622 : : }
10623 : : default:;
10624 : : }
10625 : : return NULL_TREE;
10626 : : }
10627 : :
10628 : : tree
10629 : 422210 : generic_simplify_UNEQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
10630 : : {
10631 : 422210 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10632 : 422210 : switch (TREE_CODE (_p0))
10633 : : {
10634 : 0 : case VEC_COND_EXPR:
10635 : 0 : {
10636 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10637 : 0 : tree _q21 = TREE_OPERAND (_p0, 1);
10638 : 0 : tree _q22 = TREE_OPERAND (_p0, 2);
10639 : 0 : switch (TREE_CODE (_p1))
10640 : : {
10641 : 0 : case VEC_COND_EXPR:
10642 : 0 : {
10643 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
10644 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
10645 : 0 : tree _q62 = TREE_OPERAND (_p1, 2);
10646 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
10647 : : {
10648 : 0 : {
10649 : 0 : tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
10650 : 0 : if (VECTOR_TYPE_P (type)
10651 : 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
10652 : 0 : || types_match (type, TREE_TYPE (captures[2]))
10653 : 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10654 : : || (optimize_vectors_before_lowering_p ()
10655 : 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10656 : : )
10657 : : {
10658 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1740;
10659 : 0 : {
10660 : 0 : tree res_op0;
10661 : 0 : res_op0 = captures[1];
10662 : 0 : tree res_op1;
10663 : 0 : {
10664 : 0 : tree _o1[2], _r1;
10665 : 0 : _o1[0] = captures[2];
10666 : 0 : _o1[1] = captures[5];
10667 : 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10668 : 0 : if (EXPR_P (_r1))
10669 : 0 : goto next_after_fail1740;
10670 : 0 : res_op1 = _r1;
10671 : : }
10672 : 0 : tree res_op2;
10673 : 0 : {
10674 : 0 : tree _o1[2], _r1;
10675 : 0 : _o1[0] = captures[3];
10676 : 0 : _o1[1] = captures[6];
10677 : 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10678 : 0 : if (EXPR_P (_r1))
10679 : 0 : goto next_after_fail1740;
10680 : 0 : res_op2 = _r1;
10681 : : }
10682 : 0 : tree _r;
10683 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10684 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 857, __FILE__, __LINE__, true);
10685 : 0 : return _r;
10686 : : }
10687 : 0 : next_after_fail1740:;
10688 : : }
10689 : : }
10690 : : }
10691 : : break;
10692 : : }
10693 : 0 : default:;
10694 : : }
10695 : 0 : {
10696 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
10697 : 0 : if (VECTOR_TYPE_P (type)
10698 : 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
10699 : 0 : || types_match (type, TREE_TYPE (captures[2]))
10700 : 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
10701 : : || (optimize_vectors_before_lowering_p ()
10702 : 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
10703 : : )
10704 : : {
10705 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1741;
10706 : 0 : {
10707 : 0 : if (! tree_invariant_p (captures[4])) goto next_after_fail1741;
10708 : 0 : tree res_op0;
10709 : 0 : res_op0 = captures[1];
10710 : 0 : tree res_op1;
10711 : 0 : {
10712 : 0 : tree _o1[2], _r1;
10713 : 0 : _o1[0] = captures[2];
10714 : 0 : _o1[1] = unshare_expr (captures[4]);
10715 : 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10716 : 0 : if (EXPR_P (_r1))
10717 : 0 : goto next_after_fail1741;
10718 : 0 : res_op1 = _r1;
10719 : : }
10720 : 0 : tree res_op2;
10721 : 0 : {
10722 : 0 : tree _o1[2], _r1;
10723 : 0 : _o1[0] = captures[3];
10724 : 0 : _o1[1] = captures[4];
10725 : 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10726 : 0 : if (EXPR_P (_r1))
10727 : 0 : goto next_after_fail1741;
10728 : 0 : res_op2 = _r1;
10729 : : }
10730 : 0 : tree _r;
10731 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10732 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 858, __FILE__, __LINE__, true);
10733 : 0 : return _r;
10734 : : }
10735 : 0 : next_after_fail1741:;
10736 : : }
10737 : : }
10738 : 0 : break;
10739 : : }
10740 : 422210 : default:;
10741 : : }
10742 : 422210 : switch (TREE_CODE (_p1))
10743 : : {
10744 : 0 : case VEC_COND_EXPR:
10745 : 0 : {
10746 : 0 : tree _q30 = TREE_OPERAND (_p1, 0);
10747 : 0 : tree _q31 = TREE_OPERAND (_p1, 1);
10748 : 0 : tree _q32 = TREE_OPERAND (_p1, 2);
10749 : 0 : {
10750 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
10751 : 0 : if (VECTOR_TYPE_P (type)
10752 : 0 : && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
10753 : 0 : || types_match (type, TREE_TYPE (captures[3]))
10754 : 0 : || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
10755 : : || (optimize_vectors_before_lowering_p ()
10756 : 0 : && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
10757 : : )
10758 : : {
10759 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1742;
10760 : 0 : {
10761 : 0 : if (! tree_invariant_p (captures[0])) goto next_after_fail1742;
10762 : 0 : tree res_op0;
10763 : 0 : res_op0 = captures[2];
10764 : 0 : tree res_op1;
10765 : 0 : {
10766 : 0 : tree _o1[2], _r1;
10767 : 0 : _o1[0] = unshare_expr (captures[0]);
10768 : 0 : _o1[1] = captures[3];
10769 : 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10770 : 0 : if (EXPR_P (_r1))
10771 : 0 : goto next_after_fail1742;
10772 : 0 : res_op1 = _r1;
10773 : : }
10774 : 0 : tree res_op2;
10775 : 0 : {
10776 : 0 : tree _o1[2], _r1;
10777 : 0 : _o1[0] = captures[0];
10778 : 0 : _o1[1] = captures[4];
10779 : 0 : _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
10780 : 0 : if (EXPR_P (_r1))
10781 : 0 : goto next_after_fail1742;
10782 : 0 : res_op2 = _r1;
10783 : : }
10784 : 0 : tree _r;
10785 : 0 : _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
10786 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 859, __FILE__, __LINE__, true);
10787 : 0 : return _r;
10788 : : }
10789 : 0 : next_after_fail1742:;
10790 : : }
10791 : : }
10792 : 0 : break;
10793 : : }
10794 : 422210 : default:;
10795 : : }
10796 : 422210 : if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
10797 : : {
10798 : 0 : {
10799 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
10800 : 0 : tree res = generic_simplify_546 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
10801 : 0 : if (res) return res;
10802 : : }
10803 : : }
10804 : 422210 : switch (TREE_CODE (_p0))
10805 : : {
10806 : 0 : case FLOAT_EXPR:
10807 : 0 : {
10808 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10809 : 0 : switch (TREE_CODE (_p1))
10810 : : {
10811 : 0 : case FLOAT_EXPR:
10812 : 0 : {
10813 : 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10814 : 0 : {
10815 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
10816 : 0 : tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, UNEQ_EXPR, EQ_EXPR);
10817 : 0 : if (res) return res;
10818 : : }
10819 : 0 : break;
10820 : : }
10821 : : default:;
10822 : : }
10823 : : break;
10824 : : }
10825 : 0 : case NEGATE_EXPR:
10826 : 0 : {
10827 : 0 : tree _q20 = TREE_OPERAND (_p0, 0);
10828 : 0 : switch (TREE_CODE (_p1))
10829 : : {
10830 : 0 : case NEGATE_EXPR:
10831 : 0 : {
10832 : 0 : tree _q40 = TREE_OPERAND (_p1, 0);
10833 : 0 : {
10834 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
10835 : 0 : tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
10836 : 0 : if (res) return res;
10837 : : }
10838 : 0 : break;
10839 : : }
10840 : 0 : default:;
10841 : : }
10842 : 0 : if (CONSTANT_CLASS_P (_p1))
10843 : : {
10844 : 0 : {
10845 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
10846 : 0 : tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
10847 : 0 : if (res) return res;
10848 : : }
10849 : : }
10850 : : break;
10851 : : }
10852 : 422210 : default:;
10853 : : }
10854 : 422210 : switch (TREE_CODE (_p1))
10855 : : {
10856 : 154 : case REAL_CST:
10857 : 154 : {
10858 : 154 : {
10859 : 154 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
10860 : 154 : tree res = generic_simplify_544 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
10861 : 154 : if (res) return res;
10862 : : }
10863 : 152 : break;
10864 : : }
10865 : : default:;
10866 : : }
10867 : : return NULL_TREE;
10868 : : }
10869 : :
10870 : : tree
10871 : 11816119 : generic_simplify_COND_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1, tree _p2)
10872 : : {
10873 : 11816119 : const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
10874 : 11816119 : switch (TREE_CODE (_p0))
10875 : : {
10876 : 1487173 : case LT_EXPR:
10877 : 1487173 : {
10878 : 1487173 : tree _q20 = TREE_OPERAND (_p0, 0);
10879 : 1487173 : tree _q21 = TREE_OPERAND (_p0, 1);
10880 : 1487173 : switch (TREE_CODE (_q20))
10881 : : {
10882 : 10687 : case MINUS_EXPR:
10883 : 10687 : {
10884 : 10687 : tree _q30 = TREE_OPERAND (_q20, 0);
10885 : 10687 : tree _q31 = TREE_OPERAND (_q20, 1);
10886 : 10687 : switch (TREE_CODE (_q30))
10887 : : {
10888 : 485 : case SSA_NAME:
10889 : 485 : {
10890 : 485 : switch (TREE_CODE (_q31))
10891 : : {
10892 : 0 : case CALL_EXPR:
10893 : 0 : switch (get_call_combined_fn (_q31))
10894 : : {
10895 : 0 : case CFN_BUILT_IN_FLOORF:
10896 : 0 : if (call_expr_nargs (_q31) == 1)
10897 : : {
10898 : 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
10899 : 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
10900 : : {
10901 : 0 : switch (TREE_CODE (_q50))
10902 : : {
10903 : 0 : case SSA_NAME:
10904 : 0 : {
10905 : 0 : switch (TREE_CODE (_q21))
10906 : : {
10907 : 0 : case MINUS_EXPR:
10908 : 0 : {
10909 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
10910 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
10911 : 0 : switch (TREE_CODE (_q80))
10912 : : {
10913 : 0 : case CALL_EXPR:
10914 : 0 : switch (get_call_combined_fn (_q80))
10915 : : {
10916 : 0 : case CFN_BUILT_IN_CEILF:
10917 : 0 : if (call_expr_nargs (_q80) == 1)
10918 : : {
10919 : 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
10920 : 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
10921 : : {
10922 : 0 : switch (TREE_CODE (_q90))
10923 : : {
10924 : 0 : case SSA_NAME:
10925 : 0 : {
10926 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
10927 : : {
10928 : 0 : switch (TREE_CODE (_q81))
10929 : : {
10930 : 0 : case SSA_NAME:
10931 : 0 : {
10932 : 0 : switch (TREE_CODE (_p1))
10933 : : {
10934 : 0 : case CALL_EXPR:
10935 : 0 : switch (get_call_combined_fn (_p1))
10936 : : {
10937 : 0 : case CFN_BUILT_IN_FLOORF:
10938 : 0 : if (call_expr_nargs (_p1) == 1)
10939 : : {
10940 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
10941 : 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
10942 : : {
10943 : 0 : switch (TREE_CODE (_q140))
10944 : : {
10945 : 0 : case SSA_NAME:
10946 : 0 : {
10947 : 0 : switch (TREE_CODE (_p2))
10948 : : {
10949 : 0 : case CALL_EXPR:
10950 : 0 : switch (get_call_combined_fn (_p2))
10951 : : {
10952 : 0 : case CFN_BUILT_IN_CEILF:
10953 : 0 : if (call_expr_nargs (_p2) == 1)
10954 : : {
10955 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
10956 : 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
10957 : : {
10958 : 0 : switch (TREE_CODE (_q170))
10959 : : {
10960 : 0 : case SSA_NAME:
10961 : 0 : {
10962 : 0 : {
10963 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
10964 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
10965 : 0 : if (res) return res;
10966 : : }
10967 : 0 : break;
10968 : : }
10969 : : default:;
10970 : : }
10971 : : }
10972 : : }
10973 : : break;
10974 : : default:;
10975 : : }
10976 : : break;
10977 : : default:;
10978 : : }
10979 : : break;
10980 : : }
10981 : : default:;
10982 : : }
10983 : : }
10984 : : }
10985 : : break;
10986 : : default:;
10987 : : }
10988 : : break;
10989 : : default:;
10990 : : }
10991 : : break;
10992 : : }
10993 : : default:;
10994 : : }
10995 : : }
10996 : : break;
10997 : : }
10998 : : default:;
10999 : : }
11000 : : }
11001 : : }
11002 : : break;
11003 : : default:;
11004 : : }
11005 : : break;
11006 : : default:;
11007 : : }
11008 : : break;
11009 : : }
11010 : : default:;
11011 : : }
11012 : : break;
11013 : : }
11014 : : default:;
11015 : : }
11016 : : }
11017 : : }
11018 : : break;
11019 : 0 : case CFN_BUILT_IN_FLOORL:
11020 : 0 : if (call_expr_nargs (_q31) == 1)
11021 : : {
11022 : 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
11023 : 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
11024 : : {
11025 : 0 : switch (TREE_CODE (_q50))
11026 : : {
11027 : 0 : case SSA_NAME:
11028 : 0 : {
11029 : 0 : switch (TREE_CODE (_q21))
11030 : : {
11031 : 0 : case MINUS_EXPR:
11032 : 0 : {
11033 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
11034 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
11035 : 0 : switch (TREE_CODE (_q80))
11036 : : {
11037 : 0 : case CALL_EXPR:
11038 : 0 : switch (get_call_combined_fn (_q80))
11039 : : {
11040 : 0 : case CFN_BUILT_IN_CEILL:
11041 : 0 : if (call_expr_nargs (_q80) == 1)
11042 : : {
11043 : 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
11044 : 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
11045 : : {
11046 : 0 : switch (TREE_CODE (_q90))
11047 : : {
11048 : 0 : case SSA_NAME:
11049 : 0 : {
11050 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
11051 : : {
11052 : 0 : switch (TREE_CODE (_q81))
11053 : : {
11054 : 0 : case SSA_NAME:
11055 : 0 : {
11056 : 0 : switch (TREE_CODE (_p1))
11057 : : {
11058 : 0 : case CALL_EXPR:
11059 : 0 : switch (get_call_combined_fn (_p1))
11060 : : {
11061 : 0 : case CFN_BUILT_IN_FLOORL:
11062 : 0 : if (call_expr_nargs (_p1) == 1)
11063 : : {
11064 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
11065 : 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
11066 : : {
11067 : 0 : switch (TREE_CODE (_q140))
11068 : : {
11069 : 0 : case SSA_NAME:
11070 : 0 : {
11071 : 0 : switch (TREE_CODE (_p2))
11072 : : {
11073 : 0 : case CALL_EXPR:
11074 : 0 : switch (get_call_combined_fn (_p2))
11075 : : {
11076 : 0 : case CFN_BUILT_IN_CEILL:
11077 : 0 : if (call_expr_nargs (_p2) == 1)
11078 : : {
11079 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
11080 : 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
11081 : : {
11082 : 0 : switch (TREE_CODE (_q170))
11083 : : {
11084 : 0 : case SSA_NAME:
11085 : 0 : {
11086 : 0 : {
11087 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
11088 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
11089 : 0 : if (res) return res;
11090 : : }
11091 : 0 : break;
11092 : : }
11093 : : default:;
11094 : : }
11095 : : }
11096 : : }
11097 : : break;
11098 : : default:;
11099 : : }
11100 : : break;
11101 : : default:;
11102 : : }
11103 : : break;
11104 : : }
11105 : : default:;
11106 : : }
11107 : : }
11108 : : }
11109 : : break;
11110 : : default:;
11111 : : }
11112 : : break;
11113 : : default:;
11114 : : }
11115 : : break;
11116 : : }
11117 : : default:;
11118 : : }
11119 : : }
11120 : : break;
11121 : : }
11122 : : default:;
11123 : : }
11124 : : }
11125 : : }
11126 : : break;
11127 : : default:;
11128 : : }
11129 : : break;
11130 : : default:;
11131 : : }
11132 : : break;
11133 : : }
11134 : : default:;
11135 : : }
11136 : : break;
11137 : : }
11138 : : default:;
11139 : : }
11140 : : }
11141 : : }
11142 : : break;
11143 : 0 : case CFN_FLOOR:
11144 : 0 : if (call_expr_nargs (_q31) == 1)
11145 : : {
11146 : 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
11147 : 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
11148 : : {
11149 : 0 : switch (TREE_CODE (_q50))
11150 : : {
11151 : 0 : case SSA_NAME:
11152 : 0 : {
11153 : 0 : switch (TREE_CODE (_q21))
11154 : : {
11155 : 0 : case MINUS_EXPR:
11156 : 0 : {
11157 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
11158 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
11159 : 0 : switch (TREE_CODE (_q80))
11160 : : {
11161 : 0 : case CALL_EXPR:
11162 : 0 : switch (get_call_combined_fn (_q80))
11163 : : {
11164 : 0 : case CFN_CEIL:
11165 : 0 : if (call_expr_nargs (_q80) == 1)
11166 : : {
11167 : 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
11168 : 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
11169 : : {
11170 : 0 : switch (TREE_CODE (_q90))
11171 : : {
11172 : 0 : case SSA_NAME:
11173 : 0 : {
11174 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
11175 : : {
11176 : 0 : switch (TREE_CODE (_q81))
11177 : : {
11178 : 0 : case SSA_NAME:
11179 : 0 : {
11180 : 0 : switch (TREE_CODE (_p1))
11181 : : {
11182 : 0 : case CALL_EXPR:
11183 : 0 : switch (get_call_combined_fn (_p1))
11184 : : {
11185 : 0 : case CFN_FLOOR:
11186 : 0 : if (call_expr_nargs (_p1) == 1)
11187 : : {
11188 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
11189 : 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
11190 : : {
11191 : 0 : switch (TREE_CODE (_q140))
11192 : : {
11193 : 0 : case SSA_NAME:
11194 : 0 : {
11195 : 0 : switch (TREE_CODE (_p2))
11196 : : {
11197 : 0 : case CALL_EXPR:
11198 : 0 : switch (get_call_combined_fn (_p2))
11199 : : {
11200 : 0 : case CFN_CEIL:
11201 : 0 : if (call_expr_nargs (_p2) == 1)
11202 : : {
11203 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
11204 : 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
11205 : : {
11206 : 0 : switch (TREE_CODE (_q170))
11207 : : {
11208 : 0 : case SSA_NAME:
11209 : 0 : {
11210 : 0 : {
11211 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
11212 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_FLOOR, CFN_CEIL, CFN_FLOOR, CFN_CEIL);
11213 : 0 : if (res) return res;
11214 : : }
11215 : 0 : break;
11216 : : }
11217 : : default:;
11218 : : }
11219 : : }
11220 : : }
11221 : : break;
11222 : : default:;
11223 : : }
11224 : : break;
11225 : : default:;
11226 : : }
11227 : : break;
11228 : : }
11229 : : default:;
11230 : : }
11231 : : }
11232 : : }
11233 : : break;
11234 : : default:;
11235 : : }
11236 : : break;
11237 : : default:;
11238 : : }
11239 : : break;
11240 : : }
11241 : : default:;
11242 : : }
11243 : : }
11244 : : break;
11245 : : }
11246 : : default:;
11247 : : }
11248 : : }
11249 : : }
11250 : : break;
11251 : : default:;
11252 : : }
11253 : : break;
11254 : : default:;
11255 : : }
11256 : : break;
11257 : : }
11258 : : default:;
11259 : : }
11260 : : break;
11261 : : }
11262 : : default:;
11263 : : }
11264 : : }
11265 : : }
11266 : : break;
11267 : 0 : case CFN_BUILT_IN_FLOOR:
11268 : 0 : if (call_expr_nargs (_q31) == 1)
11269 : : {
11270 : 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
11271 : 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
11272 : : {
11273 : 0 : switch (TREE_CODE (_q50))
11274 : : {
11275 : 0 : case SSA_NAME:
11276 : 0 : {
11277 : 0 : switch (TREE_CODE (_q21))
11278 : : {
11279 : 0 : case MINUS_EXPR:
11280 : 0 : {
11281 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
11282 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
11283 : 0 : switch (TREE_CODE (_q80))
11284 : : {
11285 : 0 : case CALL_EXPR:
11286 : 0 : switch (get_call_combined_fn (_q80))
11287 : : {
11288 : 0 : case CFN_BUILT_IN_CEIL:
11289 : 0 : if (call_expr_nargs (_q80) == 1)
11290 : : {
11291 : 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
11292 : 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
11293 : : {
11294 : 0 : switch (TREE_CODE (_q90))
11295 : : {
11296 : 0 : case SSA_NAME:
11297 : 0 : {
11298 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
11299 : : {
11300 : 0 : switch (TREE_CODE (_q81))
11301 : : {
11302 : 0 : case SSA_NAME:
11303 : 0 : {
11304 : 0 : switch (TREE_CODE (_p1))
11305 : : {
11306 : 0 : case CALL_EXPR:
11307 : 0 : switch (get_call_combined_fn (_p1))
11308 : : {
11309 : 0 : case CFN_BUILT_IN_FLOOR:
11310 : 0 : if (call_expr_nargs (_p1) == 1)
11311 : : {
11312 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
11313 : 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
11314 : : {
11315 : 0 : switch (TREE_CODE (_q140))
11316 : : {
11317 : 0 : case SSA_NAME:
11318 : 0 : {
11319 : 0 : switch (TREE_CODE (_p2))
11320 : : {
11321 : 0 : case CALL_EXPR:
11322 : 0 : switch (get_call_combined_fn (_p2))
11323 : : {
11324 : 0 : case CFN_BUILT_IN_CEIL:
11325 : 0 : if (call_expr_nargs (_p2) == 1)
11326 : : {
11327 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
11328 : 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
11329 : : {
11330 : 0 : switch (TREE_CODE (_q170))
11331 : : {
11332 : 0 : case SSA_NAME:
11333 : 0 : {
11334 : 0 : {
11335 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
11336 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
11337 : 0 : if (res) return res;
11338 : : }
11339 : 0 : break;
11340 : : }
11341 : : default:;
11342 : : }
11343 : : }
11344 : : }
11345 : : break;
11346 : : default:;
11347 : : }
11348 : : break;
11349 : : default:;
11350 : : }
11351 : : break;
11352 : : }
11353 : : default:;
11354 : : }
11355 : : }
11356 : : }
11357 : : break;
11358 : : default:;
11359 : : }
11360 : : break;
11361 : : default:;
11362 : : }
11363 : : break;
11364 : : }
11365 : : default:;
11366 : : }
11367 : : }
11368 : : break;
11369 : : }
11370 : : default:;
11371 : : }
11372 : : }
11373 : : }
11374 : : break;
11375 : : default:;
11376 : : }
11377 : : break;
11378 : : default:;
11379 : : }
11380 : : break;
11381 : : }
11382 : : default:;
11383 : : }
11384 : : break;
11385 : : }
11386 : : default:;
11387 : : }
11388 : : }
11389 : : }
11390 : : break;
11391 : : default:;
11392 : : }
11393 : : break;
11394 : : default:;
11395 : : }
11396 : : break;
11397 : : }
11398 : : default:;
11399 : : }
11400 : : break;
11401 : : }
11402 : 91966 : CASE_CONVERT:
11403 : 91966 : {
11404 : 91966 : tree _q30 = TREE_OPERAND (_q20, 0);
11405 : 91966 : switch (TREE_CODE (_q21))
11406 : : {
11407 : 27103 : case INTEGER_CST:
11408 : 27103 : {
11409 : 27103 : switch (TREE_CODE (_p1))
11410 : : {
11411 : 15 : CASE_CONVERT:
11412 : 15 : {
11413 : 15 : tree _q60 = TREE_OPERAND (_p1, 0);
11414 : 15 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11415 : : {
11416 : 0 : switch (TREE_CODE (_p2))
11417 : : {
11418 : 0 : case INTEGER_CST:
11419 : 0 : {
11420 : 0 : {
11421 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
11422 : 0 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
11423 : 0 : if (res) return res;
11424 : : }
11425 : 0 : break;
11426 : : }
11427 : : default:;
11428 : : }
11429 : : }
11430 : : break;
11431 : : }
11432 : 27103 : default:;
11433 : : }
11434 : 27103 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
11435 : : {
11436 : 6 : switch (TREE_CODE (_p2))
11437 : : {
11438 : 6 : case INTEGER_CST:
11439 : 6 : {
11440 : 6 : {
11441 : 6 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
11442 : 6 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
11443 : 6 : if (res) return res;
11444 : : }
11445 : 6 : break;
11446 : : }
11447 : : default:;
11448 : : }
11449 : : }
11450 : 27103 : switch (TREE_CODE (_p1))
11451 : : {
11452 : 25 : case PLUS_EXPR:
11453 : 25 : {
11454 : 25 : tree _q60 = TREE_OPERAND (_p1, 0);
11455 : 25 : tree _q61 = TREE_OPERAND (_p1, 1);
11456 : 25 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11457 : : {
11458 : 7 : switch (TREE_CODE (_q61))
11459 : : {
11460 : 7 : case INTEGER_CST:
11461 : 7 : {
11462 : 7 : switch (TREE_CODE (_p2))
11463 : : {
11464 : 7 : case INTEGER_CST:
11465 : 7 : {
11466 : 7 : {
11467 : 7 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
11468 : 7 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, PLUS_EXPR);
11469 : 7 : if (res) return res;
11470 : : }
11471 : 0 : break;
11472 : : }
11473 : : default:;
11474 : : }
11475 : : break;
11476 : : }
11477 : : default:;
11478 : : }
11479 : : }
11480 : : break;
11481 : : }
11482 : 0 : case MINUS_EXPR:
11483 : 0 : {
11484 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11485 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11486 : 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11487 : : {
11488 : 0 : switch (TREE_CODE (_q61))
11489 : : {
11490 : 0 : case INTEGER_CST:
11491 : 0 : {
11492 : 0 : switch (TREE_CODE (_p2))
11493 : : {
11494 : 0 : case INTEGER_CST:
11495 : 0 : {
11496 : 0 : {
11497 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
11498 : 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MINUS_EXPR);
11499 : 0 : if (res) return res;
11500 : : }
11501 : 0 : break;
11502 : : }
11503 : : default:;
11504 : : }
11505 : : break;
11506 : : }
11507 : : default:;
11508 : : }
11509 : : }
11510 : : break;
11511 : : }
11512 : : default:;
11513 : : }
11514 : : break;
11515 : : }
11516 : : default:;
11517 : : }
11518 : : break;
11519 : : }
11520 : 1487166 : default:;
11521 : : }
11522 : 1487166 : switch (TREE_CODE (_q21))
11523 : : {
11524 : 341084 : case INTEGER_CST:
11525 : 341084 : {
11526 : 341084 : switch (TREE_CODE (_p1))
11527 : : {
11528 : 1151 : CASE_CONVERT:
11529 : 1151 : {
11530 : 1151 : tree _q50 = TREE_OPERAND (_p1, 0);
11531 : 1151 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11532 : : {
11533 : 33 : switch (TREE_CODE (_p2))
11534 : : {
11535 : 5 : case INTEGER_CST:
11536 : 5 : {
11537 : 5 : {
11538 : 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
11539 : 5 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
11540 : 5 : if (res) return res;
11541 : : }
11542 : 5 : break;
11543 : : }
11544 : : default:;
11545 : : }
11546 : : }
11547 : : break;
11548 : : }
11549 : 341084 : default:;
11550 : : }
11551 : 341084 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
11552 : : {
11553 : 81 : switch (TREE_CODE (_p2))
11554 : : {
11555 : 8 : case INTEGER_CST:
11556 : 8 : {
11557 : 8 : {
11558 : 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
11559 : 8 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
11560 : 8 : if (res) return res;
11561 : : }
11562 : 0 : break;
11563 : : }
11564 : : default:;
11565 : : }
11566 : : }
11567 : 341076 : switch (TREE_CODE (_p1))
11568 : : {
11569 : 2711 : case PLUS_EXPR:
11570 : 2711 : {
11571 : 2711 : tree _q50 = TREE_OPERAND (_p1, 0);
11572 : 2711 : tree _q51 = TREE_OPERAND (_p1, 1);
11573 : 2711 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11574 : : {
11575 : 2676 : switch (TREE_CODE (_q51))
11576 : : {
11577 : 2676 : case INTEGER_CST:
11578 : 2676 : {
11579 : 2676 : switch (TREE_CODE (_p2))
11580 : : {
11581 : 36 : case INTEGER_CST:
11582 : 36 : {
11583 : 36 : {
11584 : 36 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
11585 : 36 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, PLUS_EXPR);
11586 : 36 : if (res) return res;
11587 : : }
11588 : 36 : break;
11589 : : }
11590 : : default:;
11591 : : }
11592 : : break;
11593 : : }
11594 : : default:;
11595 : : }
11596 : : }
11597 : : break;
11598 : : }
11599 : 82 : case MINUS_EXPR:
11600 : 82 : {
11601 : 82 : tree _q50 = TREE_OPERAND (_p1, 0);
11602 : 82 : tree _q51 = TREE_OPERAND (_p1, 1);
11603 : 82 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11604 : : {
11605 : 0 : switch (TREE_CODE (_q51))
11606 : : {
11607 : 0 : case INTEGER_CST:
11608 : 0 : {
11609 : 0 : switch (TREE_CODE (_p2))
11610 : : {
11611 : 0 : case INTEGER_CST:
11612 : 0 : {
11613 : 0 : {
11614 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
11615 : 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MINUS_EXPR);
11616 : 0 : if (res) return res;
11617 : : }
11618 : 0 : break;
11619 : : }
11620 : : default:;
11621 : : }
11622 : : break;
11623 : : }
11624 : : default:;
11625 : : }
11626 : : }
11627 : : break;
11628 : : }
11629 : : default:;
11630 : : }
11631 : : break;
11632 : : }
11633 : 1487158 : default:;
11634 : : }
11635 : 1487158 : switch (TREE_CODE (_p1))
11636 : : {
11637 : 0 : case MIN_EXPR:
11638 : 0 : {
11639 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
11640 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
11641 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11642 : : {
11643 : 0 : switch (TREE_CODE (_p2))
11644 : : {
11645 : 0 : case MIN_EXPR:
11646 : 0 : {
11647 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11648 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11649 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
11650 : : {
11651 : 0 : {
11652 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
11653 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
11654 : 0 : if (res) return res;
11655 : : }
11656 : : }
11657 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
11658 : : {
11659 : 0 : {
11660 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
11661 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
11662 : 0 : if (res) return res;
11663 : : }
11664 : : }
11665 : : break;
11666 : : }
11667 : : default:;
11668 : : }
11669 : : }
11670 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11671 : : {
11672 : 0 : switch (TREE_CODE (_p2))
11673 : : {
11674 : 0 : case MIN_EXPR:
11675 : 0 : {
11676 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11677 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11678 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
11679 : : {
11680 : 0 : {
11681 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
11682 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
11683 : 0 : if (res) return res;
11684 : : }
11685 : : }
11686 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
11687 : : {
11688 : 0 : {
11689 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
11690 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
11691 : 0 : if (res) return res;
11692 : : }
11693 : : }
11694 : : break;
11695 : : }
11696 : : default:;
11697 : : }
11698 : : }
11699 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11700 : : {
11701 : 0 : switch (TREE_CODE (_p2))
11702 : : {
11703 : 0 : case MIN_EXPR:
11704 : 0 : {
11705 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11706 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11707 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
11708 : : {
11709 : 0 : {
11710 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
11711 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
11712 : 0 : if (res) return res;
11713 : : }
11714 : : }
11715 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
11716 : : {
11717 : 0 : {
11718 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
11719 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
11720 : 0 : if (res) return res;
11721 : : }
11722 : : }
11723 : : break;
11724 : : }
11725 : 0 : default:;
11726 : : }
11727 : 0 : {
11728 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
11729 : 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
11730 : 0 : if (res) return res;
11731 : : }
11732 : : }
11733 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11734 : : {
11735 : 0 : switch (TREE_CODE (_p2))
11736 : : {
11737 : 0 : case MIN_EXPR:
11738 : 0 : {
11739 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11740 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11741 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
11742 : : {
11743 : 0 : {
11744 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
11745 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
11746 : 0 : if (res) return res;
11747 : : }
11748 : : }
11749 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
11750 : : {
11751 : 0 : {
11752 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
11753 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
11754 : 0 : if (res) return res;
11755 : : }
11756 : : }
11757 : : break;
11758 : : }
11759 : 0 : default:;
11760 : : }
11761 : 0 : {
11762 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
11763 : 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
11764 : 0 : if (res) return res;
11765 : : }
11766 : : }
11767 : : break;
11768 : : }
11769 : 21 : case MAX_EXPR:
11770 : 21 : {
11771 : 21 : tree _q50 = TREE_OPERAND (_p1, 0);
11772 : 21 : tree _q51 = TREE_OPERAND (_p1, 1);
11773 : 21 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
11774 : : {
11775 : 1 : switch (TREE_CODE (_p2))
11776 : : {
11777 : 0 : case MAX_EXPR:
11778 : 0 : {
11779 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11780 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11781 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
11782 : : {
11783 : 0 : {
11784 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
11785 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
11786 : 0 : if (res) return res;
11787 : : }
11788 : : }
11789 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
11790 : : {
11791 : 0 : {
11792 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
11793 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
11794 : 0 : if (res) return res;
11795 : : }
11796 : : }
11797 : : break;
11798 : : }
11799 : 1 : default:;
11800 : : }
11801 : 1 : {
11802 : 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
11803 : 1 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
11804 : 1 : if (res) return res;
11805 : : }
11806 : : }
11807 : 20 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11808 : : {
11809 : 4 : switch (TREE_CODE (_p2))
11810 : : {
11811 : 0 : case MAX_EXPR:
11812 : 0 : {
11813 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11814 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11815 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
11816 : : {
11817 : 0 : {
11818 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
11819 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
11820 : 0 : if (res) return res;
11821 : : }
11822 : : }
11823 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
11824 : : {
11825 : 0 : {
11826 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
11827 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
11828 : 0 : if (res) return res;
11829 : : }
11830 : : }
11831 : : break;
11832 : : }
11833 : : default:;
11834 : : }
11835 : : }
11836 : 20 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
11837 : : {
11838 : 8 : switch (TREE_CODE (_p2))
11839 : : {
11840 : 0 : case MAX_EXPR:
11841 : 0 : {
11842 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
11843 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
11844 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
11845 : : {
11846 : 0 : {
11847 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
11848 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
11849 : 0 : if (res) return res;
11850 : : }
11851 : : }
11852 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
11853 : : {
11854 : 0 : {
11855 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
11856 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
11857 : 0 : if (res) return res;
11858 : : }
11859 : : }
11860 : : break;
11861 : : }
11862 : : default:;
11863 : : }
11864 : : }
11865 : 20 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
11866 : : {
11867 : 1 : switch (TREE_CODE (_p2))
11868 : : {
11869 : 1 : case MAX_EXPR:
11870 : 1 : {
11871 : 1 : tree _q80 = TREE_OPERAND (_p2, 0);
11872 : 1 : tree _q81 = TREE_OPERAND (_p2, 1);
11873 : 1 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
11874 : : {
11875 : 0 : {
11876 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
11877 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
11878 : 0 : if (res) return res;
11879 : : }
11880 : : }
11881 : 1 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
11882 : : {
11883 : 1 : {
11884 : 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
11885 : 1 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
11886 : 1 : if (res) return res;
11887 : : }
11888 : : }
11889 : : break;
11890 : : }
11891 : : default:;
11892 : : }
11893 : : }
11894 : 19 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
11895 : : {
11896 : 4 : {
11897 : 4 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
11898 : 4 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
11899 : 4 : if (res) return res;
11900 : : }
11901 : : }
11902 : : break;
11903 : : }
11904 : 1487156 : default:;
11905 : : }
11906 : 1487156 : {
11907 : 1487156 : tree _q20_pops[1];
11908 : 1487156 : if (tree_nop_convert (_q20, _q20_pops))
11909 : : {
11910 : 46771 : tree _q30 = _q20_pops[0];
11911 : 46771 : if (integer_zerop (_q21))
11912 : : {
11913 : 18016 : switch (TREE_CODE (_p1))
11914 : : {
11915 : 0 : case MIN_EXPR:
11916 : 0 : {
11917 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
11918 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
11919 : 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
11920 : : {
11921 : 0 : switch (TREE_CODE (_q61))
11922 : : {
11923 : 0 : case INTEGER_CST:
11924 : 0 : {
11925 : 0 : switch (TREE_CODE (_p2))
11926 : : {
11927 : 0 : case INTEGER_CST:
11928 : 0 : {
11929 : 0 : {
11930 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q30, _q21, _p1, _q61, _p2 };
11931 : 0 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
11932 : 0 : if (res) return res;
11933 : : }
11934 : 0 : break;
11935 : : }
11936 : : default:;
11937 : : }
11938 : : break;
11939 : : }
11940 : : default:;
11941 : : }
11942 : : }
11943 : : break;
11944 : : }
11945 : : default:;
11946 : : }
11947 : : }
11948 : : }
11949 : : }
11950 : 1487156 : if (tree_expr_nonnegative_p (_q20))
11951 : : {
11952 : 337838 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
11953 : : {
11954 : 166 : switch (TREE_CODE (_p2))
11955 : : {
11956 : 5 : case ABS_EXPR:
11957 : 5 : {
11958 : 5 : tree _q60 = TREE_OPERAND (_p2, 0);
11959 : 5 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
11960 : : {
11961 : 0 : {
11962 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
11963 : 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
11964 : 0 : if (res) return res;
11965 : : }
11966 : : }
11967 : : break;
11968 : : }
11969 : : default:;
11970 : : }
11971 : : }
11972 : : }
11973 : : break;
11974 : : }
11975 : 570999 : case GE_EXPR:
11976 : 570999 : {
11977 : 570999 : tree _q20 = TREE_OPERAND (_p0, 0);
11978 : 570999 : tree _q21 = TREE_OPERAND (_p0, 1);
11979 : 570999 : switch (TREE_CODE (_q20))
11980 : : {
11981 : 37240 : case MINUS_EXPR:
11982 : 37240 : {
11983 : 37240 : tree _q30 = TREE_OPERAND (_q20, 0);
11984 : 37240 : tree _q31 = TREE_OPERAND (_q20, 1);
11985 : 37240 : switch (TREE_CODE (_q30))
11986 : : {
11987 : 258 : case SSA_NAME:
11988 : 258 : {
11989 : 258 : switch (TREE_CODE (_q31))
11990 : : {
11991 : 0 : case CALL_EXPR:
11992 : 0 : switch (get_call_combined_fn (_q31))
11993 : : {
11994 : 0 : case CFN_BUILT_IN_FLOORF:
11995 : 0 : if (call_expr_nargs (_q31) == 1)
11996 : : {
11997 : 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
11998 : 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
11999 : : {
12000 : 0 : switch (TREE_CODE (_q50))
12001 : : {
12002 : 0 : case SSA_NAME:
12003 : 0 : {
12004 : 0 : switch (TREE_CODE (_q21))
12005 : : {
12006 : 0 : case MINUS_EXPR:
12007 : 0 : {
12008 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12009 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12010 : 0 : switch (TREE_CODE (_q80))
12011 : : {
12012 : 0 : case CALL_EXPR:
12013 : 0 : switch (get_call_combined_fn (_q80))
12014 : : {
12015 : 0 : case CFN_BUILT_IN_CEILF:
12016 : 0 : if (call_expr_nargs (_q80) == 1)
12017 : : {
12018 : 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
12019 : 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
12020 : : {
12021 : 0 : switch (TREE_CODE (_q90))
12022 : : {
12023 : 0 : case SSA_NAME:
12024 : 0 : {
12025 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12026 : : {
12027 : 0 : switch (TREE_CODE (_q81))
12028 : : {
12029 : 0 : case SSA_NAME:
12030 : 0 : {
12031 : 0 : switch (TREE_CODE (_p1))
12032 : : {
12033 : 0 : case CALL_EXPR:
12034 : 0 : switch (get_call_combined_fn (_p1))
12035 : : {
12036 : 0 : case CFN_BUILT_IN_CEILF:
12037 : 0 : if (call_expr_nargs (_p1) == 1)
12038 : : {
12039 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12040 : 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
12041 : : {
12042 : 0 : switch (TREE_CODE (_q140))
12043 : : {
12044 : 0 : case SSA_NAME:
12045 : 0 : {
12046 : 0 : switch (TREE_CODE (_p2))
12047 : : {
12048 : 0 : case CALL_EXPR:
12049 : 0 : switch (get_call_combined_fn (_p2))
12050 : : {
12051 : 0 : case CFN_BUILT_IN_FLOORF:
12052 : 0 : if (call_expr_nargs (_p2) == 1)
12053 : : {
12054 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12055 : 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
12056 : : {
12057 : 0 : switch (TREE_CODE (_q170))
12058 : : {
12059 : 0 : case SSA_NAME:
12060 : 0 : {
12061 : 0 : {
12062 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
12063 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
12064 : 0 : if (res) return res;
12065 : : }
12066 : 0 : break;
12067 : : }
12068 : : default:;
12069 : : }
12070 : : }
12071 : : }
12072 : : break;
12073 : : default:;
12074 : : }
12075 : : break;
12076 : : default:;
12077 : : }
12078 : : break;
12079 : : }
12080 : : default:;
12081 : : }
12082 : : }
12083 : : }
12084 : : break;
12085 : : default:;
12086 : : }
12087 : : break;
12088 : : default:;
12089 : : }
12090 : : break;
12091 : : }
12092 : : default:;
12093 : : }
12094 : : }
12095 : : break;
12096 : : }
12097 : : default:;
12098 : : }
12099 : : }
12100 : : }
12101 : : break;
12102 : : default:;
12103 : : }
12104 : : break;
12105 : : default:;
12106 : : }
12107 : : break;
12108 : : }
12109 : : default:;
12110 : : }
12111 : : break;
12112 : : }
12113 : : default:;
12114 : : }
12115 : : }
12116 : : }
12117 : : break;
12118 : 0 : case CFN_BUILT_IN_FLOORL:
12119 : 0 : if (call_expr_nargs (_q31) == 1)
12120 : : {
12121 : 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
12122 : 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
12123 : : {
12124 : 0 : switch (TREE_CODE (_q50))
12125 : : {
12126 : 0 : case SSA_NAME:
12127 : 0 : {
12128 : 0 : switch (TREE_CODE (_q21))
12129 : : {
12130 : 0 : case MINUS_EXPR:
12131 : 0 : {
12132 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12133 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12134 : 0 : switch (TREE_CODE (_q80))
12135 : : {
12136 : 0 : case CALL_EXPR:
12137 : 0 : switch (get_call_combined_fn (_q80))
12138 : : {
12139 : 0 : case CFN_BUILT_IN_CEILL:
12140 : 0 : if (call_expr_nargs (_q80) == 1)
12141 : : {
12142 : 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
12143 : 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
12144 : : {
12145 : 0 : switch (TREE_CODE (_q90))
12146 : : {
12147 : 0 : case SSA_NAME:
12148 : 0 : {
12149 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12150 : : {
12151 : 0 : switch (TREE_CODE (_q81))
12152 : : {
12153 : 0 : case SSA_NAME:
12154 : 0 : {
12155 : 0 : switch (TREE_CODE (_p1))
12156 : : {
12157 : 0 : case CALL_EXPR:
12158 : 0 : switch (get_call_combined_fn (_p1))
12159 : : {
12160 : 0 : case CFN_BUILT_IN_CEILL:
12161 : 0 : if (call_expr_nargs (_p1) == 1)
12162 : : {
12163 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12164 : 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
12165 : : {
12166 : 0 : switch (TREE_CODE (_q140))
12167 : : {
12168 : 0 : case SSA_NAME:
12169 : 0 : {
12170 : 0 : switch (TREE_CODE (_p2))
12171 : : {
12172 : 0 : case CALL_EXPR:
12173 : 0 : switch (get_call_combined_fn (_p2))
12174 : : {
12175 : 0 : case CFN_BUILT_IN_FLOORL:
12176 : 0 : if (call_expr_nargs (_p2) == 1)
12177 : : {
12178 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12179 : 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
12180 : : {
12181 : 0 : switch (TREE_CODE (_q170))
12182 : : {
12183 : 0 : case SSA_NAME:
12184 : 0 : {
12185 : 0 : {
12186 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
12187 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
12188 : 0 : if (res) return res;
12189 : : }
12190 : 0 : break;
12191 : : }
12192 : : default:;
12193 : : }
12194 : : }
12195 : : }
12196 : : break;
12197 : : default:;
12198 : : }
12199 : : break;
12200 : : default:;
12201 : : }
12202 : : break;
12203 : : }
12204 : : default:;
12205 : : }
12206 : : }
12207 : : }
12208 : : break;
12209 : : default:;
12210 : : }
12211 : : break;
12212 : : default:;
12213 : : }
12214 : : break;
12215 : : }
12216 : : default:;
12217 : : }
12218 : : }
12219 : : break;
12220 : : }
12221 : : default:;
12222 : : }
12223 : : }
12224 : : }
12225 : : break;
12226 : : default:;
12227 : : }
12228 : : break;
12229 : : default:;
12230 : : }
12231 : : break;
12232 : : }
12233 : : default:;
12234 : : }
12235 : : break;
12236 : : }
12237 : : default:;
12238 : : }
12239 : : }
12240 : : }
12241 : : break;
12242 : 0 : case CFN_FLOOR:
12243 : 0 : if (call_expr_nargs (_q31) == 1)
12244 : : {
12245 : 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
12246 : 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
12247 : : {
12248 : 0 : switch (TREE_CODE (_q50))
12249 : : {
12250 : 0 : case SSA_NAME:
12251 : 0 : {
12252 : 0 : switch (TREE_CODE (_q21))
12253 : : {
12254 : 0 : case MINUS_EXPR:
12255 : 0 : {
12256 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12257 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12258 : 0 : switch (TREE_CODE (_q80))
12259 : : {
12260 : 0 : case CALL_EXPR:
12261 : 0 : switch (get_call_combined_fn (_q80))
12262 : : {
12263 : 0 : case CFN_CEIL:
12264 : 0 : if (call_expr_nargs (_q80) == 1)
12265 : : {
12266 : 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
12267 : 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
12268 : : {
12269 : 0 : switch (TREE_CODE (_q90))
12270 : : {
12271 : 0 : case SSA_NAME:
12272 : 0 : {
12273 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12274 : : {
12275 : 0 : switch (TREE_CODE (_q81))
12276 : : {
12277 : 0 : case SSA_NAME:
12278 : 0 : {
12279 : 0 : switch (TREE_CODE (_p1))
12280 : : {
12281 : 0 : case CALL_EXPR:
12282 : 0 : switch (get_call_combined_fn (_p1))
12283 : : {
12284 : 0 : case CFN_CEIL:
12285 : 0 : if (call_expr_nargs (_p1) == 1)
12286 : : {
12287 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12288 : 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
12289 : : {
12290 : 0 : switch (TREE_CODE (_q140))
12291 : : {
12292 : 0 : case SSA_NAME:
12293 : 0 : {
12294 : 0 : switch (TREE_CODE (_p2))
12295 : : {
12296 : 0 : case CALL_EXPR:
12297 : 0 : switch (get_call_combined_fn (_p2))
12298 : : {
12299 : 0 : case CFN_FLOOR:
12300 : 0 : if (call_expr_nargs (_p2) == 1)
12301 : : {
12302 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12303 : 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
12304 : : {
12305 : 0 : switch (TREE_CODE (_q170))
12306 : : {
12307 : 0 : case SSA_NAME:
12308 : 0 : {
12309 : 0 : {
12310 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
12311 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_CEIL, CFN_FLOOR, CFN_FLOOR, CFN_CEIL);
12312 : 0 : if (res) return res;
12313 : : }
12314 : 0 : break;
12315 : : }
12316 : : default:;
12317 : : }
12318 : : }
12319 : : }
12320 : : break;
12321 : : default:;
12322 : : }
12323 : : break;
12324 : : default:;
12325 : : }
12326 : : break;
12327 : : }
12328 : : default:;
12329 : : }
12330 : : }
12331 : : }
12332 : : break;
12333 : : default:;
12334 : : }
12335 : : break;
12336 : : default:;
12337 : : }
12338 : : break;
12339 : : }
12340 : : default:;
12341 : : }
12342 : : }
12343 : : break;
12344 : : }
12345 : : default:;
12346 : : }
12347 : : }
12348 : : }
12349 : : break;
12350 : : default:;
12351 : : }
12352 : : break;
12353 : : default:;
12354 : : }
12355 : : break;
12356 : : }
12357 : : default:;
12358 : : }
12359 : : break;
12360 : : }
12361 : : default:;
12362 : : }
12363 : : }
12364 : : }
12365 : : break;
12366 : 0 : case CFN_BUILT_IN_FLOOR:
12367 : 0 : if (call_expr_nargs (_q31) == 1)
12368 : : {
12369 : 0 : tree _q50 = CALL_EXPR_ARG (_q31, 0);
12370 : 0 : if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
12371 : : {
12372 : 0 : switch (TREE_CODE (_q50))
12373 : : {
12374 : 0 : case SSA_NAME:
12375 : 0 : {
12376 : 0 : switch (TREE_CODE (_q21))
12377 : : {
12378 : 0 : case MINUS_EXPR:
12379 : 0 : {
12380 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
12381 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
12382 : 0 : switch (TREE_CODE (_q80))
12383 : : {
12384 : 0 : case CALL_EXPR:
12385 : 0 : switch (get_call_combined_fn (_q80))
12386 : : {
12387 : 0 : case CFN_BUILT_IN_CEIL:
12388 : 0 : if (call_expr_nargs (_q80) == 1)
12389 : : {
12390 : 0 : tree _q90 = CALL_EXPR_ARG (_q80, 0);
12391 : 0 : if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
12392 : : {
12393 : 0 : switch (TREE_CODE (_q90))
12394 : : {
12395 : 0 : case SSA_NAME:
12396 : 0 : {
12397 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
12398 : : {
12399 : 0 : switch (TREE_CODE (_q81))
12400 : : {
12401 : 0 : case SSA_NAME:
12402 : 0 : {
12403 : 0 : switch (TREE_CODE (_p1))
12404 : : {
12405 : 0 : case CALL_EXPR:
12406 : 0 : switch (get_call_combined_fn (_p1))
12407 : : {
12408 : 0 : case CFN_BUILT_IN_CEIL:
12409 : 0 : if (call_expr_nargs (_p1) == 1)
12410 : : {
12411 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
12412 : 0 : if ((_q140 == _q30 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q30, 0) && types_match (_q140, _q30)))
12413 : : {
12414 : 0 : switch (TREE_CODE (_q140))
12415 : : {
12416 : 0 : case SSA_NAME:
12417 : 0 : {
12418 : 0 : switch (TREE_CODE (_p2))
12419 : : {
12420 : 0 : case CALL_EXPR:
12421 : 0 : switch (get_call_combined_fn (_p2))
12422 : : {
12423 : 0 : case CFN_BUILT_IN_FLOOR:
12424 : 0 : if (call_expr_nargs (_p2) == 1)
12425 : : {
12426 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
12427 : 0 : if ((_q170 == _q30 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q30, 0) && types_match (_q170, _q30)))
12428 : : {
12429 : 0 : switch (TREE_CODE (_q170))
12430 : : {
12431 : 0 : case SSA_NAME:
12432 : 0 : {
12433 : 0 : {
12434 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
12435 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
12436 : 0 : if (res) return res;
12437 : : }
12438 : 0 : break;
12439 : : }
12440 : : default:;
12441 : : }
12442 : : }
12443 : : }
12444 : : break;
12445 : : default:;
12446 : : }
12447 : : break;
12448 : : default:;
12449 : : }
12450 : : break;
12451 : : }
12452 : : default:;
12453 : : }
12454 : : }
12455 : : }
12456 : : break;
12457 : : default:;
12458 : : }
12459 : : break;
12460 : : default:;
12461 : : }
12462 : : break;
12463 : : }
12464 : : default:;
12465 : : }
12466 : : }
12467 : : break;
12468 : : }
12469 : : default:;
12470 : : }
12471 : : }
12472 : : }
12473 : : break;
12474 : : default:;
12475 : : }
12476 : : break;
12477 : : default:;
12478 : : }
12479 : : break;
12480 : : }
12481 : : default:;
12482 : : }
12483 : : break;
12484 : : }
12485 : : default:;
12486 : : }
12487 : : }
12488 : : }
12489 : : break;
12490 : : default:;
12491 : : }
12492 : : break;
12493 : : default:;
12494 : : }
12495 : : break;
12496 : : }
12497 : : default:;
12498 : : }
12499 : : break;
12500 : : }
12501 : 66080 : CASE_CONVERT:
12502 : 66080 : {
12503 : 66080 : tree _q30 = TREE_OPERAND (_q20, 0);
12504 : 66080 : switch (TREE_CODE (_q21))
12505 : : {
12506 : 37534 : case INTEGER_CST:
12507 : 37534 : {
12508 : 37534 : switch (TREE_CODE (_p1))
12509 : : {
12510 : 15371 : CASE_CONVERT:
12511 : 15371 : {
12512 : 15371 : tree _q60 = TREE_OPERAND (_p1, 0);
12513 : 15371 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12514 : : {
12515 : 5679 : switch (TREE_CODE (_p2))
12516 : : {
12517 : 5671 : case INTEGER_CST:
12518 : 5671 : {
12519 : 5671 : {
12520 : 5671 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
12521 : 5671 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
12522 : 5671 : if (res) return res;
12523 : : }
12524 : 5671 : break;
12525 : : }
12526 : : default:;
12527 : : }
12528 : : }
12529 : : break;
12530 : : }
12531 : 37534 : default:;
12532 : : }
12533 : 37534 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
12534 : : {
12535 : 312 : switch (TREE_CODE (_p2))
12536 : : {
12537 : 299 : case INTEGER_CST:
12538 : 299 : {
12539 : 299 : {
12540 : 299 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
12541 : 299 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
12542 : 299 : if (res) return res;
12543 : : }
12544 : 294 : break;
12545 : : }
12546 : : default:;
12547 : : }
12548 : : }
12549 : 37529 : switch (TREE_CODE (_p1))
12550 : : {
12551 : 429 : case PLUS_EXPR:
12552 : 429 : {
12553 : 429 : tree _q60 = TREE_OPERAND (_p1, 0);
12554 : 429 : tree _q61 = TREE_OPERAND (_p1, 1);
12555 : 429 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12556 : : {
12557 : 0 : switch (TREE_CODE (_q61))
12558 : : {
12559 : 0 : case INTEGER_CST:
12560 : 0 : {
12561 : 0 : switch (TREE_CODE (_p2))
12562 : : {
12563 : 0 : case INTEGER_CST:
12564 : 0 : {
12565 : 0 : {
12566 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
12567 : 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, PLUS_EXPR);
12568 : 0 : if (res) return res;
12569 : : }
12570 : 0 : break;
12571 : : }
12572 : : default:;
12573 : : }
12574 : : break;
12575 : : }
12576 : : default:;
12577 : : }
12578 : : }
12579 : : break;
12580 : : }
12581 : 76 : case MINUS_EXPR:
12582 : 76 : {
12583 : 76 : tree _q60 = TREE_OPERAND (_p1, 0);
12584 : 76 : tree _q61 = TREE_OPERAND (_p1, 1);
12585 : 76 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
12586 : : {
12587 : 0 : switch (TREE_CODE (_q61))
12588 : : {
12589 : 0 : case INTEGER_CST:
12590 : 0 : {
12591 : 0 : switch (TREE_CODE (_p2))
12592 : : {
12593 : 0 : case INTEGER_CST:
12594 : 0 : {
12595 : 0 : {
12596 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
12597 : 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MINUS_EXPR);
12598 : 0 : if (res) return res;
12599 : : }
12600 : 0 : break;
12601 : : }
12602 : : default:;
12603 : : }
12604 : : break;
12605 : : }
12606 : : default:;
12607 : : }
12608 : : }
12609 : : break;
12610 : : }
12611 : : default:;
12612 : : }
12613 : : break;
12614 : : }
12615 : : default:;
12616 : : }
12617 : : break;
12618 : : }
12619 : 570994 : default:;
12620 : : }
12621 : 570994 : switch (TREE_CODE (_q21))
12622 : : {
12623 : 194938 : case INTEGER_CST:
12624 : 194938 : {
12625 : 194938 : switch (TREE_CODE (_p1))
12626 : : {
12627 : 57666 : CASE_CONVERT:
12628 : 57666 : {
12629 : 57666 : tree _q50 = TREE_OPERAND (_p1, 0);
12630 : 57666 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12631 : : {
12632 : 150 : switch (TREE_CODE (_p2))
12633 : : {
12634 : 45 : case INTEGER_CST:
12635 : 45 : {
12636 : 45 : {
12637 : 45 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
12638 : 45 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
12639 : 45 : if (res) return res;
12640 : : }
12641 : 45 : break;
12642 : : }
12643 : : default:;
12644 : : }
12645 : : }
12646 : : break;
12647 : : }
12648 : 194938 : default:;
12649 : : }
12650 : 194938 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
12651 : : {
12652 : 40749 : switch (TREE_CODE (_p2))
12653 : : {
12654 : 10129 : case INTEGER_CST:
12655 : 10129 : {
12656 : 10129 : {
12657 : 10129 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
12658 : 10129 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
12659 : 10129 : if (res) return res;
12660 : : }
12661 : 15 : break;
12662 : : }
12663 : : default:;
12664 : : }
12665 : : }
12666 : 184824 : switch (TREE_CODE (_p1))
12667 : : {
12668 : 16004 : case PLUS_EXPR:
12669 : 16004 : {
12670 : 16004 : tree _q50 = TREE_OPERAND (_p1, 0);
12671 : 16004 : tree _q51 = TREE_OPERAND (_p1, 1);
12672 : 16004 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12673 : : {
12674 : 6031 : switch (TREE_CODE (_q51))
12675 : : {
12676 : 6031 : case INTEGER_CST:
12677 : 6031 : {
12678 : 6031 : switch (TREE_CODE (_p2))
12679 : : {
12680 : 6031 : case INTEGER_CST:
12681 : 6031 : {
12682 : 6031 : {
12683 : 6031 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
12684 : 6031 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, PLUS_EXPR);
12685 : 6031 : if (res) return res;
12686 : : }
12687 : 0 : break;
12688 : : }
12689 : : default:;
12690 : : }
12691 : : break;
12692 : : }
12693 : : default:;
12694 : : }
12695 : : }
12696 : : break;
12697 : : }
12698 : 218 : case MINUS_EXPR:
12699 : 218 : {
12700 : 218 : tree _q50 = TREE_OPERAND (_p1, 0);
12701 : 218 : tree _q51 = TREE_OPERAND (_p1, 1);
12702 : 218 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12703 : : {
12704 : 0 : switch (TREE_CODE (_q51))
12705 : : {
12706 : 0 : case INTEGER_CST:
12707 : 0 : {
12708 : 0 : switch (TREE_CODE (_p2))
12709 : : {
12710 : 0 : case INTEGER_CST:
12711 : 0 : {
12712 : 0 : {
12713 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
12714 : 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MINUS_EXPR);
12715 : 0 : if (res) return res;
12716 : : }
12717 : 0 : break;
12718 : : }
12719 : : default:;
12720 : : }
12721 : : break;
12722 : : }
12723 : : default:;
12724 : : }
12725 : : }
12726 : : break;
12727 : : }
12728 : : default:;
12729 : : }
12730 : : break;
12731 : : }
12732 : 554849 : default:;
12733 : : }
12734 : 554849 : switch (TREE_CODE (_p1))
12735 : : {
12736 : 24 : case MIN_EXPR:
12737 : 24 : {
12738 : 24 : tree _q50 = TREE_OPERAND (_p1, 0);
12739 : 24 : tree _q51 = TREE_OPERAND (_p1, 1);
12740 : 24 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12741 : : {
12742 : 23 : switch (TREE_CODE (_p2))
12743 : : {
12744 : 0 : case MIN_EXPR:
12745 : 0 : {
12746 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12747 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12748 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12749 : : {
12750 : 0 : {
12751 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
12752 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
12753 : 0 : if (res) return res;
12754 : : }
12755 : : }
12756 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12757 : : {
12758 : 0 : {
12759 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
12760 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
12761 : 0 : if (res) return res;
12762 : : }
12763 : : }
12764 : : break;
12765 : : }
12766 : 23 : default:;
12767 : : }
12768 : 23 : {
12769 : 23 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
12770 : 23 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
12771 : 23 : if (res) return res;
12772 : : }
12773 : : }
12774 : 16 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12775 : : {
12776 : 0 : switch (TREE_CODE (_p2))
12777 : : {
12778 : 0 : case MIN_EXPR:
12779 : 0 : {
12780 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12781 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12782 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12783 : : {
12784 : 0 : {
12785 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
12786 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
12787 : 0 : if (res) return res;
12788 : : }
12789 : : }
12790 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12791 : : {
12792 : 0 : {
12793 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
12794 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
12795 : 0 : if (res) return res;
12796 : : }
12797 : : }
12798 : : break;
12799 : : }
12800 : : default:;
12801 : : }
12802 : : }
12803 : 16 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12804 : : {
12805 : 0 : switch (TREE_CODE (_p2))
12806 : : {
12807 : 0 : case MIN_EXPR:
12808 : 0 : {
12809 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12810 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12811 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12812 : : {
12813 : 0 : {
12814 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
12815 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
12816 : 0 : if (res) return res;
12817 : : }
12818 : : }
12819 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12820 : : {
12821 : 0 : {
12822 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
12823 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
12824 : 0 : if (res) return res;
12825 : : }
12826 : : }
12827 : : break;
12828 : : }
12829 : : default:;
12830 : : }
12831 : : }
12832 : 16 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12833 : : {
12834 : 0 : switch (TREE_CODE (_p2))
12835 : : {
12836 : 0 : case MIN_EXPR:
12837 : 0 : {
12838 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12839 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12840 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12841 : : {
12842 : 0 : {
12843 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
12844 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
12845 : 0 : if (res) return res;
12846 : : }
12847 : : }
12848 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12849 : : {
12850 : 0 : {
12851 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
12852 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
12853 : 0 : if (res) return res;
12854 : : }
12855 : : }
12856 : : break;
12857 : : }
12858 : : default:;
12859 : : }
12860 : : }
12861 : 16 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12862 : : {
12863 : 0 : {
12864 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
12865 : 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
12866 : 0 : if (res) return res;
12867 : : }
12868 : : }
12869 : : break;
12870 : : }
12871 : 9 : case MAX_EXPR:
12872 : 9 : {
12873 : 9 : tree _q50 = TREE_OPERAND (_p1, 0);
12874 : 9 : tree _q51 = TREE_OPERAND (_p1, 1);
12875 : 9 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
12876 : : {
12877 : 1 : switch (TREE_CODE (_p2))
12878 : : {
12879 : 0 : case MAX_EXPR:
12880 : 0 : {
12881 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12882 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12883 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12884 : : {
12885 : 0 : {
12886 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
12887 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
12888 : 0 : if (res) return res;
12889 : : }
12890 : : }
12891 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12892 : : {
12893 : 0 : {
12894 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
12895 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
12896 : 0 : if (res) return res;
12897 : : }
12898 : : }
12899 : : break;
12900 : : }
12901 : : default:;
12902 : : }
12903 : : }
12904 : 9 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
12905 : : {
12906 : 1 : switch (TREE_CODE (_p2))
12907 : : {
12908 : 0 : case MAX_EXPR:
12909 : 0 : {
12910 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12911 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12912 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12913 : : {
12914 : 0 : {
12915 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
12916 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
12917 : 0 : if (res) return res;
12918 : : }
12919 : : }
12920 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12921 : : {
12922 : 0 : {
12923 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
12924 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
12925 : 0 : if (res) return res;
12926 : : }
12927 : : }
12928 : : break;
12929 : : }
12930 : : default:;
12931 : : }
12932 : : }
12933 : 9 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
12934 : : {
12935 : 1 : switch (TREE_CODE (_p2))
12936 : : {
12937 : 0 : case MAX_EXPR:
12938 : 0 : {
12939 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12940 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12941 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
12942 : : {
12943 : 0 : {
12944 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
12945 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
12946 : 0 : if (res) return res;
12947 : : }
12948 : : }
12949 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
12950 : : {
12951 : 0 : {
12952 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
12953 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
12954 : 0 : if (res) return res;
12955 : : }
12956 : : }
12957 : : break;
12958 : : }
12959 : 1 : default:;
12960 : : }
12961 : 1 : {
12962 : 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
12963 : 1 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
12964 : 1 : if (res) return res;
12965 : : }
12966 : : }
12967 : 8 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
12968 : : {
12969 : 8 : switch (TREE_CODE (_p2))
12970 : : {
12971 : 0 : case MAX_EXPR:
12972 : 0 : {
12973 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
12974 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
12975 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
12976 : : {
12977 : 0 : {
12978 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
12979 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
12980 : 0 : if (res) return res;
12981 : : }
12982 : : }
12983 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
12984 : : {
12985 : 0 : {
12986 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
12987 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
12988 : 0 : if (res) return res;
12989 : : }
12990 : : }
12991 : : break;
12992 : : }
12993 : 8 : default:;
12994 : : }
12995 : 8 : {
12996 : 8 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
12997 : 8 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
12998 : 8 : if (res) return res;
12999 : : }
13000 : : }
13001 : : break;
13002 : : }
13003 : 554839 : default:;
13004 : : }
13005 : 554839 : {
13006 : 554839 : tree _q20_pops[1];
13007 : 554839 : if (tree_nop_convert (_q20, _q20_pops))
13008 : : {
13009 : 33407 : tree _q30 = _q20_pops[0];
13010 : 33407 : if (integer_zerop (_q21))
13011 : : {
13012 : 29453 : switch (TREE_CODE (_p1))
13013 : : {
13014 : 0 : case MAX_EXPR:
13015 : 0 : {
13016 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13017 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13018 : 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13019 : : {
13020 : 0 : switch (TREE_CODE (_q61))
13021 : : {
13022 : 0 : case INTEGER_CST:
13023 : 0 : {
13024 : 0 : switch (TREE_CODE (_p2))
13025 : : {
13026 : 0 : case INTEGER_CST:
13027 : 0 : {
13028 : 0 : {
13029 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q30, _q21, _p1, _q61, _p2 };
13030 : 0 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
13031 : 0 : if (res) return res;
13032 : : }
13033 : 0 : break;
13034 : : }
13035 : : default:;
13036 : : }
13037 : : break;
13038 : : }
13039 : : default:;
13040 : : }
13041 : : }
13042 : : break;
13043 : : }
13044 : : default:;
13045 : : }
13046 : : }
13047 : : }
13048 : : }
13049 : 554839 : if (tree_expr_nonnegative_p (_q21))
13050 : : {
13051 : 407794 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13052 : : {
13053 : 30692 : switch (TREE_CODE (_p2))
13054 : : {
13055 : 0 : case ABS_EXPR:
13056 : 0 : {
13057 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
13058 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
13059 : : {
13060 : 0 : {
13061 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
13062 : 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
13063 : 0 : if (res) return res;
13064 : : }
13065 : : }
13066 : : break;
13067 : : }
13068 : : default:;
13069 : : }
13070 : : }
13071 : : }
13072 : : break;
13073 : : }
13074 : 812534 : case GT_EXPR:
13075 : 812534 : {
13076 : 812534 : tree _q20 = TREE_OPERAND (_p0, 0);
13077 : 812534 : tree _q21 = TREE_OPERAND (_p0, 1);
13078 : 812534 : switch (TREE_CODE (_q20))
13079 : : {
13080 : 989 : case MINUS_EXPR:
13081 : 989 : {
13082 : 989 : tree _q30 = TREE_OPERAND (_q20, 0);
13083 : 989 : tree _q31 = TREE_OPERAND (_q20, 1);
13084 : 989 : switch (TREE_CODE (_q30))
13085 : : {
13086 : 0 : case CALL_EXPR:
13087 : 0 : switch (get_call_combined_fn (_q30))
13088 : : {
13089 : 0 : case CFN_BUILT_IN_CEIL:
13090 : 0 : if (call_expr_nargs (_q30) == 1)
13091 : : {
13092 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13093 : 0 : switch (TREE_CODE (_q40))
13094 : : {
13095 : 0 : case SSA_NAME:
13096 : 0 : {
13097 : 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
13098 : : {
13099 : 0 : switch (TREE_CODE (_q31))
13100 : : {
13101 : 0 : case SSA_NAME:
13102 : 0 : {
13103 : 0 : switch (TREE_CODE (_q21))
13104 : : {
13105 : 0 : case MINUS_EXPR:
13106 : 0 : {
13107 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
13108 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
13109 : 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
13110 : : {
13111 : 0 : switch (TREE_CODE (_q80))
13112 : : {
13113 : 0 : case SSA_NAME:
13114 : 0 : {
13115 : 0 : switch (TREE_CODE (_q81))
13116 : : {
13117 : 0 : case CALL_EXPR:
13118 : 0 : switch (get_call_combined_fn (_q81))
13119 : : {
13120 : 0 : case CFN_BUILT_IN_FLOOR:
13121 : 0 : if (call_expr_nargs (_q81) == 1)
13122 : : {
13123 : 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
13124 : 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
13125 : : {
13126 : 0 : switch (TREE_CODE (_q110))
13127 : : {
13128 : 0 : case SSA_NAME:
13129 : 0 : {
13130 : 0 : switch (TREE_CODE (_p1))
13131 : : {
13132 : 0 : case CALL_EXPR:
13133 : 0 : switch (get_call_combined_fn (_p1))
13134 : : {
13135 : 0 : case CFN_BUILT_IN_FLOOR:
13136 : 0 : if (call_expr_nargs (_p1) == 1)
13137 : : {
13138 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13139 : 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
13140 : : {
13141 : 0 : switch (TREE_CODE (_q140))
13142 : : {
13143 : 0 : case SSA_NAME:
13144 : 0 : {
13145 : 0 : switch (TREE_CODE (_p2))
13146 : : {
13147 : 0 : case CALL_EXPR:
13148 : 0 : switch (get_call_combined_fn (_p2))
13149 : : {
13150 : 0 : case CFN_BUILT_IN_CEIL:
13151 : 0 : if (call_expr_nargs (_p2) == 1)
13152 : : {
13153 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13154 : 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
13155 : : {
13156 : 0 : switch (TREE_CODE (_q170))
13157 : : {
13158 : 0 : case SSA_NAME:
13159 : 0 : {
13160 : 0 : {
13161 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
13162 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
13163 : 0 : if (res) return res;
13164 : : }
13165 : 0 : break;
13166 : : }
13167 : : default:;
13168 : : }
13169 : : }
13170 : : }
13171 : : break;
13172 : : default:;
13173 : : }
13174 : : break;
13175 : : default:;
13176 : : }
13177 : : break;
13178 : : }
13179 : : default:;
13180 : : }
13181 : : }
13182 : : }
13183 : : break;
13184 : : default:;
13185 : : }
13186 : : break;
13187 : : default:;
13188 : : }
13189 : : break;
13190 : : }
13191 : : default:;
13192 : : }
13193 : : }
13194 : : }
13195 : : break;
13196 : : default:;
13197 : : }
13198 : : break;
13199 : : default:;
13200 : : }
13201 : : break;
13202 : : }
13203 : : default:;
13204 : : }
13205 : : }
13206 : : break;
13207 : : }
13208 : : default:;
13209 : : }
13210 : : break;
13211 : : }
13212 : : default:;
13213 : : }
13214 : : }
13215 : : break;
13216 : : }
13217 : : default:;
13218 : : }
13219 : : }
13220 : : break;
13221 : 0 : case CFN_CEIL:
13222 : 0 : if (call_expr_nargs (_q30) == 1)
13223 : : {
13224 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13225 : 0 : switch (TREE_CODE (_q40))
13226 : : {
13227 : 0 : case SSA_NAME:
13228 : 0 : {
13229 : 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
13230 : : {
13231 : 0 : switch (TREE_CODE (_q31))
13232 : : {
13233 : 0 : case SSA_NAME:
13234 : 0 : {
13235 : 0 : switch (TREE_CODE (_q21))
13236 : : {
13237 : 0 : case MINUS_EXPR:
13238 : 0 : {
13239 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
13240 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
13241 : 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
13242 : : {
13243 : 0 : switch (TREE_CODE (_q80))
13244 : : {
13245 : 0 : case SSA_NAME:
13246 : 0 : {
13247 : 0 : switch (TREE_CODE (_q81))
13248 : : {
13249 : 0 : case CALL_EXPR:
13250 : 0 : switch (get_call_combined_fn (_q81))
13251 : : {
13252 : 0 : case CFN_FLOOR:
13253 : 0 : if (call_expr_nargs (_q81) == 1)
13254 : : {
13255 : 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
13256 : 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
13257 : : {
13258 : 0 : switch (TREE_CODE (_q110))
13259 : : {
13260 : 0 : case SSA_NAME:
13261 : 0 : {
13262 : 0 : switch (TREE_CODE (_p1))
13263 : : {
13264 : 0 : case CALL_EXPR:
13265 : 0 : switch (get_call_combined_fn (_p1))
13266 : : {
13267 : 0 : case CFN_FLOOR:
13268 : 0 : if (call_expr_nargs (_p1) == 1)
13269 : : {
13270 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13271 : 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
13272 : : {
13273 : 0 : switch (TREE_CODE (_q140))
13274 : : {
13275 : 0 : case SSA_NAME:
13276 : 0 : {
13277 : 0 : switch (TREE_CODE (_p2))
13278 : : {
13279 : 0 : case CALL_EXPR:
13280 : 0 : switch (get_call_combined_fn (_p2))
13281 : : {
13282 : 0 : case CFN_CEIL:
13283 : 0 : if (call_expr_nargs (_p2) == 1)
13284 : : {
13285 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13286 : 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
13287 : : {
13288 : 0 : switch (TREE_CODE (_q170))
13289 : : {
13290 : 0 : case SSA_NAME:
13291 : 0 : {
13292 : 0 : {
13293 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
13294 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_FLOOR, CFN_CEIL, CFN_FLOOR, CFN_CEIL);
13295 : 0 : if (res) return res;
13296 : : }
13297 : 0 : break;
13298 : : }
13299 : : default:;
13300 : : }
13301 : : }
13302 : : }
13303 : : break;
13304 : : default:;
13305 : : }
13306 : : break;
13307 : : default:;
13308 : : }
13309 : : break;
13310 : : }
13311 : : default:;
13312 : : }
13313 : : }
13314 : : }
13315 : : break;
13316 : : default:;
13317 : : }
13318 : : break;
13319 : : default:;
13320 : : }
13321 : : break;
13322 : : }
13323 : : default:;
13324 : : }
13325 : : }
13326 : : }
13327 : : break;
13328 : : default:;
13329 : : }
13330 : : break;
13331 : : default:;
13332 : : }
13333 : : break;
13334 : : }
13335 : : default:;
13336 : : }
13337 : : }
13338 : : break;
13339 : : }
13340 : : default:;
13341 : : }
13342 : : break;
13343 : : }
13344 : : default:;
13345 : : }
13346 : : }
13347 : : break;
13348 : : }
13349 : : default:;
13350 : : }
13351 : : }
13352 : : break;
13353 : 0 : case CFN_BUILT_IN_CEILF:
13354 : 0 : if (call_expr_nargs (_q30) == 1)
13355 : : {
13356 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13357 : 0 : switch (TREE_CODE (_q40))
13358 : : {
13359 : 0 : case SSA_NAME:
13360 : 0 : {
13361 : 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
13362 : : {
13363 : 0 : switch (TREE_CODE (_q31))
13364 : : {
13365 : 0 : case SSA_NAME:
13366 : 0 : {
13367 : 0 : switch (TREE_CODE (_q21))
13368 : : {
13369 : 0 : case MINUS_EXPR:
13370 : 0 : {
13371 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
13372 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
13373 : 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
13374 : : {
13375 : 0 : switch (TREE_CODE (_q80))
13376 : : {
13377 : 0 : case SSA_NAME:
13378 : 0 : {
13379 : 0 : switch (TREE_CODE (_q81))
13380 : : {
13381 : 0 : case CALL_EXPR:
13382 : 0 : switch (get_call_combined_fn (_q81))
13383 : : {
13384 : 0 : case CFN_BUILT_IN_FLOORF:
13385 : 0 : if (call_expr_nargs (_q81) == 1)
13386 : : {
13387 : 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
13388 : 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
13389 : : {
13390 : 0 : switch (TREE_CODE (_q110))
13391 : : {
13392 : 0 : case SSA_NAME:
13393 : 0 : {
13394 : 0 : switch (TREE_CODE (_p1))
13395 : : {
13396 : 0 : case CALL_EXPR:
13397 : 0 : switch (get_call_combined_fn (_p1))
13398 : : {
13399 : 0 : case CFN_BUILT_IN_FLOORF:
13400 : 0 : if (call_expr_nargs (_p1) == 1)
13401 : : {
13402 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13403 : 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
13404 : : {
13405 : 0 : switch (TREE_CODE (_q140))
13406 : : {
13407 : 0 : case SSA_NAME:
13408 : 0 : {
13409 : 0 : switch (TREE_CODE (_p2))
13410 : : {
13411 : 0 : case CALL_EXPR:
13412 : 0 : switch (get_call_combined_fn (_p2))
13413 : : {
13414 : 0 : case CFN_BUILT_IN_CEILF:
13415 : 0 : if (call_expr_nargs (_p2) == 1)
13416 : : {
13417 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13418 : 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
13419 : : {
13420 : 0 : switch (TREE_CODE (_q170))
13421 : : {
13422 : 0 : case SSA_NAME:
13423 : 0 : {
13424 : 0 : {
13425 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
13426 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
13427 : 0 : if (res) return res;
13428 : : }
13429 : 0 : break;
13430 : : }
13431 : : default:;
13432 : : }
13433 : : }
13434 : : }
13435 : : break;
13436 : : default:;
13437 : : }
13438 : : break;
13439 : : default:;
13440 : : }
13441 : : break;
13442 : : }
13443 : : default:;
13444 : : }
13445 : : }
13446 : : }
13447 : : break;
13448 : : default:;
13449 : : }
13450 : : break;
13451 : : default:;
13452 : : }
13453 : : break;
13454 : : }
13455 : : default:;
13456 : : }
13457 : : }
13458 : : }
13459 : : break;
13460 : : default:;
13461 : : }
13462 : : break;
13463 : : default:;
13464 : : }
13465 : : break;
13466 : : }
13467 : : default:;
13468 : : }
13469 : : }
13470 : : break;
13471 : : }
13472 : : default:;
13473 : : }
13474 : : break;
13475 : : }
13476 : : default:;
13477 : : }
13478 : : }
13479 : : break;
13480 : : }
13481 : : default:;
13482 : : }
13483 : : }
13484 : : break;
13485 : 0 : case CFN_BUILT_IN_CEILL:
13486 : 0 : if (call_expr_nargs (_q30) == 1)
13487 : : {
13488 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
13489 : 0 : switch (TREE_CODE (_q40))
13490 : : {
13491 : 0 : case SSA_NAME:
13492 : 0 : {
13493 : 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
13494 : : {
13495 : 0 : switch (TREE_CODE (_q31))
13496 : : {
13497 : 0 : case SSA_NAME:
13498 : 0 : {
13499 : 0 : switch (TREE_CODE (_q21))
13500 : : {
13501 : 0 : case MINUS_EXPR:
13502 : 0 : {
13503 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
13504 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
13505 : 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
13506 : : {
13507 : 0 : switch (TREE_CODE (_q80))
13508 : : {
13509 : 0 : case SSA_NAME:
13510 : 0 : {
13511 : 0 : switch (TREE_CODE (_q81))
13512 : : {
13513 : 0 : case CALL_EXPR:
13514 : 0 : switch (get_call_combined_fn (_q81))
13515 : : {
13516 : 0 : case CFN_BUILT_IN_FLOORL:
13517 : 0 : if (call_expr_nargs (_q81) == 1)
13518 : : {
13519 : 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
13520 : 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
13521 : : {
13522 : 0 : switch (TREE_CODE (_q110))
13523 : : {
13524 : 0 : case SSA_NAME:
13525 : 0 : {
13526 : 0 : switch (TREE_CODE (_p1))
13527 : : {
13528 : 0 : case CALL_EXPR:
13529 : 0 : switch (get_call_combined_fn (_p1))
13530 : : {
13531 : 0 : case CFN_BUILT_IN_FLOORL:
13532 : 0 : if (call_expr_nargs (_p1) == 1)
13533 : : {
13534 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
13535 : 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
13536 : : {
13537 : 0 : switch (TREE_CODE (_q140))
13538 : : {
13539 : 0 : case SSA_NAME:
13540 : 0 : {
13541 : 0 : switch (TREE_CODE (_p2))
13542 : : {
13543 : 0 : case CALL_EXPR:
13544 : 0 : switch (get_call_combined_fn (_p2))
13545 : : {
13546 : 0 : case CFN_BUILT_IN_CEILL:
13547 : 0 : if (call_expr_nargs (_p2) == 1)
13548 : : {
13549 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
13550 : 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
13551 : : {
13552 : 0 : switch (TREE_CODE (_q170))
13553 : : {
13554 : 0 : case SSA_NAME:
13555 : 0 : {
13556 : 0 : {
13557 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
13558 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
13559 : 0 : if (res) return res;
13560 : : }
13561 : 0 : break;
13562 : : }
13563 : : default:;
13564 : : }
13565 : : }
13566 : : }
13567 : : break;
13568 : : default:;
13569 : : }
13570 : : break;
13571 : : default:;
13572 : : }
13573 : : break;
13574 : : }
13575 : : default:;
13576 : : }
13577 : : }
13578 : : }
13579 : : break;
13580 : : default:;
13581 : : }
13582 : : break;
13583 : : default:;
13584 : : }
13585 : : break;
13586 : : }
13587 : : default:;
13588 : : }
13589 : : }
13590 : : }
13591 : : break;
13592 : : default:;
13593 : : }
13594 : : break;
13595 : : default:;
13596 : : }
13597 : : break;
13598 : : }
13599 : : default:;
13600 : : }
13601 : : }
13602 : : break;
13603 : : }
13604 : : default:;
13605 : : }
13606 : : break;
13607 : : }
13608 : : default:;
13609 : : }
13610 : : }
13611 : : break;
13612 : : }
13613 : : default:;
13614 : : }
13615 : : }
13616 : : break;
13617 : : default:;
13618 : : }
13619 : : break;
13620 : : default:;
13621 : : }
13622 : : break;
13623 : : }
13624 : 89918 : CASE_CONVERT:
13625 : 89918 : {
13626 : 89918 : tree _q30 = TREE_OPERAND (_q20, 0);
13627 : 89918 : switch (TREE_CODE (_q21))
13628 : : {
13629 : 4539 : case INTEGER_CST:
13630 : 4539 : {
13631 : 4539 : switch (TREE_CODE (_p1))
13632 : : {
13633 : 166 : CASE_CONVERT:
13634 : 166 : {
13635 : 166 : tree _q60 = TREE_OPERAND (_p1, 0);
13636 : 166 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13637 : : {
13638 : 63 : switch (TREE_CODE (_p2))
13639 : : {
13640 : 62 : case INTEGER_CST:
13641 : 62 : {
13642 : 62 : {
13643 : 62 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
13644 : 62 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
13645 : 62 : if (res) return res;
13646 : : }
13647 : 62 : break;
13648 : : }
13649 : : default:;
13650 : : }
13651 : : }
13652 : : break;
13653 : : }
13654 : 4539 : default:;
13655 : : }
13656 : 4539 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
13657 : : {
13658 : 102 : switch (TREE_CODE (_p2))
13659 : : {
13660 : 100 : case INTEGER_CST:
13661 : 100 : {
13662 : 100 : {
13663 : 100 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
13664 : 100 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
13665 : 100 : if (res) return res;
13666 : : }
13667 : 100 : break;
13668 : : }
13669 : : default:;
13670 : : }
13671 : : }
13672 : 4539 : switch (TREE_CODE (_p1))
13673 : : {
13674 : 1671 : case PLUS_EXPR:
13675 : 1671 : {
13676 : 1671 : tree _q60 = TREE_OPERAND (_p1, 0);
13677 : 1671 : tree _q61 = TREE_OPERAND (_p1, 1);
13678 : 1671 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13679 : : {
13680 : 24 : switch (TREE_CODE (_q61))
13681 : : {
13682 : 24 : case INTEGER_CST:
13683 : 24 : {
13684 : 24 : switch (TREE_CODE (_p2))
13685 : : {
13686 : 24 : case INTEGER_CST:
13687 : 24 : {
13688 : 24 : {
13689 : 24 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
13690 : 24 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, PLUS_EXPR);
13691 : 24 : if (res) return res;
13692 : : }
13693 : 24 : break;
13694 : : }
13695 : : default:;
13696 : : }
13697 : : break;
13698 : : }
13699 : : default:;
13700 : : }
13701 : : }
13702 : : break;
13703 : : }
13704 : 0 : case MINUS_EXPR:
13705 : 0 : {
13706 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
13707 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
13708 : 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
13709 : : {
13710 : 0 : switch (TREE_CODE (_q61))
13711 : : {
13712 : 0 : case INTEGER_CST:
13713 : 0 : {
13714 : 0 : switch (TREE_CODE (_p2))
13715 : : {
13716 : 0 : case INTEGER_CST:
13717 : 0 : {
13718 : 0 : {
13719 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
13720 : 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MINUS_EXPR);
13721 : 0 : if (res) return res;
13722 : : }
13723 : 0 : break;
13724 : : }
13725 : : default:;
13726 : : }
13727 : : break;
13728 : : }
13729 : : default:;
13730 : : }
13731 : : }
13732 : : break;
13733 : : }
13734 : : default:;
13735 : : }
13736 : : break;
13737 : : }
13738 : : default:;
13739 : : }
13740 : : break;
13741 : : }
13742 : 812534 : default:;
13743 : : }
13744 : 812534 : switch (TREE_CODE (_q21))
13745 : : {
13746 : 457629 : case INTEGER_CST:
13747 : 457629 : {
13748 : 457629 : switch (TREE_CODE (_p1))
13749 : : {
13750 : 50178 : CASE_CONVERT:
13751 : 50178 : {
13752 : 50178 : tree _q50 = TREE_OPERAND (_p1, 0);
13753 : 50178 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13754 : : {
13755 : 9834 : switch (TREE_CODE (_p2))
13756 : : {
13757 : 9799 : case INTEGER_CST:
13758 : 9799 : {
13759 : 9799 : {
13760 : 9799 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
13761 : 9799 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
13762 : 9799 : if (res) return res;
13763 : : }
13764 : 9633 : break;
13765 : : }
13766 : : default:;
13767 : : }
13768 : : }
13769 : : break;
13770 : : }
13771 : 457463 : default:;
13772 : : }
13773 : 457463 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
13774 : : {
13775 : 8812 : switch (TREE_CODE (_p2))
13776 : : {
13777 : 8662 : case INTEGER_CST:
13778 : 8662 : {
13779 : 8662 : {
13780 : 8662 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
13781 : 8662 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
13782 : 8662 : if (res) return res;
13783 : : }
13784 : 31 : break;
13785 : : }
13786 : : default:;
13787 : : }
13788 : : }
13789 : 448832 : switch (TREE_CODE (_p1))
13790 : : {
13791 : 43339 : case PLUS_EXPR:
13792 : 43339 : {
13793 : 43339 : tree _q50 = TREE_OPERAND (_p1, 0);
13794 : 43339 : tree _q51 = TREE_OPERAND (_p1, 1);
13795 : 43339 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13796 : : {
13797 : 727 : switch (TREE_CODE (_q51))
13798 : : {
13799 : 727 : case INTEGER_CST:
13800 : 727 : {
13801 : 727 : switch (TREE_CODE (_p2))
13802 : : {
13803 : 719 : case INTEGER_CST:
13804 : 719 : {
13805 : 719 : {
13806 : 719 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
13807 : 719 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, PLUS_EXPR);
13808 : 719 : if (res) return res;
13809 : : }
13810 : 17 : break;
13811 : : }
13812 : : default:;
13813 : : }
13814 : : break;
13815 : : }
13816 : : default:;
13817 : : }
13818 : : }
13819 : : break;
13820 : : }
13821 : 200 : case MINUS_EXPR:
13822 : 200 : {
13823 : 200 : tree _q50 = TREE_OPERAND (_p1, 0);
13824 : 200 : tree _q51 = TREE_OPERAND (_p1, 1);
13825 : 200 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13826 : : {
13827 : 4 : switch (TREE_CODE (_q51))
13828 : : {
13829 : 0 : case INTEGER_CST:
13830 : 0 : {
13831 : 0 : switch (TREE_CODE (_p2))
13832 : : {
13833 : 0 : case INTEGER_CST:
13834 : 0 : {
13835 : 0 : {
13836 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
13837 : 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MINUS_EXPR);
13838 : 0 : if (res) return res;
13839 : : }
13840 : 0 : break;
13841 : : }
13842 : : default:;
13843 : : }
13844 : : break;
13845 : : }
13846 : : default:;
13847 : : }
13848 : : }
13849 : : break;
13850 : : }
13851 : : default:;
13852 : : }
13853 : : break;
13854 : : }
13855 : 803035 : default:;
13856 : : }
13857 : 803035 : switch (TREE_CODE (_p1))
13858 : : {
13859 : 18 : case MIN_EXPR:
13860 : 18 : {
13861 : 18 : tree _q50 = TREE_OPERAND (_p1, 0);
13862 : 18 : tree _q51 = TREE_OPERAND (_p1, 1);
13863 : 18 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13864 : : {
13865 : 7 : switch (TREE_CODE (_p2))
13866 : : {
13867 : 0 : case MIN_EXPR:
13868 : 0 : {
13869 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13870 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13871 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
13872 : : {
13873 : 0 : {
13874 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
13875 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
13876 : 0 : if (res) return res;
13877 : : }
13878 : : }
13879 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
13880 : : {
13881 : 0 : {
13882 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
13883 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
13884 : 0 : if (res) return res;
13885 : : }
13886 : : }
13887 : : break;
13888 : : }
13889 : 7 : default:;
13890 : : }
13891 : 7 : {
13892 : 7 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
13893 : 7 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
13894 : 7 : if (res) return res;
13895 : : }
13896 : : }
13897 : 18 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13898 : : {
13899 : 0 : switch (TREE_CODE (_p2))
13900 : : {
13901 : 0 : case MIN_EXPR:
13902 : 0 : {
13903 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13904 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13905 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
13906 : : {
13907 : 0 : {
13908 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
13909 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
13910 : 0 : if (res) return res;
13911 : : }
13912 : : }
13913 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
13914 : : {
13915 : 0 : {
13916 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
13917 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
13918 : 0 : if (res) return res;
13919 : : }
13920 : : }
13921 : : break;
13922 : : }
13923 : : default:;
13924 : : }
13925 : : }
13926 : 18 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
13927 : : {
13928 : 8 : switch (TREE_CODE (_p2))
13929 : : {
13930 : 0 : case MIN_EXPR:
13931 : 0 : {
13932 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13933 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13934 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
13935 : : {
13936 : 0 : {
13937 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
13938 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
13939 : 0 : if (res) return res;
13940 : : }
13941 : : }
13942 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
13943 : : {
13944 : 0 : {
13945 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
13946 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
13947 : 0 : if (res) return res;
13948 : : }
13949 : : }
13950 : : break;
13951 : : }
13952 : : default:;
13953 : : }
13954 : : }
13955 : 18 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
13956 : : {
13957 : 7 : switch (TREE_CODE (_p2))
13958 : : {
13959 : 0 : case MIN_EXPR:
13960 : 0 : {
13961 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
13962 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
13963 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
13964 : : {
13965 : 0 : {
13966 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
13967 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
13968 : 0 : if (res) return res;
13969 : : }
13970 : : }
13971 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
13972 : : {
13973 : 0 : {
13974 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
13975 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
13976 : 0 : if (res) return res;
13977 : : }
13978 : : }
13979 : : break;
13980 : : }
13981 : : default:;
13982 : : }
13983 : : }
13984 : 18 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
13985 : : {
13986 : 0 : {
13987 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
13988 : 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MIN_EXPR);
13989 : 0 : if (res) return res;
13990 : : }
13991 : : }
13992 : : break;
13993 : : }
13994 : 100 : case MAX_EXPR:
13995 : 100 : {
13996 : 100 : tree _q50 = TREE_OPERAND (_p1, 0);
13997 : 100 : tree _q51 = TREE_OPERAND (_p1, 1);
13998 : 100 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
13999 : : {
14000 : 0 : switch (TREE_CODE (_p2))
14001 : : {
14002 : 0 : case MAX_EXPR:
14003 : 0 : {
14004 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14005 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14006 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
14007 : : {
14008 : 0 : {
14009 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
14010 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
14011 : 0 : if (res) return res;
14012 : : }
14013 : : }
14014 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
14015 : : {
14016 : 0 : {
14017 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
14018 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
14019 : 0 : if (res) return res;
14020 : : }
14021 : : }
14022 : : break;
14023 : : }
14024 : : default:;
14025 : : }
14026 : : }
14027 : 100 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
14028 : : {
14029 : 2 : switch (TREE_CODE (_p2))
14030 : : {
14031 : 1 : case MAX_EXPR:
14032 : 1 : {
14033 : 1 : tree _q80 = TREE_OPERAND (_p2, 0);
14034 : 1 : tree _q81 = TREE_OPERAND (_p2, 1);
14035 : 1 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
14036 : : {
14037 : 0 : {
14038 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
14039 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
14040 : 0 : if (res) return res;
14041 : : }
14042 : : }
14043 : 1 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14044 : : {
14045 : 1 : {
14046 : 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
14047 : 1 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MAX_EXPR);
14048 : 1 : if (res) return res;
14049 : : }
14050 : : }
14051 : : break;
14052 : : }
14053 : : default:;
14054 : : }
14055 : : }
14056 : 99 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
14057 : : {
14058 : 1 : switch (TREE_CODE (_p2))
14059 : : {
14060 : 0 : case MAX_EXPR:
14061 : 0 : {
14062 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14063 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14064 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
14065 : : {
14066 : 0 : {
14067 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
14068 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
14069 : 0 : if (res) return res;
14070 : : }
14071 : : }
14072 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
14073 : : {
14074 : 0 : {
14075 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
14076 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
14077 : 0 : if (res) return res;
14078 : : }
14079 : : }
14080 : : break;
14081 : : }
14082 : 1 : default:;
14083 : : }
14084 : 1 : {
14085 : 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
14086 : 1 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
14087 : 1 : if (res) return res;
14088 : : }
14089 : : }
14090 : 98 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
14091 : : {
14092 : 0 : switch (TREE_CODE (_p2))
14093 : : {
14094 : 0 : case MAX_EXPR:
14095 : 0 : {
14096 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
14097 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
14098 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
14099 : : {
14100 : 0 : {
14101 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
14102 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
14103 : 0 : if (res) return res;
14104 : : }
14105 : : }
14106 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
14107 : : {
14108 : 0 : {
14109 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
14110 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
14111 : 0 : if (res) return res;
14112 : : }
14113 : : }
14114 : : break;
14115 : : }
14116 : 0 : default:;
14117 : : }
14118 : 0 : {
14119 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
14120 : 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MAX_EXPR);
14121 : 0 : if (res) return res;
14122 : : }
14123 : : }
14124 : : break;
14125 : : }
14126 : 803033 : default:;
14127 : : }
14128 : 803033 : if (integer_zerop (_q20))
14129 : : {
14130 : 0 : {
14131 : 0 : tree _q21_pops[1];
14132 : 0 : if (tree_nop_convert (_q21, _q21_pops))
14133 : : {
14134 : 0 : tree _q40 = _q21_pops[0];
14135 : 0 : switch (TREE_CODE (_p1))
14136 : : {
14137 : 0 : case MIN_EXPR:
14138 : 0 : {
14139 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
14140 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
14141 : 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
14142 : : {
14143 : 0 : switch (TREE_CODE (_q61))
14144 : : {
14145 : 0 : case INTEGER_CST:
14146 : 0 : {
14147 : 0 : switch (TREE_CODE (_p2))
14148 : : {
14149 : 0 : case INTEGER_CST:
14150 : 0 : {
14151 : 0 : {
14152 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q40, _q20, _p1, _q61, _p2 };
14153 : 0 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MIN_EXPR);
14154 : 0 : if (res) return res;
14155 : : }
14156 : 0 : break;
14157 : : }
14158 : : default:;
14159 : : }
14160 : : break;
14161 : : }
14162 : : default:;
14163 : : }
14164 : : }
14165 : : break;
14166 : : }
14167 : : default:;
14168 : : }
14169 : : }
14170 : : }
14171 : : }
14172 : 803033 : if (tree_expr_nonnegative_p (_q21))
14173 : : {
14174 : 568450 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
14175 : : {
14176 : 552 : switch (TREE_CODE (_p2))
14177 : : {
14178 : 0 : case ABS_EXPR:
14179 : 0 : {
14180 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
14181 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
14182 : : {
14183 : 0 : {
14184 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
14185 : 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
14186 : 0 : if (res) return res;
14187 : : }
14188 : : }
14189 : : break;
14190 : : }
14191 : : default:;
14192 : : }
14193 : : }
14194 : : }
14195 : 803033 : switch (TREE_CODE (_q20))
14196 : : {
14197 : 58231 : case PLUS_EXPR:
14198 : 58231 : {
14199 : 58231 : tree _q30 = TREE_OPERAND (_q20, 0);
14200 : 58231 : tree _q31 = TREE_OPERAND (_q20, 1);
14201 : 58231 : if (integer_onep (_q31))
14202 : : {
14203 : 29815 : switch (TREE_CODE (_p1))
14204 : : {
14205 : 2 : case NEGATE_EXPR:
14206 : 2 : {
14207 : 2 : tree _q70 = TREE_OPERAND (_p1, 0);
14208 : 2 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
14209 : : {
14210 : 2 : if (integer_onep (_p2))
14211 : : {
14212 : 2 : {
14213 : 2 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
14214 : 2 : if (TYPE_UNSIGNED (type)
14215 : : )
14216 : : {
14217 : 2 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1779;
14218 : 2 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1779;
14219 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1779;
14220 : 2 : {
14221 : 2 : tree res_op0;
14222 : 2 : {
14223 : 2 : tree _o1[2], _r1;
14224 : 2 : _o1[0] = unshare_expr (captures[0]);
14225 : 2 : _o1[1] = captures[1];
14226 : 2 : _r1 = fold_build2_loc (loc, GE_EXPR, boolean_type_node, _o1[0], _o1[1]);
14227 : 2 : res_op0 = _r1;
14228 : : }
14229 : 2 : tree res_op1;
14230 : 2 : {
14231 : 2 : tree _o1[1], _r1;
14232 : 2 : _o1[0] = captures[0];
14233 : 2 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
14234 : 2 : res_op1 = _r1;
14235 : : }
14236 : 2 : tree res_op2;
14237 : 2 : res_op2 = captures[2];
14238 : 2 : tree _r;
14239 : 2 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
14240 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1002, __FILE__, __LINE__, true);
14241 : 2 : return _r;
14242 : : }
14243 : 0 : next_after_fail1779:;
14244 : : }
14245 : : }
14246 : : }
14247 : : }
14248 : : break;
14249 : : }
14250 : : default:;
14251 : : }
14252 : : }
14253 : : break;
14254 : : }
14255 : : default:;
14256 : : }
14257 : : break;
14258 : : }
14259 : 1335893 : case LE_EXPR:
14260 : 1335893 : {
14261 : 1335893 : tree _q20 = TREE_OPERAND (_p0, 0);
14262 : 1335893 : tree _q21 = TREE_OPERAND (_p0, 1);
14263 : 1335893 : switch (TREE_CODE (_q20))
14264 : : {
14265 : 206 : case MINUS_EXPR:
14266 : 206 : {
14267 : 206 : tree _q30 = TREE_OPERAND (_q20, 0);
14268 : 206 : tree _q31 = TREE_OPERAND (_q20, 1);
14269 : 206 : switch (TREE_CODE (_q30))
14270 : : {
14271 : 0 : case CALL_EXPR:
14272 : 0 : switch (get_call_combined_fn (_q30))
14273 : : {
14274 : 0 : case CFN_BUILT_IN_CEIL:
14275 : 0 : if (call_expr_nargs (_q30) == 1)
14276 : : {
14277 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14278 : 0 : switch (TREE_CODE (_q40))
14279 : : {
14280 : 0 : case SSA_NAME:
14281 : 0 : {
14282 : 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
14283 : : {
14284 : 0 : switch (TREE_CODE (_q31))
14285 : : {
14286 : 0 : case SSA_NAME:
14287 : 0 : {
14288 : 0 : switch (TREE_CODE (_q21))
14289 : : {
14290 : 0 : case MINUS_EXPR:
14291 : 0 : {
14292 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
14293 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
14294 : 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
14295 : : {
14296 : 0 : switch (TREE_CODE (_q80))
14297 : : {
14298 : 0 : case SSA_NAME:
14299 : 0 : {
14300 : 0 : switch (TREE_CODE (_q81))
14301 : : {
14302 : 0 : case CALL_EXPR:
14303 : 0 : switch (get_call_combined_fn (_q81))
14304 : : {
14305 : 0 : case CFN_BUILT_IN_FLOOR:
14306 : 0 : if (call_expr_nargs (_q81) == 1)
14307 : : {
14308 : 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
14309 : 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
14310 : : {
14311 : 0 : switch (TREE_CODE (_q110))
14312 : : {
14313 : 0 : case SSA_NAME:
14314 : 0 : {
14315 : 0 : switch (TREE_CODE (_p1))
14316 : : {
14317 : 0 : case CALL_EXPR:
14318 : 0 : switch (get_call_combined_fn (_p1))
14319 : : {
14320 : 0 : case CFN_BUILT_IN_CEIL:
14321 : 0 : if (call_expr_nargs (_p1) == 1)
14322 : : {
14323 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
14324 : 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
14325 : : {
14326 : 0 : switch (TREE_CODE (_q140))
14327 : : {
14328 : 0 : case SSA_NAME:
14329 : 0 : {
14330 : 0 : switch (TREE_CODE (_p2))
14331 : : {
14332 : 0 : case CALL_EXPR:
14333 : 0 : switch (get_call_combined_fn (_p2))
14334 : : {
14335 : 0 : case CFN_BUILT_IN_FLOOR:
14336 : 0 : if (call_expr_nargs (_p2) == 1)
14337 : : {
14338 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
14339 : 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
14340 : : {
14341 : 0 : switch (TREE_CODE (_q170))
14342 : : {
14343 : 0 : case SSA_NAME:
14344 : 0 : {
14345 : 0 : {
14346 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
14347 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_CEIL);
14348 : 0 : if (res) return res;
14349 : : }
14350 : 0 : break;
14351 : : }
14352 : : default:;
14353 : : }
14354 : : }
14355 : : }
14356 : : break;
14357 : : default:;
14358 : : }
14359 : : break;
14360 : : default:;
14361 : : }
14362 : : break;
14363 : : }
14364 : : default:;
14365 : : }
14366 : : }
14367 : : }
14368 : : break;
14369 : : default:;
14370 : : }
14371 : : break;
14372 : : default:;
14373 : : }
14374 : : break;
14375 : : }
14376 : : default:;
14377 : : }
14378 : : }
14379 : : }
14380 : : break;
14381 : : default:;
14382 : : }
14383 : : break;
14384 : : default:;
14385 : : }
14386 : : break;
14387 : : }
14388 : : default:;
14389 : : }
14390 : : }
14391 : : break;
14392 : : }
14393 : : default:;
14394 : : }
14395 : : break;
14396 : : }
14397 : : default:;
14398 : : }
14399 : : }
14400 : : break;
14401 : : }
14402 : : default:;
14403 : : }
14404 : : }
14405 : : break;
14406 : 0 : case CFN_CEIL:
14407 : 0 : if (call_expr_nargs (_q30) == 1)
14408 : : {
14409 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14410 : 0 : switch (TREE_CODE (_q40))
14411 : : {
14412 : 0 : case SSA_NAME:
14413 : 0 : {
14414 : 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
14415 : : {
14416 : 0 : switch (TREE_CODE (_q31))
14417 : : {
14418 : 0 : case SSA_NAME:
14419 : 0 : {
14420 : 0 : switch (TREE_CODE (_q21))
14421 : : {
14422 : 0 : case MINUS_EXPR:
14423 : 0 : {
14424 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
14425 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
14426 : 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
14427 : : {
14428 : 0 : switch (TREE_CODE (_q80))
14429 : : {
14430 : 0 : case SSA_NAME:
14431 : 0 : {
14432 : 0 : switch (TREE_CODE (_q81))
14433 : : {
14434 : 0 : case CALL_EXPR:
14435 : 0 : switch (get_call_combined_fn (_q81))
14436 : : {
14437 : 0 : case CFN_FLOOR:
14438 : 0 : if (call_expr_nargs (_q81) == 1)
14439 : : {
14440 : 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
14441 : 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
14442 : : {
14443 : 0 : switch (TREE_CODE (_q110))
14444 : : {
14445 : 0 : case SSA_NAME:
14446 : 0 : {
14447 : 0 : switch (TREE_CODE (_p1))
14448 : : {
14449 : 0 : case CALL_EXPR:
14450 : 0 : switch (get_call_combined_fn (_p1))
14451 : : {
14452 : 0 : case CFN_CEIL:
14453 : 0 : if (call_expr_nargs (_p1) == 1)
14454 : : {
14455 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
14456 : 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
14457 : : {
14458 : 0 : switch (TREE_CODE (_q140))
14459 : : {
14460 : 0 : case SSA_NAME:
14461 : 0 : {
14462 : 0 : switch (TREE_CODE (_p2))
14463 : : {
14464 : 0 : case CALL_EXPR:
14465 : 0 : switch (get_call_combined_fn (_p2))
14466 : : {
14467 : 0 : case CFN_FLOOR:
14468 : 0 : if (call_expr_nargs (_p2) == 1)
14469 : : {
14470 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
14471 : 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
14472 : : {
14473 : 0 : switch (TREE_CODE (_q170))
14474 : : {
14475 : 0 : case SSA_NAME:
14476 : 0 : {
14477 : 0 : {
14478 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
14479 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_CEIL, CFN_FLOOR, CFN_FLOOR, CFN_CEIL);
14480 : 0 : if (res) return res;
14481 : : }
14482 : 0 : break;
14483 : : }
14484 : : default:;
14485 : : }
14486 : : }
14487 : : }
14488 : : break;
14489 : : default:;
14490 : : }
14491 : : break;
14492 : : default:;
14493 : : }
14494 : : break;
14495 : : }
14496 : : default:;
14497 : : }
14498 : : }
14499 : : }
14500 : : break;
14501 : : default:;
14502 : : }
14503 : : break;
14504 : : default:;
14505 : : }
14506 : : break;
14507 : : }
14508 : : default:;
14509 : : }
14510 : : }
14511 : : }
14512 : : break;
14513 : : default:;
14514 : : }
14515 : : break;
14516 : : default:;
14517 : : }
14518 : : break;
14519 : : }
14520 : : default:;
14521 : : }
14522 : : }
14523 : : break;
14524 : : }
14525 : : default:;
14526 : : }
14527 : : break;
14528 : : }
14529 : : default:;
14530 : : }
14531 : : }
14532 : : break;
14533 : : }
14534 : : default:;
14535 : : }
14536 : : }
14537 : : break;
14538 : 0 : case CFN_BUILT_IN_CEILF:
14539 : 0 : if (call_expr_nargs (_q30) == 1)
14540 : : {
14541 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14542 : 0 : switch (TREE_CODE (_q40))
14543 : : {
14544 : 0 : case SSA_NAME:
14545 : 0 : {
14546 : 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
14547 : : {
14548 : 0 : switch (TREE_CODE (_q31))
14549 : : {
14550 : 0 : case SSA_NAME:
14551 : 0 : {
14552 : 0 : switch (TREE_CODE (_q21))
14553 : : {
14554 : 0 : case MINUS_EXPR:
14555 : 0 : {
14556 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
14557 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
14558 : 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
14559 : : {
14560 : 0 : switch (TREE_CODE (_q80))
14561 : : {
14562 : 0 : case SSA_NAME:
14563 : 0 : {
14564 : 0 : switch (TREE_CODE (_q81))
14565 : : {
14566 : 0 : case CALL_EXPR:
14567 : 0 : switch (get_call_combined_fn (_q81))
14568 : : {
14569 : 0 : case CFN_BUILT_IN_FLOORF:
14570 : 0 : if (call_expr_nargs (_q81) == 1)
14571 : : {
14572 : 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
14573 : 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
14574 : : {
14575 : 0 : switch (TREE_CODE (_q110))
14576 : : {
14577 : 0 : case SSA_NAME:
14578 : 0 : {
14579 : 0 : switch (TREE_CODE (_p1))
14580 : : {
14581 : 0 : case CALL_EXPR:
14582 : 0 : switch (get_call_combined_fn (_p1))
14583 : : {
14584 : 0 : case CFN_BUILT_IN_CEILF:
14585 : 0 : if (call_expr_nargs (_p1) == 1)
14586 : : {
14587 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
14588 : 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
14589 : : {
14590 : 0 : switch (TREE_CODE (_q140))
14591 : : {
14592 : 0 : case SSA_NAME:
14593 : 0 : {
14594 : 0 : switch (TREE_CODE (_p2))
14595 : : {
14596 : 0 : case CALL_EXPR:
14597 : 0 : switch (get_call_combined_fn (_p2))
14598 : : {
14599 : 0 : case CFN_BUILT_IN_FLOORF:
14600 : 0 : if (call_expr_nargs (_p2) == 1)
14601 : : {
14602 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
14603 : 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
14604 : : {
14605 : 0 : switch (TREE_CODE (_q170))
14606 : : {
14607 : 0 : case SSA_NAME:
14608 : 0 : {
14609 : 0 : {
14610 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
14611 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_CEILF);
14612 : 0 : if (res) return res;
14613 : : }
14614 : 0 : break;
14615 : : }
14616 : : default:;
14617 : : }
14618 : : }
14619 : : }
14620 : : break;
14621 : : default:;
14622 : : }
14623 : : break;
14624 : : default:;
14625 : : }
14626 : : break;
14627 : : }
14628 : : default:;
14629 : : }
14630 : : }
14631 : : }
14632 : : break;
14633 : : default:;
14634 : : }
14635 : : break;
14636 : : default:;
14637 : : }
14638 : : break;
14639 : : }
14640 : : default:;
14641 : : }
14642 : : }
14643 : : }
14644 : : break;
14645 : : default:;
14646 : : }
14647 : : break;
14648 : : default:;
14649 : : }
14650 : : break;
14651 : : }
14652 : : default:;
14653 : : }
14654 : : }
14655 : : break;
14656 : : }
14657 : : default:;
14658 : : }
14659 : : break;
14660 : : }
14661 : : default:;
14662 : : }
14663 : : }
14664 : : break;
14665 : : }
14666 : : default:;
14667 : : }
14668 : : }
14669 : : break;
14670 : 0 : case CFN_BUILT_IN_CEILL:
14671 : 0 : if (call_expr_nargs (_q30) == 1)
14672 : : {
14673 : 0 : tree _q40 = CALL_EXPR_ARG (_q30, 0);
14674 : 0 : switch (TREE_CODE (_q40))
14675 : : {
14676 : 0 : case SSA_NAME:
14677 : 0 : {
14678 : 0 : if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
14679 : : {
14680 : 0 : switch (TREE_CODE (_q31))
14681 : : {
14682 : 0 : case SSA_NAME:
14683 : 0 : {
14684 : 0 : switch (TREE_CODE (_q21))
14685 : : {
14686 : 0 : case MINUS_EXPR:
14687 : 0 : {
14688 : 0 : tree _q80 = TREE_OPERAND (_q21, 0);
14689 : 0 : tree _q81 = TREE_OPERAND (_q21, 1);
14690 : 0 : if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
14691 : : {
14692 : 0 : switch (TREE_CODE (_q80))
14693 : : {
14694 : 0 : case SSA_NAME:
14695 : 0 : {
14696 : 0 : switch (TREE_CODE (_q81))
14697 : : {
14698 : 0 : case CALL_EXPR:
14699 : 0 : switch (get_call_combined_fn (_q81))
14700 : : {
14701 : 0 : case CFN_BUILT_IN_FLOORL:
14702 : 0 : if (call_expr_nargs (_q81) == 1)
14703 : : {
14704 : 0 : tree _q110 = CALL_EXPR_ARG (_q81, 0);
14705 : 0 : if ((_q110 == _q40 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q40, 0) && types_match (_q110, _q40)))
14706 : : {
14707 : 0 : switch (TREE_CODE (_q110))
14708 : : {
14709 : 0 : case SSA_NAME:
14710 : 0 : {
14711 : 0 : switch (TREE_CODE (_p1))
14712 : : {
14713 : 0 : case CALL_EXPR:
14714 : 0 : switch (get_call_combined_fn (_p1))
14715 : : {
14716 : 0 : case CFN_BUILT_IN_CEILL:
14717 : 0 : if (call_expr_nargs (_p1) == 1)
14718 : : {
14719 : 0 : tree _q140 = CALL_EXPR_ARG (_p1, 0);
14720 : 0 : if ((_q140 == _q40 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q40, 0) && types_match (_q140, _q40)))
14721 : : {
14722 : 0 : switch (TREE_CODE (_q140))
14723 : : {
14724 : 0 : case SSA_NAME:
14725 : 0 : {
14726 : 0 : switch (TREE_CODE (_p2))
14727 : : {
14728 : 0 : case CALL_EXPR:
14729 : 0 : switch (get_call_combined_fn (_p2))
14730 : : {
14731 : 0 : case CFN_BUILT_IN_FLOORL:
14732 : 0 : if (call_expr_nargs (_p2) == 1)
14733 : : {
14734 : 0 : tree _q170 = CALL_EXPR_ARG (_p2, 0);
14735 : 0 : if ((_q170 == _q40 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q40, 0) && types_match (_q170, _q40)))
14736 : : {
14737 : 0 : switch (TREE_CODE (_q170))
14738 : : {
14739 : 0 : case SSA_NAME:
14740 : 0 : {
14741 : 0 : {
14742 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
14743 : 0 : tree res = generic_simplify_335 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_CEILL);
14744 : 0 : if (res) return res;
14745 : : }
14746 : 0 : break;
14747 : : }
14748 : : default:;
14749 : : }
14750 : : }
14751 : : }
14752 : : break;
14753 : : default:;
14754 : : }
14755 : : break;
14756 : : default:;
14757 : : }
14758 : : break;
14759 : : }
14760 : : default:;
14761 : : }
14762 : : }
14763 : : }
14764 : : break;
14765 : : default:;
14766 : : }
14767 : : break;
14768 : : default:;
14769 : : }
14770 : : break;
14771 : : }
14772 : : default:;
14773 : : }
14774 : : }
14775 : : }
14776 : : break;
14777 : : default:;
14778 : : }
14779 : : break;
14780 : : default:;
14781 : : }
14782 : : break;
14783 : : }
14784 : : default:;
14785 : : }
14786 : : }
14787 : : break;
14788 : : }
14789 : : default:;
14790 : : }
14791 : : break;
14792 : : }
14793 : : default:;
14794 : : }
14795 : : }
14796 : : break;
14797 : : }
14798 : : default:;
14799 : : }
14800 : : }
14801 : : break;
14802 : : default:;
14803 : : }
14804 : : break;
14805 : : default:;
14806 : : }
14807 : : break;
14808 : : }
14809 : 1335893 : default:;
14810 : : }
14811 : 1335893 : if (integer_zerop (_q21))
14812 : : {
14813 : 109723 : switch (TREE_CODE (_p1))
14814 : : {
14815 : 260 : case NEGATE_EXPR:
14816 : 260 : {
14817 : 260 : tree _q50 = TREE_OPERAND (_p1, 0);
14818 : 260 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14819 : : {
14820 : 70 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
14821 : : {
14822 : 70 : if (integer_zerop (_p2))
14823 : : {
14824 : 70 : {
14825 : 70 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
14826 : 70 : if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type)
14827 : : )
14828 : : {
14829 : 68 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1780;
14830 : 68 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1780;
14831 : 68 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1780;
14832 : 68 : {
14833 : 68 : tree res_op0;
14834 : 68 : res_op0 = captures[2];
14835 : 68 : tree res_op1;
14836 : 68 : res_op1 = captures[1];
14837 : 68 : tree _r;
14838 : 68 : _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
14839 : 68 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1003, __FILE__, __LINE__, true);
14840 : 68 : return _r;
14841 : : }
14842 : 2 : next_after_fail1780:;
14843 : : }
14844 : : }
14845 : : }
14846 : : }
14847 : : }
14848 : : break;
14849 : : }
14850 : : default:;
14851 : : }
14852 : : }
14853 : 1335825 : switch (TREE_CODE (_q20))
14854 : : {
14855 : 141985 : CASE_CONVERT:
14856 : 141985 : {
14857 : 141985 : tree _q30 = TREE_OPERAND (_q20, 0);
14858 : 141985 : switch (TREE_CODE (_q21))
14859 : : {
14860 : 105583 : case INTEGER_CST:
14861 : 105583 : {
14862 : 105583 : switch (TREE_CODE (_p1))
14863 : : {
14864 : 499 : CASE_CONVERT:
14865 : 499 : {
14866 : 499 : tree _q60 = TREE_OPERAND (_p1, 0);
14867 : 499 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14868 : : {
14869 : 8 : switch (TREE_CODE (_p2))
14870 : : {
14871 : 8 : case INTEGER_CST:
14872 : 8 : {
14873 : 8 : {
14874 : 8 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
14875 : 8 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
14876 : 8 : if (res) return res;
14877 : : }
14878 : 8 : break;
14879 : : }
14880 : : default:;
14881 : : }
14882 : : }
14883 : : break;
14884 : : }
14885 : 105583 : default:;
14886 : : }
14887 : 105583 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
14888 : : {
14889 : 21 : switch (TREE_CODE (_p2))
14890 : : {
14891 : 21 : case INTEGER_CST:
14892 : 21 : {
14893 : 21 : {
14894 : 21 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
14895 : 21 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
14896 : 21 : if (res) return res;
14897 : : }
14898 : 21 : break;
14899 : : }
14900 : : default:;
14901 : : }
14902 : : }
14903 : 105583 : switch (TREE_CODE (_p1))
14904 : : {
14905 : 128 : case PLUS_EXPR:
14906 : 128 : {
14907 : 128 : tree _q60 = TREE_OPERAND (_p1, 0);
14908 : 128 : tree _q61 = TREE_OPERAND (_p1, 1);
14909 : 128 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14910 : : {
14911 : 6 : switch (TREE_CODE (_q61))
14912 : : {
14913 : 6 : case INTEGER_CST:
14914 : 6 : {
14915 : 6 : switch (TREE_CODE (_p2))
14916 : : {
14917 : 6 : case INTEGER_CST:
14918 : 6 : {
14919 : 6 : {
14920 : 6 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
14921 : 6 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, PLUS_EXPR);
14922 : 6 : if (res) return res;
14923 : : }
14924 : 6 : break;
14925 : : }
14926 : : default:;
14927 : : }
14928 : : break;
14929 : : }
14930 : : default:;
14931 : : }
14932 : : }
14933 : : break;
14934 : : }
14935 : 728 : case MINUS_EXPR:
14936 : 728 : {
14937 : 728 : tree _q60 = TREE_OPERAND (_p1, 0);
14938 : 728 : tree _q61 = TREE_OPERAND (_p1, 1);
14939 : 728 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
14940 : : {
14941 : 0 : switch (TREE_CODE (_q61))
14942 : : {
14943 : 0 : case INTEGER_CST:
14944 : 0 : {
14945 : 0 : switch (TREE_CODE (_p2))
14946 : : {
14947 : 0 : case INTEGER_CST:
14948 : 0 : {
14949 : 0 : {
14950 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
14951 : 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MINUS_EXPR);
14952 : 0 : if (res) return res;
14953 : : }
14954 : 0 : break;
14955 : : }
14956 : : default:;
14957 : : }
14958 : : break;
14959 : : }
14960 : : default:;
14961 : : }
14962 : : }
14963 : : break;
14964 : : }
14965 : : default:;
14966 : : }
14967 : : break;
14968 : : }
14969 : : default:;
14970 : : }
14971 : : break;
14972 : : }
14973 : 1335825 : default:;
14974 : : }
14975 : 1335825 : switch (TREE_CODE (_q21))
14976 : : {
14977 : 927558 : case INTEGER_CST:
14978 : 927558 : {
14979 : 927558 : switch (TREE_CODE (_p1))
14980 : : {
14981 : 18171 : CASE_CONVERT:
14982 : 18171 : {
14983 : 18171 : tree _q50 = TREE_OPERAND (_p1, 0);
14984 : 18171 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
14985 : : {
14986 : 220 : switch (TREE_CODE (_p2))
14987 : : {
14988 : 202 : case INTEGER_CST:
14989 : 202 : {
14990 : 202 : {
14991 : 202 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
14992 : 202 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
14993 : 202 : if (res) return res;
14994 : : }
14995 : 110 : break;
14996 : : }
14997 : : default:;
14998 : : }
14999 : : }
15000 : : break;
15001 : : }
15002 : 927466 : default:;
15003 : : }
15004 : 927466 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
15005 : : {
15006 : 241 : switch (TREE_CODE (_p2))
15007 : : {
15008 : 205 : case INTEGER_CST:
15009 : 205 : {
15010 : 205 : {
15011 : 205 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
15012 : 205 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
15013 : 205 : if (res) return res;
15014 : : }
15015 : 63 : break;
15016 : : }
15017 : : default:;
15018 : : }
15019 : : }
15020 : 927324 : switch (TREE_CODE (_p1))
15021 : : {
15022 : 2988 : case PLUS_EXPR:
15023 : 2988 : {
15024 : 2988 : tree _q50 = TREE_OPERAND (_p1, 0);
15025 : 2988 : tree _q51 = TREE_OPERAND (_p1, 1);
15026 : 2988 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15027 : : {
15028 : 181 : switch (TREE_CODE (_q51))
15029 : : {
15030 : 181 : case INTEGER_CST:
15031 : 181 : {
15032 : 181 : switch (TREE_CODE (_p2))
15033 : : {
15034 : 170 : case INTEGER_CST:
15035 : 170 : {
15036 : 170 : {
15037 : 170 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
15038 : 170 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, PLUS_EXPR);
15039 : 170 : if (res) return res;
15040 : : }
15041 : 170 : break;
15042 : : }
15043 : : default:;
15044 : : }
15045 : : break;
15046 : : }
15047 : : default:;
15048 : : }
15049 : : }
15050 : : break;
15051 : : }
15052 : 8117 : case MINUS_EXPR:
15053 : 8117 : {
15054 : 8117 : tree _q50 = TREE_OPERAND (_p1, 0);
15055 : 8117 : tree _q51 = TREE_OPERAND (_p1, 1);
15056 : 8117 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15057 : : {
15058 : 0 : switch (TREE_CODE (_q51))
15059 : : {
15060 : 0 : case INTEGER_CST:
15061 : 0 : {
15062 : 0 : switch (TREE_CODE (_p2))
15063 : : {
15064 : 0 : case INTEGER_CST:
15065 : 0 : {
15066 : 0 : {
15067 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
15068 : 0 : tree res = generic_simplify_337 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MINUS_EXPR);
15069 : 0 : if (res) return res;
15070 : : }
15071 : 0 : break;
15072 : : }
15073 : : default:;
15074 : : }
15075 : : break;
15076 : : }
15077 : : default:;
15078 : : }
15079 : : }
15080 : : break;
15081 : : }
15082 : : default:;
15083 : : }
15084 : : break;
15085 : : }
15086 : 1335591 : default:;
15087 : : }
15088 : 1335591 : switch (TREE_CODE (_p1))
15089 : : {
15090 : 37 : case MIN_EXPR:
15091 : 37 : {
15092 : 37 : tree _q50 = TREE_OPERAND (_p1, 0);
15093 : 37 : tree _q51 = TREE_OPERAND (_p1, 1);
15094 : 37 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15095 : : {
15096 : 1 : switch (TREE_CODE (_p2))
15097 : : {
15098 : 0 : case MIN_EXPR:
15099 : 0 : {
15100 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15101 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15102 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15103 : : {
15104 : 0 : {
15105 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
15106 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
15107 : 0 : if (res) return res;
15108 : : }
15109 : : }
15110 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15111 : : {
15112 : 0 : {
15113 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
15114 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
15115 : 0 : if (res) return res;
15116 : : }
15117 : : }
15118 : : break;
15119 : : }
15120 : : default:;
15121 : : }
15122 : : }
15123 : 37 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15124 : : {
15125 : 1 : switch (TREE_CODE (_p2))
15126 : : {
15127 : 0 : case MIN_EXPR:
15128 : 0 : {
15129 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15130 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15131 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15132 : : {
15133 : 0 : {
15134 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
15135 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
15136 : 0 : if (res) return res;
15137 : : }
15138 : : }
15139 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15140 : : {
15141 : 0 : {
15142 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
15143 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MIN_EXPR);
15144 : 0 : if (res) return res;
15145 : : }
15146 : : }
15147 : : break;
15148 : : }
15149 : : default:;
15150 : : }
15151 : : }
15152 : 37 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15153 : : {
15154 : 1 : switch (TREE_CODE (_p2))
15155 : : {
15156 : 0 : case MIN_EXPR:
15157 : 0 : {
15158 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15159 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15160 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15161 : : {
15162 : 0 : {
15163 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
15164 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
15165 : 0 : if (res) return res;
15166 : : }
15167 : : }
15168 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15169 : : {
15170 : 0 : {
15171 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
15172 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
15173 : 0 : if (res) return res;
15174 : : }
15175 : : }
15176 : : break;
15177 : : }
15178 : 1 : default:;
15179 : : }
15180 : 1 : {
15181 : 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q51, _p2 };
15182 : 1 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
15183 : 1 : if (res) return res;
15184 : : }
15185 : : }
15186 : 36 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15187 : : {
15188 : 1 : switch (TREE_CODE (_p2))
15189 : : {
15190 : 0 : case MIN_EXPR:
15191 : 0 : {
15192 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15193 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15194 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15195 : : {
15196 : 0 : {
15197 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
15198 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
15199 : 0 : if (res) return res;
15200 : : }
15201 : : }
15202 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15203 : : {
15204 : 0 : {
15205 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
15206 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
15207 : 0 : if (res) return res;
15208 : : }
15209 : : }
15210 : : break;
15211 : : }
15212 : 1 : default:;
15213 : : }
15214 : 1 : {
15215 : 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q50, _p2 };
15216 : 1 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MIN_EXPR);
15217 : 1 : if (res) return res;
15218 : : }
15219 : : }
15220 : : break;
15221 : : }
15222 : 12 : case MAX_EXPR:
15223 : 12 : {
15224 : 12 : tree _q50 = TREE_OPERAND (_p1, 0);
15225 : 12 : tree _q51 = TREE_OPERAND (_p1, 1);
15226 : 12 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15227 : : {
15228 : 0 : switch (TREE_CODE (_p2))
15229 : : {
15230 : 0 : case MAX_EXPR:
15231 : 0 : {
15232 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15233 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15234 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15235 : : {
15236 : 0 : {
15237 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
15238 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
15239 : 0 : if (res) return res;
15240 : : }
15241 : : }
15242 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15243 : : {
15244 : 0 : {
15245 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
15246 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
15247 : 0 : if (res) return res;
15248 : : }
15249 : : }
15250 : : break;
15251 : : }
15252 : 0 : default:;
15253 : : }
15254 : 0 : {
15255 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q51, _p2 };
15256 : 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
15257 : 0 : if (res) return res;
15258 : : }
15259 : : }
15260 : 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15261 : : {
15262 : 0 : switch (TREE_CODE (_p2))
15263 : : {
15264 : 0 : case MAX_EXPR:
15265 : 0 : {
15266 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15267 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15268 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15269 : : {
15270 : 0 : {
15271 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
15272 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
15273 : 0 : if (res) return res;
15274 : : }
15275 : : }
15276 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15277 : : {
15278 : 0 : {
15279 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
15280 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
15281 : 0 : if (res) return res;
15282 : : }
15283 : : }
15284 : : break;
15285 : : }
15286 : : default:;
15287 : : }
15288 : : }
15289 : 12 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15290 : : {
15291 : 0 : switch (TREE_CODE (_p2))
15292 : : {
15293 : 0 : case MAX_EXPR:
15294 : 0 : {
15295 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15296 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15297 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
15298 : : {
15299 : 0 : {
15300 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
15301 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
15302 : 0 : if (res) return res;
15303 : : }
15304 : : }
15305 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
15306 : : {
15307 : 0 : {
15308 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
15309 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
15310 : 0 : if (res) return res;
15311 : : }
15312 : : }
15313 : : break;
15314 : : }
15315 : : default:;
15316 : : }
15317 : : }
15318 : 12 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15319 : : {
15320 : 0 : switch (TREE_CODE (_p2))
15321 : : {
15322 : 0 : case MAX_EXPR:
15323 : 0 : {
15324 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
15325 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
15326 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
15327 : : {
15328 : 0 : {
15329 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
15330 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
15331 : 0 : if (res) return res;
15332 : : }
15333 : : }
15334 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
15335 : : {
15336 : 0 : {
15337 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
15338 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
15339 : 0 : if (res) return res;
15340 : : }
15341 : : }
15342 : : break;
15343 : : }
15344 : : default:;
15345 : : }
15346 : : }
15347 : 12 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15348 : : {
15349 : 0 : {
15350 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
15351 : 0 : tree res = generic_simplify_339 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MAX_EXPR);
15352 : 0 : if (res) return res;
15353 : : }
15354 : : }
15355 : : break;
15356 : : }
15357 : 1335589 : default:;
15358 : : }
15359 : 1335589 : if (integer_zerop (_q20))
15360 : : {
15361 : 2 : {
15362 : 2 : tree _q21_pops[1];
15363 : 2 : if (tree_nop_convert (_q21, _q21_pops))
15364 : : {
15365 : 0 : tree _q40 = _q21_pops[0];
15366 : 0 : switch (TREE_CODE (_p1))
15367 : : {
15368 : 0 : case MAX_EXPR:
15369 : 0 : {
15370 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
15371 : 0 : tree _q61 = TREE_OPERAND (_p1, 1);
15372 : 0 : if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
15373 : : {
15374 : 0 : switch (TREE_CODE (_q61))
15375 : : {
15376 : 0 : case INTEGER_CST:
15377 : 0 : {
15378 : 0 : switch (TREE_CODE (_p2))
15379 : : {
15380 : 0 : case INTEGER_CST:
15381 : 0 : {
15382 : 0 : {
15383 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q40, _q20, _p1, _q61, _p2 };
15384 : 0 : tree res = generic_simplify_340 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MAX_EXPR);
15385 : 0 : if (res) return res;
15386 : : }
15387 : 0 : break;
15388 : : }
15389 : : default:;
15390 : : }
15391 : : break;
15392 : : }
15393 : : default:;
15394 : : }
15395 : : }
15396 : : break;
15397 : : }
15398 : : default:;
15399 : : }
15400 : : }
15401 : : }
15402 : : }
15403 : 1335589 : if (tree_expr_nonnegative_p (_q20))
15404 : : {
15405 : 852531 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
15406 : : {
15407 : 11 : switch (TREE_CODE (_p2))
15408 : : {
15409 : 0 : case ABS_EXPR:
15410 : 0 : {
15411 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
15412 : 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
15413 : : {
15414 : 0 : {
15415 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
15416 : 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
15417 : 0 : if (res) return res;
15418 : : }
15419 : : }
15420 : : break;
15421 : : }
15422 : : default:;
15423 : : }
15424 : : }
15425 : : }
15426 : : break;
15427 : : }
15428 : 2576885 : case NE_EXPR:
15429 : 2576885 : {
15430 : 2576885 : tree _q20 = TREE_OPERAND (_p0, 0);
15431 : 2576885 : tree _q21 = TREE_OPERAND (_p0, 1);
15432 : 2576885 : if (integer_zerop (_q21))
15433 : : {
15434 : 1763116 : switch (TREE_CODE (_p1))
15435 : : {
15436 : 123620 : case PLUS_EXPR:
15437 : 123620 : {
15438 : 123620 : tree _q50 = TREE_OPERAND (_p1, 0);
15439 : 123620 : tree _q51 = TREE_OPERAND (_p1, 1);
15440 : 123620 : {
15441 : 123620 : tree _q50_pops[1];
15442 : 123620 : if (tree_nop_convert (_q50, _q50_pops))
15443 : : {
15444 : 5862 : tree _q60 = _q50_pops[0];
15445 : 5862 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
15446 : : {
15447 : 2351 : if (integer_all_onesp (_q51))
15448 : : {
15449 : 2351 : if (integer_zerop (_p2))
15450 : : {
15451 : 2347 : {
15452 : 2347 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q50 };
15453 : 2347 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures);
15454 : 2347 : if (res) return res;
15455 : : }
15456 : : }
15457 : : }
15458 : : }
15459 : : }
15460 : : }
15461 : 121273 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15462 : : {
15463 : 2044 : if (integer_all_onesp (_q51))
15464 : : {
15465 : 2009 : if (integer_zerop (_p2))
15466 : : {
15467 : 2003 : {
15468 : 2003 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q50 };
15469 : 2003 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures);
15470 : 2003 : if (res) return res;
15471 : : }
15472 : : }
15473 : : }
15474 : : }
15475 : : break;
15476 : : }
15477 : 1758766 : default:;
15478 : : }
15479 : 1758766 : {
15480 : 1758766 : tree _p1_pops[1];
15481 : 1758766 : if (tree_nop_convert (_p1, _p1_pops))
15482 : : {
15483 : 90123 : tree _q50 = _p1_pops[0];
15484 : 90123 : switch (TREE_CODE (_q50))
15485 : : {
15486 : 201 : case PLUS_EXPR:
15487 : 201 : {
15488 : 201 : tree _q60 = TREE_OPERAND (_q50, 0);
15489 : 201 : tree _q61 = TREE_OPERAND (_q50, 1);
15490 : 201 : {
15491 : 201 : tree _q60_pops[1];
15492 : 201 : if (tree_nop_convert (_q60, _q60_pops))
15493 : : {
15494 : 52 : tree _q70 = _q60_pops[0];
15495 : 52 : if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
15496 : : {
15497 : 2 : if (integer_all_onesp (_q61))
15498 : : {
15499 : 2 : if (integer_zerop (_p2))
15500 : : {
15501 : 2 : {
15502 : 2 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q60 };
15503 : 2 : tree res = generic_simplify_342 (loc, type, _p0, _p1, _p2, captures);
15504 : 2 : if (res) return res;
15505 : : }
15506 : : }
15507 : : }
15508 : : }
15509 : : }
15510 : : }
15511 : 199 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
15512 : : {
15513 : 16 : if (integer_all_onesp (_q61))
15514 : : {
15515 : 0 : if (integer_zerop (_p2))
15516 : : {
15517 : 0 : {
15518 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q60 };
15519 : 0 : tree res = generic_simplify_343 (loc, type, _p0, _p1, _p2, captures);
15520 : 0 : if (res) return res;
15521 : : }
15522 : : }
15523 : : }
15524 : : }
15525 : : break;
15526 : : }
15527 : : default:;
15528 : : }
15529 : : }
15530 : : }
15531 : : }
15532 : 2572533 : if (tree_zero_one_valued_p (_q20))
15533 : : {
15534 : 145148 : if (integer_zerop (_q21))
15535 : : {
15536 : 143394 : switch (TREE_CODE (_p1))
15537 : : {
15538 : 5 : case BIT_XOR_EXPR:
15539 : 5 : {
15540 : 5 : tree _q50 = TREE_OPERAND (_p1, 0);
15541 : 5 : tree _q51 = TREE_OPERAND (_p1, 1);
15542 : 5 : if ((_p2 == _q51 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q51, 0) && types_match (_p2, _q51)))
15543 : : {
15544 : 1 : {
15545 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
15546 : 1 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
15547 : 1 : if (res) return res;
15548 : : }
15549 : : }
15550 : 4 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
15551 : : {
15552 : 4 : {
15553 : 4 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
15554 : 4 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
15555 : 4 : if (res) return res;
15556 : : }
15557 : : }
15558 : : break;
15559 : : }
15560 : 1 : case BIT_IOR_EXPR:
15561 : 1 : {
15562 : 1 : tree _q50 = TREE_OPERAND (_p1, 0);
15563 : 1 : tree _q51 = TREE_OPERAND (_p1, 1);
15564 : 1 : if ((_p2 == _q51 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q51, 0) && types_match (_p2, _q51)))
15565 : : {
15566 : 1 : {
15567 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
15568 : 1 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
15569 : 1 : if (res) return res;
15570 : : }
15571 : : }
15572 : 0 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
15573 : : {
15574 : 0 : {
15575 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
15576 : 0 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
15577 : 0 : if (res) return res;
15578 : : }
15579 : : }
15580 : : break;
15581 : : }
15582 : 103 : case PLUS_EXPR:
15583 : 103 : {
15584 : 103 : tree _q50 = TREE_OPERAND (_p1, 0);
15585 : 103 : tree _q51 = TREE_OPERAND (_p1, 1);
15586 : 103 : if ((_p2 == _q51 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q51, 0) && types_match (_p2, _q51)))
15587 : : {
15588 : 1 : {
15589 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
15590 : 1 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
15591 : 1 : if (res) return res;
15592 : : }
15593 : : }
15594 : 102 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
15595 : : {
15596 : 1 : {
15597 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
15598 : 1 : tree res = generic_simplify_344 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
15599 : 1 : if (res) return res;
15600 : : }
15601 : : }
15602 : : break;
15603 : : }
15604 : : default:;
15605 : : }
15606 : : }
15607 : : }
15608 : 2572525 : if (integer_zerop (_q21))
15609 : : {
15610 : 1758756 : switch (TREE_CODE (_p1))
15611 : : {
15612 : 87 : case TRUNC_DIV_EXPR:
15613 : 87 : {
15614 : 87 : tree _q50 = TREE_OPERAND (_p1, 0);
15615 : 87 : tree _q51 = TREE_OPERAND (_p1, 1);
15616 : 87 : if (integer_zerop (_p2))
15617 : : {
15618 : 51 : {
15619 : 51 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15620 : 51 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, TRUNC_DIV_EXPR);
15621 : 51 : if (res) return res;
15622 : : }
15623 : : }
15624 : : break;
15625 : : }
15626 : 0 : case CEIL_DIV_EXPR:
15627 : 0 : {
15628 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15629 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15630 : 0 : if (integer_zerop (_p2))
15631 : : {
15632 : 0 : {
15633 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15634 : 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, CEIL_DIV_EXPR);
15635 : 0 : if (res) return res;
15636 : : }
15637 : : }
15638 : : break;
15639 : : }
15640 : 0 : case FLOOR_DIV_EXPR:
15641 : 0 : {
15642 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15643 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15644 : 0 : if (integer_zerop (_p2))
15645 : : {
15646 : 0 : {
15647 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15648 : 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, FLOOR_DIV_EXPR);
15649 : 0 : if (res) return res;
15650 : : }
15651 : : }
15652 : : break;
15653 : : }
15654 : 0 : case ROUND_DIV_EXPR:
15655 : 0 : {
15656 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
15657 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
15658 : 0 : if (integer_zerop (_p2))
15659 : : {
15660 : 0 : {
15661 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15662 : 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, ROUND_DIV_EXPR);
15663 : 0 : if (res) return res;
15664 : : }
15665 : : }
15666 : : break;
15667 : : }
15668 : 27 : case EXACT_DIV_EXPR:
15669 : 27 : {
15670 : 27 : tree _q50 = TREE_OPERAND (_p1, 0);
15671 : 27 : tree _q51 = TREE_OPERAND (_p1, 1);
15672 : 27 : if (integer_zerop (_p2))
15673 : : {
15674 : 0 : {
15675 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15676 : 0 : tree res = generic_simplify_345 (loc, type, _p0, _p1, _p2, captures, EXACT_DIV_EXPR);
15677 : 0 : if (res) return res;
15678 : : }
15679 : : }
15680 : : break;
15681 : : }
15682 : 600 : case MULT_EXPR:
15683 : 600 : {
15684 : 600 : tree _q50 = TREE_OPERAND (_p1, 0);
15685 : 600 : tree _q51 = TREE_OPERAND (_p1, 1);
15686 : 600 : if (integer_zerop (_p2))
15687 : : {
15688 : 40 : {
15689 : 40 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15690 : 40 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
15691 : 40 : if (res) return res;
15692 : : }
15693 : 40 : {
15694 : 40 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q51, _q50 };
15695 : 40 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
15696 : 40 : if (res) return res;
15697 : : }
15698 : : }
15699 : : break;
15700 : : }
15701 : 267 : case BIT_AND_EXPR:
15702 : 267 : {
15703 : 267 : tree _q50 = TREE_OPERAND (_p1, 0);
15704 : 267 : tree _q51 = TREE_OPERAND (_p1, 1);
15705 : 267 : if (integer_zerop (_p2))
15706 : : {
15707 : 42 : {
15708 : 42 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q51 };
15709 : 42 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
15710 : 42 : if (res) return res;
15711 : : }
15712 : 42 : {
15713 : 42 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _p1, _q51, _q50 };
15714 : 42 : tree res = generic_simplify_346 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
15715 : 42 : if (res) return res;
15716 : : }
15717 : : }
15718 : : break;
15719 : : }
15720 : : default:;
15721 : : }
15722 : : }
15723 : 2572523 : switch (TREE_CODE (_q20))
15724 : : {
15725 : 267203 : case BIT_AND_EXPR:
15726 : 267203 : {
15727 : 267203 : tree _q30 = TREE_OPERAND (_q20, 0);
15728 : 267203 : tree _q31 = TREE_OPERAND (_q20, 1);
15729 : 267203 : switch (TREE_CODE (_q31))
15730 : : {
15731 : 196786 : case INTEGER_CST:
15732 : 196786 : {
15733 : 196786 : if (integer_zerop (_q21))
15734 : : {
15735 : 196773 : switch (TREE_CODE (_p1))
15736 : : {
15737 : 139 : case PLUS_EXPR:
15738 : 139 : {
15739 : 139 : tree _q70 = TREE_OPERAND (_p1, 0);
15740 : 139 : tree _q71 = TREE_OPERAND (_p1, 1);
15741 : 139 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
15742 : : {
15743 : 18 : switch (TREE_CODE (_q71))
15744 : : {
15745 : 18 : case INTEGER_CST:
15746 : 18 : {
15747 : 18 : switch (TREE_CODE (_p2))
15748 : : {
15749 : 18 : case BIT_IOR_EXPR:
15750 : 18 : {
15751 : 18 : tree _q100 = TREE_OPERAND (_p2, 0);
15752 : 18 : tree _q101 = TREE_OPERAND (_p2, 1);
15753 : 18 : if ((_q100 == _q30 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q30, 0) && types_match (_q100, _q30)))
15754 : : {
15755 : 18 : if ((_q101 == _q31 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q31, 0) && types_match (_q101, _q31)))
15756 : : {
15757 : 18 : {
15758 : 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q71 };
15759 : 18 : tree res = generic_simplify_347 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
15760 : 18 : if (res) return res;
15761 : : }
15762 : : }
15763 : : }
15764 : : break;
15765 : : }
15766 : : default:;
15767 : : }
15768 : : break;
15769 : : }
15770 : : default:;
15771 : : }
15772 : : }
15773 : : break;
15774 : : }
15775 : 33 : case BIT_AND_EXPR:
15776 : 33 : {
15777 : 33 : tree _q70 = TREE_OPERAND (_p1, 0);
15778 : 33 : tree _q71 = TREE_OPERAND (_p1, 1);
15779 : 33 : if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
15780 : : {
15781 : 18 : switch (TREE_CODE (_q71))
15782 : : {
15783 : 18 : case INTEGER_CST:
15784 : 18 : {
15785 : 18 : switch (TREE_CODE (_p2))
15786 : : {
15787 : 18 : case BIT_IOR_EXPR:
15788 : 18 : {
15789 : 18 : tree _q100 = TREE_OPERAND (_p2, 0);
15790 : 18 : tree _q101 = TREE_OPERAND (_p2, 1);
15791 : 18 : if ((_q100 == _q30 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q30, 0) && types_match (_q100, _q30)))
15792 : : {
15793 : 18 : if ((_q101 == _q31 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q31, 0) && types_match (_q101, _q31)))
15794 : : {
15795 : 18 : {
15796 : 18 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q71 };
15797 : 18 : tree res = generic_simplify_347 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
15798 : 18 : if (res) return res;
15799 : : }
15800 : : }
15801 : : }
15802 : : break;
15803 : : }
15804 : : default:;
15805 : : }
15806 : : break;
15807 : : }
15808 : : default:;
15809 : : }
15810 : : }
15811 : : break;
15812 : : }
15813 : : default:;
15814 : : }
15815 : : }
15816 : : break;
15817 : : }
15818 : : default:;
15819 : : }
15820 : : break;
15821 : : }
15822 : 273871 : CASE_CONVERT:
15823 : 273871 : {
15824 : 273871 : tree _q30 = TREE_OPERAND (_q20, 0);
15825 : 273871 : switch (TREE_CODE (_q21))
15826 : : {
15827 : 241768 : case INTEGER_CST:
15828 : 241768 : {
15829 : 241768 : switch (TREE_CODE (_p1))
15830 : : {
15831 : 43695 : CASE_CONVERT:
15832 : 43695 : {
15833 : 43695 : tree _q60 = TREE_OPERAND (_p1, 0);
15834 : 43695 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
15835 : : {
15836 : 57 : switch (TREE_CODE (_p2))
15837 : : {
15838 : 9 : case INTEGER_CST:
15839 : 9 : {
15840 : 9 : {
15841 : 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
15842 : 9 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
15843 : 9 : if (res) return res;
15844 : : }
15845 : 9 : break;
15846 : : }
15847 : : default:;
15848 : : }
15849 : : }
15850 : : break;
15851 : : }
15852 : 241768 : default:;
15853 : : }
15854 : 241768 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
15855 : : {
15856 : 48 : switch (TREE_CODE (_p2))
15857 : : {
15858 : 0 : case INTEGER_CST:
15859 : 0 : {
15860 : 0 : {
15861 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
15862 : 0 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
15863 : 0 : if (res) return res;
15864 : : }
15865 : 0 : break;
15866 : : }
15867 : : default:;
15868 : : }
15869 : : }
15870 : : break;
15871 : : }
15872 : : default:;
15873 : : }
15874 : : break;
15875 : : }
15876 : 2572499 : default:;
15877 : : }
15878 : 2572499 : switch (TREE_CODE (_q21))
15879 : : {
15880 : 2033193 : case INTEGER_CST:
15881 : 2033193 : {
15882 : 2033193 : switch (TREE_CODE (_p1))
15883 : : {
15884 : 292641 : CASE_CONVERT:
15885 : 292641 : {
15886 : 292641 : tree _q50 = TREE_OPERAND (_p1, 0);
15887 : 292641 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15888 : : {
15889 : 41691 : switch (TREE_CODE (_p2))
15890 : : {
15891 : 40555 : case INTEGER_CST:
15892 : 40555 : {
15893 : 40555 : {
15894 : 40555 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
15895 : 40555 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
15896 : 40555 : if (res) return res;
15897 : : }
15898 : 40555 : break;
15899 : : }
15900 : : default:;
15901 : : }
15902 : : }
15903 : : break;
15904 : : }
15905 : 2033193 : default:;
15906 : : }
15907 : 2033193 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
15908 : : {
15909 : 56323 : switch (TREE_CODE (_p2))
15910 : : {
15911 : 53892 : case INTEGER_CST:
15912 : 53892 : {
15913 : 53892 : {
15914 : 53892 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
15915 : 53892 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
15916 : 53892 : if (res) return res;
15917 : : }
15918 : 53892 : break;
15919 : : }
15920 : : default:;
15921 : : }
15922 : : }
15923 : : break;
15924 : : }
15925 : 2572499 : default:;
15926 : : }
15927 : 2572499 : switch (TREE_CODE (_p1))
15928 : : {
15929 : 11998 : case MINUS_EXPR:
15930 : 11998 : {
15931 : 11998 : tree _q50 = TREE_OPERAND (_p1, 0);
15932 : 11998 : tree _q51 = TREE_OPERAND (_p1, 1);
15933 : 11998 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15934 : : {
15935 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15936 : : {
15937 : 0 : if (integer_zerop (_p2))
15938 : : {
15939 : 0 : {
15940 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15941 : 0 : tree res = generic_simplify_348 (loc, type, _p0, _p1, _p2, captures);
15942 : 0 : if (res) return res;
15943 : : }
15944 : : }
15945 : : }
15946 : : }
15947 : 11998 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15948 : : {
15949 : 19 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15950 : : {
15951 : 19 : if (integer_zerop (_p2))
15952 : : {
15953 : 0 : {
15954 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15955 : 0 : tree res = generic_simplify_348 (loc, type, _p0, _p1, _p2, captures);
15956 : 0 : if (res) return res;
15957 : : }
15958 : : }
15959 : : }
15960 : : }
15961 : : break;
15962 : : }
15963 : 14 : case BIT_XOR_EXPR:
15964 : 14 : {
15965 : 14 : tree _q50 = TREE_OPERAND (_p1, 0);
15966 : 14 : tree _q51 = TREE_OPERAND (_p1, 1);
15967 : 14 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
15968 : : {
15969 : 7 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
15970 : : {
15971 : 7 : if (integer_zerop (_p2))
15972 : : {
15973 : 0 : {
15974 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
15975 : 0 : tree res = generic_simplify_349 (loc, type, _p0, _p1, _p2, captures);
15976 : 0 : if (res) return res;
15977 : : }
15978 : : }
15979 : : }
15980 : : }
15981 : 14 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
15982 : : {
15983 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
15984 : : {
15985 : 0 : if (integer_zerop (_p2))
15986 : : {
15987 : 0 : {
15988 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
15989 : 0 : tree res = generic_simplify_349 (loc, type, _p0, _p1, _p2, captures);
15990 : 0 : if (res) return res;
15991 : : }
15992 : : }
15993 : : }
15994 : : }
15995 : : break;
15996 : : }
15997 : 254 : case BIT_AND_EXPR:
15998 : 254 : {
15999 : 254 : tree _q50 = TREE_OPERAND (_p1, 0);
16000 : 254 : tree _q51 = TREE_OPERAND (_p1, 1);
16001 : 254 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16002 : : {
16003 : 2 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16004 : : {
16005 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
16006 : : {
16007 : 0 : {
16008 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
16009 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
16010 : 0 : if (res) return res;
16011 : : }
16012 : : }
16013 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
16014 : : {
16015 : 0 : {
16016 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
16017 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
16018 : 0 : if (res) return res;
16019 : : }
16020 : : }
16021 : : }
16022 : : }
16023 : 254 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16024 : : {
16025 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16026 : : {
16027 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
16028 : : {
16029 : 0 : {
16030 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
16031 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
16032 : 0 : if (res) return res;
16033 : : }
16034 : : }
16035 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
16036 : : {
16037 : 0 : {
16038 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
16039 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
16040 : 0 : if (res) return res;
16041 : : }
16042 : : }
16043 : : }
16044 : : }
16045 : : break;
16046 : : }
16047 : 2889 : case BIT_IOR_EXPR:
16048 : 2889 : {
16049 : 2889 : tree _q50 = TREE_OPERAND (_p1, 0);
16050 : 2889 : tree _q51 = TREE_OPERAND (_p1, 1);
16051 : 2889 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16052 : : {
16053 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16054 : : {
16055 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
16056 : : {
16057 : 0 : {
16058 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
16059 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16060 : 0 : if (res) return res;
16061 : : }
16062 : : }
16063 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
16064 : : {
16065 : 0 : {
16066 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
16067 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16068 : 0 : if (res) return res;
16069 : : }
16070 : : }
16071 : : }
16072 : : }
16073 : 2889 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16074 : : {
16075 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16076 : : {
16077 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
16078 : : {
16079 : 0 : {
16080 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
16081 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16082 : 0 : if (res) return res;
16083 : : }
16084 : : }
16085 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
16086 : : {
16087 : 0 : {
16088 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
16089 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16090 : 0 : if (res) return res;
16091 : : }
16092 : : }
16093 : : }
16094 : : }
16095 : : break;
16096 : : }
16097 : 0 : case MIN_EXPR:
16098 : 0 : {
16099 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16100 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16101 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16102 : : {
16103 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16104 : : {
16105 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
16106 : : {
16107 : 0 : {
16108 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
16109 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
16110 : 0 : if (res) return res;
16111 : : }
16112 : : }
16113 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
16114 : : {
16115 : 0 : {
16116 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
16117 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
16118 : 0 : if (res) return res;
16119 : : }
16120 : : }
16121 : : }
16122 : 0 : switch (TREE_CODE (_p2))
16123 : : {
16124 : 0 : case MIN_EXPR:
16125 : 0 : {
16126 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16127 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16128 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
16129 : : {
16130 : 0 : {
16131 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
16132 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
16133 : 0 : if (res) return res;
16134 : : }
16135 : : }
16136 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
16137 : : {
16138 : 0 : {
16139 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
16140 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
16141 : 0 : if (res) return res;
16142 : : }
16143 : : }
16144 : : break;
16145 : : }
16146 : : default:;
16147 : : }
16148 : : }
16149 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16150 : : {
16151 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16152 : : {
16153 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
16154 : : {
16155 : 0 : {
16156 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
16157 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
16158 : 0 : if (res) return res;
16159 : : }
16160 : : }
16161 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
16162 : : {
16163 : 0 : {
16164 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
16165 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, MIN_EXPR);
16166 : 0 : if (res) return res;
16167 : : }
16168 : : }
16169 : : }
16170 : 0 : switch (TREE_CODE (_p2))
16171 : : {
16172 : 0 : case MIN_EXPR:
16173 : 0 : {
16174 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16175 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16176 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
16177 : : {
16178 : 0 : {
16179 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
16180 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
16181 : 0 : if (res) return res;
16182 : : }
16183 : : }
16184 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
16185 : : {
16186 : 0 : {
16187 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
16188 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
16189 : 0 : if (res) return res;
16190 : : }
16191 : : }
16192 : : break;
16193 : : }
16194 : : default:;
16195 : : }
16196 : : }
16197 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16198 : : {
16199 : 0 : switch (TREE_CODE (_p2))
16200 : : {
16201 : 0 : case MIN_EXPR:
16202 : 0 : {
16203 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16204 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16205 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
16206 : : {
16207 : 0 : {
16208 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
16209 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
16210 : 0 : if (res) return res;
16211 : : }
16212 : : }
16213 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
16214 : : {
16215 : 0 : {
16216 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
16217 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
16218 : 0 : if (res) return res;
16219 : : }
16220 : : }
16221 : : break;
16222 : : }
16223 : : default:;
16224 : : }
16225 : : }
16226 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16227 : : {
16228 : 0 : switch (TREE_CODE (_p2))
16229 : : {
16230 : 0 : case MIN_EXPR:
16231 : 0 : {
16232 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16233 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16234 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
16235 : : {
16236 : 0 : {
16237 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
16238 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
16239 : 0 : if (res) return res;
16240 : : }
16241 : : }
16242 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
16243 : : {
16244 : 0 : {
16245 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
16246 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MIN_EXPR);
16247 : 0 : if (res) return res;
16248 : : }
16249 : : }
16250 : : break;
16251 : : }
16252 : : default:;
16253 : : }
16254 : : }
16255 : : break;
16256 : : }
16257 : 0 : case MAX_EXPR:
16258 : 0 : {
16259 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16260 : 0 : tree _q51 = TREE_OPERAND (_p1, 1);
16261 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16262 : : {
16263 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16264 : : {
16265 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
16266 : : {
16267 : 0 : {
16268 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
16269 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
16270 : 0 : if (res) return res;
16271 : : }
16272 : : }
16273 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
16274 : : {
16275 : 0 : {
16276 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
16277 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
16278 : 0 : if (res) return res;
16279 : : }
16280 : : }
16281 : : }
16282 : 0 : switch (TREE_CODE (_p2))
16283 : : {
16284 : 0 : case MAX_EXPR:
16285 : 0 : {
16286 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16287 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16288 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
16289 : : {
16290 : 0 : {
16291 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q80 };
16292 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
16293 : 0 : if (res) return res;
16294 : : }
16295 : : }
16296 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
16297 : : {
16298 : 0 : {
16299 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q81 };
16300 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
16301 : 0 : if (res) return res;
16302 : : }
16303 : : }
16304 : : break;
16305 : : }
16306 : : default:;
16307 : : }
16308 : : }
16309 : 0 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16310 : : {
16311 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16312 : : {
16313 : 0 : if ((_p2 == _q20 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q20, 0) && types_match (_p2, _q20)))
16314 : : {
16315 : 0 : {
16316 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
16317 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
16318 : 0 : if (res) return res;
16319 : : }
16320 : : }
16321 : 0 : if ((_p2 == _q21 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q21, 0) && types_match (_p2, _q21)))
16322 : : {
16323 : 0 : {
16324 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
16325 : 0 : tree res = generic_simplify_350 (loc, type, _p0, _p1, _p2, captures, MAX_EXPR);
16326 : 0 : if (res) return res;
16327 : : }
16328 : : }
16329 : : }
16330 : 0 : switch (TREE_CODE (_p2))
16331 : : {
16332 : 0 : case MAX_EXPR:
16333 : 0 : {
16334 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16335 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16336 : 0 : if ((_q81 == _q51 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q51, 0) && types_match (_q81, _q51)))
16337 : : {
16338 : 0 : {
16339 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q80 };
16340 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
16341 : 0 : if (res) return res;
16342 : : }
16343 : : }
16344 : 0 : if ((_q80 == _q51 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q51, 0) && types_match (_q80, _q51)))
16345 : : {
16346 : 0 : {
16347 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q81 };
16348 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
16349 : 0 : if (res) return res;
16350 : : }
16351 : : }
16352 : : break;
16353 : : }
16354 : : default:;
16355 : : }
16356 : : }
16357 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16358 : : {
16359 : 0 : switch (TREE_CODE (_p2))
16360 : : {
16361 : 0 : case MAX_EXPR:
16362 : 0 : {
16363 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16364 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16365 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
16366 : : {
16367 : 0 : {
16368 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q80 };
16369 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
16370 : 0 : if (res) return res;
16371 : : }
16372 : : }
16373 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
16374 : : {
16375 : 0 : {
16376 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q81 };
16377 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
16378 : 0 : if (res) return res;
16379 : : }
16380 : : }
16381 : : break;
16382 : : }
16383 : : default:;
16384 : : }
16385 : : }
16386 : 0 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16387 : : {
16388 : 0 : switch (TREE_CODE (_p2))
16389 : : {
16390 : 0 : case MAX_EXPR:
16391 : 0 : {
16392 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16393 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16394 : 0 : if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
16395 : : {
16396 : 0 : {
16397 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q80 };
16398 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
16399 : 0 : if (res) return res;
16400 : : }
16401 : : }
16402 : 0 : if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
16403 : : {
16404 : 0 : {
16405 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q81 };
16406 : 0 : tree res = generic_simplify_338 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, MAX_EXPR);
16407 : 0 : if (res) return res;
16408 : : }
16409 : : }
16410 : : break;
16411 : : }
16412 : : default:;
16413 : : }
16414 : : }
16415 : : break;
16416 : : }
16417 : 10530 : case MULT_EXPR:
16418 : 10530 : {
16419 : 10530 : tree _q50 = TREE_OPERAND (_p1, 0);
16420 : 10530 : tree _q51 = TREE_OPERAND (_p1, 1);
16421 : 10530 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16422 : : {
16423 : 5839 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16424 : : {
16425 : 0 : switch (TREE_CODE (_p2))
16426 : : {
16427 : 0 : case MULT_EXPR:
16428 : 0 : {
16429 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16430 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16431 : 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
16432 : : {
16433 : 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
16434 : : {
16435 : 0 : {
16436 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
16437 : 0 : const enum tree_code op = MULT_EXPR;
16438 : 0 : if (ANY_INTEGRAL_TYPE_P (type)
16439 : : )
16440 : : {
16441 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1781;
16442 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1781;
16443 : 0 : {
16444 : 0 : tree _r;
16445 : 0 : _r = captures[2];
16446 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1004, __FILE__, __LINE__, true);
16447 : 0 : return _r;
16448 : : }
16449 : 0 : next_after_fail1781:;
16450 : : }
16451 : : }
16452 : : }
16453 : : }
16454 : : break;
16455 : : }
16456 : : default:;
16457 : : }
16458 : : }
16459 : : }
16460 : 10530 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16461 : : {
16462 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16463 : : {
16464 : 0 : switch (TREE_CODE (_p2))
16465 : : {
16466 : 0 : case MULT_EXPR:
16467 : 0 : {
16468 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16469 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16470 : 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
16471 : : {
16472 : 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
16473 : : {
16474 : 0 : {
16475 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
16476 : 0 : const enum tree_code op = MULT_EXPR;
16477 : 0 : if (ANY_INTEGRAL_TYPE_P (type)
16478 : : )
16479 : : {
16480 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1782;
16481 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1782;
16482 : 0 : {
16483 : 0 : tree _r;
16484 : 0 : _r = captures[2];
16485 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1004, __FILE__, __LINE__, true);
16486 : 0 : return _r;
16487 : : }
16488 : 0 : next_after_fail1782:;
16489 : : }
16490 : : }
16491 : : }
16492 : : }
16493 : : break;
16494 : : }
16495 : : default:;
16496 : : }
16497 : : }
16498 : : }
16499 : : break;
16500 : : }
16501 : 158641 : case PLUS_EXPR:
16502 : 158641 : {
16503 : 158641 : tree _q50 = TREE_OPERAND (_p1, 0);
16504 : 158641 : tree _q51 = TREE_OPERAND (_p1, 1);
16505 : 158641 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16506 : : {
16507 : 366 : if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
16508 : : {
16509 : 0 : switch (TREE_CODE (_p2))
16510 : : {
16511 : 0 : case PLUS_EXPR:
16512 : 0 : {
16513 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16514 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16515 : 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
16516 : : {
16517 : 0 : if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
16518 : : {
16519 : 0 : {
16520 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
16521 : 0 : const enum tree_code op = PLUS_EXPR;
16522 : 0 : if (ANY_INTEGRAL_TYPE_P (type)
16523 : : )
16524 : : {
16525 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1783;
16526 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1783;
16527 : 0 : {
16528 : 0 : tree _r;
16529 : 0 : _r = captures[2];
16530 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1004, __FILE__, __LINE__, true);
16531 : 0 : return _r;
16532 : : }
16533 : 0 : next_after_fail1783:;
16534 : : }
16535 : : }
16536 : : }
16537 : : }
16538 : : break;
16539 : : }
16540 : 0 : case MULT_EXPR:
16541 : 0 : {
16542 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16543 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16544 : 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
16545 : : {
16546 : 0 : if (uniform_integer_cst_p (_q81))
16547 : : {
16548 : 0 : {
16549 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
16550 : 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
16551 : : )
16552 : : {
16553 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1784;
16554 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1784;
16555 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1784;
16556 : 0 : {
16557 : 0 : tree _r;
16558 : 0 : _r = captures[2];
16559 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1005, __FILE__, __LINE__, true);
16560 : 0 : return _r;
16561 : : }
16562 : 0 : next_after_fail1784:;
16563 : : }
16564 : : }
16565 : : }
16566 : : }
16567 : 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
16568 : : {
16569 : 0 : if (uniform_integer_cst_p (_q81))
16570 : : {
16571 : 0 : {
16572 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
16573 : 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
16574 : : )
16575 : : {
16576 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1785;
16577 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1785;
16578 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1785;
16579 : 0 : {
16580 : 0 : tree _r;
16581 : 0 : _r = captures[2];
16582 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1005, __FILE__, __LINE__, true);
16583 : 0 : return _r;
16584 : : }
16585 : 0 : next_after_fail1785:;
16586 : : }
16587 : : }
16588 : : }
16589 : : }
16590 : : break;
16591 : : }
16592 : : default:;
16593 : : }
16594 : : }
16595 : : }
16596 : 158641 : if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
16597 : : {
16598 : 0 : if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
16599 : : {
16600 : 0 : switch (TREE_CODE (_p2))
16601 : : {
16602 : 0 : case PLUS_EXPR:
16603 : 0 : {
16604 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16605 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16606 : 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
16607 : : {
16608 : 0 : if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
16609 : : {
16610 : 0 : {
16611 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
16612 : 0 : const enum tree_code op = PLUS_EXPR;
16613 : 0 : if (ANY_INTEGRAL_TYPE_P (type)
16614 : : )
16615 : : {
16616 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1786;
16617 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1786;
16618 : 0 : {
16619 : 0 : tree _r;
16620 : 0 : _r = captures[2];
16621 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1004, __FILE__, __LINE__, true);
16622 : 0 : return _r;
16623 : : }
16624 : 0 : next_after_fail1786:;
16625 : : }
16626 : : }
16627 : : }
16628 : : }
16629 : : break;
16630 : : }
16631 : 0 : case MULT_EXPR:
16632 : 0 : {
16633 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
16634 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
16635 : 0 : if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
16636 : : {
16637 : 0 : if (uniform_integer_cst_p (_q81))
16638 : : {
16639 : 0 : {
16640 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q81 };
16641 : 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
16642 : : )
16643 : : {
16644 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1787;
16645 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1787;
16646 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1787;
16647 : 0 : {
16648 : 0 : tree _r;
16649 : 0 : _r = captures[2];
16650 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1005, __FILE__, __LINE__, true);
16651 : 0 : return _r;
16652 : : }
16653 : 0 : next_after_fail1787:;
16654 : : }
16655 : : }
16656 : : }
16657 : : }
16658 : 0 : if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
16659 : : {
16660 : 0 : if (uniform_integer_cst_p (_q81))
16661 : : {
16662 : 0 : {
16663 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _p1, _q81 };
16664 : 0 : if (wi::to_wide (uniform_integer_cst_p (captures[3])) == 2
16665 : : )
16666 : : {
16667 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1788;
16668 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1788;
16669 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1788;
16670 : 0 : {
16671 : 0 : tree _r;
16672 : 0 : _r = captures[2];
16673 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1005, __FILE__, __LINE__, true);
16674 : 0 : return _r;
16675 : : }
16676 : 0 : next_after_fail1788:;
16677 : : }
16678 : : }
16679 : : }
16680 : : }
16681 : : break;
16682 : : }
16683 : : default:;
16684 : : }
16685 : : }
16686 : : }
16687 : : break;
16688 : : }
16689 : 2572499 : default:;
16690 : : }
16691 : 2572499 : switch (TREE_CODE (_q21))
16692 : : {
16693 : 2033193 : case INTEGER_CST:
16694 : 2033193 : {
16695 : 2033193 : switch (TREE_CODE (_p1))
16696 : : {
16697 : 228 : case NEGATE_EXPR:
16698 : 228 : {
16699 : 228 : tree _q50 = TREE_OPERAND (_p1, 0);
16700 : 228 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16701 : : {
16702 : 42 : switch (TREE_CODE (_p2))
16703 : : {
16704 : 14 : case INTEGER_CST:
16705 : 14 : {
16706 : 14 : {
16707 : 14 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
16708 : 14 : if (!TYPE_SATURATING (type)
16709 : 14 : && (TYPE_OVERFLOW_WRAPS (type)
16710 : 5 : || !wi::only_sign_bit_p (wi::to_wide (captures[1])))
16711 : 41 : && wi::eq_p (wi::neg (wi::to_wide (captures[1])), wi::to_wide (captures[3]))
16712 : : )
16713 : : {
16714 : 11 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1789;
16715 : 11 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1789;
16716 : 11 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1789;
16717 : 11 : {
16718 : 11 : tree _r;
16719 : 11 : _r = captures[2];
16720 : 11 : if (TREE_SIDE_EFFECTS (captures[1]))
16721 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16722 : 11 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
16723 : 11 : return _r;
16724 : : }
16725 : 3 : next_after_fail1789:;
16726 : : }
16727 : : }
16728 : 3 : break;
16729 : : }
16730 : : default:;
16731 : : }
16732 : : }
16733 : : break;
16734 : : }
16735 : 99 : case BIT_NOT_EXPR:
16736 : 99 : {
16737 : 99 : tree _q50 = TREE_OPERAND (_p1, 0);
16738 : 99 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16739 : : {
16740 : 20 : switch (TREE_CODE (_p2))
16741 : : {
16742 : 20 : case INTEGER_CST:
16743 : 20 : {
16744 : 20 : {
16745 : 20 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
16746 : 20 : if (wi::eq_p (wi::bit_not (wi::to_wide (captures[1])), wi::to_wide (captures[3]))
16747 : : )
16748 : : {
16749 : 20 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1790;
16750 : 20 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1790;
16751 : 20 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1790;
16752 : 20 : {
16753 : 20 : tree _r;
16754 : 20 : _r = captures[2];
16755 : 20 : if (TREE_SIDE_EFFECTS (captures[1]))
16756 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16757 : 20 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
16758 : 20 : return _r;
16759 : : }
16760 : 0 : next_after_fail1790:;
16761 : : }
16762 : : }
16763 : 0 : break;
16764 : : }
16765 : : default:;
16766 : : }
16767 : : }
16768 : : break;
16769 : : }
16770 : 5 : case ABS_EXPR:
16771 : 5 : {
16772 : 5 : tree _q50 = TREE_OPERAND (_p1, 0);
16773 : 5 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16774 : : {
16775 : 1 : switch (TREE_CODE (_p2))
16776 : : {
16777 : 1 : case INTEGER_CST:
16778 : 1 : {
16779 : 1 : {
16780 : 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
16781 : 1 : if (wi::abs (wi::to_wide (captures[1])) == wi::to_wide (captures[3])
16782 : : )
16783 : : {
16784 : 0 : if (ABS_EXPR != ABSU_EXPR && wi::only_sign_bit_p (wi::to_wide (captures[1]))
16785 : : )
16786 : : {
16787 : 0 : {
16788 : 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
16789 : 0 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1791;
16790 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1791;
16791 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1791;
16792 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1791;
16793 : 0 : {
16794 : 0 : tree res_op0;
16795 : 0 : {
16796 : 0 : tree _o1[1], _r1;
16797 : 0 : _o1[0] = captures[0];
16798 : 0 : _r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
16799 : 0 : res_op0 = _r1;
16800 : : }
16801 : 0 : tree _r;
16802 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
16803 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
16804 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16805 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1008, __FILE__, __LINE__, true);
16806 : 0 : return _r;
16807 : : }
16808 : 1 : next_after_fail1791:;
16809 : : }
16810 : : }
16811 : : else
16812 : : {
16813 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1792;
16814 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1792;
16815 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1792;
16816 : 0 : {
16817 : 0 : tree _r;
16818 : 0 : _r = captures[2];
16819 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
16820 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16821 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1009, __FILE__, __LINE__, true);
16822 : 0 : return _r;
16823 : : }
16824 : 1 : next_after_fail1792:;
16825 : : }
16826 : : }
16827 : : }
16828 : 1 : break;
16829 : : }
16830 : : default:;
16831 : : }
16832 : : }
16833 : : break;
16834 : : }
16835 : 0 : case ABSU_EXPR:
16836 : 0 : {
16837 : 0 : tree _q50 = TREE_OPERAND (_p1, 0);
16838 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
16839 : : {
16840 : 0 : switch (TREE_CODE (_p2))
16841 : : {
16842 : 0 : case INTEGER_CST:
16843 : 0 : {
16844 : 0 : {
16845 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
16846 : 0 : if (wi::abs (wi::to_wide (captures[1])) == wi::to_wide (captures[3])
16847 : : )
16848 : : {
16849 : 0 : if (ABSU_EXPR != ABSU_EXPR && wi::only_sign_bit_p (wi::to_wide (captures[1]))
16850 : : )
16851 : : {
16852 : : {
16853 : : tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
16854 : : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1793;
16855 : : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1793;
16856 : : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1793;
16857 : : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1793;
16858 : : {
16859 : : tree res_op0;
16860 : : {
16861 : : tree _o1[1], _r1;
16862 : : _o1[0] = captures[0];
16863 : : _r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
16864 : : res_op0 = _r1;
16865 : : }
16866 : : tree _r;
16867 : : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
16868 : : if (TREE_SIDE_EFFECTS (captures[1]))
16869 : : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16870 : : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1008, __FILE__, __LINE__, true);
16871 : : return _r;
16872 : : }
16873 : : next_after_fail1793:;
16874 : : }
16875 : : }
16876 : : else
16877 : : {
16878 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1794;
16879 : 0 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1794;
16880 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1794;
16881 : 0 : {
16882 : 0 : tree _r;
16883 : 0 : _r = captures[2];
16884 : 0 : if (TREE_SIDE_EFFECTS (captures[1]))
16885 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
16886 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1009, __FILE__, __LINE__, true);
16887 : 0 : return _r;
16888 : : }
16889 : 0 : next_after_fail1794:;
16890 : : }
16891 : : }
16892 : : }
16893 : 0 : break;
16894 : : }
16895 : : default:;
16896 : : }
16897 : : }
16898 : : break;
16899 : : }
16900 : : default:;
16901 : : }
16902 : : break;
16903 : : }
16904 : : default:;
16905 : : }
16906 : : break;
16907 : : }
16908 : 1740927 : case EQ_EXPR:
16909 : 1740927 : {
16910 : 1740927 : tree _q20 = TREE_OPERAND (_p0, 0);
16911 : 1740927 : tree _q21 = TREE_OPERAND (_p0, 1);
16912 : 1740927 : if (tree_zero_one_valued_p (_q20))
16913 : : {
16914 : 80313 : if (integer_zerop (_q21))
16915 : : {
16916 : 807 : switch (TREE_CODE (_p2))
16917 : : {
16918 : 1 : case BIT_XOR_EXPR:
16919 : 1 : {
16920 : 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16921 : 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16922 : 1 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16923 : : {
16924 : 1 : {
16925 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q60 };
16926 : 1 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16927 : 1 : if (res) return res;
16928 : : }
16929 : : }
16930 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16931 : : {
16932 : 0 : {
16933 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q61 };
16934 : 0 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
16935 : 0 : if (res) return res;
16936 : : }
16937 : : }
16938 : : break;
16939 : : }
16940 : 1 : case BIT_IOR_EXPR:
16941 : 1 : {
16942 : 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16943 : 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16944 : 1 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16945 : : {
16946 : 1 : {
16947 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q60 };
16948 : 1 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16949 : 1 : if (res) return res;
16950 : : }
16951 : : }
16952 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16953 : : {
16954 : 0 : {
16955 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q61 };
16956 : 0 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
16957 : 0 : if (res) return res;
16958 : : }
16959 : : }
16960 : : break;
16961 : : }
16962 : 1 : case PLUS_EXPR:
16963 : 1 : {
16964 : 1 : tree _q60 = TREE_OPERAND (_p2, 0);
16965 : 1 : tree _q61 = TREE_OPERAND (_p2, 1);
16966 : 1 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
16967 : : {
16968 : 1 : {
16969 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q60 };
16970 : 1 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16971 : 1 : if (res) return res;
16972 : : }
16973 : : }
16974 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16975 : : {
16976 : 0 : {
16977 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q61 };
16978 : 0 : tree res = generic_simplify_351 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
16979 : 0 : if (res) return res;
16980 : : }
16981 : : }
16982 : : break;
16983 : : }
16984 : : default:;
16985 : : }
16986 : : }
16987 : : }
16988 : 1740924 : if (integer_zerop (_q21))
16989 : : {
16990 : 579364 : switch (TREE_CODE (_p2))
16991 : : {
16992 : 43461 : case PLUS_EXPR:
16993 : 43461 : {
16994 : 43461 : tree _q60 = TREE_OPERAND (_p2, 0);
16995 : 43461 : tree _q61 = TREE_OPERAND (_p2, 1);
16996 : 43461 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
16997 : : {
16998 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
16999 : : {
17000 : 0 : {
17001 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17002 : 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
17003 : 0 : if (res) return res;
17004 : : }
17005 : : }
17006 : : }
17007 : 43461 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17008 : : {
17009 : 2069 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
17010 : : {
17011 : 0 : {
17012 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17013 : 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR);
17014 : 0 : if (res) return res;
17015 : : }
17016 : : }
17017 : : }
17018 : : break;
17019 : : }
17020 : 108 : case BIT_IOR_EXPR:
17021 : 108 : {
17022 : 108 : tree _q60 = TREE_OPERAND (_p2, 0);
17023 : 108 : tree _q61 = TREE_OPERAND (_p2, 1);
17024 : 108 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17025 : : {
17026 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17027 : : {
17028 : 0 : {
17029 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17030 : 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
17031 : 0 : if (res) return res;
17032 : : }
17033 : : }
17034 : : }
17035 : 108 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17036 : : {
17037 : 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
17038 : : {
17039 : 0 : {
17040 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17041 : 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures, BIT_IOR_EXPR);
17042 : 0 : if (res) return res;
17043 : : }
17044 : : }
17045 : : }
17046 : : break;
17047 : : }
17048 : 0 : case BIT_XOR_EXPR:
17049 : 0 : {
17050 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17051 : 0 : tree _q61 = TREE_OPERAND (_p2, 1);
17052 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17053 : : {
17054 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17055 : : {
17056 : 0 : {
17057 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17058 : 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
17059 : 0 : if (res) return res;
17060 : : }
17061 : : }
17062 : : }
17063 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17064 : : {
17065 : 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
17066 : : {
17067 : 0 : {
17068 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17069 : 0 : tree res = generic_simplify_352 (loc, type, _p0, _p1, _p2, captures, BIT_XOR_EXPR);
17070 : 0 : if (res) return res;
17071 : : }
17072 : : }
17073 : : }
17074 : : break;
17075 : : }
17076 : 1 : case LROTATE_EXPR:
17077 : 1 : {
17078 : 1 : tree _q60 = TREE_OPERAND (_p2, 0);
17079 : 1 : tree _q61 = TREE_OPERAND (_p2, 1);
17080 : 1 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17081 : : {
17082 : 1 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17083 : : {
17084 : 1 : {
17085 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17086 : 1 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
17087 : 1 : if (res) return res;
17088 : : }
17089 : : }
17090 : : }
17091 : : break;
17092 : : }
17093 : 0 : case RROTATE_EXPR:
17094 : 0 : {
17095 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17096 : 0 : tree _q61 = TREE_OPERAND (_p2, 1);
17097 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17098 : : {
17099 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17100 : : {
17101 : 0 : {
17102 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17103 : 0 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
17104 : 0 : if (res) return res;
17105 : : }
17106 : : }
17107 : : }
17108 : : break;
17109 : : }
17110 : 48 : case LSHIFT_EXPR:
17111 : 48 : {
17112 : 48 : tree _q60 = TREE_OPERAND (_p2, 0);
17113 : 48 : tree _q61 = TREE_OPERAND (_p2, 1);
17114 : 48 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17115 : : {
17116 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17117 : : {
17118 : 0 : {
17119 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17120 : 0 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
17121 : 0 : if (res) return res;
17122 : : }
17123 : : }
17124 : : }
17125 : : break;
17126 : : }
17127 : 46 : case RSHIFT_EXPR:
17128 : 46 : {
17129 : 46 : tree _q60 = TREE_OPERAND (_p2, 0);
17130 : 46 : tree _q61 = TREE_OPERAND (_p2, 1);
17131 : 46 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17132 : : {
17133 : 20 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17134 : : {
17135 : 20 : {
17136 : 20 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17137 : 20 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
17138 : 20 : if (res) return res;
17139 : : }
17140 : : }
17141 : : }
17142 : : break;
17143 : : }
17144 : 176 : case MINUS_EXPR:
17145 : 176 : {
17146 : 176 : tree _q60 = TREE_OPERAND (_p2, 0);
17147 : 176 : tree _q61 = TREE_OPERAND (_p2, 1);
17148 : 176 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17149 : : {
17150 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17151 : : {
17152 : 0 : {
17153 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17154 : 0 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
17155 : 0 : if (res) return res;
17156 : : }
17157 : : }
17158 : : }
17159 : : break;
17160 : : }
17161 : 164133 : case POINTER_PLUS_EXPR:
17162 : 164133 : {
17163 : 164133 : tree _q60 = TREE_OPERAND (_p2, 0);
17164 : 164133 : tree _q61 = TREE_OPERAND (_p2, 1);
17165 : 164133 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17166 : : {
17167 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17168 : : {
17169 : 0 : {
17170 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17171 : 0 : tree res = generic_simplify_353 (loc, type, _p0, _p1, _p2, captures);
17172 : 0 : if (res) return res;
17173 : : }
17174 : : }
17175 : : }
17176 : : break;
17177 : : }
17178 : : default:;
17179 : : }
17180 : : }
17181 : 1740903 : if (integer_onep (_q21))
17182 : : {
17183 : 51190 : switch (TREE_CODE (_p2))
17184 : : {
17185 : 94 : case TRUNC_DIV_EXPR:
17186 : 94 : {
17187 : 94 : tree _q60 = TREE_OPERAND (_p2, 0);
17188 : 94 : tree _q61 = TREE_OPERAND (_p2, 1);
17189 : 94 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17190 : : {
17191 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17192 : : {
17193 : 0 : {
17194 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17195 : 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, TRUNC_DIV_EXPR);
17196 : 0 : if (res) return res;
17197 : : }
17198 : : }
17199 : : }
17200 : : break;
17201 : : }
17202 : 0 : case CEIL_DIV_EXPR:
17203 : 0 : {
17204 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17205 : 0 : tree _q61 = TREE_OPERAND (_p2, 1);
17206 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17207 : : {
17208 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17209 : : {
17210 : 0 : {
17211 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17212 : 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, CEIL_DIV_EXPR);
17213 : 0 : if (res) return res;
17214 : : }
17215 : : }
17216 : : }
17217 : : break;
17218 : : }
17219 : 0 : case FLOOR_DIV_EXPR:
17220 : 0 : {
17221 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17222 : 0 : tree _q61 = TREE_OPERAND (_p2, 1);
17223 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17224 : : {
17225 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17226 : : {
17227 : 0 : {
17228 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17229 : 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, FLOOR_DIV_EXPR);
17230 : 0 : if (res) return res;
17231 : : }
17232 : : }
17233 : : }
17234 : : break;
17235 : : }
17236 : 0 : case ROUND_DIV_EXPR:
17237 : 0 : {
17238 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17239 : 0 : tree _q61 = TREE_OPERAND (_p2, 1);
17240 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17241 : : {
17242 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17243 : : {
17244 : 0 : {
17245 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17246 : 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, ROUND_DIV_EXPR);
17247 : 0 : if (res) return res;
17248 : : }
17249 : : }
17250 : : }
17251 : : break;
17252 : : }
17253 : 0 : case EXACT_DIV_EXPR:
17254 : 0 : {
17255 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17256 : 0 : tree _q61 = TREE_OPERAND (_p2, 1);
17257 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17258 : : {
17259 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17260 : : {
17261 : 0 : {
17262 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17263 : 0 : tree res = generic_simplify_354 (loc, type, _p0, _p1, _p2, captures, EXACT_DIV_EXPR);
17264 : 0 : if (res) return res;
17265 : : }
17266 : : }
17267 : : }
17268 : : break;
17269 : : }
17270 : 0 : case MULT_EXPR:
17271 : 0 : {
17272 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17273 : 0 : tree _q61 = TREE_OPERAND (_p2, 1);
17274 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17275 : : {
17276 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17277 : : {
17278 : 0 : {
17279 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17280 : 0 : tree res = generic_simplify_355 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
17281 : 0 : if (res) return res;
17282 : : }
17283 : : }
17284 : : }
17285 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17286 : : {
17287 : 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
17288 : : {
17289 : 0 : {
17290 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17291 : 0 : tree res = generic_simplify_355 (loc, type, _p0, _p1, _p2, captures, MULT_EXPR);
17292 : 0 : if (res) return res;
17293 : : }
17294 : : }
17295 : : }
17296 : : break;
17297 : : }
17298 : : default:;
17299 : : }
17300 : : }
17301 : 1740903 : if (integer_all_onesp (_q21))
17302 : : {
17303 : 69085 : switch (TREE_CODE (_p2))
17304 : : {
17305 : 0 : case BIT_AND_EXPR:
17306 : 0 : {
17307 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17308 : 0 : tree _q61 = TREE_OPERAND (_p2, 1);
17309 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17310 : : {
17311 : 0 : if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
17312 : : {
17313 : 0 : {
17314 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17315 : 0 : tree res = generic_simplify_356 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
17316 : 0 : if (res) return res;
17317 : : }
17318 : : }
17319 : : }
17320 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17321 : : {
17322 : 0 : if ((_q61 == _p1 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _p1, 0) && types_match (_q61, _p1)))
17323 : : {
17324 : 0 : {
17325 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17326 : 0 : tree res = generic_simplify_356 (loc, type, _p0, _p1, _p2, captures, BIT_AND_EXPR);
17327 : 0 : if (res) return res;
17328 : : }
17329 : : }
17330 : : }
17331 : : break;
17332 : : }
17333 : : default:;
17334 : : }
17335 : : }
17336 : 1740903 : switch (TREE_CODE (_q20))
17337 : : {
17338 : 48833 : CASE_CONVERT:
17339 : 48833 : {
17340 : 48833 : tree _q30 = TREE_OPERAND (_q20, 0);
17341 : 48833 : switch (TREE_CODE (_q21))
17342 : : {
17343 : 23550 : case INTEGER_CST:
17344 : 23550 : {
17345 : 23550 : switch (TREE_CODE (_p1))
17346 : : {
17347 : 10278 : CASE_CONVERT:
17348 : 10278 : {
17349 : 10278 : tree _q60 = TREE_OPERAND (_p1, 0);
17350 : 10278 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
17351 : : {
17352 : 58 : switch (TREE_CODE (_p2))
17353 : : {
17354 : 56 : case INTEGER_CST:
17355 : 56 : {
17356 : 56 : {
17357 : 56 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
17358 : 56 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17359 : 56 : if (res) return res;
17360 : : }
17361 : 56 : break;
17362 : : }
17363 : : default:;
17364 : : }
17365 : : }
17366 : : break;
17367 : : }
17368 : 23550 : default:;
17369 : : }
17370 : 23550 : if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
17371 : : {
17372 : 118 : switch (TREE_CODE (_p2))
17373 : : {
17374 : 112 : case INTEGER_CST:
17375 : 112 : {
17376 : 112 : {
17377 : 112 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
17378 : 112 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17379 : 112 : if (res) return res;
17380 : : }
17381 : 112 : break;
17382 : : }
17383 : : default:;
17384 : : }
17385 : : }
17386 : : break;
17387 : : }
17388 : : default:;
17389 : : }
17390 : : break;
17391 : : }
17392 : 1740903 : default:;
17393 : : }
17394 : 1740903 : switch (TREE_CODE (_q21))
17395 : : {
17396 : 1092077 : case INTEGER_CST:
17397 : 1092077 : {
17398 : 1092077 : switch (TREE_CODE (_p1))
17399 : : {
17400 : 262972 : CASE_CONVERT:
17401 : 262972 : {
17402 : 262972 : tree _q50 = TREE_OPERAND (_p1, 0);
17403 : 262972 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
17404 : : {
17405 : 321 : switch (TREE_CODE (_p2))
17406 : : {
17407 : 7 : case INTEGER_CST:
17408 : 7 : {
17409 : 7 : {
17410 : 7 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17411 : 7 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17412 : 7 : if (res) return res;
17413 : : }
17414 : 0 : break;
17415 : : }
17416 : : default:;
17417 : : }
17418 : : }
17419 : : break;
17420 : : }
17421 : 1092070 : default:;
17422 : : }
17423 : 1092070 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17424 : : {
17425 : 55 : switch (TREE_CODE (_p2))
17426 : : {
17427 : 5 : case INTEGER_CST:
17428 : 5 : {
17429 : 5 : {
17430 : 5 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17431 : 5 : tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17432 : 5 : if (res) return res;
17433 : : }
17434 : 0 : break;
17435 : : }
17436 : : default:;
17437 : : }
17438 : : }
17439 : : break;
17440 : : }
17441 : 1740891 : default:;
17442 : : }
17443 : 1740891 : if (tree_expr_nonnegative_p (_q21))
17444 : : {
17445 : 1636059 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17446 : : {
17447 : 77 : switch (TREE_CODE (_p2))
17448 : : {
17449 : 0 : case ABS_EXPR:
17450 : 0 : {
17451 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17452 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17453 : : {
17454 : 0 : {
17455 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17456 : 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17457 : 0 : if (res) return res;
17458 : : }
17459 : : }
17460 : : break;
17461 : : }
17462 : : default:;
17463 : : }
17464 : : }
17465 : : }
17466 : 1740891 : if (tree_expr_nonnegative_p (_q20))
17467 : : {
17468 : 1062057 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
17469 : : {
17470 : 9100 : switch (TREE_CODE (_p2))
17471 : : {
17472 : 0 : case ABS_EXPR:
17473 : 0 : {
17474 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17475 : 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
17476 : : {
17477 : 0 : {
17478 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
17479 : 0 : tree res = generic_simplify_341 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17480 : 0 : if (res) return res;
17481 : : }
17482 : : }
17483 : : break;
17484 : : }
17485 : : default:;
17486 : : }
17487 : : }
17488 : 1062057 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17489 : : {
17490 : 25 : switch (TREE_CODE (_p2))
17491 : : {
17492 : 0 : case ABS_EXPR:
17493 : 0 : {
17494 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17495 : 0 : if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
17496 : : {
17497 : 0 : {
17498 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p2 };
17499 : 0 : tree res = generic_simplify_357 (loc, type, _p0, _p1, _p2, captures);
17500 : 0 : if (res) return res;
17501 : : }
17502 : : }
17503 : : break;
17504 : : }
17505 : : default:;
17506 : : }
17507 : : }
17508 : : }
17509 : 1740891 : if (tree_expr_nonnegative_p (_q21))
17510 : : {
17511 : 1636059 : if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
17512 : : {
17513 : 9597 : switch (TREE_CODE (_p2))
17514 : : {
17515 : 0 : case ABS_EXPR:
17516 : 0 : {
17517 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
17518 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
17519 : : {
17520 : 0 : {
17521 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
17522 : 0 : tree res = generic_simplify_357 (loc, type, _p0, _p1, _p2, captures);
17523 : 0 : if (res) return res;
17524 : : }
17525 : : }
17526 : : break;
17527 : : }
17528 : : default:;
17529 : : }
17530 : : }
17531 : : }
17532 : : break;
17533 : : }
17534 : 1238505 : case INTEGER_CST:
17535 : 1238505 : {
17536 : 1238505 : {
17537 : 1238505 : tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
17538 : 1238505 : if (integer_zerop (captures[0])
17539 : : )
17540 : : {
17541 : 633189 : if (!VOID_TYPE_P (TREE_TYPE (captures[2])) || VOID_TYPE_P (type)
17542 : : )
17543 : : {
17544 : 624977 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1795;
17545 : 460917 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1795;
17546 : 445974 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1795;
17547 : 445974 : {
17548 : 445974 : tree _r;
17549 : 445974 : _r = captures[2];
17550 : 445974 : if (TREE_SIDE_EFFECTS (captures[0]))
17551 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
17552 : 445974 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1010, __FILE__, __LINE__, true);
17553 : 445974 : return _r;
17554 : : }
17555 : 412397 : next_after_fail1795:;
17556 : : }
17557 : : }
17558 : : else
17559 : : {
17560 : 605316 : if (!VOID_TYPE_P (TREE_TYPE (captures[1])) || VOID_TYPE_P (type)
17561 : : )
17562 : : {
17563 : 604324 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1796;
17564 : 475145 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1796;
17565 : 380134 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1796;
17566 : 380134 : {
17567 : 380134 : tree _r;
17568 : 380134 : _r = captures[1];
17569 : 380134 : if (TREE_SIDE_EFFECTS (captures[0]))
17570 : 0 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
17571 : 380134 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1011, __FILE__, __LINE__, true);
17572 : 380134 : return _r;
17573 : : }
17574 : 412397 : next_after_fail1796:;
17575 : : }
17576 : : }
17577 : : }
17578 : 412397 : break;
17579 : : }
17580 : 10959574 : default:;
17581 : : }
17582 : 10959574 : switch (TREE_CODE (_p1))
17583 : : {
17584 : 689694 : case COND_EXPR:
17585 : 689694 : {
17586 : 689694 : tree _q30 = TREE_OPERAND (_p1, 0);
17587 : 689694 : tree _q31 = TREE_OPERAND (_p1, 1);
17588 : 689694 : tree _q32 = TREE_OPERAND (_p1, 2);
17589 : 689694 : if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
17590 : : {
17591 : 609 : {
17592 : 609 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _p2 };
17593 : 609 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1797;
17594 : 609 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1797;
17595 : 55 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1797;
17596 : 54 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1797;
17597 : 10 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1797;
17598 : 10 : {
17599 : 10 : tree res_op0;
17600 : 10 : res_op0 = captures[0];
17601 : 10 : tree res_op1;
17602 : 10 : res_op1 = captures[1];
17603 : 10 : tree res_op2;
17604 : 10 : res_op2 = captures[3];
17605 : 10 : tree _r;
17606 : 10 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
17607 : 10 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
17608 : 10 : return _r;
17609 : : }
17610 : 599 : next_after_fail1797:;
17611 : : }
17612 : : }
17613 : : break;
17614 : : }
17615 : 10959564 : default:;
17616 : : }
17617 : 10959564 : switch (TREE_CODE (_p2))
17618 : : {
17619 : 731377 : case COND_EXPR:
17620 : 731377 : {
17621 : 731377 : tree _q40 = TREE_OPERAND (_p2, 0);
17622 : 731377 : tree _q41 = TREE_OPERAND (_p2, 1);
17623 : 731377 : tree _q42 = TREE_OPERAND (_p2, 2);
17624 : 731377 : if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
17625 : : {
17626 : 3762 : {
17627 : 3762 : tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q41, _q42 };
17628 : 3762 : if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1798;
17629 : 3762 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1798;
17630 : 3762 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1798;
17631 : 184 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1798;
17632 : 184 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1798;
17633 : 184 : {
17634 : 184 : tree res_op0;
17635 : 184 : res_op0 = captures[0];
17636 : 184 : tree res_op1;
17637 : 184 : res_op1 = captures[1];
17638 : 184 : tree res_op2;
17639 : 184 : res_op2 = captures[3];
17640 : 184 : tree _r;
17641 : 184 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
17642 : 184 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1013, __FILE__, __LINE__, true);
17643 : 184 : return _r;
17644 : : }
17645 : 3578 : next_after_fail1798:;
17646 : : }
17647 : : }
17648 : 731193 : {
17649 : 731193 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42 };
17650 : 731193 : if (inverse_conditions_p (captures[0], captures[2])
17651 : : )
17652 : : {
17653 : 1103 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1799;
17654 : 1103 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1799;
17655 : 1103 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1799;
17656 : 1103 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1799;
17657 : 1103 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1799;
17658 : 1103 : {
17659 : 1103 : tree res_op0;
17660 : 1103 : res_op0 = captures[0];
17661 : 1103 : tree res_op1;
17662 : 1103 : res_op1 = captures[1];
17663 : 1103 : tree res_op2;
17664 : 1103 : res_op2 = captures[3];
17665 : 1103 : tree _r;
17666 : 1103 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
17667 : 1103 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1014, __FILE__, __LINE__, true);
17668 : 1103 : return _r;
17669 : : }
17670 : 730090 : next_after_fail1799:;
17671 : : }
17672 : : }
17673 : 730090 : break;
17674 : : }
17675 : 10958277 : default:;
17676 : : }
17677 : 10958277 : switch (TREE_CODE (_p1))
17678 : : {
17679 : 689684 : case COND_EXPR:
17680 : 689684 : {
17681 : 689684 : tree _q30 = TREE_OPERAND (_p1, 0);
17682 : 689684 : tree _q31 = TREE_OPERAND (_p1, 1);
17683 : 689684 : tree _q32 = TREE_OPERAND (_p1, 2);
17684 : 689684 : {
17685 : 689684 : tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q32, _p2 };
17686 : 689684 : if (inverse_conditions_p (captures[0], captures[1])
17687 : : )
17688 : : {
17689 : 135 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1800;
17690 : 135 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1800;
17691 : 2 : if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1800;
17692 : 2 : if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1800;
17693 : 2 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1800;
17694 : 2 : {
17695 : 2 : tree res_op0;
17696 : 2 : res_op0 = captures[0];
17697 : 2 : tree res_op1;
17698 : 2 : res_op1 = captures[3];
17699 : 2 : tree res_op2;
17700 : 2 : res_op2 = captures[4];
17701 : 2 : tree _r;
17702 : 2 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
17703 : 2 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1015, __FILE__, __LINE__, true);
17704 : 2 : return _r;
17705 : : }
17706 : 689682 : next_after_fail1800:;
17707 : : }
17708 : : }
17709 : 689682 : break;
17710 : : }
17711 : 10958275 : default:;
17712 : : }
17713 : 10958275 : if ((_p2 == _p1 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _p1, 0) && types_match (_p2, _p1)))
17714 : : {
17715 : 50519 : {
17716 : 50519 : tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
17717 : 50519 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1801;
17718 : 50519 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1801;
17719 : 50519 : {
17720 : 50519 : tree _r;
17721 : 50519 : _r = captures[1];
17722 : 50519 : if (TREE_SIDE_EFFECTS (captures[0]))
17723 : 357 : _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
17724 : 50519 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1016, __FILE__, __LINE__, true);
17725 : 50519 : return _r;
17726 : : }
17727 : 0 : next_after_fail1801:;
17728 : : }
17729 : : }
17730 : 10907756 : switch (TREE_CODE (_p0))
17731 : : {
17732 : 1711040 : case EQ_EXPR:
17733 : 1711040 : {
17734 : 1711040 : tree _q20 = TREE_OPERAND (_p0, 0);
17735 : 1711040 : tree _q21 = TREE_OPERAND (_p0, 1);
17736 : 1711040 : if (zerop (_q21))
17737 : : {
17738 : 807024 : switch (TREE_CODE (_p2))
17739 : : {
17740 : 36 : case NEGATE_EXPR:
17741 : 36 : {
17742 : 36 : tree _q60 = TREE_OPERAND (_p2, 0);
17743 : 36 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
17744 : : {
17745 : 16 : {
17746 : 16 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
17747 : 16 : const enum tree_code cmp = EQ_EXPR;
17748 : 16 : if (!HONOR_SIGNED_ZEROS (type)
17749 : 16 : && bitwise_equal_p (captures[0], captures[1])
17750 : : )
17751 : : {
17752 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1802;
17753 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1802;
17754 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1802;
17755 : 0 : {
17756 : 0 : tree _r;
17757 : 0 : _r = captures[2];
17758 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1017, __FILE__, __LINE__, true);
17759 : 0 : return _r;
17760 : : }
17761 : 16 : next_after_fail1802:;
17762 : : }
17763 : : }
17764 : : }
17765 : : break;
17766 : : }
17767 : 807024 : default:;
17768 : : }
17769 : 807024 : if (zerop (_p1))
17770 : : {
17771 : 72261 : switch (TREE_CODE (_p2))
17772 : : {
17773 : 14 : case NEGATE_EXPR:
17774 : 14 : {
17775 : 14 : tree _q60 = TREE_OPERAND (_p2, 0);
17776 : 14 : {
17777 : 14 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
17778 : 14 : const enum tree_code cmp = EQ_EXPR;
17779 : 14 : if (!HONOR_SIGNED_ZEROS (type)
17780 : 14 : && bitwise_equal_p (captures[0], captures[2])
17781 : : )
17782 : : {
17783 : 7 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1803;
17784 : 7 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1803;
17785 : 7 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1803;
17786 : 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1803;
17787 : 7 : {
17788 : 7 : tree _r;
17789 : 7 : _r = captures[1];
17790 : 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1018, __FILE__, __LINE__, true);
17791 : 7 : return _r;
17792 : : }
17793 : 7 : next_after_fail1803:;
17794 : : }
17795 : : }
17796 : 7 : break;
17797 : : }
17798 : : default:;
17799 : : }
17800 : : }
17801 : : }
17802 : 1711033 : switch (TREE_CODE (_q20))
17803 : : {
17804 : 28 : case MINUS_EXPR:
17805 : 28 : {
17806 : 28 : tree _q30 = TREE_OPERAND (_q20, 0);
17807 : 28 : tree _q31 = TREE_OPERAND (_q20, 1);
17808 : 28 : if (zerop (_q21))
17809 : : {
17810 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
17811 : : {
17812 : 0 : switch (TREE_CODE (_p2))
17813 : : {
17814 : 0 : case MINUS_EXPR:
17815 : 0 : {
17816 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17817 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17818 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
17819 : : {
17820 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
17821 : : {
17822 : 0 : {
17823 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
17824 : 0 : const enum tree_code cmp = EQ_EXPR;
17825 : 0 : if (!HONOR_SIGNED_ZEROS (type)
17826 : : )
17827 : : {
17828 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1804;
17829 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1804;
17830 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1804;
17831 : 0 : {
17832 : 0 : tree _r;
17833 : 0 : _r = captures[3];
17834 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1019, __FILE__, __LINE__, true);
17835 : 0 : return _r;
17836 : : }
17837 : 0 : next_after_fail1804:;
17838 : : }
17839 : : }
17840 : : }
17841 : : }
17842 : : break;
17843 : : }
17844 : : default:;
17845 : : }
17846 : : }
17847 : : }
17848 : 28 : if (integer_zerop (_q21))
17849 : : {
17850 : 0 : if (integer_zerop (_p1))
17851 : : {
17852 : 0 : switch (TREE_CODE (_p2))
17853 : : {
17854 : 0 : case MINUS_EXPR:
17855 : 0 : {
17856 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
17857 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
17858 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
17859 : : {
17860 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
17861 : : {
17862 : 0 : {
17863 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
17864 : 0 : tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
17865 : 0 : if (res) return res;
17866 : : }
17867 : : }
17868 : : }
17869 : : break;
17870 : : }
17871 : : default:;
17872 : : }
17873 : : }
17874 : : }
17875 : : break;
17876 : : }
17877 : 64335 : case CALL_EXPR:
17878 : 64335 : switch (get_call_combined_fn (_q20))
17879 : : {
17880 : 0 : case CFN_BUILT_IN_SIGNBITF:
17881 : 0 : if (call_expr_nargs (_q20) == 1)
17882 : : {
17883 : 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17884 : 0 : if (integer_zerop (_q21))
17885 : : {
17886 : 0 : switch (TREE_CODE (_p1))
17887 : : {
17888 : 0 : case NEGATE_EXPR:
17889 : 0 : {
17890 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
17891 : 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
17892 : : {
17893 : 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17894 : : {
17895 : 0 : {
17896 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
17897 : 0 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_BUILT_IN_SIGNBITF);
17898 : 0 : if (res) return res;
17899 : : }
17900 : : }
17901 : : }
17902 : : break;
17903 : : }
17904 : : default:;
17905 : : }
17906 : : }
17907 : : }
17908 : : break;
17909 : 0 : case CFN_BUILT_IN_SIGNBITL:
17910 : 0 : if (call_expr_nargs (_q20) == 1)
17911 : : {
17912 : 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17913 : 0 : if (integer_zerop (_q21))
17914 : : {
17915 : 0 : switch (TREE_CODE (_p1))
17916 : : {
17917 : 0 : case NEGATE_EXPR:
17918 : 0 : {
17919 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
17920 : 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
17921 : : {
17922 : 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17923 : : {
17924 : 0 : {
17925 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
17926 : 0 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_BUILT_IN_SIGNBITL);
17927 : 0 : if (res) return res;
17928 : : }
17929 : : }
17930 : : }
17931 : : break;
17932 : : }
17933 : : default:;
17934 : : }
17935 : : }
17936 : : }
17937 : : break;
17938 : 0 : case CFN_SIGNBIT:
17939 : 0 : if (call_expr_nargs (_q20) == 1)
17940 : : {
17941 : 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17942 : 0 : if (integer_zerop (_q21))
17943 : : {
17944 : 0 : switch (TREE_CODE (_p1))
17945 : : {
17946 : 0 : case NEGATE_EXPR:
17947 : 0 : {
17948 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
17949 : 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
17950 : : {
17951 : 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17952 : : {
17953 : 0 : {
17954 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
17955 : 0 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_SIGNBIT);
17956 : 0 : if (res) return res;
17957 : : }
17958 : : }
17959 : : }
17960 : : break;
17961 : : }
17962 : : default:;
17963 : : }
17964 : : }
17965 : : }
17966 : : break;
17967 : 411 : case CFN_BUILT_IN_SIGNBIT:
17968 : 411 : if (call_expr_nargs (_q20) == 1)
17969 : : {
17970 : 411 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
17971 : 411 : if (integer_zerop (_q21))
17972 : : {
17973 : 411 : switch (TREE_CODE (_p1))
17974 : : {
17975 : 3 : case NEGATE_EXPR:
17976 : 3 : {
17977 : 3 : tree _q60 = TREE_OPERAND (_p1, 0);
17978 : 3 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
17979 : : {
17980 : 3 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
17981 : : {
17982 : 3 : {
17983 : 3 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
17984 : 3 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR, CFN_BUILT_IN_SIGNBIT);
17985 : 3 : if (res) return res;
17986 : : }
17987 : : }
17988 : : }
17989 : : break;
17990 : : }
17991 : : default:;
17992 : : }
17993 : : }
17994 : : }
17995 : : break;
17996 : : default:;
17997 : : }
17998 : : break;
17999 : : default:;
18000 : : }
18001 : : break;
18002 : : }
18003 : 177 : case UNEQ_EXPR:
18004 : 177 : {
18005 : 177 : tree _q20 = TREE_OPERAND (_p0, 0);
18006 : 177 : tree _q21 = TREE_OPERAND (_p0, 1);
18007 : 177 : if (zerop (_q21))
18008 : : {
18009 : 1 : switch (TREE_CODE (_p2))
18010 : : {
18011 : 0 : case NEGATE_EXPR:
18012 : 0 : {
18013 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
18014 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
18015 : : {
18016 : 0 : {
18017 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
18018 : 0 : const enum tree_code cmp = UNEQ_EXPR;
18019 : 0 : if (!HONOR_SIGNED_ZEROS (type)
18020 : 0 : && bitwise_equal_p (captures[0], captures[1])
18021 : : )
18022 : : {
18023 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1805;
18024 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1805;
18025 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1805;
18026 : 0 : {
18027 : 0 : tree _r;
18028 : 0 : _r = captures[2];
18029 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1017, __FILE__, __LINE__, true);
18030 : 0 : return _r;
18031 : : }
18032 : 0 : next_after_fail1805:;
18033 : : }
18034 : : }
18035 : : }
18036 : : break;
18037 : : }
18038 : 1 : default:;
18039 : : }
18040 : 1 : if (zerop (_p1))
18041 : : {
18042 : 0 : switch (TREE_CODE (_p2))
18043 : : {
18044 : 0 : case NEGATE_EXPR:
18045 : 0 : {
18046 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
18047 : 0 : {
18048 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p2, _q60 };
18049 : 0 : const enum tree_code cmp = UNEQ_EXPR;
18050 : 0 : if (!HONOR_SIGNED_ZEROS (type)
18051 : 0 : && bitwise_equal_p (captures[0], captures[2])
18052 : : )
18053 : : {
18054 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1806;
18055 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1806;
18056 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1806;
18057 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1806;
18058 : 0 : {
18059 : 0 : tree _r;
18060 : 0 : _r = captures[1];
18061 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1018, __FILE__, __LINE__, true);
18062 : 0 : return _r;
18063 : : }
18064 : 0 : next_after_fail1806:;
18065 : : }
18066 : : }
18067 : 0 : break;
18068 : : }
18069 : : default:;
18070 : : }
18071 : : }
18072 : : }
18073 : 177 : switch (TREE_CODE (_q20))
18074 : : {
18075 : 0 : case MINUS_EXPR:
18076 : 0 : {
18077 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
18078 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
18079 : 0 : if (zerop (_q21))
18080 : : {
18081 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
18082 : : {
18083 : 0 : switch (TREE_CODE (_p2))
18084 : : {
18085 : 0 : case MINUS_EXPR:
18086 : 0 : {
18087 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18088 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18089 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
18090 : : {
18091 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
18092 : : {
18093 : 0 : {
18094 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
18095 : 0 : const enum tree_code cmp = UNEQ_EXPR;
18096 : 0 : if (!HONOR_SIGNED_ZEROS (type)
18097 : : )
18098 : : {
18099 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1807;
18100 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1807;
18101 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1807;
18102 : 0 : {
18103 : 0 : tree _r;
18104 : 0 : _r = captures[3];
18105 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1019, __FILE__, __LINE__, true);
18106 : 0 : return _r;
18107 : : }
18108 : 0 : next_after_fail1807:;
18109 : : }
18110 : : }
18111 : : }
18112 : : }
18113 : : break;
18114 : : }
18115 : : default:;
18116 : : }
18117 : : }
18118 : : }
18119 : 0 : if (integer_zerop (_q21))
18120 : : {
18121 : 0 : if (integer_zerop (_p1))
18122 : : {
18123 : 0 : switch (TREE_CODE (_p2))
18124 : : {
18125 : 0 : case MINUS_EXPR:
18126 : 0 : {
18127 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18128 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18129 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
18130 : : {
18131 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
18132 : : {
18133 : 0 : {
18134 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p2 };
18135 : 0 : tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, UNEQ_EXPR);
18136 : 0 : if (res) return res;
18137 : : }
18138 : : }
18139 : : }
18140 : : break;
18141 : : }
18142 : : default:;
18143 : : }
18144 : : }
18145 : : }
18146 : : break;
18147 : : }
18148 : : default:;
18149 : : }
18150 : : break;
18151 : : }
18152 : 2570362 : case NE_EXPR:
18153 : 2570362 : {
18154 : 2570362 : tree _q20 = TREE_OPERAND (_p0, 0);
18155 : 2570362 : tree _q21 = TREE_OPERAND (_p0, 1);
18156 : 2570362 : if (zerop (_q21))
18157 : : {
18158 : 1829415 : switch (TREE_CODE (_p2))
18159 : : {
18160 : 49 : case NEGATE_EXPR:
18161 : 49 : {
18162 : 49 : tree _q60 = TREE_OPERAND (_p2, 0);
18163 : 49 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
18164 : : {
18165 : 10 : {
18166 : 10 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
18167 : 10 : const enum tree_code cmp = NE_EXPR;
18168 : 10 : if (!HONOR_SIGNED_ZEROS (type)
18169 : 10 : && bitwise_equal_p (captures[0], captures[1])
18170 : : )
18171 : : {
18172 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1808;
18173 : 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1808;
18174 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1808;
18175 : 0 : {
18176 : 0 : tree _r;
18177 : 0 : _r = captures[1];
18178 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1020, __FILE__, __LINE__, true);
18179 : 0 : return _r;
18180 : : }
18181 : 10 : next_after_fail1808:;
18182 : : }
18183 : : }
18184 : : }
18185 : : break;
18186 : : }
18187 : 1829415 : default:;
18188 : : }
18189 : 1829415 : if (integer_zerop (_p2))
18190 : : {
18191 : 356981 : {
18192 : 356981 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
18193 : 356981 : const enum tree_code cmp = NE_EXPR;
18194 : 356981 : if (!HONOR_SIGNED_ZEROS (type)
18195 : 356981 : && bitwise_equal_p (captures[0], captures[1])
18196 : : )
18197 : : {
18198 : 530 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1809;
18199 : 498 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1809;
18200 : 498 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1809;
18201 : 498 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1809;
18202 : 498 : {
18203 : 498 : tree _r;
18204 : 498 : _r = captures[1];
18205 : 498 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
18206 : 498 : return _r;
18207 : : }
18208 : 356483 : next_after_fail1809:;
18209 : : }
18210 : : }
18211 : : }
18212 : : }
18213 : 2569864 : switch (TREE_CODE (_q20))
18214 : : {
18215 : 562 : case MINUS_EXPR:
18216 : 562 : {
18217 : 562 : tree _q30 = TREE_OPERAND (_q20, 0);
18218 : 562 : tree _q31 = TREE_OPERAND (_q20, 1);
18219 : 562 : if (zerop (_q21))
18220 : : {
18221 : 76 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
18222 : : {
18223 : 0 : switch (TREE_CODE (_p2))
18224 : : {
18225 : 0 : case MINUS_EXPR:
18226 : 0 : {
18227 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
18228 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
18229 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
18230 : : {
18231 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
18232 : : {
18233 : 0 : {
18234 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
18235 : 0 : const enum tree_code cmp = NE_EXPR;
18236 : 0 : if (!HONOR_SIGNED_ZEROS (type)
18237 : : )
18238 : : {
18239 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1810;
18240 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1810;
18241 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1810;
18242 : 0 : {
18243 : 0 : tree _r;
18244 : 0 : _r = captures[0];
18245 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
18246 : 0 : return _r;
18247 : : }
18248 : 0 : next_after_fail1810:;
18249 : : }
18250 : : }
18251 : : }
18252 : : }
18253 : : break;
18254 : : }
18255 : : default:;
18256 : : }
18257 : : }
18258 : : }
18259 : 562 : if (integer_zerop (_q21))
18260 : : {
18261 : 25 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
18262 : : {
18263 : 0 : if (integer_zerop (_p2))
18264 : : {
18265 : 0 : {
18266 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
18267 : 0 : tree res = generic_simplify_360 (loc, type, _p0, _p1, _p2, captures, NE_EXPR);
18268 : 0 : if (res) return res;
18269 : : }
18270 : : }
18271 : : }
18272 : : }
18273 : : break;
18274 : : }
18275 : 267179 : case BIT_AND_EXPR:
18276 : 267179 : {
18277 : 267179 : tree _q30 = TREE_OPERAND (_q20, 0);
18278 : 267179 : tree _q31 = TREE_OPERAND (_q20, 1);
18279 : 267179 : if (integer_pow2p (_q31))
18280 : : {
18281 : 194435 : if (integer_zerop (_q21))
18282 : : {
18283 : 194435 : switch (TREE_CODE (_p1))
18284 : : {
18285 : 2363 : case INTEGER_CST:
18286 : 2363 : {
18287 : 2363 : if (integer_zerop (_p2))
18288 : : {
18289 : 1385 : {
18290 : 1385 : tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
18291 : 1385 : if (!POINTER_TYPE_P (type) && integer_pow2p (captures[2])
18292 : : )
18293 : : {
18294 : 642 : {
18295 : 642 : int shift = (wi::exact_log2 (wi::to_wide (captures[2]))
18296 : 642 : - wi::exact_log2 (wi::to_wide (captures[1])));
18297 : 642 : if (shift > 0
18298 : : )
18299 : : {
18300 : 367 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1811;
18301 : 367 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1811;
18302 : 367 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1811;
18303 : 367 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1811;
18304 : 367 : {
18305 : 367 : tree res_op0;
18306 : 367 : {
18307 : 367 : tree _o1[2], _r1;
18308 : 367 : {
18309 : 367 : tree _o2[1], _r2;
18310 : 367 : _o2[0] = captures[0];
18311 : 367 : if (TREE_TYPE (_o2[0]) != type)
18312 : : {
18313 : 364 : _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
18314 : : }
18315 : : else
18316 : : _r2 = _o2[0];
18317 : 367 : _o1[0] = _r2;
18318 : : }
18319 : 367 : _o1[1] = build_int_cst (integer_type_node, shift);
18320 : 367 : _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
18321 : 367 : res_op0 = _r1;
18322 : : }
18323 : 367 : tree res_op1;
18324 : 367 : res_op1 = captures[2];
18325 : 367 : tree _r;
18326 : 367 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
18327 : 367 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
18328 : 642 : return _r;
18329 : : }
18330 : : next_after_fail1811:;
18331 : : }
18332 : : else
18333 : : {
18334 : 275 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1812;
18335 : 275 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1812;
18336 : 275 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1812;
18337 : 275 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1812;
18338 : 275 : {
18339 : 275 : tree res_op0;
18340 : 275 : {
18341 : 275 : tree _o1[1], _r1;
18342 : 275 : {
18343 : 275 : tree _o2[2], _r2;
18344 : 275 : _o2[0] = captures[0];
18345 : 275 : _o2[1] = build_int_cst (integer_type_node, -shift);
18346 : 275 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
18347 : 275 : _o1[0] = _r2;
18348 : : }
18349 : 275 : if (TREE_TYPE (_o1[0]) != type)
18350 : : {
18351 : 139 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
18352 : : }
18353 : : else
18354 : : _r1 = _o1[0];
18355 : 275 : res_op0 = _r1;
18356 : : }
18357 : 275 : tree res_op1;
18358 : 275 : res_op1 = captures[2];
18359 : 275 : tree _r;
18360 : 275 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
18361 : 275 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
18362 : 275 : return _r;
18363 : : }
18364 : : next_after_fail1812:;
18365 : : }
18366 : : }
18367 : : }
18368 : : }
18369 : : }
18370 : : break;
18371 : : }
18372 : : default:;
18373 : : }
18374 : : }
18375 : : }
18376 : : break;
18377 : : }
18378 : 347196 : case CALL_EXPR:
18379 : 347196 : switch (get_call_combined_fn (_q20))
18380 : : {
18381 : 30 : case CFN_BUILT_IN_SIGNBITF:
18382 : 30 : if (call_expr_nargs (_q20) == 1)
18383 : : {
18384 : 30 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
18385 : 30 : if (integer_zerop (_q21))
18386 : : {
18387 : 30 : switch (TREE_CODE (_p1))
18388 : : {
18389 : 0 : case NEGATE_EXPR:
18390 : 0 : {
18391 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
18392 : 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
18393 : : {
18394 : 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18395 : : {
18396 : 0 : {
18397 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
18398 : 0 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_BUILT_IN_SIGNBITF);
18399 : 0 : if (res) return res;
18400 : : }
18401 : : }
18402 : : }
18403 : : break;
18404 : : }
18405 : : default:;
18406 : : }
18407 : : }
18408 : : }
18409 : : break;
18410 : 30 : case CFN_BUILT_IN_SIGNBITL:
18411 : 30 : if (call_expr_nargs (_q20) == 1)
18412 : : {
18413 : 30 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
18414 : 30 : if (integer_zerop (_q21))
18415 : : {
18416 : 30 : switch (TREE_CODE (_p1))
18417 : : {
18418 : 0 : case NEGATE_EXPR:
18419 : 0 : {
18420 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
18421 : 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
18422 : : {
18423 : 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18424 : : {
18425 : 0 : {
18426 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
18427 : 0 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_BUILT_IN_SIGNBITL);
18428 : 0 : if (res) return res;
18429 : : }
18430 : : }
18431 : : }
18432 : : break;
18433 : : }
18434 : : default:;
18435 : : }
18436 : : }
18437 : : }
18438 : : break;
18439 : 0 : case CFN_SIGNBIT:
18440 : 0 : if (call_expr_nargs (_q20) == 1)
18441 : : {
18442 : 0 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
18443 : 0 : if (integer_zerop (_q21))
18444 : : {
18445 : 0 : switch (TREE_CODE (_p1))
18446 : : {
18447 : 0 : case NEGATE_EXPR:
18448 : 0 : {
18449 : 0 : tree _q60 = TREE_OPERAND (_p1, 0);
18450 : 0 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
18451 : : {
18452 : 0 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18453 : : {
18454 : 0 : {
18455 : 0 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
18456 : 0 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_SIGNBIT);
18457 : 0 : if (res) return res;
18458 : : }
18459 : : }
18460 : : }
18461 : : break;
18462 : : }
18463 : : default:;
18464 : : }
18465 : : }
18466 : : }
18467 : : break;
18468 : 2898 : case CFN_BUILT_IN_SIGNBIT:
18469 : 2898 : if (call_expr_nargs (_q20) == 1)
18470 : : {
18471 : 2898 : tree _q30 = CALL_EXPR_ARG (_q20, 0);
18472 : 2898 : if (integer_zerop (_q21))
18473 : : {
18474 : 2898 : switch (TREE_CODE (_p1))
18475 : : {
18476 : 4 : case NEGATE_EXPR:
18477 : 4 : {
18478 : 4 : tree _q60 = TREE_OPERAND (_p1, 0);
18479 : 4 : if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
18480 : : {
18481 : 3 : if ((_p2 == _q30 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q30, 0) && types_match (_p2, _q30)))
18482 : : {
18483 : 3 : {
18484 : 3 : tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
18485 : 3 : tree res = generic_simplify_359 (loc, type, _p0, _p1, _p2, captures, NE_EXPR, CFN_BUILT_IN_SIGNBIT);
18486 : 3 : if (res) return res;
18487 : : }
18488 : : }
18489 : : }
18490 : : break;
18491 : : }
18492 : : default:;
18493 : : }
18494 : : }
18495 : : }
18496 : : break;
18497 : : default:;
18498 : : }
18499 : : break;
18500 : 2569219 : default:;
18501 : : }
18502 : 2569219 : if (integer_zerop (_q21))
18503 : : {
18504 : 1755594 : switch (TREE_CODE (_p1))
18505 : : {
18506 : 572040 : case CALL_EXPR:
18507 : 572040 : switch (get_call_combined_fn (_p1))
18508 : : {
18509 : 0 : case CFN_PARITY:
18510 : 0 : if (call_expr_nargs (_p1) == 1)
18511 : : {
18512 : 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18513 : 0 : switch (TREE_CODE (_q50))
18514 : : {
18515 : 0 : CASE_CONVERT:
18516 : 0 : {
18517 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18518 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18519 : : {
18520 : 0 : if (integer_zerop (_p2))
18521 : : {
18522 : 0 : {
18523 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18524 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_PARITY);
18525 : 0 : if (res) return res;
18526 : : }
18527 : : }
18528 : : }
18529 : : break;
18530 : : }
18531 : 0 : default:;
18532 : : }
18533 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18534 : : {
18535 : 0 : if (integer_zerop (_p2))
18536 : : {
18537 : 0 : {
18538 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18539 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_PARITY);
18540 : 0 : if (res) return res;
18541 : : }
18542 : : }
18543 : : }
18544 : : }
18545 : : break;
18546 : 7 : case CFN_BUILT_IN_FFS:
18547 : 7 : if (call_expr_nargs (_p1) == 1)
18548 : : {
18549 : 7 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18550 : 7 : switch (TREE_CODE (_q50))
18551 : : {
18552 : 0 : CASE_CONVERT:
18553 : 0 : {
18554 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18555 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18556 : : {
18557 : 0 : if (integer_zerop (_p2))
18558 : : {
18559 : 0 : {
18560 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18561 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFS);
18562 : 0 : if (res) return res;
18563 : : }
18564 : : }
18565 : : }
18566 : : break;
18567 : : }
18568 : 7 : default:;
18569 : : }
18570 : 7 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18571 : : {
18572 : 0 : if (integer_zerop (_p2))
18573 : : {
18574 : 0 : {
18575 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18576 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFS);
18577 : 0 : if (res) return res;
18578 : : }
18579 : : }
18580 : : }
18581 : : }
18582 : : break;
18583 : 0 : case CFN_BUILT_IN_FFSIMAX:
18584 : 0 : if (call_expr_nargs (_p1) == 1)
18585 : : {
18586 : 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18587 : 0 : switch (TREE_CODE (_q50))
18588 : : {
18589 : 0 : CASE_CONVERT:
18590 : 0 : {
18591 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18592 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18593 : : {
18594 : 0 : if (integer_zerop (_p2))
18595 : : {
18596 : 0 : {
18597 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18598 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSIMAX);
18599 : 0 : if (res) return res;
18600 : : }
18601 : : }
18602 : : }
18603 : : break;
18604 : : }
18605 : 0 : default:;
18606 : : }
18607 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18608 : : {
18609 : 0 : if (integer_zerop (_p2))
18610 : : {
18611 : 0 : {
18612 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18613 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSIMAX);
18614 : 0 : if (res) return res;
18615 : : }
18616 : : }
18617 : : }
18618 : : }
18619 : : break;
18620 : 2 : case CFN_BUILT_IN_POPCOUNT:
18621 : 2 : if (call_expr_nargs (_p1) == 1)
18622 : : {
18623 : 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18624 : 2 : switch (TREE_CODE (_q50))
18625 : : {
18626 : 1 : CASE_CONVERT:
18627 : 1 : {
18628 : 1 : tree _q60 = TREE_OPERAND (_q50, 0);
18629 : 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18630 : : {
18631 : 1 : if (integer_zerop (_p2))
18632 : : {
18633 : 1 : {
18634 : 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18635 : 1 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNT);
18636 : 1 : if (res) return res;
18637 : : }
18638 : : }
18639 : : }
18640 : : break;
18641 : : }
18642 : 1 : default:;
18643 : : }
18644 : 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18645 : : {
18646 : 0 : if (integer_zerop (_p2))
18647 : : {
18648 : 0 : {
18649 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18650 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNT);
18651 : 0 : if (res) return res;
18652 : : }
18653 : : }
18654 : : }
18655 : : }
18656 : : break;
18657 : 2 : case CFN_BUILT_IN_PARITYL:
18658 : 2 : if (call_expr_nargs (_p1) == 1)
18659 : : {
18660 : 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18661 : 2 : switch (TREE_CODE (_q50))
18662 : : {
18663 : 1 : CASE_CONVERT:
18664 : 1 : {
18665 : 1 : tree _q60 = TREE_OPERAND (_q50, 0);
18666 : 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18667 : : {
18668 : 1 : if (integer_zerop (_p2))
18669 : : {
18670 : 1 : {
18671 : 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18672 : 1 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYL);
18673 : 1 : if (res) return res;
18674 : : }
18675 : : }
18676 : : }
18677 : : break;
18678 : : }
18679 : 1 : default:;
18680 : : }
18681 : 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18682 : : {
18683 : 0 : if (integer_zerop (_p2))
18684 : : {
18685 : 0 : {
18686 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18687 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYL);
18688 : 0 : if (res) return res;
18689 : : }
18690 : : }
18691 : : }
18692 : : }
18693 : : break;
18694 : 16 : case CFN_BUILT_IN_FFSL:
18695 : 16 : if (call_expr_nargs (_p1) == 1)
18696 : : {
18697 : 16 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18698 : 16 : switch (TREE_CODE (_q50))
18699 : : {
18700 : 16 : CASE_CONVERT:
18701 : 16 : {
18702 : 16 : tree _q60 = TREE_OPERAND (_q50, 0);
18703 : 16 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18704 : : {
18705 : 0 : if (integer_zerop (_p2))
18706 : : {
18707 : 0 : {
18708 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18709 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSL);
18710 : 0 : if (res) return res;
18711 : : }
18712 : : }
18713 : : }
18714 : : break;
18715 : : }
18716 : 16 : default:;
18717 : : }
18718 : 16 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18719 : : {
18720 : 0 : if (integer_zerop (_p2))
18721 : : {
18722 : 0 : {
18723 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18724 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSL);
18725 : 0 : if (res) return res;
18726 : : }
18727 : : }
18728 : : }
18729 : : }
18730 : : break;
18731 : 2 : case CFN_BUILT_IN_POPCOUNTLL:
18732 : 2 : if (call_expr_nargs (_p1) == 1)
18733 : : {
18734 : 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18735 : 2 : switch (TREE_CODE (_q50))
18736 : : {
18737 : 1 : CASE_CONVERT:
18738 : 1 : {
18739 : 1 : tree _q60 = TREE_OPERAND (_q50, 0);
18740 : 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18741 : : {
18742 : 1 : if (integer_zerop (_p2))
18743 : : {
18744 : 1 : {
18745 : 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18746 : 1 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTLL);
18747 : 1 : if (res) return res;
18748 : : }
18749 : : }
18750 : : }
18751 : : break;
18752 : : }
18753 : 1 : default:;
18754 : : }
18755 : 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18756 : : {
18757 : 0 : if (integer_zerop (_p2))
18758 : : {
18759 : 0 : {
18760 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18761 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTLL);
18762 : 0 : if (res) return res;
18763 : : }
18764 : : }
18765 : : }
18766 : : }
18767 : : break;
18768 : 0 : case CFN_POPCOUNT:
18769 : 0 : if (call_expr_nargs (_p1) == 1)
18770 : : {
18771 : 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18772 : 0 : switch (TREE_CODE (_q50))
18773 : : {
18774 : 0 : CASE_CONVERT:
18775 : 0 : {
18776 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18777 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18778 : : {
18779 : 0 : if (integer_zerop (_p2))
18780 : : {
18781 : 0 : {
18782 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18783 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_POPCOUNT);
18784 : 0 : if (res) return res;
18785 : : }
18786 : : }
18787 : : }
18788 : : break;
18789 : : }
18790 : 0 : default:;
18791 : : }
18792 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18793 : : {
18794 : 0 : if (integer_zerop (_p2))
18795 : : {
18796 : 0 : {
18797 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18798 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_POPCOUNT);
18799 : 0 : if (res) return res;
18800 : : }
18801 : : }
18802 : : }
18803 : : }
18804 : : break;
18805 : 0 : case CFN_BUILT_IN_PARITYIMAX:
18806 : 0 : if (call_expr_nargs (_p1) == 1)
18807 : : {
18808 : 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18809 : 0 : switch (TREE_CODE (_q50))
18810 : : {
18811 : 0 : CASE_CONVERT:
18812 : 0 : {
18813 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18814 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18815 : : {
18816 : 0 : if (integer_zerop (_p2))
18817 : : {
18818 : 0 : {
18819 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18820 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYIMAX);
18821 : 0 : if (res) return res;
18822 : : }
18823 : : }
18824 : : }
18825 : : break;
18826 : : }
18827 : 0 : default:;
18828 : : }
18829 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18830 : : {
18831 : 0 : if (integer_zerop (_p2))
18832 : : {
18833 : 0 : {
18834 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18835 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYIMAX);
18836 : 0 : if (res) return res;
18837 : : }
18838 : : }
18839 : : }
18840 : : }
18841 : : break;
18842 : 2 : case CFN_BUILT_IN_CLRSBL:
18843 : 2 : if (call_expr_nargs (_p1) == 1)
18844 : : {
18845 : 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18846 : 2 : switch (TREE_CODE (_q50))
18847 : : {
18848 : 0 : CASE_CONVERT:
18849 : 0 : {
18850 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18851 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18852 : : {
18853 : 0 : switch (TREE_CODE (_p2))
18854 : : {
18855 : 0 : case INTEGER_CST:
18856 : 0 : {
18857 : 0 : {
18858 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
18859 : 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBL);
18860 : 0 : if (res) return res;
18861 : : }
18862 : 0 : break;
18863 : : }
18864 : : default:;
18865 : : }
18866 : : }
18867 : : break;
18868 : : }
18869 : 2 : default:;
18870 : : }
18871 : 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18872 : : {
18873 : 1 : switch (TREE_CODE (_p2))
18874 : : {
18875 : 1 : case INTEGER_CST:
18876 : 1 : {
18877 : 1 : {
18878 : 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
18879 : 1 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBL);
18880 : 1 : if (res) return res;
18881 : : }
18882 : 0 : break;
18883 : : }
18884 : : default:;
18885 : : }
18886 : : }
18887 : : }
18888 : : break;
18889 : 0 : case CFN_FFS:
18890 : 0 : if (call_expr_nargs (_p1) == 1)
18891 : : {
18892 : 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18893 : 0 : switch (TREE_CODE (_q50))
18894 : : {
18895 : 0 : CASE_CONVERT:
18896 : 0 : {
18897 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18898 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18899 : : {
18900 : 0 : if (integer_zerop (_p2))
18901 : : {
18902 : 0 : {
18903 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18904 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_FFS);
18905 : 0 : if (res) return res;
18906 : : }
18907 : : }
18908 : : }
18909 : : break;
18910 : : }
18911 : 0 : default:;
18912 : : }
18913 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18914 : : {
18915 : 0 : if (integer_zerop (_p2))
18916 : : {
18917 : 0 : {
18918 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18919 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_FFS);
18920 : 0 : if (res) return res;
18921 : : }
18922 : : }
18923 : : }
18924 : : }
18925 : : break;
18926 : 2 : case CFN_BUILT_IN_PARITY:
18927 : 2 : if (call_expr_nargs (_p1) == 1)
18928 : : {
18929 : 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18930 : 2 : switch (TREE_CODE (_q50))
18931 : : {
18932 : 1 : CASE_CONVERT:
18933 : 1 : {
18934 : 1 : tree _q60 = TREE_OPERAND (_q50, 0);
18935 : 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18936 : : {
18937 : 1 : if (integer_zerop (_p2))
18938 : : {
18939 : 1 : {
18940 : 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18941 : 1 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITY);
18942 : 1 : if (res) return res;
18943 : : }
18944 : : }
18945 : : }
18946 : : break;
18947 : : }
18948 : 1 : default:;
18949 : : }
18950 : 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18951 : : {
18952 : 0 : if (integer_zerop (_p2))
18953 : : {
18954 : 0 : {
18955 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18956 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITY);
18957 : 0 : if (res) return res;
18958 : : }
18959 : : }
18960 : : }
18961 : : }
18962 : : break;
18963 : 0 : case CFN_BUILT_IN_POPCOUNTIMAX:
18964 : 0 : if (call_expr_nargs (_p1) == 1)
18965 : : {
18966 : 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
18967 : 0 : switch (TREE_CODE (_q50))
18968 : : {
18969 : 0 : CASE_CONVERT:
18970 : 0 : {
18971 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
18972 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
18973 : : {
18974 : 0 : if (integer_zerop (_p2))
18975 : : {
18976 : 0 : {
18977 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18978 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTIMAX);
18979 : 0 : if (res) return res;
18980 : : }
18981 : : }
18982 : : }
18983 : : break;
18984 : : }
18985 : 0 : default:;
18986 : : }
18987 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
18988 : : {
18989 : 0 : if (integer_zerop (_p2))
18990 : : {
18991 : 0 : {
18992 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
18993 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTIMAX);
18994 : 0 : if (res) return res;
18995 : : }
18996 : : }
18997 : : }
18998 : : }
18999 : : break;
19000 : 0 : case CFN_BUILT_IN_CLRSBIMAX:
19001 : 0 : if (call_expr_nargs (_p1) == 1)
19002 : : {
19003 : 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19004 : 0 : switch (TREE_CODE (_q50))
19005 : : {
19006 : 0 : CASE_CONVERT:
19007 : 0 : {
19008 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19009 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19010 : : {
19011 : 0 : switch (TREE_CODE (_p2))
19012 : : {
19013 : 0 : case INTEGER_CST:
19014 : 0 : {
19015 : 0 : {
19016 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19017 : 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBIMAX);
19018 : 0 : if (res) return res;
19019 : : }
19020 : 0 : break;
19021 : : }
19022 : : default:;
19023 : : }
19024 : : }
19025 : : break;
19026 : : }
19027 : 0 : default:;
19028 : : }
19029 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19030 : : {
19031 : 0 : switch (TREE_CODE (_p2))
19032 : : {
19033 : 0 : case INTEGER_CST:
19034 : 0 : {
19035 : 0 : {
19036 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19037 : 0 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBIMAX);
19038 : 0 : if (res) return res;
19039 : : }
19040 : 0 : break;
19041 : : }
19042 : : default:;
19043 : : }
19044 : : }
19045 : : }
19046 : : break;
19047 : 2 : case CFN_BUILT_IN_CLRSBLL:
19048 : 2 : if (call_expr_nargs (_p1) == 1)
19049 : : {
19050 : 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19051 : 2 : switch (TREE_CODE (_q50))
19052 : : {
19053 : 0 : CASE_CONVERT:
19054 : 0 : {
19055 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19056 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19057 : : {
19058 : 0 : switch (TREE_CODE (_p2))
19059 : : {
19060 : 0 : case INTEGER_CST:
19061 : 0 : {
19062 : 0 : {
19063 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19064 : 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBLL);
19065 : 0 : if (res) return res;
19066 : : }
19067 : 0 : break;
19068 : : }
19069 : : default:;
19070 : : }
19071 : : }
19072 : : break;
19073 : : }
19074 : 2 : default:;
19075 : : }
19076 : 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19077 : : {
19078 : 1 : switch (TREE_CODE (_p2))
19079 : : {
19080 : 1 : case INTEGER_CST:
19081 : 1 : {
19082 : 1 : {
19083 : 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19084 : 1 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSBLL);
19085 : 1 : if (res) return res;
19086 : : }
19087 : 0 : break;
19088 : : }
19089 : : default:;
19090 : : }
19091 : : }
19092 : : }
19093 : : break;
19094 : 0 : case CFN_CLRSB:
19095 : 0 : if (call_expr_nargs (_p1) == 1)
19096 : : {
19097 : 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19098 : 0 : switch (TREE_CODE (_q50))
19099 : : {
19100 : 0 : CASE_CONVERT:
19101 : 0 : {
19102 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19103 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19104 : : {
19105 : 0 : switch (TREE_CODE (_p2))
19106 : : {
19107 : 0 : case INTEGER_CST:
19108 : 0 : {
19109 : 0 : {
19110 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19111 : 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, CFN_CLRSB);
19112 : 0 : if (res) return res;
19113 : : }
19114 : 0 : break;
19115 : : }
19116 : : default:;
19117 : : }
19118 : : }
19119 : : break;
19120 : : }
19121 : 0 : default:;
19122 : : }
19123 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19124 : : {
19125 : 0 : switch (TREE_CODE (_p2))
19126 : : {
19127 : 0 : case INTEGER_CST:
19128 : 0 : {
19129 : 0 : {
19130 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19131 : 0 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, CFN_CLRSB);
19132 : 0 : if (res) return res;
19133 : : }
19134 : 0 : break;
19135 : : }
19136 : : default:;
19137 : : }
19138 : : }
19139 : : }
19140 : : break;
19141 : 0 : case CFN_BUILT_IN_BSWAP128:
19142 : 0 : if (call_expr_nargs (_p1) == 1)
19143 : : {
19144 : 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19145 : 0 : switch (TREE_CODE (_q50))
19146 : : {
19147 : 0 : CASE_CONVERT:
19148 : 0 : {
19149 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19150 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19151 : : {
19152 : 0 : if (integer_zerop (_p2))
19153 : : {
19154 : 0 : {
19155 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19156 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP128);
19157 : 0 : if (res) return res;
19158 : : }
19159 : : }
19160 : : }
19161 : : break;
19162 : : }
19163 : 0 : default:;
19164 : : }
19165 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19166 : : {
19167 : 0 : if (integer_zerop (_p2))
19168 : : {
19169 : 0 : {
19170 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19171 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP128);
19172 : 0 : if (res) return res;
19173 : : }
19174 : : }
19175 : : }
19176 : : }
19177 : : break;
19178 : 2 : case CFN_BUILT_IN_POPCOUNTL:
19179 : 2 : if (call_expr_nargs (_p1) == 1)
19180 : : {
19181 : 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19182 : 2 : switch (TREE_CODE (_q50))
19183 : : {
19184 : 1 : CASE_CONVERT:
19185 : 1 : {
19186 : 1 : tree _q60 = TREE_OPERAND (_q50, 0);
19187 : 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19188 : : {
19189 : 1 : if (integer_zerop (_p2))
19190 : : {
19191 : 1 : {
19192 : 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19193 : 1 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTL);
19194 : 1 : if (res) return res;
19195 : : }
19196 : : }
19197 : : }
19198 : : break;
19199 : : }
19200 : 1 : default:;
19201 : : }
19202 : 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19203 : : {
19204 : 0 : if (integer_zerop (_p2))
19205 : : {
19206 : 0 : {
19207 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19208 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_POPCOUNTL);
19209 : 0 : if (res) return res;
19210 : : }
19211 : : }
19212 : : }
19213 : : }
19214 : : break;
19215 : 2 : case CFN_BUILT_IN_CLRSB:
19216 : 2 : if (call_expr_nargs (_p1) == 1)
19217 : : {
19218 : 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19219 : 2 : switch (TREE_CODE (_q50))
19220 : : {
19221 : 0 : CASE_CONVERT:
19222 : 0 : {
19223 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19224 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19225 : : {
19226 : 0 : switch (TREE_CODE (_p2))
19227 : : {
19228 : 0 : case INTEGER_CST:
19229 : 0 : {
19230 : 0 : {
19231 : 0 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19232 : 0 : tree res = generic_simplify_362 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSB);
19233 : 0 : if (res) return res;
19234 : : }
19235 : 0 : break;
19236 : : }
19237 : : default:;
19238 : : }
19239 : : }
19240 : : break;
19241 : : }
19242 : 2 : default:;
19243 : : }
19244 : 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19245 : : {
19246 : 1 : switch (TREE_CODE (_p2))
19247 : : {
19248 : 1 : case INTEGER_CST:
19249 : 1 : {
19250 : 1 : {
19251 : 1 : tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _q50, _p2 };
19252 : 1 : tree res = generic_simplify_363 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_CLRSB);
19253 : 1 : if (res) return res;
19254 : : }
19255 : 0 : break;
19256 : : }
19257 : : default:;
19258 : : }
19259 : : }
19260 : : }
19261 : : break;
19262 : 0 : case CFN_BUILT_IN_FFSLL:
19263 : 0 : if (call_expr_nargs (_p1) == 1)
19264 : : {
19265 : 0 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19266 : 0 : switch (TREE_CODE (_q50))
19267 : : {
19268 : 0 : CASE_CONVERT:
19269 : 0 : {
19270 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19271 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19272 : : {
19273 : 0 : if (integer_zerop (_p2))
19274 : : {
19275 : 0 : {
19276 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19277 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSLL);
19278 : 0 : if (res) return res;
19279 : : }
19280 : : }
19281 : : }
19282 : : break;
19283 : : }
19284 : 0 : default:;
19285 : : }
19286 : 0 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19287 : : {
19288 : 0 : if (integer_zerop (_p2))
19289 : : {
19290 : 0 : {
19291 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19292 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_FFSLL);
19293 : 0 : if (res) return res;
19294 : : }
19295 : : }
19296 : : }
19297 : : }
19298 : : break;
19299 : 2 : case CFN_BUILT_IN_PARITYLL:
19300 : 2 : if (call_expr_nargs (_p1) == 1)
19301 : : {
19302 : 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19303 : 2 : switch (TREE_CODE (_q50))
19304 : : {
19305 : 1 : CASE_CONVERT:
19306 : 1 : {
19307 : 1 : tree _q60 = TREE_OPERAND (_q50, 0);
19308 : 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19309 : : {
19310 : 1 : if (integer_zerop (_p2))
19311 : : {
19312 : 1 : {
19313 : 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19314 : 1 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYLL);
19315 : 1 : if (res) return res;
19316 : : }
19317 : : }
19318 : : }
19319 : : break;
19320 : : }
19321 : 1 : default:;
19322 : : }
19323 : 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19324 : : {
19325 : 0 : if (integer_zerop (_p2))
19326 : : {
19327 : 0 : {
19328 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19329 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_PARITYLL);
19330 : 0 : if (res) return res;
19331 : : }
19332 : : }
19333 : : }
19334 : : }
19335 : : break;
19336 : 3 : case CFN_BUILT_IN_BSWAP16:
19337 : 3 : if (call_expr_nargs (_p1) == 1)
19338 : : {
19339 : 3 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19340 : 3 : switch (TREE_CODE (_q50))
19341 : : {
19342 : 0 : CASE_CONVERT:
19343 : 0 : {
19344 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19345 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19346 : : {
19347 : 0 : if (integer_zerop (_p2))
19348 : : {
19349 : 0 : {
19350 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19351 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP16);
19352 : 0 : if (res) return res;
19353 : : }
19354 : : }
19355 : : }
19356 : : break;
19357 : : }
19358 : 3 : default:;
19359 : : }
19360 : 3 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19361 : : {
19362 : 1 : if (integer_zerop (_p2))
19363 : : {
19364 : 1 : {
19365 : 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19366 : 1 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP16);
19367 : 1 : if (res) return res;
19368 : : }
19369 : : }
19370 : : }
19371 : : }
19372 : : break;
19373 : 2 : case CFN_BUILT_IN_BSWAP32:
19374 : 2 : if (call_expr_nargs (_p1) == 1)
19375 : : {
19376 : 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19377 : 2 : switch (TREE_CODE (_q50))
19378 : : {
19379 : 0 : CASE_CONVERT:
19380 : 0 : {
19381 : 0 : tree _q60 = TREE_OPERAND (_q50, 0);
19382 : 0 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19383 : : {
19384 : 0 : if (integer_zerop (_p2))
19385 : : {
19386 : 0 : {
19387 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19388 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP32);
19389 : 0 : if (res) return res;
19390 : : }
19391 : : }
19392 : : }
19393 : : break;
19394 : : }
19395 : 2 : default:;
19396 : : }
19397 : 2 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19398 : : {
19399 : 1 : if (integer_zerop (_p2))
19400 : : {
19401 : 1 : {
19402 : 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19403 : 1 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP32);
19404 : 1 : if (res) return res;
19405 : : }
19406 : : }
19407 : : }
19408 : : }
19409 : : break;
19410 : 2 : case CFN_BUILT_IN_BSWAP64:
19411 : 2 : if (call_expr_nargs (_p1) == 1)
19412 : : {
19413 : 2 : tree _q50 = CALL_EXPR_ARG (_p1, 0);
19414 : 2 : switch (TREE_CODE (_q50))
19415 : : {
19416 : 1 : CASE_CONVERT:
19417 : 1 : {
19418 : 1 : tree _q60 = TREE_OPERAND (_q50, 0);
19419 : 1 : if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
19420 : : {
19421 : 1 : if (integer_zerop (_p2))
19422 : : {
19423 : 1 : {
19424 : 1 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19425 : 1 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP64);
19426 : 1 : if (res) return res;
19427 : : }
19428 : : }
19429 : : }
19430 : : break;
19431 : : }
19432 : 1 : default:;
19433 : : }
19434 : 1 : if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
19435 : : {
19436 : 0 : if (integer_zerop (_p2))
19437 : : {
19438 : 0 : {
19439 : 0 : tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
19440 : 0 : tree res = generic_simplify_361 (loc, type, _p0, _p1, _p2, captures, CFN_BUILT_IN_BSWAP64);
19441 : 0 : if (res) return res;
19442 : : }
19443 : : }
19444 : : }
19445 : : }
19446 : : break;
19447 : : default:;
19448 : : }
19449 : : break;
19450 : : default:;
19451 : : }
19452 : : }
19453 : : break;
19454 : : }
19455 : 7 : case LTGT_EXPR:
19456 : 7 : {
19457 : 7 : tree _q20 = TREE_OPERAND (_p0, 0);
19458 : 7 : tree _q21 = TREE_OPERAND (_p0, 1);
19459 : 7 : if (zerop (_q21))
19460 : : {
19461 : 0 : switch (TREE_CODE (_p2))
19462 : : {
19463 : 0 : case NEGATE_EXPR:
19464 : 0 : {
19465 : 0 : tree _q60 = TREE_OPERAND (_p2, 0);
19466 : 0 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
19467 : : {
19468 : 0 : {
19469 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
19470 : 0 : const enum tree_code cmp = LTGT_EXPR;
19471 : 0 : if (!HONOR_SIGNED_ZEROS (type)
19472 : 0 : && bitwise_equal_p (captures[0], captures[1])
19473 : : )
19474 : : {
19475 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1813;
19476 : 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1813;
19477 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1813;
19478 : 0 : {
19479 : 0 : tree _r;
19480 : 0 : _r = captures[1];
19481 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1020, __FILE__, __LINE__, true);
19482 : 0 : return _r;
19483 : : }
19484 : 0 : next_after_fail1813:;
19485 : : }
19486 : : }
19487 : : }
19488 : : break;
19489 : : }
19490 : 0 : default:;
19491 : : }
19492 : 0 : if (integer_zerop (_p2))
19493 : : {
19494 : 0 : {
19495 : 0 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
19496 : 0 : const enum tree_code cmp = LTGT_EXPR;
19497 : 0 : if (!HONOR_SIGNED_ZEROS (type)
19498 : 0 : && bitwise_equal_p (captures[0], captures[1])
19499 : : )
19500 : : {
19501 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1814;
19502 : 0 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1814;
19503 : 0 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1814;
19504 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1814;
19505 : 0 : {
19506 : 0 : tree _r;
19507 : 0 : _r = captures[1];
19508 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
19509 : 0 : return _r;
19510 : : }
19511 : 0 : next_after_fail1814:;
19512 : : }
19513 : : }
19514 : : }
19515 : : }
19516 : 7 : switch (TREE_CODE (_q20))
19517 : : {
19518 : 0 : case MINUS_EXPR:
19519 : 0 : {
19520 : 0 : tree _q30 = TREE_OPERAND (_q20, 0);
19521 : 0 : tree _q31 = TREE_OPERAND (_q20, 1);
19522 : 0 : if (zerop (_q21))
19523 : : {
19524 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
19525 : : {
19526 : 0 : switch (TREE_CODE (_p2))
19527 : : {
19528 : 0 : case MINUS_EXPR:
19529 : 0 : {
19530 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
19531 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
19532 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
19533 : : {
19534 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
19535 : : {
19536 : 0 : {
19537 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
19538 : 0 : const enum tree_code cmp = LTGT_EXPR;
19539 : 0 : if (!HONOR_SIGNED_ZEROS (type)
19540 : : )
19541 : : {
19542 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1815;
19543 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1815;
19544 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1815;
19545 : 0 : {
19546 : 0 : tree _r;
19547 : 0 : _r = captures[0];
19548 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
19549 : 0 : return _r;
19550 : : }
19551 : 0 : next_after_fail1815:;
19552 : : }
19553 : : }
19554 : : }
19555 : : }
19556 : : break;
19557 : : }
19558 : : default:;
19559 : : }
19560 : : }
19561 : : }
19562 : 0 : if (integer_zerop (_q21))
19563 : : {
19564 : 0 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
19565 : : {
19566 : 0 : if (integer_zerop (_p2))
19567 : : {
19568 : 0 : {
19569 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
19570 : 0 : tree res = generic_simplify_360 (loc, type, _p0, _p1, _p2, captures, LTGT_EXPR);
19571 : 0 : if (res) return res;
19572 : : }
19573 : : }
19574 : : }
19575 : : }
19576 : : break;
19577 : : }
19578 : : default:;
19579 : : }
19580 : : break;
19581 : : }
19582 : 554815 : case GE_EXPR:
19583 : 554815 : {
19584 : 554815 : tree _q20 = TREE_OPERAND (_p0, 0);
19585 : 554815 : tree _q21 = TREE_OPERAND (_p0, 1);
19586 : 554815 : switch (TREE_CODE (_q20))
19587 : : {
19588 : 66008 : CASE_CONVERT:
19589 : 66008 : {
19590 : 66008 : tree _q30 = TREE_OPERAND (_q20, 0);
19591 : 66008 : if (zerop (_q21))
19592 : : {
19593 : 35270 : switch (TREE_CODE (_p2))
19594 : : {
19595 : 13 : case NEGATE_EXPR:
19596 : 13 : {
19597 : 13 : tree _q70 = TREE_OPERAND (_p2, 0);
19598 : 13 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
19599 : : {
19600 : 13 : {
19601 : 13 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
19602 : 13 : const enum tree_code cmp = GE_EXPR;
19603 : 13 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
19604 : 13 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
19605 : 0 : && element_precision (captures[1])
19606 : 0 : <= element_precision (captures[0])
19607 : 13 : && bitwise_equal_p (captures[1], captures[2])
19608 : : )
19609 : : {
19610 : 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
19611 : : )
19612 : : {
19613 : 0 : {
19614 : 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
19615 : 0 : if (types_match (captures[0], stype)
19616 : : )
19617 : : {
19618 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1816;
19619 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1816;
19620 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1816;
19621 : 0 : {
19622 : 0 : tree res_op0;
19623 : 0 : res_op0 = captures[0];
19624 : 0 : tree _r;
19625 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19626 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1025, __FILE__, __LINE__, true);
19627 : 0 : return _r;
19628 : : }
19629 : 13 : next_after_fail1816:;
19630 : : }
19631 : : else
19632 : : {
19633 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1817;
19634 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1817;
19635 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1817;
19636 : 0 : {
19637 : 0 : tree res_op0;
19638 : 0 : {
19639 : 0 : tree _o1[1], _r1;
19640 : 0 : _o1[0] = captures[2];
19641 : 0 : if (TREE_TYPE (_o1[0]) != stype)
19642 : : {
19643 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
19644 : : }
19645 : : else
19646 : : _r1 = _o1[0];
19647 : 0 : res_op0 = _r1;
19648 : : }
19649 : 0 : tree _r;
19650 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19651 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1026, __FILE__, __LINE__, true);
19652 : 0 : return _r;
19653 : : }
19654 : 13 : next_after_fail1817:;
19655 : : }
19656 : : }
19657 : : }
19658 : : else
19659 : : {
19660 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1818;
19661 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1818;
19662 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1818;
19663 : 0 : {
19664 : 0 : tree res_op0;
19665 : 0 : res_op0 = captures[2];
19666 : 0 : tree _r;
19667 : 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
19668 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1027, __FILE__, __LINE__, true);
19669 : 0 : return _r;
19670 : : }
19671 : 13 : next_after_fail1818:;
19672 : : }
19673 : : }
19674 : : }
19675 : : }
19676 : : break;
19677 : : }
19678 : : default:;
19679 : : }
19680 : : }
19681 : : break;
19682 : : }
19683 : 554815 : default:;
19684 : : }
19685 : 554815 : if (zerop (_q21))
19686 : : {
19687 : 135242 : switch (TREE_CODE (_p2))
19688 : : {
19689 : 30769 : case NEGATE_EXPR:
19690 : 30769 : {
19691 : 30769 : tree _q60 = TREE_OPERAND (_p2, 0);
19692 : 30769 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
19693 : : {
19694 : 30763 : {
19695 : 30763 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
19696 : 30763 : const enum tree_code cmp = GE_EXPR;
19697 : 30763 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
19698 : 30755 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
19699 : 61510 : && element_precision (captures[1])
19700 : 30755 : <= element_precision (captures[0])
19701 : 61518 : && bitwise_equal_p (captures[1], captures[2])
19702 : : )
19703 : : {
19704 : 30657 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
19705 : : )
19706 : : {
19707 : 46 : {
19708 : 46 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
19709 : 46 : if (types_match (captures[0], stype)
19710 : : )
19711 : : {
19712 : 13 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1819;
19713 : 13 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1819;
19714 : 13 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1819;
19715 : 13 : {
19716 : 13 : tree res_op0;
19717 : 13 : res_op0 = captures[0];
19718 : 13 : tree _r;
19719 : 13 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19720 : 13 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1025, __FILE__, __LINE__, true);
19721 : 13 : return _r;
19722 : : }
19723 : 106 : next_after_fail1819:;
19724 : : }
19725 : : else
19726 : : {
19727 : 33 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1820;
19728 : 33 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1820;
19729 : 33 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1820;
19730 : 33 : {
19731 : 33 : tree res_op0;
19732 : 33 : {
19733 : 33 : tree _o1[1], _r1;
19734 : 33 : _o1[0] = captures[2];
19735 : 33 : if (TREE_TYPE (_o1[0]) != stype)
19736 : : {
19737 : 33 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
19738 : : }
19739 : : else
19740 : : _r1 = _o1[0];
19741 : 33 : res_op0 = _r1;
19742 : : }
19743 : 33 : tree _r;
19744 : 33 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19745 : 33 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1026, __FILE__, __LINE__, true);
19746 : 33 : return _r;
19747 : : }
19748 : 106 : next_after_fail1820:;
19749 : : }
19750 : : }
19751 : : }
19752 : : else
19753 : : {
19754 : 30611 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1821;
19755 : 30611 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1821;
19756 : 30611 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1821;
19757 : 30611 : {
19758 : 30611 : tree res_op0;
19759 : 30611 : res_op0 = captures[2];
19760 : 30611 : tree _r;
19761 : 30611 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
19762 : 30611 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1027, __FILE__, __LINE__, true);
19763 : 30611 : return _r;
19764 : : }
19765 : 106 : next_after_fail1821:;
19766 : : }
19767 : : }
19768 : : }
19769 : : }
19770 : : break;
19771 : : }
19772 : : default:;
19773 : : }
19774 : : }
19775 : 524158 : switch (TREE_CODE (_q20))
19776 : : {
19777 : 31421 : case MINUS_EXPR:
19778 : 31421 : {
19779 : 31421 : tree _q30 = TREE_OPERAND (_q20, 0);
19780 : 31421 : tree _q31 = TREE_OPERAND (_q20, 1);
19781 : 31421 : if (zerop (_q21))
19782 : : {
19783 : 30901 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
19784 : : {
19785 : 1 : switch (TREE_CODE (_p2))
19786 : : {
19787 : 1 : case MINUS_EXPR:
19788 : 1 : {
19789 : 1 : tree _q80 = TREE_OPERAND (_p2, 0);
19790 : 1 : tree _q81 = TREE_OPERAND (_p2, 1);
19791 : 1 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
19792 : : {
19793 : 1 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
19794 : : {
19795 : 1 : {
19796 : 1 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
19797 : 1 : const enum tree_code cmp = GE_EXPR;
19798 : 1 : if (!HONOR_SIGNED_ZEROS (type)
19799 : 1 : && !TYPE_UNSIGNED (type)
19800 : : )
19801 : : {
19802 : 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1822;
19803 : 1 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1822;
19804 : 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1822;
19805 : 1 : {
19806 : 1 : tree res_op0;
19807 : 1 : res_op0 = captures[0];
19808 : 1 : tree _r;
19809 : 1 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
19810 : 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
19811 : 1 : return _r;
19812 : : }
19813 : 0 : next_after_fail1822:;
19814 : : }
19815 : : }
19816 : : }
19817 : : }
19818 : : break;
19819 : : }
19820 : : default:;
19821 : : }
19822 : : }
19823 : : }
19824 : : break;
19825 : : }
19826 : 524157 : default:;
19827 : : }
19828 : 524157 : if (integer_zerop (_q21))
19829 : : {
19830 : 104033 : switch (TREE_CODE (_p1))
19831 : : {
19832 : 65 : case BIT_NOT_EXPR:
19833 : 65 : {
19834 : 65 : tree _q50 = TREE_OPERAND (_p1, 0);
19835 : 65 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
19836 : : {
19837 : 9 : {
19838 : 9 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
19839 : 9 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
19840 : 9 : if (res) return res;
19841 : : }
19842 : : }
19843 : : break;
19844 : : }
19845 : 104024 : default:;
19846 : : }
19847 : 104024 : switch (TREE_CODE (_p2))
19848 : : {
19849 : 30 : case BIT_NOT_EXPR:
19850 : 30 : {
19851 : 30 : tree _q60 = TREE_OPERAND (_p2, 0);
19852 : 30 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
19853 : : {
19854 : 9 : {
19855 : 9 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
19856 : 9 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
19857 : 9 : if (res) return res;
19858 : : }
19859 : : }
19860 : : break;
19861 : : }
19862 : : default:;
19863 : : }
19864 : : }
19865 : : break;
19866 : : }
19867 : 802962 : case GT_EXPR:
19868 : 802962 : {
19869 : 802962 : tree _q20 = TREE_OPERAND (_p0, 0);
19870 : 802962 : tree _q21 = TREE_OPERAND (_p0, 1);
19871 : 802962 : switch (TREE_CODE (_q20))
19872 : : {
19873 : 89878 : CASE_CONVERT:
19874 : 89878 : {
19875 : 89878 : tree _q30 = TREE_OPERAND (_q20, 0);
19876 : 89878 : if (zerop (_q21))
19877 : : {
19878 : 1960 : switch (TREE_CODE (_p2))
19879 : : {
19880 : 20 : case NEGATE_EXPR:
19881 : 20 : {
19882 : 20 : tree _q70 = TREE_OPERAND (_p2, 0);
19883 : 20 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
19884 : : {
19885 : 0 : {
19886 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
19887 : 0 : const enum tree_code cmp = GT_EXPR;
19888 : 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
19889 : 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
19890 : 0 : && element_precision (captures[1])
19891 : 0 : <= element_precision (captures[0])
19892 : 0 : && bitwise_equal_p (captures[1], captures[2])
19893 : : )
19894 : : {
19895 : 0 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
19896 : : )
19897 : : {
19898 : 0 : {
19899 : 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
19900 : 0 : if (types_match (captures[0], stype)
19901 : : )
19902 : : {
19903 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1823;
19904 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1823;
19905 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1823;
19906 : 0 : {
19907 : 0 : tree res_op0;
19908 : 0 : res_op0 = captures[0];
19909 : 0 : tree _r;
19910 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19911 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1025, __FILE__, __LINE__, true);
19912 : 0 : return _r;
19913 : : }
19914 : 0 : next_after_fail1823:;
19915 : : }
19916 : : else
19917 : : {
19918 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1824;
19919 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1824;
19920 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1824;
19921 : 0 : {
19922 : 0 : tree res_op0;
19923 : 0 : {
19924 : 0 : tree _o1[1], _r1;
19925 : 0 : _o1[0] = captures[2];
19926 : 0 : if (TREE_TYPE (_o1[0]) != stype)
19927 : : {
19928 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
19929 : : }
19930 : : else
19931 : : _r1 = _o1[0];
19932 : 0 : res_op0 = _r1;
19933 : : }
19934 : 0 : tree _r;
19935 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
19936 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1026, __FILE__, __LINE__, true);
19937 : 0 : return _r;
19938 : : }
19939 : 0 : next_after_fail1824:;
19940 : : }
19941 : : }
19942 : : }
19943 : : else
19944 : : {
19945 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1825;
19946 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1825;
19947 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1825;
19948 : 0 : {
19949 : 0 : tree res_op0;
19950 : 0 : res_op0 = captures[2];
19951 : 0 : tree _r;
19952 : 0 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
19953 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1027, __FILE__, __LINE__, true);
19954 : 0 : return _r;
19955 : : }
19956 : 0 : next_after_fail1825:;
19957 : : }
19958 : : }
19959 : : }
19960 : : }
19961 : : break;
19962 : : }
19963 : : default:;
19964 : : }
19965 : : }
19966 : : break;
19967 : : }
19968 : 802962 : default:;
19969 : : }
19970 : 802962 : if (zerop (_q21))
19971 : : {
19972 : 187864 : switch (TREE_CODE (_p2))
19973 : : {
19974 : 318 : case NEGATE_EXPR:
19975 : 318 : {
19976 : 318 : tree _q60 = TREE_OPERAND (_p2, 0);
19977 : 318 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
19978 : : {
19979 : 128 : {
19980 : 128 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
19981 : 128 : const enum tree_code cmp = GT_EXPR;
19982 : 128 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
19983 : 96 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
19984 : 192 : && element_precision (captures[1])
19985 : 96 : <= element_precision (captures[0])
19986 : 224 : && bitwise_equal_p (captures[1], captures[2])
19987 : : )
19988 : : {
19989 : 91 : if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
19990 : : )
19991 : : {
19992 : 0 : {
19993 : 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
19994 : 0 : if (types_match (captures[0], stype)
19995 : : )
19996 : : {
19997 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1826;
19998 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1826;
19999 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1826;
20000 : 0 : {
20001 : 0 : tree res_op0;
20002 : 0 : res_op0 = captures[0];
20003 : 0 : tree _r;
20004 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
20005 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1025, __FILE__, __LINE__, true);
20006 : 0 : return _r;
20007 : : }
20008 : 37 : next_after_fail1826:;
20009 : : }
20010 : : else
20011 : : {
20012 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1827;
20013 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1827;
20014 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1827;
20015 : 0 : {
20016 : 0 : tree res_op0;
20017 : 0 : {
20018 : 0 : tree _o1[1], _r1;
20019 : 0 : _o1[0] = captures[2];
20020 : 0 : if (TREE_TYPE (_o1[0]) != stype)
20021 : : {
20022 : 0 : _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
20023 : : }
20024 : : else
20025 : : _r1 = _o1[0];
20026 : 0 : res_op0 = _r1;
20027 : : }
20028 : 0 : tree _r;
20029 : 0 : _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
20030 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1026, __FILE__, __LINE__, true);
20031 : 0 : return _r;
20032 : : }
20033 : 37 : next_after_fail1827:;
20034 : : }
20035 : : }
20036 : : }
20037 : : else
20038 : : {
20039 : 91 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1828;
20040 : 91 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1828;
20041 : 91 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1828;
20042 : 91 : {
20043 : 91 : tree res_op0;
20044 : 91 : res_op0 = captures[2];
20045 : 91 : tree _r;
20046 : 91 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
20047 : 91 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1027, __FILE__, __LINE__, true);
20048 : 91 : return _r;
20049 : : }
20050 : 37 : next_after_fail1828:;
20051 : : }
20052 : : }
20053 : : }
20054 : : }
20055 : : break;
20056 : : }
20057 : : default:;
20058 : : }
20059 : : }
20060 : 802871 : switch (TREE_CODE (_q20))
20061 : : {
20062 : 971 : case MINUS_EXPR:
20063 : 971 : {
20064 : 971 : tree _q30 = TREE_OPERAND (_q20, 0);
20065 : 971 : tree _q31 = TREE_OPERAND (_q20, 1);
20066 : 971 : if (zerop (_q21))
20067 : : {
20068 : 165 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
20069 : : {
20070 : 15 : switch (TREE_CODE (_p2))
20071 : : {
20072 : 9 : case MINUS_EXPR:
20073 : 9 : {
20074 : 9 : tree _q80 = TREE_OPERAND (_p2, 0);
20075 : 9 : tree _q81 = TREE_OPERAND (_p2, 1);
20076 : 9 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
20077 : : {
20078 : 9 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
20079 : : {
20080 : 9 : {
20081 : 9 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
20082 : 9 : const enum tree_code cmp = GT_EXPR;
20083 : 9 : if (!HONOR_SIGNED_ZEROS (type)
20084 : 9 : && !TYPE_UNSIGNED (type)
20085 : : )
20086 : : {
20087 : 9 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1829;
20088 : 9 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1829;
20089 : 9 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1829;
20090 : 9 : {
20091 : 9 : tree res_op0;
20092 : 9 : res_op0 = captures[0];
20093 : 9 : tree _r;
20094 : 9 : _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
20095 : 9 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
20096 : 9 : return _r;
20097 : : }
20098 : 0 : next_after_fail1829:;
20099 : : }
20100 : : }
20101 : : }
20102 : : }
20103 : : break;
20104 : : }
20105 : : default:;
20106 : : }
20107 : : }
20108 : : }
20109 : : break;
20110 : : }
20111 : : default:;
20112 : : }
20113 : : break;
20114 : : }
20115 : 1335554 : case LE_EXPR:
20116 : 1335554 : {
20117 : 1335554 : tree _q20 = TREE_OPERAND (_p0, 0);
20118 : 1335554 : tree _q21 = TREE_OPERAND (_p0, 1);
20119 : 1335554 : switch (TREE_CODE (_q20))
20120 : : {
20121 : 141985 : CASE_CONVERT:
20122 : 141985 : {
20123 : 141985 : tree _q30 = TREE_OPERAND (_q20, 0);
20124 : 141985 : if (zerop (_q21))
20125 : : {
20126 : 1616 : switch (TREE_CODE (_p2))
20127 : : {
20128 : 0 : case NEGATE_EXPR:
20129 : 0 : {
20130 : 0 : tree _q70 = TREE_OPERAND (_p2, 0);
20131 : 0 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
20132 : : {
20133 : 0 : {
20134 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
20135 : 0 : const enum tree_code cmp = LE_EXPR;
20136 : 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
20137 : 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
20138 : 0 : && element_precision (captures[1])
20139 : 0 : <= element_precision (captures[0])
20140 : 0 : && bitwise_equal_p (captures[1], captures[2])
20141 : : )
20142 : : {
20143 : 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
20144 : 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
20145 : 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
20146 : : )
20147 : : {
20148 : 0 : {
20149 : 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
20150 : 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
20151 : 0 : if (types_match (captures[0], stype)
20152 : : )
20153 : : {
20154 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1830;
20155 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1830;
20156 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1830;
20157 : 0 : {
20158 : 0 : tree res_op0;
20159 : 0 : {
20160 : 0 : tree _o1[1], _r1;
20161 : 0 : {
20162 : 0 : tree _o2[1], _r2;
20163 : 0 : _o2[0] = captures[0];
20164 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20165 : 0 : _o1[0] = _r2;
20166 : : }
20167 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20168 : 0 : res_op0 = _r1;
20169 : : }
20170 : 0 : tree _r;
20171 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20172 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
20173 : 0 : return _r;
20174 : : }
20175 : 0 : next_after_fail1830:;
20176 : : }
20177 : : else
20178 : : {
20179 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1831;
20180 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1831;
20181 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1831;
20182 : 0 : {
20183 : 0 : tree res_op0;
20184 : 0 : {
20185 : 0 : tree _o1[1], _r1;
20186 : 0 : {
20187 : 0 : tree _o2[1], _r2;
20188 : 0 : {
20189 : 0 : tree _o3[1], _r3;
20190 : 0 : _o3[0] = captures[2];
20191 : 0 : if (TREE_TYPE (_o3[0]) != stype)
20192 : : {
20193 : 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
20194 : : }
20195 : : else
20196 : : _r3 = _o3[0];
20197 : 0 : _o2[0] = _r3;
20198 : : }
20199 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20200 : 0 : _o1[0] = _r2;
20201 : : }
20202 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20203 : 0 : res_op0 = _r1;
20204 : : }
20205 : 0 : tree _r;
20206 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20207 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1030, __FILE__, __LINE__, true);
20208 : 0 : return _r;
20209 : : }
20210 : 0 : next_after_fail1831:;
20211 : : }
20212 : : }
20213 : : }
20214 : : else
20215 : : {
20216 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1832;
20217 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1832;
20218 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1832;
20219 : 0 : {
20220 : 0 : tree res_op0;
20221 : 0 : {
20222 : 0 : tree _o1[1], _r1;
20223 : 0 : {
20224 : 0 : tree _o2[1], _r2;
20225 : 0 : _o2[0] = captures[2];
20226 : 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
20227 : 0 : _o1[0] = _r2;
20228 : : }
20229 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20230 : 0 : res_op0 = _r1;
20231 : : }
20232 : 0 : tree _r;
20233 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20234 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1031, __FILE__, __LINE__, true);
20235 : 0 : return _r;
20236 : : }
20237 : 0 : next_after_fail1832:;
20238 : : }
20239 : : }
20240 : : }
20241 : : }
20242 : : break;
20243 : : }
20244 : : default:;
20245 : : }
20246 : : }
20247 : : break;
20248 : : }
20249 : 1335554 : default:;
20250 : : }
20251 : 1335554 : if (zerop (_q21))
20252 : : {
20253 : 110161 : switch (TREE_CODE (_p2))
20254 : : {
20255 : 7 : case NEGATE_EXPR:
20256 : 7 : {
20257 : 7 : tree _q60 = TREE_OPERAND (_p2, 0);
20258 : 7 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
20259 : : {
20260 : 7 : {
20261 : 7 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
20262 : 7 : const enum tree_code cmp = LE_EXPR;
20263 : 7 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
20264 : 7 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
20265 : 14 : && element_precision (captures[1])
20266 : 7 : <= element_precision (captures[0])
20267 : 14 : && bitwise_equal_p (captures[1], captures[2])
20268 : : )
20269 : : {
20270 : 14 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
20271 : 7 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
20272 : 7 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
20273 : : )
20274 : : {
20275 : 7 : {
20276 : 7 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
20277 : 7 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
20278 : 7 : if (types_match (captures[0], stype)
20279 : : )
20280 : : {
20281 : 7 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1833;
20282 : 7 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1833;
20283 : 7 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1833;
20284 : 7 : {
20285 : 7 : tree res_op0;
20286 : 7 : {
20287 : 7 : tree _o1[1], _r1;
20288 : 7 : {
20289 : 7 : tree _o2[1], _r2;
20290 : 7 : _o2[0] = captures[0];
20291 : 7 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20292 : 7 : _o1[0] = _r2;
20293 : : }
20294 : 7 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20295 : 7 : res_op0 = _r1;
20296 : : }
20297 : 7 : tree _r;
20298 : 7 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20299 : 7 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
20300 : 7 : return _r;
20301 : : }
20302 : 0 : next_after_fail1833:;
20303 : : }
20304 : : else
20305 : : {
20306 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1834;
20307 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1834;
20308 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1834;
20309 : 0 : {
20310 : 0 : tree res_op0;
20311 : 0 : {
20312 : 0 : tree _o1[1], _r1;
20313 : 0 : {
20314 : 0 : tree _o2[1], _r2;
20315 : 0 : {
20316 : 0 : tree _o3[1], _r3;
20317 : 0 : _o3[0] = captures[2];
20318 : 0 : if (TREE_TYPE (_o3[0]) != stype)
20319 : : {
20320 : 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
20321 : : }
20322 : : else
20323 : : _r3 = _o3[0];
20324 : 0 : _o2[0] = _r3;
20325 : : }
20326 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20327 : 0 : _o1[0] = _r2;
20328 : : }
20329 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20330 : 0 : res_op0 = _r1;
20331 : : }
20332 : 0 : tree _r;
20333 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20334 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1030, __FILE__, __LINE__, true);
20335 : 0 : return _r;
20336 : : }
20337 : 0 : next_after_fail1834:;
20338 : : }
20339 : : }
20340 : : }
20341 : : else
20342 : : {
20343 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1835;
20344 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1835;
20345 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1835;
20346 : 0 : {
20347 : 0 : tree res_op0;
20348 : 0 : {
20349 : 0 : tree _o1[1], _r1;
20350 : 0 : {
20351 : 0 : tree _o2[1], _r2;
20352 : 0 : _o2[0] = captures[2];
20353 : 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
20354 : 0 : _o1[0] = _r2;
20355 : : }
20356 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20357 : 0 : res_op0 = _r1;
20358 : : }
20359 : 0 : tree _r;
20360 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20361 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1031, __FILE__, __LINE__, true);
20362 : 0 : return _r;
20363 : : }
20364 : 0 : next_after_fail1835:;
20365 : : }
20366 : : }
20367 : : }
20368 : : }
20369 : : break;
20370 : : }
20371 : : default:;
20372 : : }
20373 : : }
20374 : 1335547 : switch (TREE_CODE (_q20))
20375 : : {
20376 : 198 : case MINUS_EXPR:
20377 : 198 : {
20378 : 198 : tree _q30 = TREE_OPERAND (_q20, 0);
20379 : 198 : tree _q31 = TREE_OPERAND (_q20, 1);
20380 : 198 : if (zerop (_q21))
20381 : : {
20382 : 153 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
20383 : : {
20384 : 0 : switch (TREE_CODE (_p2))
20385 : : {
20386 : 0 : case MINUS_EXPR:
20387 : 0 : {
20388 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
20389 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
20390 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
20391 : : {
20392 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
20393 : : {
20394 : 0 : {
20395 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
20396 : 0 : const enum tree_code cmp = LE_EXPR;
20397 : 0 : if (!HONOR_SIGNED_ZEROS (type)
20398 : 0 : && !TYPE_UNSIGNED (type)
20399 : : )
20400 : : {
20401 : 0 : if (ANY_INTEGRAL_TYPE_P (type)
20402 : 0 : && !TYPE_OVERFLOW_WRAPS (type)
20403 : : )
20404 : : {
20405 : 0 : {
20406 : 0 : tree utype = unsigned_type_for (type);
20407 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1836;
20408 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1836;
20409 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1836;
20410 : 0 : {
20411 : 0 : tree res_op0;
20412 : 0 : {
20413 : 0 : tree _o1[1], _r1;
20414 : 0 : {
20415 : 0 : tree _o2[1], _r2;
20416 : 0 : _o2[0] = captures[0];
20417 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20418 : 0 : _o1[0] = _r2;
20419 : : }
20420 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20421 : 0 : res_op0 = _r1;
20422 : : }
20423 : 0 : tree _r;
20424 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20425 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1032, __FILE__, __LINE__, true);
20426 : 0 : return _r;
20427 : : }
20428 : 0 : next_after_fail1836:;
20429 : : }
20430 : : }
20431 : : else
20432 : : {
20433 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1837;
20434 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1837;
20435 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1837;
20436 : 0 : {
20437 : 0 : tree res_op0;
20438 : 0 : {
20439 : 0 : tree _o1[1], _r1;
20440 : 0 : _o1[0] = captures[0];
20441 : 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20442 : 0 : res_op0 = _r1;
20443 : : }
20444 : 0 : tree _r;
20445 : 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
20446 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1033, __FILE__, __LINE__, true);
20447 : 0 : return _r;
20448 : : }
20449 : 0 : next_after_fail1837:;
20450 : : }
20451 : : }
20452 : : }
20453 : : }
20454 : : }
20455 : : break;
20456 : : }
20457 : : default:;
20458 : : }
20459 : : }
20460 : : }
20461 : : break;
20462 : : }
20463 : : default:;
20464 : : }
20465 : : break;
20466 : : }
20467 : 1487126 : case LT_EXPR:
20468 : 1487126 : {
20469 : 1487126 : tree _q20 = TREE_OPERAND (_p0, 0);
20470 : 1487126 : tree _q21 = TREE_OPERAND (_p0, 1);
20471 : 1487126 : switch (TREE_CODE (_q20))
20472 : : {
20473 : 91958 : CASE_CONVERT:
20474 : 91958 : {
20475 : 91958 : tree _q30 = TREE_OPERAND (_q20, 0);
20476 : 91958 : if (zerop (_q21))
20477 : : {
20478 : 25298 : switch (TREE_CODE (_p2))
20479 : : {
20480 : 8 : case NEGATE_EXPR:
20481 : 8 : {
20482 : 8 : tree _q70 = TREE_OPERAND (_p2, 0);
20483 : 8 : if ((_q70 == _p1 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p1, 0) && types_match (_q70, _p1)))
20484 : : {
20485 : 0 : {
20486 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
20487 : 0 : const enum tree_code cmp = LT_EXPR;
20488 : 0 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
20489 : 0 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
20490 : 0 : && element_precision (captures[1])
20491 : 0 : <= element_precision (captures[0])
20492 : 0 : && bitwise_equal_p (captures[1], captures[2])
20493 : : )
20494 : : {
20495 : 0 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
20496 : 0 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
20497 : 0 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
20498 : : )
20499 : : {
20500 : 0 : {
20501 : 0 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
20502 : 0 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
20503 : 0 : if (types_match (captures[0], stype)
20504 : : )
20505 : : {
20506 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1838;
20507 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1838;
20508 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1838;
20509 : 0 : {
20510 : 0 : tree res_op0;
20511 : 0 : {
20512 : 0 : tree _o1[1], _r1;
20513 : 0 : {
20514 : 0 : tree _o2[1], _r2;
20515 : 0 : _o2[0] = captures[0];
20516 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20517 : 0 : _o1[0] = _r2;
20518 : : }
20519 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20520 : 0 : res_op0 = _r1;
20521 : : }
20522 : 0 : tree _r;
20523 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20524 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
20525 : 0 : return _r;
20526 : : }
20527 : 0 : next_after_fail1838:;
20528 : : }
20529 : : else
20530 : : {
20531 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1839;
20532 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1839;
20533 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1839;
20534 : 0 : {
20535 : 0 : tree res_op0;
20536 : 0 : {
20537 : 0 : tree _o1[1], _r1;
20538 : 0 : {
20539 : 0 : tree _o2[1], _r2;
20540 : 0 : {
20541 : 0 : tree _o3[1], _r3;
20542 : 0 : _o3[0] = captures[2];
20543 : 0 : if (TREE_TYPE (_o3[0]) != stype)
20544 : : {
20545 : 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
20546 : : }
20547 : : else
20548 : : _r3 = _o3[0];
20549 : 0 : _o2[0] = _r3;
20550 : : }
20551 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20552 : 0 : _o1[0] = _r2;
20553 : : }
20554 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20555 : 0 : res_op0 = _r1;
20556 : : }
20557 : 0 : tree _r;
20558 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20559 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1030, __FILE__, __LINE__, true);
20560 : 0 : return _r;
20561 : : }
20562 : 0 : next_after_fail1839:;
20563 : : }
20564 : : }
20565 : : }
20566 : : else
20567 : : {
20568 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1840;
20569 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1840;
20570 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1840;
20571 : 0 : {
20572 : 0 : tree res_op0;
20573 : 0 : {
20574 : 0 : tree _o1[1], _r1;
20575 : 0 : {
20576 : 0 : tree _o2[1], _r2;
20577 : 0 : _o2[0] = captures[2];
20578 : 0 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
20579 : 0 : _o1[0] = _r2;
20580 : : }
20581 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20582 : 0 : res_op0 = _r1;
20583 : : }
20584 : 0 : tree _r;
20585 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20586 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1031, __FILE__, __LINE__, true);
20587 : 0 : return _r;
20588 : : }
20589 : 0 : next_after_fail1840:;
20590 : : }
20591 : : }
20592 : : }
20593 : : }
20594 : : break;
20595 : : }
20596 : : default:;
20597 : : }
20598 : : }
20599 : : break;
20600 : : }
20601 : 1487126 : default:;
20602 : : }
20603 : 1487126 : if (zerop (_q21))
20604 : : {
20605 : 356335 : switch (TREE_CODE (_p2))
20606 : : {
20607 : 33 : case NEGATE_EXPR:
20608 : 33 : {
20609 : 33 : tree _q60 = TREE_OPERAND (_p2, 0);
20610 : 33 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
20611 : : {
20612 : 25 : {
20613 : 25 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _p1 };
20614 : 25 : const enum tree_code cmp = LT_EXPR;
20615 : 25 : if (!HONOR_SIGNED_ZEROS (TREE_TYPE (captures[1]))
20616 : 25 : && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
20617 : 50 : && element_precision (captures[1])
20618 : 25 : <= element_precision (captures[0])
20619 : 50 : && bitwise_equal_p (captures[1], captures[2])
20620 : : )
20621 : : {
20622 : 50 : if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
20623 : 25 : && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
20624 : 26 : || TYPE_UNSIGNED (TREE_TYPE (captures[2]))
20625 : : )
20626 : : {
20627 : 24 : {
20628 : 24 : tree stype = signed_type_for (TREE_TYPE (captures[2]));
20629 : 24 : tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
20630 : 24 : if (types_match (captures[0], stype)
20631 : : )
20632 : : {
20633 : 24 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1841;
20634 : 24 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1841;
20635 : 24 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1841;
20636 : 24 : {
20637 : 24 : tree res_op0;
20638 : 24 : {
20639 : 24 : tree _o1[1], _r1;
20640 : 24 : {
20641 : 24 : tree _o2[1], _r2;
20642 : 24 : _o2[0] = captures[0];
20643 : 24 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20644 : 24 : _o1[0] = _r2;
20645 : : }
20646 : 24 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20647 : 24 : res_op0 = _r1;
20648 : : }
20649 : 24 : tree _r;
20650 : 24 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20651 : 24 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
20652 : 24 : return _r;
20653 : : }
20654 : 0 : next_after_fail1841:;
20655 : : }
20656 : : else
20657 : : {
20658 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1842;
20659 : 0 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1842;
20660 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1842;
20661 : 0 : {
20662 : 0 : tree res_op0;
20663 : 0 : {
20664 : 0 : tree _o1[1], _r1;
20665 : 0 : {
20666 : 0 : tree _o2[1], _r2;
20667 : 0 : {
20668 : 0 : tree _o3[1], _r3;
20669 : 0 : _o3[0] = captures[2];
20670 : 0 : if (TREE_TYPE (_o3[0]) != stype)
20671 : : {
20672 : 0 : _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
20673 : : }
20674 : : else
20675 : : _r3 = _o3[0];
20676 : 0 : _o2[0] = _r3;
20677 : : }
20678 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20679 : 0 : _o1[0] = _r2;
20680 : : }
20681 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20682 : 0 : res_op0 = _r1;
20683 : : }
20684 : 0 : tree _r;
20685 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20686 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1030, __FILE__, __LINE__, true);
20687 : 0 : return _r;
20688 : : }
20689 : 0 : next_after_fail1842:;
20690 : : }
20691 : : }
20692 : : }
20693 : : else
20694 : : {
20695 : 1 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1843;
20696 : 1 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1843;
20697 : 1 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1843;
20698 : 1 : {
20699 : 1 : tree res_op0;
20700 : 1 : {
20701 : 1 : tree _o1[1], _r1;
20702 : 1 : {
20703 : 1 : tree _o2[1], _r2;
20704 : 1 : _o2[0] = captures[2];
20705 : 1 : _r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
20706 : 1 : _o1[0] = _r2;
20707 : : }
20708 : 1 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20709 : 1 : res_op0 = _r1;
20710 : : }
20711 : 1 : tree _r;
20712 : 1 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20713 : 1 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1031, __FILE__, __LINE__, true);
20714 : 1 : return _r;
20715 : : }
20716 : 0 : next_after_fail1843:;
20717 : : }
20718 : : }
20719 : : }
20720 : : }
20721 : : break;
20722 : : }
20723 : : default:;
20724 : : }
20725 : : }
20726 : 1487101 : switch (TREE_CODE (_q20))
20727 : : {
20728 : 10687 : case MINUS_EXPR:
20729 : 10687 : {
20730 : 10687 : tree _q30 = TREE_OPERAND (_q20, 0);
20731 : 10687 : tree _q31 = TREE_OPERAND (_q20, 1);
20732 : 10687 : if (zerop (_q21))
20733 : : {
20734 : 6960 : if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
20735 : : {
20736 : 0 : switch (TREE_CODE (_p2))
20737 : : {
20738 : 0 : case MINUS_EXPR:
20739 : 0 : {
20740 : 0 : tree _q80 = TREE_OPERAND (_p2, 0);
20741 : 0 : tree _q81 = TREE_OPERAND (_p2, 1);
20742 : 0 : if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
20743 : : {
20744 : 0 : if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
20745 : : {
20746 : 0 : {
20747 : 0 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
20748 : 0 : const enum tree_code cmp = LT_EXPR;
20749 : 0 : if (!HONOR_SIGNED_ZEROS (type)
20750 : 0 : && !TYPE_UNSIGNED (type)
20751 : : )
20752 : : {
20753 : 0 : if (ANY_INTEGRAL_TYPE_P (type)
20754 : 0 : && !TYPE_OVERFLOW_WRAPS (type)
20755 : : )
20756 : : {
20757 : 0 : {
20758 : 0 : tree utype = unsigned_type_for (type);
20759 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1844;
20760 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1844;
20761 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1844;
20762 : 0 : {
20763 : 0 : tree res_op0;
20764 : 0 : {
20765 : 0 : tree _o1[1], _r1;
20766 : 0 : {
20767 : 0 : tree _o2[1], _r2;
20768 : 0 : _o2[0] = captures[0];
20769 : 0 : _r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
20770 : 0 : _o1[0] = _r2;
20771 : : }
20772 : 0 : _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20773 : 0 : res_op0 = _r1;
20774 : : }
20775 : 0 : tree _r;
20776 : 0 : _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
20777 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1032, __FILE__, __LINE__, true);
20778 : 0 : return _r;
20779 : : }
20780 : 0 : next_after_fail1844:;
20781 : : }
20782 : : }
20783 : : else
20784 : : {
20785 : 0 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1845;
20786 : 0 : if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1845;
20787 : 0 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1845;
20788 : 0 : {
20789 : 0 : tree res_op0;
20790 : 0 : {
20791 : 0 : tree _o1[1], _r1;
20792 : 0 : _o1[0] = captures[0];
20793 : 0 : _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
20794 : 0 : res_op0 = _r1;
20795 : : }
20796 : 0 : tree _r;
20797 : 0 : _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
20798 : 0 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1033, __FILE__, __LINE__, true);
20799 : 0 : return _r;
20800 : : }
20801 : 0 : next_after_fail1845:;
20802 : : }
20803 : : }
20804 : : }
20805 : : }
20806 : : }
20807 : : break;
20808 : : }
20809 : : default:;
20810 : : }
20811 : : }
20812 : : }
20813 : : break;
20814 : : }
20815 : 1487101 : default:;
20816 : : }
20817 : 1487101 : if (integer_zerop (_q21))
20818 : : {
20819 : 297164 : switch (TREE_CODE (_p1))
20820 : : {
20821 : 21 : case BIT_NOT_EXPR:
20822 : 21 : {
20823 : 21 : tree _q50 = TREE_OPERAND (_p1, 0);
20824 : 21 : if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
20825 : : {
20826 : 13 : {
20827 : 13 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
20828 : 13 : tree res = generic_simplify_364 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
20829 : 13 : if (res) return res;
20830 : : }
20831 : : }
20832 : : break;
20833 : : }
20834 : 297151 : default:;
20835 : : }
20836 : 297151 : switch (TREE_CODE (_p2))
20837 : : {
20838 : 8 : case BIT_NOT_EXPR:
20839 : 8 : {
20840 : 8 : tree _q60 = TREE_OPERAND (_p2, 0);
20841 : 8 : if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
20842 : : {
20843 : 8 : {
20844 : 8 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
20845 : 8 : tree res = generic_simplify_365 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
20846 : 8 : if (res) return res;
20847 : : }
20848 : : }
20849 : : break;
20850 : : }
20851 : 297143 : default:;
20852 : : }
20853 : 297143 : switch (TREE_CODE (_p1))
20854 : : {
20855 : 280529 : case INTEGER_CST:
20856 : 280529 : {
20857 : 280529 : if (integer_zerop (_p2))
20858 : : {
20859 : 8606 : {
20860 : 8606 : tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
20861 : 8606 : if (integer_pow2p (captures[1])
20862 : 8606 : && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
20863 : : )
20864 : : {
20865 : 8389 : {
20866 : 8389 : int shift = element_precision (captures[0]) - wi::exact_log2 (wi::to_wide (captures[1])) - 1;
20867 : 8389 : if (shift >= 0
20868 : : )
20869 : : {
20870 : 8374 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1846;
20871 : 8374 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1846;
20872 : 8374 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1846;
20873 : 8374 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1846;
20874 : 8374 : {
20875 : 8374 : tree res_op0;
20876 : 8374 : {
20877 : 8374 : tree _o1[1], _r1;
20878 : 8374 : {
20879 : 8374 : tree _o2[2], _r2;
20880 : 8374 : _o2[0] = captures[0];
20881 : 8374 : _o2[1] = build_int_cst (integer_type_node, shift);
20882 : 8374 : _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
20883 : 8374 : _o1[0] = _r2;
20884 : : }
20885 : 8374 : if (TREE_TYPE (_o1[0]) != type)
20886 : : {
20887 : 8349 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
20888 : : }
20889 : : else
20890 : : _r1 = _o1[0];
20891 : 8374 : res_op0 = _r1;
20892 : : }
20893 : 8374 : tree res_op1;
20894 : 8374 : res_op1 = captures[1];
20895 : 8374 : tree _r;
20896 : 8374 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
20897 : 8374 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1034, __FILE__, __LINE__, true);
20898 : 8389 : return _r;
20899 : : }
20900 : : next_after_fail1846:;
20901 : : }
20902 : : else
20903 : : {
20904 : 15 : if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1847;
20905 : 15 : if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1847;
20906 : 15 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1847;
20907 : 15 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1847;
20908 : 15 : {
20909 : 15 : tree res_op0;
20910 : 15 : {
20911 : 15 : tree _o1[1], _r1;
20912 : 15 : _o1[0] = captures[0];
20913 : 15 : if (TREE_TYPE (_o1[0]) != type)
20914 : : {
20915 : 15 : _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
20916 : : }
20917 : : else
20918 : : _r1 = _o1[0];
20919 : 15 : res_op0 = _r1;
20920 : : }
20921 : 15 : tree res_op1;
20922 : 15 : res_op1 = captures[1];
20923 : 15 : tree _r;
20924 : 15 : _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
20925 : 15 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1035, __FILE__, __LINE__, true);
20926 : 15 : return _r;
20927 : : }
20928 : : next_after_fail1847:;
20929 : : }
20930 : : }
20931 : : }
20932 : : }
20933 : : }
20934 : : break;
20935 : : }
20936 : : default:;
20937 : : }
20938 : : }
20939 : : break;
20940 : : }
20941 : 10867373 : default:;
20942 : : }
20943 : 10867373 : {
20944 : 10867373 : tree _p0_pops[1];
20945 : 10867373 : if (tree_logical_inverted_value (_p0, _p0_pops))
20946 : : {
20947 : 489136 : tree _q20 = _p0_pops[0];
20948 : 489136 : if (tree_truth_valued_p (_q20))
20949 : : {
20950 : 4458 : {
20951 : 4458 : tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
20952 : 8916 : if (COND_EXPR == VEC_COND_EXPR
20953 : 4458 : || TYPE_UNSIGNED (TREE_TYPE (captures[0]))
20954 : : )
20955 : : {
20956 : 3119 : if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1848;
20957 : 46 : if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1848;
20958 : 37 : if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1848;
20959 : 37 : {
20960 : 37 : tree res_op0;
20961 : 37 : res_op0 = captures[0];
20962 : 37 : tree res_op1;
20963 : 37 : res_op1 = captures[2];
20964 : 37 : tree res_op2;
20965 : 37 : res_op2 = captures[1];
20966 : 37 : tree _r;
20967 : 37 : _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
20968 : 37 : if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1036, __FILE__, __LINE__, true);
20969 : 37 : return _r;
20970 : : }
20971 : 4421 : next_after_fail1848:;
20972 : : }
20973 : : }
20974 : : }
20975 : : }
20976 : : }
20977 : 10867336 : return NULL_TREE;
20978 : : }
20979 : : #pragma GCC diagnostic pop
|