LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - generic-match-3.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 39.9 % 6536 2607
Test Date: 2026-06-20 15:32:29 Functions: 57.4 % 61 35
Legend: Lines:     hit not hit

            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    163857876 : tree_truth_valued_p (tree t)
      11              : {
      12    163857876 :   const tree type = TREE_TYPE (t);
      13    163857876 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14    163857876 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15    158826012 :   {
      16    158826012 :     tree captures[1] ATTRIBUTE_UNUSED = { t };
      17    158826012 :     if (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1
      18              : )
      19              :       {
      20      5725812 :         {
      21      5725812 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 20, __FILE__, __LINE__, false);
      22      5725812 :           return true;
      23              :         }
      24              :       }
      25              :   }
      26    153100200 :   switch (TREE_CODE (t))
      27              :     {
      28          820 :     case LT_EXPR:
      29          820 :       {
      30          820 :         tree _p0 = TREE_OPERAND (t, 0);
      31          820 :         tree _p1 = TREE_OPERAND (t, 1);
      32          820 :         {
      33          820 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      34          820 :           {
      35          820 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      36          820 :             return true;
      37              :           }
      38              :         }
      39          708 :         break;
      40              :       }
      41          708 :     case LE_EXPR:
      42          708 :       {
      43          708 :         tree _p0 = TREE_OPERAND (t, 0);
      44          708 :         tree _p1 = TREE_OPERAND (t, 1);
      45          708 :         {
      46          708 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      47          708 :           {
      48          708 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      49          708 :             return true;
      50              :           }
      51              :         }
      52        11610 :         break;
      53              :       }
      54        11610 :     case EQ_EXPR:
      55        11610 :       {
      56        11610 :         tree _p0 = TREE_OPERAND (t, 0);
      57        11610 :         tree _p1 = TREE_OPERAND (t, 1);
      58        11610 :         {
      59        11610 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      60        11610 :           {
      61        11610 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      62        11610 :             return true;
      63              :           }
      64              :         }
      65         4459 :         break;
      66              :       }
      67         4459 :     case NE_EXPR:
      68         4459 :       {
      69         4459 :         tree _p0 = TREE_OPERAND (t, 0);
      70         4459 :         tree _p1 = TREE_OPERAND (t, 1);
      71         4459 :         {
      72         4459 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      73         4459 :           {
      74         4459 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      75         4459 :             return true;
      76              :           }
      77              :         }
      78          377 :         break;
      79              :       }
      80          377 :     case GE_EXPR:
      81          377 :       {
      82          377 :         tree _p0 = TREE_OPERAND (t, 0);
      83          377 :         tree _p1 = TREE_OPERAND (t, 1);
      84          377 :         {
      85          377 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      86          377 :           {
      87          377 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      88          377 :             return true;
      89              :           }
      90              :         }
      91       221576 :         break;
      92              :       }
      93       221576 :     case GT_EXPR:
      94       221576 :       {
      95       221576 :         tree _p0 = TREE_OPERAND (t, 0);
      96       221576 :         tree _p1 = TREE_OPERAND (t, 1);
      97       221576 :         {
      98       221576 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      99       221576 :           {
     100       221576 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     101       221576 :             return true;
     102              :           }
     103              :         }
     104       127207 :         break;
     105              :       }
     106       127207 :     case UNORDERED_EXPR:
     107       127207 :       {
     108       127207 :         tree _p0 = TREE_OPERAND (t, 0);
     109       127207 :         tree _p1 = TREE_OPERAND (t, 1);
     110       127207 :         {
     111       127207 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     112       127207 :           {
     113       127207 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     114       127207 :             return true;
     115              :           }
     116              :         }
     117           16 :         break;
     118              :       }
     119           16 :     case ORDERED_EXPR:
     120           16 :       {
     121           16 :         tree _p0 = TREE_OPERAND (t, 0);
     122           16 :         tree _p1 = TREE_OPERAND (t, 1);
     123           16 :         {
     124           16 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     125           16 :           {
     126           16 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     127           16 :             return true;
     128              :           }
     129              :         }
     130           70 :         break;
     131              :       }
     132           70 :     case UNLT_EXPR:
     133           70 :       {
     134           70 :         tree _p0 = TREE_OPERAND (t, 0);
     135           70 :         tree _p1 = TREE_OPERAND (t, 1);
     136           70 :         {
     137           70 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     138           70 :           {
     139           70 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     140           70 :             return true;
     141              :           }
     142              :         }
     143         1157 :         break;
     144              :       }
     145         1157 :     case UNLE_EXPR:
     146         1157 :       {
     147         1157 :         tree _p0 = TREE_OPERAND (t, 0);
     148         1157 :         tree _p1 = TREE_OPERAND (t, 1);
     149         1157 :         {
     150         1157 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     151         1157 :           {
     152         1157 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     153         1157 :             return true;
     154              :           }
     155              :         }
     156           70 :         break;
     157              :       }
     158           70 :     case UNGT_EXPR:
     159           70 :       {
     160           70 :         tree _p0 = TREE_OPERAND (t, 0);
     161           70 :         tree _p1 = TREE_OPERAND (t, 1);
     162           70 :         {
     163           70 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     164           70 :           {
     165           70 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     166           70 :             return true;
     167              :           }
     168              :         }
     169           70 :         break;
     170              :       }
     171           70 :     case UNGE_EXPR:
     172           70 :       {
     173           70 :         tree _p0 = TREE_OPERAND (t, 0);
     174           70 :         tree _p1 = TREE_OPERAND (t, 1);
     175           70 :         {
     176           70 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     177           70 :           {
     178           70 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     179           70 :             return true;
     180              :           }
     181              :         }
     182           84 :         break;
     183              :       }
     184           84 :     case UNEQ_EXPR:
     185           84 :       {
     186           84 :         tree _p0 = TREE_OPERAND (t, 0);
     187           84 :         tree _p1 = TREE_OPERAND (t, 1);
     188           84 :         {
     189           84 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     190           84 :           {
     191           84 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     192           84 :             return true;
     193              :           }
     194              :         }
     195           24 :         break;
     196              :       }
     197           24 :     case LTGT_EXPR:
     198           24 :       {
     199           24 :         tree _p0 = TREE_OPERAND (t, 0);
     200           24 :         tree _p1 = TREE_OPERAND (t, 1);
     201           24 :         {
     202           24 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     203           24 :           {
     204           24 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     205           24 :             return true;
     206              :           }
     207              :         }
     208          106 :         break;
     209              :       }
     210          106 :     case TRUTH_AND_EXPR:
     211          106 :       {
     212          106 :         tree _p0 = TREE_OPERAND (t, 0);
     213          106 :         tree _p1 = TREE_OPERAND (t, 1);
     214          106 :         {
     215          106 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     216          106 :           {
     217          106 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     218          106 :             return true;
     219              :           }
     220              :         }
     221          512 :         break;
     222              :       }
     223          512 :     case TRUTH_ANDIF_EXPR:
     224          512 :       {
     225          512 :         tree _p0 = TREE_OPERAND (t, 0);
     226          512 :         tree _p1 = TREE_OPERAND (t, 1);
     227          512 :         {
     228          512 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     229          512 :           {
     230          512 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     231          512 :             return true;
     232              :           }
     233              :         }
     234           53 :         break;
     235              :       }
     236           53 :     case TRUTH_OR_EXPR:
     237           53 :       {
     238           53 :         tree _p0 = TREE_OPERAND (t, 0);
     239           53 :         tree _p1 = TREE_OPERAND (t, 1);
     240           53 :         {
     241           53 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     242           53 :           {
     243           53 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     244           53 :             return true;
     245              :           }
     246              :         }
     247         1409 :         break;
     248              :       }
     249         1409 :     case TRUTH_ORIF_EXPR:
     250         1409 :       {
     251         1409 :         tree _p0 = TREE_OPERAND (t, 0);
     252         1409 :         tree _p1 = TREE_OPERAND (t, 1);
     253         1409 :         {
     254         1409 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     255         1409 :           {
     256         1409 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     257         1409 :             return true;
     258              :           }
     259              :         }
     260            0 :         break;
     261              :       }
     262            0 :     case TRUTH_XOR_EXPR:
     263            0 :       {
     264            0 :         tree _p0 = TREE_OPERAND (t, 0);
     265            0 :         tree _p1 = TREE_OPERAND (t, 1);
     266            0 :         {
     267            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     268            0 :           {
     269            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     270            0 :             return true;
     271              :           }
     272              :         }
     273       473193 :         break;
     274              :       }
     275       473193 :     case TRUTH_NOT_EXPR:
     276       473193 :       {
     277       473193 :         tree _p0 = TREE_OPERAND (t, 0);
     278       473193 :         {
     279       473193 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
     280       473193 :           {
     281       473193 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 22, __FILE__, __LINE__, false);
     282       473193 :             return true;
     283              :           }
     284              :         }
     285              :         break;
     286              :       }
     287              :     default:;
     288              :     }
     289              :   return false;
     290              : }
     291              : 
     292              : tree
     293            0 : generic_simplify_41 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     294              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     295              :  const enum tree_code ARG_UNUSED (op))
     296              : {
     297            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     298            0 :   if (INTEGRAL_TYPE_P (type)
     299            0 :  && tree_int_cst_sgn (captures[5]) > 0
     300            0 :  && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[4])) == 0
     301              : )
     302              :     {
     303            0 :       {
     304            0 :  tree t = type;
     305            0 :  if (!TYPE_OVERFLOW_WRAPS (t))
     306            0 :  t = unsigned_type_for (t);
     307            0 :  wide_int wone = wi::one (TYPE_PRECISION (type));
     308            0 :  wide_int c = wi::add (wi::to_wide (captures[3]),
     309            0 :  wi::lshift (wone, wi::to_wide (captures[5])));
     310            0 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail118;
     311            0 :           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail118;
     312            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail118;
     313            0 :           {
     314            0 :             tree res_op0;
     315            0 :             {
     316            0 :               tree _o1[2], _r1;
     317            0 :               {
     318            0 :                 tree _o2[1], _r2;
     319            0 :                 _o2[0] = captures[2];
     320            0 :                 if (TREE_TYPE (_o2[0]) != t)
     321              :                   {
     322            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
     323              :                   }
     324              :                 else
     325              :                   _r2 = _o2[0];
     326            0 :                 _o1[0] = _r2;
     327              :               }
     328            0 :               _o1[1] =  wide_int_to_tree (t, c);
     329            0 :               _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
     330            0 :               res_op0 = _r1;
     331              :             }
     332            0 :             tree _r;
     333            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     334            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 89, __FILE__, __LINE__, true);
     335            0 :             return _r;
     336              :           }
     337            0 : next_after_fail118:;
     338            0 :       }
     339              :     }
     340              :   return NULL_TREE;
     341              : }
     342              : 
     343              : tree
     344           11 : generic_simplify_53 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     345              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     346              :  const combined_fn ARG_UNUSED (PARITY))
     347              : {
     348           11 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     349           11 :   if (types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
     350              : )
     351              :     {
     352           10 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail132;
     353           10 :       {
     354           10 :         tree res_op0;
     355           10 :         {
     356           10 :           tree _o1[2], _r1;
     357           10 :           _o1[0] = captures[1];
     358           10 :           _o1[1] = captures[3];
     359           10 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     360           10 :           res_op0 = _r1;
     361              :         }
     362           10 :         tree _r;
     363           10 :         _r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
     364           10 :         if (!_r)
     365            0 :           goto next_after_fail132;
     366           10 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 100, __FILE__, __LINE__, true);
     367           10 :         return _r;
     368              :       }
     369              : next_after_fail132:;
     370              :     }
     371              :   else
     372              :     {
     373            2 :       if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     374            2 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[3]))
     375              : )
     376              :         {
     377            1 :           {
     378            1 :  tree utype = TREE_TYPE (captures[1]);
     379            1 :  if (TYPE_PRECISION (utype) < TYPE_PRECISION (TREE_TYPE (captures[3])))
     380            1 :  utype = TREE_TYPE (captures[3]);
     381            1 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail133;
     382            1 :               {
     383            1 :                 tree res_op0;
     384            1 :                 {
     385            1 :                   tree _o1[2], _r1;
     386            1 :                   {
     387            1 :                     tree _o2[1], _r2;
     388            1 :                     _o2[0] = captures[1];
     389            1 :                     if (TREE_TYPE (_o2[0]) != utype)
     390              :                       {
     391            1 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     392              :                       }
     393              :                     else
     394              :                       _r2 = _o2[0];
     395            1 :                     _o1[0] = _r2;
     396              :                   }
     397            1 :                   {
     398            1 :                     tree _o2[1], _r2;
     399            1 :                     _o2[0] = captures[3];
     400            1 :                     if (TREE_TYPE (_o2[0]) != utype)
     401              :                       {
     402            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     403              :                       }
     404              :                     else
     405              :                       _r2 = _o2[0];
     406            1 :                     _o1[1] = _r2;
     407              :                   }
     408            1 :                   _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     409            1 :                   res_op0 = _r1;
     410              :                 }
     411            1 :                 tree _r;
     412            1 :                 _r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
     413            1 :                 if (!_r)
     414            1 :                   goto next_after_fail133;
     415            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 101, __FILE__, __LINE__, true);
     416            0 :                 return _r;
     417              :               }
     418              : next_after_fail133:;
     419              :           }
     420              :         }
     421              :     }
     422              :   return NULL_TREE;
     423              : }
     424              : 
     425              : tree
     426       116486 : generic_simplify_70 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     427              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     428              : {
     429       116486 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     430       116486 :   if (!TYPE_SATURATING (type)
     431              : )
     432              :     {
     433       116486 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     434       232972 :  && !FIXED_POINT_TYPE_P (type)
     435              : )
     436              :         {
     437       116486 :           if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
     438              : )
     439              :             {
     440       115629 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail159;
     441       115629 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail159;
     442       115629 :               {
     443       115629 :                 tree res_op0;
     444       115629 :                 {
     445       115629 :                   tree _o1[1], _r1;
     446       115629 :                   _o1[0] = captures[0];
     447       115629 :                   if (TREE_TYPE (_o1[0]) != type)
     448              :                     {
     449       112969 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     450              :                     }
     451              :                   else
     452              :                     _r1 = _o1[0];
     453       115629 :                   res_op0 = _r1;
     454              :                 }
     455       115629 :                 tree _r;
     456       115629 :                 _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     457       115629 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 127, __FILE__, __LINE__, true);
     458       115629 :                 return _r;
     459              :               }
     460              : next_after_fail159:;
     461              :             }
     462              :         }
     463              :     }
     464              :   return NULL_TREE;
     465              : }
     466              : 
     467              : tree
     468            0 : generic_simplify_77 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     469              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     470              : {
     471            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     472            0 :   if (VECTOR_TYPE_P (type)
     473            0 :  && known_eq (TYPE_VECTOR_SUBPARTS (type),
     474              :  TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[3])))
     475            0 :  && (TYPE_MODE (TREE_TYPE (type))
     476            0 :  == TYPE_MODE (TREE_TYPE (TREE_TYPE (captures[3]))))
     477              : )
     478              :     {
     479            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail167;
     480            0 :       {
     481            0 :         tree res_op0;
     482            0 :         res_op0 = captures[0];
     483            0 :         tree res_op1;
     484            0 :         {
     485            0 :           tree _o1[1], _r1;
     486            0 :           {
     487            0 :             tree _o2[3], _r2;
     488            0 :             _o2[0] = captures[2];
     489            0 :             {
     490            0 :               tree _o3[1], _r3;
     491            0 :               _o3[0] = captures[3];
     492            0 :               _r3 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o3[0]), _o3[0]);
     493            0 :               _o2[1] = _r3;
     494              :             }
     495            0 :             _o2[2] = captures[4];
     496            0 :             _r2 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o2[1]), _o2[0], _o2[1], _o2[2]);
     497            0 :             _o1[0] = _r2;
     498              :           }
     499            0 :           if (TREE_TYPE (_o1[0]) != type)
     500              :             {
     501            0 :               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
     502              :             }
     503              :           else
     504              :             _r1 = _o1[0];
     505            0 :           res_op1 = _r1;
     506              :         }
     507            0 :         tree _r;
     508            0 :         _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
     509            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 135, __FILE__, __LINE__, true);
     510            0 :         return _r;
     511              :       }
     512            0 : next_after_fail167:;
     513              :     }
     514              :   return NULL_TREE;
     515              : }
     516              : 
     517              : tree
     518           95 : generic_simplify_86 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     519              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     520              : {
     521           95 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     522           95 :   if (INTEGRAL_TYPE_P (type)
     523           95 :  || (VECTOR_INTEGER_TYPE_P (type)
     524              :  && ((optimize_vectors_before_lowering_p ()
     525            1 :  && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST)
     526            0 :  || target_supports_op_p (type, TRUNC_MOD_EXPR,
     527              :  optab_vector)))
     528              : )
     529              :     {
     530           95 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail177;
     531           95 :       {
     532           95 :         tree res_op0;
     533           95 :         {
     534           95 :           tree _o1[2], _r1;
     535           95 :           _o1[0] = captures[0];
     536           95 :           _o1[1] = captures[1];
     537           95 :           _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     538           95 :           res_op0 = _r1;
     539              :         }
     540           95 :         tree _r;
     541           95 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     542           95 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 145, __FILE__, __LINE__, true);
     543           95 :         return _r;
     544              :       }
     545            0 : next_after_fail177:;
     546              :     }
     547              :   return NULL_TREE;
     548              : }
     549              : 
     550              : tree
     551            1 : generic_simplify_93 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     552              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     553              : {
     554            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     555            1 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
     556            1 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
     557              : )
     558              :     {
     559            1 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail184;
     560            1 :       {
     561            1 :         tree res_op0;
     562            1 :         {
     563            1 :           tree _o1[2], _r1;
     564            1 :           {
     565            1 :             tree _o2[1], _r2;
     566            1 :             _o2[0] = captures[3];
     567            1 :             _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
     568            1 :             _o1[0] = _r2;
     569              :           }
     570            1 :           _o1[1] = captures[0];
     571            1 :           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     572            1 :           res_op0 = _r1;
     573              :         }
     574            1 :         tree _r;
     575            1 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     576            1 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 152, __FILE__, __LINE__, true);
     577            1 :         return _r;
     578              :       }
     579            0 : next_after_fail184:;
     580              :     }
     581              :   return NULL_TREE;
     582              : }
     583              : 
     584              : tree
     585          668 : generic_simplify_101 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     586              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     587              : {
     588          668 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     589          668 :   if (!TYPE_SATURATING (type)
     590              : )
     591              :     {
     592          668 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     593         1336 :  && !FIXED_POINT_TYPE_P (type)
     594              : )
     595              :         {
     596          668 :           if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type)
     597              : )
     598              :             {
     599           28 :               if (!CONSTANT_CLASS_P (captures[2])
     600              : )
     601              :                 {
     602           28 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail194;
     603           28 :                   {
     604           28 :                     tree res_op0;
     605           28 :                     {
     606           28 :                       tree _o1[1], _r1;
     607           28 :                       _o1[0] = captures[2];
     608           28 :                       if (TREE_TYPE (_o1[0]) != type)
     609              :                         {
     610           28 :                           _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
     611              :                         }
     612              :                       else
     613              :                         _r1 = _o1[0];
     614           28 :                       res_op0 = _r1;
     615              :                     }
     616           28 :                     tree res_op1;
     617           28 :                     {
     618           28 :                       tree _o1[2], _r1;
     619           28 :                       _o1[0] = captures[0];
     620           28 :                       {
     621           28 :                         tree _o2[1], _r2;
     622           28 :                         _o2[0] = captures[1];
     623           28 :                         if (TREE_TYPE (_o2[0]) != type)
     624              :                           {
     625           28 :                             _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
     626              :                           }
     627              :                         else
     628              :                           _r2 = _o2[0];
     629           28 :                         _o1[1] = _r2;
     630              :                       }
     631           28 :                       _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     632           28 :                       if (EXPR_P (_r1))
     633            0 :                         goto next_after_fail194;
     634           28 :                       res_op1 = _r1;
     635              :                     }
     636           28 :                     tree _r;
     637           28 :                     _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
     638           28 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 161, __FILE__, __LINE__, true);
     639           28 :                     return _r;
     640              :                   }
     641              : next_after_fail194:;
     642              :                 }
     643              :             }
     644              :           else
     645              :             {
     646         1280 :               if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
     647         1280 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
     648              : )
     649              :                 {
     650            1 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail195;
     651            1 :                   {
     652            1 :                     tree res_op0;
     653            1 :                     {
     654            1 :                       tree _o1[2], _r1;
     655            1 :                       _o1[0] = captures[2];
     656            1 :                       {
     657            1 :                         tree _o2[2], _r2;
     658            1 :                         {
     659            1 :                           tree _o3[1], _r3;
     660            1 :                           _o3[0] = captures[0];
     661            1 :                           if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o1[0]))
     662              :                             {
     663            1 :                               _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
     664              :                             }
     665              :                           else
     666              :                             _r3 = _o3[0];
     667            1 :                           _o2[0] = _r3;
     668              :                         }
     669            1 :                         _o2[1] = captures[1];
     670            1 :                         _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     671            1 :                         if (EXPR_P (_r2))
     672            0 :                           goto next_after_fail195;
     673            1 :                         _o1[1] = _r2;
     674              :                       }
     675            1 :                       _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     676            1 :                       res_op0 = _r1;
     677              :                     }
     678            1 :                     tree _r;
     679            1 :                     _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
     680            1 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 162, __FILE__, __LINE__, true);
     681            1 :                     return _r;
     682              :                   }
     683              : next_after_fail195:;
     684              :                 }
     685              :               else
     686              :                 {
     687          639 :                   if (types_match (type, captures[2]) && !TYPE_OVERFLOW_SANITIZED (type)
     688              : )
     689              :                     {
     690          630 :                       {
     691          630 :  tree cst = const_binop (MINUS_EXPR, type, captures[0], captures[1]);
     692          630 :                           if (cst && !TREE_OVERFLOW (cst)
     693              : )
     694              :                             {
     695          630 :                               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail196;
     696          630 :                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail196;
     697          630 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail196;
     698          630 :                               {
     699          630 :                                 tree res_op0;
     700          630 :                                 res_op0 =  cst;
     701          630 :                                 tree res_op1;
     702          630 :                                 res_op1 = captures[2];
     703          630 :                                 tree _r;
     704          630 :                                 _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
     705          630 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 163, __FILE__, __LINE__, true);
     706          630 :                                 return _r;
     707              :                               }
     708              : next_after_fail196:;
     709              :                             }
     710              :                       }
     711              :                     }
     712              :                 }
     713              :             }
     714              :         }
     715              :     }
     716              :   return NULL_TREE;
     717              : }
     718              : 
     719              : tree
     720          253 : generic_simplify_129 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     721              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     722              :  const enum tree_code ARG_UNUSED (bitop))
     723              : {
     724          253 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     725          253 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail226;
     726          253 :   {
     727          253 :     tree res_op0;
     728          253 :     res_op0 = captures[0];
     729          253 :     tree _r;
     730          253 :     _r = non_lvalue_loc (loc, res_op0);
     731          253 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 188, __FILE__, __LINE__, true);
     732              :     return _r;
     733              :   }
     734            0 : next_after_fail226:;
     735            0 :   return NULL_TREE;
     736              : }
     737              : 
     738              : tree
     739            0 : generic_simplify_140 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     740              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     741              :  const enum tree_code ARG_UNUSED (op))
     742              : {
     743            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     744            0 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
     745            0 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
     746              : )
     747              :     {
     748            0 :       if (single_use (captures[4]) && single_use (captures[5])
     749              : )
     750              :         {
     751            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail239;
     752            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail239;
     753            0 :           {
     754            0 :             tree res_op0;
     755            0 :             res_op0 = captures[0];
     756            0 :             tree res_op1;
     757            0 :             {
     758            0 :               tree _o1[1], _r1;
     759            0 :               _o1[0] = captures[6];
     760            0 :               if (TREE_TYPE (_o1[0]) != type)
     761              :                 {
     762            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     763              :                 }
     764              :               else
     765              :                 _r1 = _o1[0];
     766            0 :               res_op1 = _r1;
     767              :             }
     768            0 :             tree _r;
     769            0 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     770            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 195, __FILE__, __LINE__, true);
     771            0 :             return _r;
     772              :           }
     773              : next_after_fail239:;
     774              :         }
     775              :       else
     776              :         {
     777              :           if (single_use (captures[0]) && single_use (captures[1])
     778              : )
     779              :             {
     780              :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail240;
     781              :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail240;
     782              :               {
     783              :                 tree res_op0;
     784              :                 {
     785              :                   tree _o1[1], _r1;
     786              :                   _o1[0] = captures[3];
     787              :                   if (TREE_TYPE (_o1[0]) != type)
     788              :                     {
     789              :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     790              :                     }
     791              :                   else
     792              :                     _r1 = _o1[0];
     793              :                   res_op0 = _r1;
     794              :                 }
     795              :                 tree res_op1;
     796              :                 res_op1 = captures[4];
     797              :                 tree _r;
     798              :                 _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     799              :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 196, __FILE__, __LINE__, true);
     800              :                 return _r;
     801              :               }
     802              : next_after_fail240:;
     803              :             }
     804              :         }
     805              :     }
     806              :   return NULL_TREE;
     807              : }
     808              : 
     809              : tree
     810            4 : generic_simplify_155 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     811              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     812              : {
     813            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     814            4 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail260;
     815            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail260;
     816            4 :   {
     817            4 :     tree _r;
     818            4 :     _r = captures[2];
     819            4 :     if (TREE_SIDE_EFFECTS (captures[1]))
     820            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     821            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 209, __FILE__, __LINE__, true);
     822              :     return _r;
     823              :   }
     824              : next_after_fail260:;
     825              :   return NULL_TREE;
     826              : }
     827              : 
     828              : tree
     829            0 : generic_simplify_157 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     830              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     831              : {
     832            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     833            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     834            0 :  && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
     835              : )
     836              :     {
     837            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail262;
     838            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail262;
     839            0 :       {
     840            0 :         tree res_op0;
     841            0 :         res_op0 = captures[3];
     842            0 :         tree res_op1;
     843            0 :         {
     844            0 :           tree _o1[2], _r1;
     845            0 :           _o1[0] = captures[1];
     846            0 :           _o1[1] =  build_int_cst (TREE_TYPE (captures[1]), 1);
     847            0 :           _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     848            0 :           res_op1 = _r1;
     849              :         }
     850            0 :         tree _r;
     851            0 :         _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
     852            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 211, __FILE__, __LINE__, true);
     853            0 :         return _r;
     854              :       }
     855              : next_after_fail262:;
     856              :     }
     857              :   return NULL_TREE;
     858              : }
     859              : 
     860              : tree
     861            0 : generic_simplify_166 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     862              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     863              :  const enum tree_code ARG_UNUSED (eqne))
     864              : {
     865            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     866            0 :   if (eqne == EQ_EXPR
     867              : )
     868              :     {
     869            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail289;
     870            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail289;
     871            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail289;
     872            0 :       {
     873            0 :         tree _r;
     874            0 :         _r = captures[0];
     875            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 229, __FILE__, __LINE__, true);
     876            0 :         return _r;
     877              :       }
     878              : next_after_fail289:;
     879              :     }
     880              :   else
     881              :     {
     882            0 :       if (eqne == NE_EXPR
     883              : )
     884              :         {
     885            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail290;
     886            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail290;
     887            0 :           {
     888            0 :             tree _r;
     889            0 :             _r =  constant_boolean_node (true, type);
     890            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
     891            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     892            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 230, __FILE__, __LINE__, true);
     893            0 :             return _r;
     894              :           }
     895              : next_after_fail290:;
     896              :         }
     897              :     }
     898              :   return NULL_TREE;
     899              : }
     900              : 
     901              : tree
     902            0 : generic_simplify_174 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     903              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     904              : {
     905            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     906            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail311;
     907            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail311;
     908            0 :   {
     909            0 :     tree _r;
     910            0 :     _r = captures[1];
     911            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 233, __FILE__, __LINE__, true);
     912              :     return _r;
     913              :   }
     914              : next_after_fail311:;
     915              :   return NULL_TREE;
     916              : }
     917              : 
     918              : tree
     919            0 : generic_simplify_177 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     920              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     921              : {
     922            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     923            0 :   if (type_has_mode_precision_p (type)
     924            0 :  && tree_fits_uhwi_p (captures[1])
     925            0 :  && tree_fits_uhwi_p (captures[3])
     926            0 :  && tree_fits_uhwi_p (captures[4])
     927            0 :  && ((~((HOST_WIDE_INT_1U << tree_to_uhwi (captures[1])) - 1)) & tree_to_uhwi (captures[4])) == 0
     928            0 :  && (tree_to_uhwi (captures[1]) + tree_to_uhwi (captures[3])) == TYPE_PRECISION (type)
     929            0 :  && TYPE_UNSIGNED (type)
     930            0 :  && captures[0] == captures[2]
     931              : )
     932              :     {
     933            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail314;
     934            0 :       {
     935            0 :         tree res_op0;
     936            0 :         {
     937            0 :           tree _o1[2], _r1;
     938            0 :           _o1[0] = captures[0];
     939            0 :           _o1[1] = captures[3];
     940            0 :           _r1 = fold_build2_loc (loc, RROTATE_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     941            0 :           res_op0 = _r1;
     942              :         }
     943            0 :         tree res_op1;
     944            0 :         res_op1 = captures[4];
     945            0 :         tree _r;
     946            0 :         _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
     947            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
     948            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     949            0 :         if (TREE_SIDE_EFFECTS (captures[2]))
     950            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     951            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 235, __FILE__, __LINE__, true);
     952            0 :         return _r;
     953              :       }
     954            0 : next_after_fail314:;
     955              :     }
     956              :   return NULL_TREE;
     957              : }
     958              : 
     959              : tree
     960            0 : generic_simplify_184 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     961              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     962              :  const combined_fn ARG_UNUSED (copysigns))
     963              : {
     964            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     965            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail321;
     966            0 :   {
     967            0 :     if (! tree_invariant_p (captures[1])) goto next_after_fail321;
     968            0 :     tree res_op0;
     969            0 :     res_op0 = unshare_expr (captures[1]);
     970            0 :     tree res_op1;
     971            0 :     res_op1 = captures[1];
     972            0 :     tree _r;
     973            0 :     _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
     974            0 :     if (TREE_SIDE_EFFECTS (captures[2]))
     975            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     976            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 240, __FILE__, __LINE__, true);
     977              :     return _r;
     978              :   }
     979              : next_after_fail321:;
     980              :   return NULL_TREE;
     981              : }
     982              : 
     983              : tree
     984            0 : generic_simplify_193 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     985              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     986              :  const enum tree_code ARG_UNUSED (cmp))
     987              : {
     988            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     989            0 :   if (fold_before_rtl_expansion_p ()
     990              : )
     991              :     {
     992            0 :       if (INTEGRAL_TYPE_P (type)
     993            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
     994              : )
     995              :         {
     996            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail332;
     997            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail332;
     998            0 :           {
     999            0 :             tree res_op0;
    1000            0 :             res_op0 = captures[0];
    1001            0 :             tree res_op1;
    1002            0 :             res_op1 = captures[3];
    1003            0 :             tree res_op2;
    1004            0 :             res_op2 =  build_zero_cst (type);
    1005            0 :             tree _r;
    1006            0 :             _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    1007            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 246, __FILE__, __LINE__, true);
    1008            0 :             return _r;
    1009              :           }
    1010              : next_after_fail332:;
    1011              :         }
    1012              :     }
    1013              :   return NULL_TREE;
    1014              : }
    1015              : 
    1016              : tree
    1017         5148 : generic_simplify_197 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1018              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1019              :  const enum tree_code ARG_UNUSED (op))
    1020              : {
    1021         5148 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1022         5148 :   {
    1023         5148 :  poly_widest_int factor;
    1024         5148 :       if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
    1025         5117 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
    1026        10265 :  && multiple_p (wi::to_poly_widest (captures[3]), wi::to_widest (captures[1]), &factor)
    1027              : )
    1028              :         {
    1029         5071 :           {
    1030         5071 :  wi::overflow_type overflow;
    1031         5071 :  wide_int mul;
    1032         5071 :               if (types_match (type, TREE_TYPE (captures[2]))
    1033         5025 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
    1034            0 :  && TREE_CODE (captures[2]) == INTEGER_CST
    1035            0 :  && TREE_CODE (captures[3]) == INTEGER_CST
    1036         5071 :  && (mul = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[3]),
    1037            0 :  TYPE_SIGN (type), &overflow),
    1038            0 :  !overflow)
    1039         5071 :  && (TYPE_UNSIGNED (type)
    1040         5071 :  || known_eq (factor, 1)
    1041            0 :  || (get_range_pos_neg (captures[0])
    1042            0 :  | (((op == PLUS_EXPR) ^ (tree_int_cst_sgn (captures[2]) < 0))
    1043            0 :  ? 1 : 2)) != 3)
    1044              : )
    1045              :                 {
    1046            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail336;
    1047            0 :                   {
    1048            0 :                     tree res_op0;
    1049            0 :                     {
    1050            0 :                       tree _o1[2], _r1;
    1051            0 :                       _o1[0] = captures[0];
    1052            0 :                       _o1[1] =  wide_int_to_tree (type, factor);
    1053            0 :                       _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1054            0 :                       res_op0 = _r1;
    1055              :                     }
    1056            0 :                     tree res_op1;
    1057            0 :                     res_op1 =  wide_int_to_tree (type, mul);
    1058            0 :                     tree _r;
    1059            0 :                     _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1060            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1061            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1062            0 :                     if (TREE_SIDE_EFFECTS (captures[2]))
    1063            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1064            0 :                     if (TREE_SIDE_EFFECTS (captures[3]))
    1065            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    1066            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 251, __FILE__, __LINE__, true);
    1067            0 :                     return _r;
    1068              :                   }
    1069            0 : next_after_fail336:;
    1070              :                 }
    1071              :               else
    1072              :                 {
    1073         5071 :                   {
    1074         5071 :  tree utype = unsigned_type_for (type);
    1075         5071 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail337;
    1076         5071 :                       {
    1077         5071 :                         tree res_op0;
    1078         5071 :                         {
    1079         5071 :                           tree _o1[2], _r1;
    1080         5071 :                           {
    1081         5071 :                             tree _o2[2], _r2;
    1082         5071 :                             {
    1083         5071 :                               tree _o3[1], _r3;
    1084         5071 :                               _o3[0] = captures[0];
    1085         5071 :                               if (TREE_TYPE (_o3[0]) != utype)
    1086              :                                 {
    1087         5071 :                                   _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    1088              :                                 }
    1089              :                               else
    1090              :                                 _r3 = _o3[0];
    1091         5071 :                               _o2[0] = _r3;
    1092              :                             }
    1093         5071 :                             _o2[1] =  wide_int_to_tree (utype, factor);
    1094         5071 :                             _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1095         5071 :                             _o1[0] = _r2;
    1096              :                           }
    1097         5071 :                           {
    1098         5071 :                             tree _o2[2], _r2;
    1099         5071 :                             {
    1100         5071 :                               tree _o3[1], _r3;
    1101         5071 :                               _o3[0] = captures[3];
    1102         5071 :                               if (TREE_TYPE (_o3[0]) != utype)
    1103              :                                 {
    1104           14 :                                   _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    1105              :                                 }
    1106              :                               else
    1107              :                                 _r3 = _o3[0];
    1108         5071 :                               _o2[0] = _r3;
    1109              :                             }
    1110         5071 :                             {
    1111         5071 :                               tree _o3[1], _r3;
    1112         5071 :                               _o3[0] = captures[2];
    1113         5071 :                               if (TREE_TYPE (_o3[0]) != utype)
    1114              :                                 {
    1115           46 :                                   _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    1116              :                                 }
    1117              :                               else
    1118              :                                 _r3 = _o3[0];
    1119         5071 :                               _o2[1] = _r3;
    1120              :                             }
    1121         5071 :                             _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1122         5071 :                             _o1[1] = _r2;
    1123              :                           }
    1124         5071 :                           _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1125         5071 :                           res_op0 = _r1;
    1126              :                         }
    1127         5071 :                         tree _r;
    1128         5071 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1129         5071 :                         if (TREE_SIDE_EFFECTS (captures[1]))
    1130            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1131         5071 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 252, __FILE__, __LINE__, true);
    1132         5071 :                         return _r;
    1133              :                       }
    1134            0 : next_after_fail337:;
    1135              :                   }
    1136              :                 }
    1137            0 :           }
    1138              :         }
    1139         5148 :   }
    1140           77 :   return NULL_TREE;
    1141              : }
    1142              : 
    1143              : tree
    1144            6 : generic_simplify_227 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1145              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1146              :  const enum tree_code ARG_UNUSED (neeq))
    1147              : {
    1148            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1149            6 :   {
    1150            6 :  poly_int64 diff; tree inner_type = TREE_TYPE (captures[1]);
    1151            6 :       if (ptr_difference_const (captures[0], captures[2], &diff)
    1152              : )
    1153              :         {
    1154            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail383;
    1155            0 :           {
    1156            0 :             tree res_op0;
    1157            0 :             {
    1158            0 :               tree _o1[2], _r1;
    1159            0 :               _o1[0] =  build_int_cst_type (inner_type, diff);
    1160            0 :               _o1[1] = captures[1];
    1161            0 :               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1162            0 :               res_op0 = _r1;
    1163              :             }
    1164            0 :             tree res_op1;
    1165            0 :             res_op1 = captures[3];
    1166            0 :             tree _r;
    1167            0 :             _r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
    1168            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
    1169            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1170            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1171            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1172            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 296, __FILE__, __LINE__, true);
    1173            0 :             return _r;
    1174              :           }
    1175            0 : next_after_fail383:;
    1176              :         }
    1177              :   }
    1178            6 :   return NULL_TREE;
    1179              : }
    1180              : 
    1181              : tree
    1182           13 : generic_simplify_237 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1183              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1184              :  const enum tree_code ARG_UNUSED (cmp))
    1185              : {
    1186           13 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1187           13 :   if (tree_fits_shwi_p (captures[3])
    1188           13 :  && tree_to_shwi (captures[3]) > 0
    1189           26 :  && tree_to_shwi (captures[3]) < TYPE_PRECISION (TREE_TYPE (captures[2]))
    1190              : )
    1191              :     {
    1192           13 :       if (tree_to_shwi (captures[3]) > wi::ctz (wi::to_wide (captures[5]))
    1193              : )
    1194              :         {
    1195            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail396;
    1196            0 :           {
    1197            0 :             tree _r;
    1198            0 :             _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1199            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1200            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1201            0 :             if (TREE_SIDE_EFFECTS (captures[3]))
    1202            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    1203            0 :             if (TREE_SIDE_EFFECTS (captures[4]))
    1204            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    1205            0 :             if (TREE_SIDE_EFFECTS (captures[5]))
    1206            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
    1207            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 309, __FILE__, __LINE__, true);
    1208            0 :             return _r;
    1209              :           }
    1210            0 : next_after_fail396:;
    1211              :         }
    1212              :       else
    1213              :         {
    1214           13 :           {
    1215           13 :  wide_int c1 = wi::to_wide (captures[3]);
    1216           13 :  wide_int c2 = wi::lrshift (wi::to_wide (captures[4]), c1);
    1217           13 :  wide_int c3 = wi::lrshift (wi::to_wide (captures[5]), c1);
    1218           13 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail397;
    1219           13 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail397;
    1220           13 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail397;
    1221           13 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail397;
    1222           13 :               {
    1223           13 :                 tree res_op0;
    1224           13 :                 {
    1225           13 :                   tree _o1[2], _r1;
    1226           13 :                   _o1[0] = captures[2];
    1227           13 :                   _o1[1] =  wide_int_to_tree (TREE_TYPE (captures[2]), c2);
    1228           13 :                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1229           13 :                   res_op0 = _r1;
    1230              :                 }
    1231           13 :                 tree res_op1;
    1232           13 :                 res_op1 =  wide_int_to_tree (TREE_TYPE (captures[2]), c3);
    1233           13 :                 tree _r;
    1234           13 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1235           13 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 310, __FILE__, __LINE__, true);
    1236           13 :                 return _r;
    1237              :               }
    1238            0 : next_after_fail397:;
    1239           13 :           }
    1240              :         }
    1241              :     }
    1242              :   return NULL_TREE;
    1243              : }
    1244              : 
    1245              : tree
    1246        91646 : generic_simplify_250 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1247              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1248              :  const enum tree_code ARG_UNUSED (cmp))
    1249              : {
    1250        91646 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1251        91646 :   if (single_use (captures[0])
    1252              : )
    1253              :     {
    1254        91646 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail419;
    1255        91646 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail419;
    1256        91646 :       {
    1257        91646 :         tree res_op0;
    1258        91646 :         res_op0 = captures[1];
    1259        91646 :         tree res_op1;
    1260        91646 :         res_op1 = captures[2];
    1261        91646 :         tree _r;
    1262        91646 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1263        91646 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 332, __FILE__, __LINE__, true);
    1264        91646 :         return _r;
    1265              :       }
    1266              : next_after_fail419:;
    1267              :     }
    1268              :   return NULL_TREE;
    1269              : }
    1270              : 
    1271              : tree
    1272       921344 : generic_simplify_257 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1273              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1274              :  const enum tree_code ARG_UNUSED (cmp),
    1275              :  const enum tree_code ARG_UNUSED (scmp))
    1276              : {
    1277       921344 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1278       921344 :   if (single_use (captures[0])
    1279       921344 :  && (TREE_CODE (captures[2]) == INTEGER_CST || TREE_CODE (captures[2]) == VECTOR_CST)
    1280              : )
    1281              :     {
    1282       921344 :       {
    1283       921344 :  tree otype = TREE_TYPE (captures[2]);
    1284       921344 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail431;
    1285       921344 :           {
    1286       921344 :             tree res_op0;
    1287       921344 :             {
    1288       921344 :               tree _o1[1], _r1;
    1289       921344 :               _o1[0] = captures[1];
    1290       921344 :               if (TREE_TYPE (_o1[0]) != otype)
    1291              :                 {
    1292          191 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
    1293              :                 }
    1294              :               else
    1295              :                 _r1 = _o1[0];
    1296       921344 :               res_op0 = _r1;
    1297              :             }
    1298       921344 :             tree res_op1;
    1299       921344 :             {
    1300       921344 :               tree _o1[1], _r1;
    1301       921344 :               _o1[0] = captures[2];
    1302       921344 :               _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    1303       921344 :               res_op1 = _r1;
    1304              :             }
    1305       921344 :             tree _r;
    1306       921344 :             _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
    1307       921344 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 343, __FILE__, __LINE__, true);
    1308       921344 :             return _r;
    1309              :           }
    1310            0 : next_after_fail431:;
    1311              :       }
    1312              :     }
    1313              :   return NULL_TREE;
    1314              : }
    1315              : 
    1316              : tree
    1317         1255 : generic_simplify_264 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1318              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1319              :  const enum tree_code ARG_UNUSED (cmp),
    1320              :  const enum tree_code ARG_UNUSED (icmp))
    1321              : {
    1322         1255 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1323         1255 :   if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1324         1255 :  && ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1325              : )
    1326              :     {
    1327         1255 :       {
    1328         1255 :  format_helper fmt (REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (captures[0]))));
    1329         1255 :  tree type1 = TREE_TYPE (captures[1]);
    1330         1255 :  bool type1_signed_p = TYPE_SIGN (type1) == SIGNED;
    1331         1255 :  tree type2 = TREE_TYPE (captures[2]);
    1332         1255 :  bool type2_signed_p = TYPE_SIGN (type2) == SIGNED;
    1333         1255 :           if (fmt.can_represent_integral_type_p (type1)
    1334         1255 :  && fmt.can_represent_integral_type_p (type2)
    1335              : )
    1336              :             {
    1337          229 :               if (cmp == ORDERED_EXPR || cmp == UNORDERED_EXPR
    1338              : )
    1339              :                 {
    1340            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail470;
    1341            0 :                   {
    1342            0 :                     tree _r;
    1343            0 :                     _r =  constant_boolean_node (cmp == ORDERED_EXPR, type);
    1344            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1345            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1346            0 :                     if (TREE_SIDE_EFFECTS (captures[2]))
    1347            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1348            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 381, __FILE__, __LINE__, true);
    1349          183 :                     return _r;
    1350              :                   }
    1351            0 : next_after_fail470:;
    1352              :                 }
    1353              :               else
    1354              :                 {
    1355          229 :                   if (TYPE_PRECISION (type1) > TYPE_PRECISION (type2)
    1356          229 :  && type1_signed_p >= type2_signed_p
    1357              : )
    1358              :                     {
    1359            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail471;
    1360            0 :                       {
    1361            0 :                         tree res_op0;
    1362            0 :                         res_op0 = captures[1];
    1363            0 :                         tree res_op1;
    1364            0 :                         {
    1365            0 :                           tree _o1[1], _r1;
    1366            0 :                           _o1[0] = captures[2];
    1367            0 :                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1368              :                             {
    1369            0 :                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1370              :                             }
    1371              :                           else
    1372              :                             _r1 = _o1[0];
    1373            0 :                           res_op1 = _r1;
    1374              :                         }
    1375            0 :                         tree _r;
    1376            0 :                         _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1377            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 382, __FILE__, __LINE__, true);
    1378            0 :                         return _r;
    1379              :                       }
    1380            0 : next_after_fail471:;
    1381              :                     }
    1382              :                   else
    1383              :                     {
    1384          229 :                       if (TYPE_PRECISION (type1) < TYPE_PRECISION (type2)
    1385          229 :  && type1_signed_p <= type2_signed_p
    1386              : )
    1387              :                         {
    1388            7 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail472;
    1389            7 :                           {
    1390            7 :                             tree res_op0;
    1391            7 :                             {
    1392            7 :                               tree _o1[1], _r1;
    1393            7 :                               _o1[0] = captures[1];
    1394            7 :                               if (TREE_TYPE (_o1[0]) != type2)
    1395              :                                 {
    1396            7 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type2, _o1[0]);
    1397              :                                 }
    1398              :                               else
    1399              :                                 _r1 = _o1[0];
    1400            7 :                               res_op0 = _r1;
    1401              :                             }
    1402            7 :                             tree res_op1;
    1403            7 :                             res_op1 = captures[2];
    1404            7 :                             tree _r;
    1405            7 :                             _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1406            7 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 383, __FILE__, __LINE__, true);
    1407            7 :                             return _r;
    1408              :                           }
    1409            0 : next_after_fail472:;
    1410              :                         }
    1411              :                       else
    1412              :                         {
    1413          222 :                           if (TYPE_PRECISION (type1) == TYPE_PRECISION (type2)
    1414          222 :  && type1_signed_p == type2_signed_p
    1415              : )
    1416              :                             {
    1417          176 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail473;
    1418          176 :                               {
    1419          176 :                                 tree res_op0;
    1420          176 :                                 res_op0 = captures[1];
    1421          176 :                                 tree res_op1;
    1422          176 :                                 {
    1423          176 :                                   tree _o1[1], _r1;
    1424          176 :                                   _o1[0] = captures[2];
    1425          176 :                                   if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1426              :                                     {
    1427            1 :                                       _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1428              :                                     }
    1429              :                                   else
    1430              :                                     _r1 = _o1[0];
    1431          176 :                                   res_op1 = _r1;
    1432              :                                 }
    1433          176 :                                 tree _r;
    1434          176 :                                 _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1435          176 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 384, __FILE__, __LINE__, true);
    1436          176 :                                 return _r;
    1437              :                               }
    1438            0 : next_after_fail473:;
    1439              :                             }
    1440              :                         }
    1441              :                     }
    1442              :                 }
    1443              :             }
    1444              :       }
    1445              :     }
    1446              :   return NULL_TREE;
    1447              : }
    1448              : 
    1449              : tree
    1450            0 : generic_simplify_276 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1451              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1452              :  const enum tree_code ARG_UNUSED (cmp))
    1453              : {
    1454            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1455            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    1456            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1457            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1458            0 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2]))
    1459            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
    1460            0 :  && !wi::neg_p (wi::to_wide (captures[3]))
    1461              : )
    1462              :     {
    1463            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail508;
    1464            0 :       {
    1465            0 :         tree res_op0;
    1466            0 :         {
    1467            0 :           tree _o1[2], _r1;
    1468            0 :           _o1[0] = captures[2];
    1469            0 :           {
    1470            0 :             tree _o2[1], _r2;
    1471            0 :             {
    1472            0 :               tree _o3[1], _r3;
    1473            0 :               _o3[0] = captures[3];
    1474            0 :               _r3 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o3[0]), _o3[0]);
    1475            0 :               _o2[0] = _r3;
    1476              :             }
    1477            0 :             if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
    1478              :               {
    1479            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
    1480              :               }
    1481              :             else
    1482              :               _r2 = _o2[0];
    1483            0 :             _o1[1] = _r2;
    1484              :           }
    1485            0 :           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1486            0 :           res_op0 = _r1;
    1487              :         }
    1488            0 :         tree res_op1;
    1489            0 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[2]));
    1490            0 :         tree _r;
    1491            0 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1492            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 411, __FILE__, __LINE__, true);
    1493            0 :         return _r;
    1494              :       }
    1495            0 : next_after_fail508:;
    1496              :     }
    1497              :   return NULL_TREE;
    1498              : }
    1499              : 
    1500              : tree
    1501       805612 : generic_simplify_283 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1502              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1503              :  const enum tree_code ARG_UNUSED (cmp),
    1504              :  const enum tree_code ARG_UNUSED (ncmp))
    1505              : {
    1506       805612 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1507      1547807 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1508       805612 :  && type_has_mode_precision_p (TREE_TYPE (captures[1]))
    1509       804316 :  && element_precision (captures[0]) >= element_precision (captures[1])
    1510      1611224 :  && wi::only_sign_bit_p (wi::to_wide (captures[2]), element_precision (captures[1]))
    1511              : )
    1512              :     {
    1513        12957 :       {
    1514        12957 :  tree stype = signed_type_for (TREE_TYPE (captures[1]));
    1515        12957 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail515;
    1516        12957 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail515;
    1517        12957 :           {
    1518        12957 :             tree res_op0;
    1519        12957 :             {
    1520        12957 :               tree _o1[1], _r1;
    1521        12957 :               _o1[0] = captures[1];
    1522        12957 :               if (TREE_TYPE (_o1[0]) != stype)
    1523              :                 {
    1524        12740 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
    1525              :                 }
    1526              :               else
    1527              :                 _r1 = _o1[0];
    1528        12957 :               res_op0 = _r1;
    1529              :             }
    1530        12957 :             tree res_op1;
    1531        12957 :             res_op1 =  build_zero_cst (stype);
    1532        12957 :             tree _r;
    1533        12957 :             _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    1534        12957 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1535            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1536        12957 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 417, __FILE__, __LINE__, true);
    1537        12957 :             return _r;
    1538              :           }
    1539              : next_after_fail515:;
    1540              :       }
    1541              :     }
    1542              :   return NULL_TREE;
    1543              : }
    1544              : 
    1545              : tree
    1546            2 : generic_simplify_293 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1547              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1548              :  const enum tree_code ARG_UNUSED (cmp))
    1549              : {
    1550            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1551            4 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    1552            2 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1553            2 :  && TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    1554            2 :  && (TYPE_PRECISION (TREE_TYPE (captures[1]))
    1555            2 :  >= 2 * TYPE_PRECISION (TREE_TYPE (captures[2])))
    1556            2 :  && tree_fits_uhwi_p (captures[4])
    1557            2 :  && tree_to_uhwi (captures[4]) == TYPE_PRECISION (TREE_TYPE (captures[2]))
    1558            2 :  && types_match (captures[2], captures[3])
    1559            2 :  && type_has_mode_precision_p (TREE_TYPE (captures[2]))
    1560            6 :  && (optab_handler (umulv4_optab, TYPE_MODE (TREE_TYPE (captures[2])))
    1561              :  != CODE_FOR_nothing)
    1562              : )
    1563              :     {
    1564            2 :       {
    1565            2 :  tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
    1566            2 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail543;
    1567            2 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail543;
    1568            2 :           {
    1569            2 :             tree res_op0;
    1570            2 :             {
    1571            2 :               tree _o1[1], _r1;
    1572            2 :               {
    1573            2 :                 tree _o2[2], _r2;
    1574            2 :                 _o2[0] = captures[2];
    1575            2 :                 _o2[1] = captures[3];
    1576            2 :                 _r2 = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, _o2[0], _o2[1]);
    1577            2 :                 if (!_r2)
    1578            0 :                   goto next_after_fail543;
    1579            2 :                 _o1[0] = _r2;
    1580              :               }
    1581            2 :               _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
    1582            2 :               res_op0 = _r1;
    1583              :             }
    1584            2 :             tree res_op1;
    1585            2 :             res_op1 =  build_zero_cst (t);
    1586            2 :             tree _r;
    1587            2 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1588            2 :             if (TREE_SIDE_EFFECTS (captures[4]))
    1589            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    1590            2 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 436, __FILE__, __LINE__, true);
    1591            2 :             return _r;
    1592              :           }
    1593              : next_after_fail543:;
    1594              :       }
    1595              :     }
    1596              :   return NULL_TREE;
    1597              : }
    1598              : 
    1599              : tree
    1600          366 : generic_simplify_296 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1601              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1602              :  const enum tree_code ARG_UNUSED (op),
    1603              :  const enum tree_code ARG_UNUSED (cmp),
    1604              :  const combined_fn ARG_UNUSED (clz))
    1605              : {
    1606          366 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1607          366 :   if (!sanitize_flags_p (SANITIZE_BUILTIN)
    1608          366 :  || (cfun && (cfun->curr_properties & PROP_ssa) != 0)
    1609              : )
    1610              :     {
    1611          302 :       if (integer_zerop (captures[2]) && single_use (captures[0])
    1612              : )
    1613              :         {
    1614           59 :           {
    1615           59 :  tree stype = signed_type_for (TREE_TYPE (captures[1]));
    1616           59 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail555;
    1617           59 :               {
    1618           59 :                 tree res_op0;
    1619           59 :                 {
    1620           59 :                   tree _o1[1], _r1;
    1621           59 :                   _o1[0] = captures[1];
    1622           59 :                   if (TREE_TYPE (_o1[0]) != stype)
    1623              :                     {
    1624           59 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
    1625              :                     }
    1626              :                   else
    1627              :                     _r1 = _o1[0];
    1628           59 :                   res_op0 = _r1;
    1629              :                 }
    1630           59 :                 tree res_op1;
    1631           59 :                 res_op1 =  build_zero_cst (stype);
    1632           59 :                 tree _r;
    1633           59 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1634           59 :                 if (TREE_SIDE_EFFECTS (captures[2]))
    1635            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1636           59 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 448, __FILE__, __LINE__, true);
    1637           59 :                 return _r;
    1638              :               }
    1639            0 : next_after_fail555:;
    1640              :           }
    1641              :         }
    1642              :       else
    1643              :         {
    1644          243 :           if (wi::to_wide (captures[2]) == TYPE_PRECISION (TREE_TYPE (captures[1])) - 1
    1645              : )
    1646              :             {
    1647           79 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail556;
    1648           79 :               {
    1649           79 :                 tree res_op0;
    1650           79 :                 res_op0 = captures[1];
    1651           79 :                 tree res_op1;
    1652           79 :                 res_op1 =  build_one_cst (TREE_TYPE (captures[1]));
    1653           79 :                 tree _r;
    1654           79 :                 _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1655           79 :                 if (TREE_SIDE_EFFECTS (captures[2]))
    1656            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1657           79 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 449, __FILE__, __LINE__, true);
    1658           79 :                 return _r;
    1659              :               }
    1660            0 : next_after_fail556:;
    1661              :             }
    1662              :         }
    1663              :     }
    1664              :   return NULL_TREE;
    1665              : }
    1666              : 
    1667              : tree
    1668            0 : generic_simplify_299 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1669              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1670              :  const enum tree_code ARG_UNUSED (op))
    1671              : {
    1672            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1673            0 :   {
    1674            0 :  HOST_WIDE_INT zero_val = tree_to_shwi (captures[2]);
    1675            0 :  tree type0 = TREE_TYPE (captures[1]);
    1676            0 :  int prec = TYPE_PRECISION (type0);
    1677            0 :       if (prec <= MAX_FIXED_MODE_SIZE
    1678              : )
    1679              :         {
    1680            0 :           if (tree_int_cst_sgn (captures[3]) < 0 || wi::to_widest (captures[3]) >= prec
    1681              : )
    1682              :             {
    1683            0 :               if (zero_val != wi::to_widest (captures[3])
    1684              : )
    1685              :                 {
    1686            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail561;
    1687            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail561;
    1688            0 :                   {
    1689            0 :                     tree _r;
    1690            0 :                     _r =  constant_boolean_node (op == EQ_EXPR ? false : true, type);
    1691            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1692            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1693            0 :                     if (TREE_SIDE_EFFECTS (captures[3]))
    1694            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    1695            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 454, __FILE__, __LINE__, true);
    1696            0 :                     return _r;
    1697              :                   }
    1698            0 : next_after_fail561:;
    1699              :                 }
    1700              :             }
    1701              :           else
    1702              :             {
    1703            0 :               if (zero_val < 0 || zero_val >= prec
    1704              : )
    1705              :                 {
    1706            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail562;
    1707            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail562;
    1708            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail562;
    1709            0 :                   {
    1710            0 :                     tree res_op0;
    1711            0 :                     {
    1712            0 :                       tree _o1[2], _r1;
    1713            0 :                       _o1[0] = captures[1];
    1714            0 :                       _o1[1] =  wide_int_to_tree (type0,
    1715            0 :  wi::mask (tree_to_uhwi (captures[3]) + 1,
    1716              :  false, prec));
    1717            0 :                       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1718            0 :                       res_op0 = _r1;
    1719              :                     }
    1720            0 :                     tree res_op1;
    1721            0 :                     res_op1 =  wide_int_to_tree (type0,
    1722            0 :  wi::shifted_mask (tree_to_uhwi (captures[3]), 1,
    1723              :  false, prec));
    1724            0 :                     tree _r;
    1725            0 :                     _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1726            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 455, __FILE__, __LINE__, true);
    1727            0 :                     return _r;
    1728              :                   }
    1729            0 : next_after_fail562:;
    1730              :                 }
    1731              :             }
    1732              :         }
    1733              :   }
    1734            0 :   return NULL_TREE;
    1735              : }
    1736              : 
    1737              : tree
    1738         2363 : generic_simplify_314 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1739              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1740              :  const enum tree_code ARG_UNUSED (div))
    1741              : {
    1742         2363 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1743         2363 :   if (!integer_zerop (captures[1])
    1744              : )
    1745              :     {
    1746         1737 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail582;
    1747         1737 :       {
    1748         1737 :         tree _r;
    1749         1737 :         _r = captures[0];
    1750         1737 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1751           59 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1752         1737 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 473, __FILE__, __LINE__, true);
    1753         1737 :         return _r;
    1754              :       }
    1755            0 : next_after_fail582:;
    1756              :     }
    1757              :   return NULL_TREE;
    1758              : }
    1759              : 
    1760              : tree
    1761         9049 : generic_simplify_320 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1762              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1763              :  const enum tree_code ARG_UNUSED (div))
    1764              : {
    1765         9049 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1766         9049 :   {
    1767         9049 :  wi::overflow_type overflow;
    1768         9049 :  wide_int mul = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[3]),
    1769        18098 :  TYPE_SIGN (type), &overflow);
    1770         9049 :       if (div == EXACT_DIV_EXPR
    1771         9049 :  || optimize_successive_divisions_p (captures[3], captures[0])
    1772              : )
    1773              :         {
    1774            0 :           if (!overflow
    1775              : )
    1776              :             {
    1777            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail588;
    1778            0 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail588;
    1779            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail588;
    1780            0 :               {
    1781            0 :                 tree res_op0;
    1782            0 :                 res_op0 = captures[1];
    1783            0 :                 tree res_op1;
    1784            0 :                 res_op1 =  wide_int_to_tree (type, mul);
    1785            0 :                 tree _r;
    1786            0 :                 _r = fold_build2_loc (loc, div, type, res_op0, res_op1);
    1787            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 479, __FILE__, __LINE__, true);
    1788            0 :                 return _r;
    1789              :               }
    1790         9049 : next_after_fail588:;
    1791              :             }
    1792              :           else
    1793              :             {
    1794            0 :               if (TYPE_UNSIGNED (type)
    1795            0 :  || mul != wi::min_value (TYPE_PRECISION (type), SIGNED)
    1796              : )
    1797              :                 {
    1798            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail589;
    1799            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail589;
    1800            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail589;
    1801            0 :                   {
    1802            0 :                     tree _r;
    1803            0 :                     _r =  build_zero_cst (type);
    1804            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1805            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1806            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 480, __FILE__, __LINE__, true);
    1807            0 :                     return _r;
    1808              :                   }
    1809         9049 : next_after_fail589:;
    1810              :                 }
    1811              :             }
    1812              :         }
    1813            0 :   }
    1814         9049 :   return NULL_TREE;
    1815              : }
    1816              : 
    1817              : tree
    1818      1572803 : generic_simplify_332 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1819              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1820              :  const enum tree_code ARG_UNUSED (mod))
    1821              : {
    1822      1572803 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1823      1853140 :   if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0]))
    1824      1294935 :  && INTEGRAL_TYPE_P (type)
    1825      1294935 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1826      1294935 :  && (TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[1]))
    1827            3 :  || TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    1828            1 :  || !TYPE_UNSIGNED (type))
    1829      2867738 :  && integer_pow2p (captures[2]) && tree_int_cst_sgn (captures[2]) > 0
    1830              : )
    1831              :     {
    1832       949356 :       {
    1833       949356 :  tree utype = TREE_TYPE (captures[1]);
    1834       949356 :  if (!TYPE_OVERFLOW_WRAPS (utype))
    1835          303 :  utype = unsigned_type_for (utype);
    1836       949356 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail601;
    1837       949356 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail601;
    1838       949356 :           {
    1839       949356 :             tree res_op0;
    1840       949356 :             res_op0 = captures[0];
    1841       949356 :             tree res_op1;
    1842       949356 :             {
    1843       949356 :               tree _o1[1], _r1;
    1844       949356 :               {
    1845       949356 :                 tree _o2[2], _r2;
    1846       949356 :                 {
    1847       949356 :                   tree _o3[1], _r3;
    1848       949356 :                   _o3[0] = captures[1];
    1849       949356 :                   if (TREE_TYPE (_o3[0]) != utype)
    1850              :                     {
    1851          303 :                       _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    1852              :                     }
    1853              :                   else
    1854              :                     _r3 = _o3[0];
    1855       949356 :                   _o2[0] = _r3;
    1856              :                 }
    1857       949356 :                 _o2[1] =  build_one_cst (utype);
    1858       949356 :                 _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1859       949356 :                 _o1[0] = _r2;
    1860              :               }
    1861       949356 :               if (TREE_TYPE (_o1[0]) != type)
    1862              :                 {
    1863        19205 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    1864              :                 }
    1865              :               else
    1866              :                 _r1 = _o1[0];
    1867       949356 :               res_op1 = _r1;
    1868              :             }
    1869       949356 :             tree _r;
    1870       949356 :             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    1871       949356 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 492, __FILE__, __LINE__, true);
    1872       949356 :             return _r;
    1873              :           }
    1874              : next_after_fail601:;
    1875              :       }
    1876              :     }
    1877              :   return NULL_TREE;
    1878              : }
    1879              : 
    1880              : tree
    1881            0 : generic_simplify_349 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1882              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1883              :  const enum tree_code ARG_UNUSED (cmp),
    1884              :  const enum tree_code ARG_UNUSED (minmax))
    1885              : {
    1886            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1887            0 :   if (!TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    1888            0 :  && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1889              : )
    1890              :     {
    1891            0 :       {
    1892            0 :  tree_code code;
    1893            0 :  widest_int c1 = wi::mask<widest_int>(TYPE_PRECISION (type) - 1, 0);
    1894            0 :  tree_code ncmp = cmp == GE_EXPR ? LE_EXPR : GT_EXPR;
    1895            0 :  code = minmax_from_comparison (ncmp, captures[0], c1, wi::to_widest (captures[4]));
    1896            0 :           if (ncmp == LE_EXPR
    1897            0 :  && code == MIN_EXPR
    1898            0 :  && wi::le_p (wi::to_wide (captures[3]),
    1899            0 :  wi::to_wide (captures[4]),
    1900            0 :  TYPE_SIGN (type))
    1901              : )
    1902              :             {
    1903            0 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail625;
    1904            0 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail625;
    1905            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail625;
    1906            0 :               {
    1907            0 :                 tree res_op0;
    1908            0 :                 res_op0 = captures[2];
    1909            0 :                 tree res_op1;
    1910            0 :                 res_op1 = captures[4];
    1911            0 :                 tree _r;
    1912            0 :                 _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
    1913            0 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    1914            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1915            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 516, __FILE__, __LINE__, true);
    1916            0 :                 return _r;
    1917              :               }
    1918            0 : next_after_fail625:;
    1919              :             }
    1920              :           else
    1921              :             {
    1922            0 :               if (ncmp == GT_EXPR
    1923            0 :  && code == MAX_EXPR
    1924            0 :  && wi::ge_p (wi::to_wide (captures[3]),
    1925            0 :  wi::to_wide (captures[4]),
    1926            0 :  TYPE_SIGN (type))
    1927              : )
    1928              :                 {
    1929            0 :                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail626;
    1930            0 :                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail626;
    1931            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail626;
    1932            0 :                   {
    1933            0 :                     tree res_op0;
    1934            0 :                     res_op0 = captures[2];
    1935            0 :                     tree res_op1;
    1936            0 :                     res_op1 = captures[4];
    1937            0 :                     tree _r;
    1938            0 :                     _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
    1939            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1940            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1941            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 517, __FILE__, __LINE__, true);
    1942            0 :                     return _r;
    1943              :                   }
    1944            0 : next_after_fail626:;
    1945              :                 }
    1946              :             }
    1947            0 :       }
    1948              :     }
    1949              :   return NULL_TREE;
    1950              : }
    1951              : 
    1952              : tree
    1953            0 : generic_simplify_367 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1954              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1955              :  const enum tree_code ARG_UNUSED (cmp))
    1956              : {
    1957            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1958            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail644;
    1959            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail644;
    1960            0 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail644;
    1961            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail644;
    1962            0 :   {
    1963            0 :     tree _r;
    1964            0 :     _r = captures[3];
    1965            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 535, __FILE__, __LINE__, true);
    1966              :     return _r;
    1967              :   }
    1968              : next_after_fail644:;
    1969              :   return NULL_TREE;
    1970              : }
    1971              : 
    1972              : tree
    1973         1979 : generic_simplify_374 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1974              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    1975              : {
    1976         1979 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1977         1979 :   if (INTEGRAL_TYPE_P (type)
    1978              : )
    1979              :     {
    1980         1979 :       {
    1981         1979 :  tree itype = TREE_TYPE (captures[2]);
    1982         1979 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail652;
    1983         1979 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail652;
    1984         1979 :           if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail652;
    1985         1979 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail652;
    1986         1979 :           {
    1987         1979 :             tree res_op0;
    1988         1979 :             {
    1989         1979 :               tree _o1[2], _r1;
    1990         1979 :               _o1[0] = captures[2];
    1991         1979 :               {
    1992         1979 :                 tree _o2[1], _r2;
    1993         1979 :                 _o2[0] = captures[0];
    1994         1979 :                 if (TREE_TYPE (_o2[0]) != itype)
    1995              :                   {
    1996         1979 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
    1997              :                   }
    1998              :                 else
    1999              :                   _r2 = _o2[0];
    2000         1979 :                 _o1[1] = _r2;
    2001              :               }
    2002         1979 :               _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2003         1979 :               res_op0 = _r1;
    2004              :             }
    2005         1979 :             tree _r;
    2006         1979 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2007         1979 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 541, __FILE__, __LINE__, true);
    2008         1979 :             return _r;
    2009              :           }
    2010              : next_after_fail652:;
    2011              :       }
    2012              :     }
    2013              :   return NULL_TREE;
    2014              : }
    2015              : 
    2016              : tree
    2017          944 : generic_simplify_383 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2018              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2019              :  const enum tree_code ARG_UNUSED (op))
    2020              : {
    2021          944 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2022         1888 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2023         1888 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    2024              : )
    2025              :     {
    2026            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail665;
    2027            0 :       {
    2028            0 :         tree res_op0;
    2029            0 :         res_op0 = captures[0];
    2030            0 :         tree res_op1;
    2031            0 :         res_op1 = captures[2];
    2032            0 :         tree _r;
    2033            0 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2034            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    2035            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2036            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 554, __FILE__, __LINE__, true);
    2037            0 :         return _r;
    2038              :       }
    2039            0 : next_after_fail665:;
    2040              :     }
    2041              :   return NULL_TREE;
    2042              : }
    2043              : 
    2044              : tree
    2045            6 : generic_simplify_388 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2046              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2047              :  const enum tree_code ARG_UNUSED (minmax),
    2048              :  const enum tree_code ARG_UNUSED (cmp))
    2049              : {
    2050            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2051            6 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail671;
    2052            6 :   {
    2053            6 :     tree _r;
    2054            6 :     _r =  constant_boolean_node (cmp == GE_EXPR || cmp == LE_EXPR, type);
    2055            6 :     if (TREE_SIDE_EFFECTS (captures[0]))
    2056            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2057            6 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2058            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2059            6 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 560, __FILE__, __LINE__, true);
    2060              :     return _r;
    2061              :   }
    2062            0 : next_after_fail671:;
    2063            0 :   return NULL_TREE;
    2064              : }
    2065              : 
    2066              : tree
    2067         9096 : generic_simplify_398 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2068              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2069              :  const enum tree_code ARG_UNUSED (cmp))
    2070              : {
    2071         9096 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2072         9096 :   if (single_use (captures[0])
    2073         9096 :  && ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2074         9080 :  && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    2075              : )
    2076              :     {
    2077         6702 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail713;
    2078         6702 :       {
    2079         6702 :         tree res_op0;
    2080         6702 :         res_op0 = captures[2];
    2081         6702 :         tree res_op1;
    2082         6702 :         res_op1 = captures[1];
    2083         6702 :         tree _r;
    2084         6702 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2085         6702 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 585, __FILE__, __LINE__, true);
    2086         6702 :         return _r;
    2087              :       }
    2088            0 : next_after_fail713:;
    2089              :     }
    2090              :   return NULL_TREE;
    2091              : }
    2092              : 
    2093              : tree
    2094         1484 : generic_simplify_403 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2095              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2096              :  const enum tree_code ARG_UNUSED (cmp),
    2097              :  const enum tree_code ARG_UNUSED (neg_cmp))
    2098              : {
    2099         1484 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2100         1484 :   if (flag_unsafe_math_optimizations
    2101              : )
    2102              :     {
    2103            9 :       {
    2104            9 :  tree tem = const_binop (RDIV_EXPR, type, captures[2], captures[1]);
    2105            9 :           if (tem
    2106           27 :  && !(REAL_VALUE_ISINF (TREE_REAL_CST (tem))
    2107           15 :  || (real_zerop (tem) && !real_zerop (captures[1])))
    2108              : )
    2109              :             {
    2110            3 :               if (real_less (&dconst0, TREE_REAL_CST_PTR (captures[1]))
    2111              : )
    2112              :                 {
    2113            2 :                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail718;
    2114            2 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail718;
    2115            2 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail718;
    2116            2 :                   {
    2117            2 :                     tree res_op0;
    2118            2 :                     res_op0 = captures[0];
    2119            2 :                     tree res_op1;
    2120            2 :                     res_op1 =  tem;
    2121            2 :                     tree _r;
    2122            2 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2123            2 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 590, __FILE__, __LINE__, true);
    2124            2 :                     return _r;
    2125              :                   }
    2126              : next_after_fail718:;
    2127              :                 }
    2128              :               else
    2129              :                 {
    2130            1 :                   if (real_less (TREE_REAL_CST_PTR (captures[1]), &dconst0)
    2131              : )
    2132              :                     {
    2133            1 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail719;
    2134            1 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail719;
    2135            1 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail719;
    2136            1 :                       {
    2137            1 :                         tree res_op0;
    2138            1 :                         res_op0 = captures[0];
    2139            1 :                         tree res_op1;
    2140            1 :                         res_op1 =  tem;
    2141            1 :                         tree _r;
    2142            1 :                         _r = fold_build2_loc (loc, neg_cmp, type, res_op0, res_op1);
    2143            1 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 591, __FILE__, __LINE__, true);
    2144            1 :                         return _r;
    2145              :                       }
    2146              : next_after_fail719:;
    2147              :                     }
    2148              :                 }
    2149              :             }
    2150              :       }
    2151              :     }
    2152              :   return NULL_TREE;
    2153              : }
    2154              : 
    2155              : tree
    2156            0 : generic_simplify_412 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2157              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2158              :  const enum tree_code ARG_UNUSED (cmp),
    2159              :  const enum tree_code ARG_UNUSED (out))
    2160              : {
    2161            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2162            0 :   if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    2163            0 :  && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    2164              : )
    2165              :     {
    2166            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail734;
    2167            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail734;
    2168            0 :       {
    2169            0 :         tree res_op0;
    2170            0 :         {
    2171            0 :           tree _o1[1], _r1;
    2172            0 :           _o1[0] = captures[0];
    2173            0 :           _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
    2174            0 :           res_op0 = _r1;
    2175              :         }
    2176            0 :         tree res_op1;
    2177            0 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
    2178            0 :         tree _r;
    2179            0 :         _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
    2180            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 588, __FILE__, __LINE__, true);
    2181            0 :         return _r;
    2182              :       }
    2183              : next_after_fail734:;
    2184              :     }
    2185              :   return NULL_TREE;
    2186              : }
    2187              : 
    2188              : tree
    2189           94 : generic_simplify_417 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2190              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2191              : {
    2192           94 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2193          188 :   if (INTEGRAL_TYPE_P (type)
    2194           93 :  && !TYPE_UNSIGNED (type)
    2195           93 :  && !TYPE_OVERFLOW_TRAPS (type)
    2196           93 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
    2197          281 :  && (expr_not_equal_to (captures[0], wi::to_wide (TYPE_MIN_VALUE (type)))
    2198          187 :  || expr_not_equal_to (captures[2], wi::minus_one (TYPE_PRECISION
    2199              :  (TREE_TYPE (captures[2]))),
    2200              :  gimple_match_ctx (captures[1])))
    2201              : )
    2202              :     {
    2203            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail743;
    2204            0 :       {
    2205            0 :         tree res_op0;
    2206            0 :         res_op0 = captures[0];
    2207            0 :         tree res_op1;
    2208            0 :         {
    2209            0 :           tree _o1[1], _r1;
    2210            0 :           _o1[0] = captures[2];
    2211            0 :           if (TREE_TYPE (_o1[0]) != type)
    2212              :             {
    2213            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2214              :             }
    2215              :           else
    2216              :             _r1 = _o1[0];
    2217            0 :           res_op1 = _r1;
    2218              :         }
    2219            0 :         tree _r;
    2220            0 :         _r = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, res_op0, res_op1);
    2221            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 611, __FILE__, __LINE__, true);
    2222            0 :         return _r;
    2223              :       }
    2224            0 : next_after_fail743:;
    2225              :     }
    2226              :   return NULL_TREE;
    2227              : }
    2228              : 
    2229              : tree
    2230            0 : generic_simplify_424 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2231              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2232              :  const enum tree_code ARG_UNUSED (shiftrotate))
    2233              : {
    2234            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2235            0 :   {
    2236            0 :  tree tem = uniform_vector_p (captures[1]);
    2237            0 :       if (tem
    2238              : )
    2239              :         {
    2240            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail750;
    2241            0 :           {
    2242            0 :             tree res_op0;
    2243            0 :             res_op0 = captures[0];
    2244            0 :             tree res_op1;
    2245            0 :             res_op1 =  tem;
    2246            0 :             tree _r;
    2247            0 :             _r = fold_build2_loc (loc, shiftrotate, type, res_op0, res_op1);
    2248            0 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2249            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2250            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 617, __FILE__, __LINE__, true);
    2251            0 :             return _r;
    2252              :           }
    2253            0 : next_after_fail750:;
    2254              :         }
    2255              :   }
    2256              :   return NULL_TREE;
    2257              : }
    2258              : 
    2259              : tree
    2260      3572112 : generic_simplify_431 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2261              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2262              :  const enum tree_code ARG_UNUSED (bitop))
    2263              : {
    2264      3572112 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2265      3572112 :   if (0
    2266              :  && INTEGRAL_TYPE_P (type)
    2267              :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2268              :  && TREE_CODE (captures[3]) != INTEGER_CST
    2269              :  && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    2270              :  && TYPE_PRECISION (TREE_TYPE (captures[2])) > TYPE_PRECISION (type)
    2271              : )
    2272              :     {
    2273              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail764;
    2274              :       {
    2275              :         tree res_op0;
    2276              :         {
    2277              :           tree _o1[1], _r1;
    2278              :           _o1[0] = captures[2];
    2279              :           if (TREE_TYPE (_o1[0]) != type)
    2280              :             {
    2281              :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2282              :             }
    2283              :           else
    2284              :             _r1 = _o1[0];
    2285              :           res_op0 = _r1;
    2286              :         }
    2287              :         tree res_op1;
    2288              :         {
    2289              :           tree _o1[1], _r1;
    2290              :           _o1[0] = captures[3];
    2291              :           if (TREE_TYPE (_o1[0]) != type)
    2292              :             {
    2293              :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2294              :             }
    2295              :           else
    2296              :             _r1 = _o1[0];
    2297              :           res_op1 = _r1;
    2298              :         }
    2299              :         tree _r;
    2300              :         _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
    2301              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 630, __FILE__, __LINE__, true);
    2302              :         return _r;
    2303              :       }
    2304              : next_after_fail764:;
    2305              :     }
    2306              :   else
    2307              :     {
    2308      3572112 :       if (0
    2309              :  && INTEGRAL_TYPE_P (type)
    2310              :  && types_match (type, TREE_TYPE (captures[2]))
    2311              :  && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type)
    2312              : )
    2313              :         {
    2314              :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail765;
    2315              :           {
    2316              :             tree res_op0;
    2317              :             res_op0 = captures[2];
    2318              :             tree res_op1;
    2319              :             {
    2320              :               tree _o1[1], _r1;
    2321              :               _o1[0] = captures[3];
    2322              :               if (TREE_TYPE (_o1[0]) != type)
    2323              :                 {
    2324              :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2325              :                 }
    2326              :               else
    2327              :                 _r1 = _o1[0];
    2328              :               res_op1 = _r1;
    2329              :             }
    2330              :             tree _r;
    2331              :             _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
    2332              :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 631, __FILE__, __LINE__, true);
    2333              :             return _r;
    2334              :           }
    2335              : next_after_fail765:;
    2336              :         }
    2337              :     }
    2338      3572112 :   return NULL_TREE;
    2339              : }
    2340              : 
    2341              : tree
    2342     20286737 : generic_simplify_438 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2343              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2344              :  const enum tree_code ARG_UNUSED (op))
    2345              : {
    2346     20286737 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2347     20286737 :   if (INTEGRAL_TYPE_P (type)
    2348     19908311 :  && op != MULT_EXPR
    2349     19908311 :  && op != RDIV_EXPR
    2350     10977425 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2351     10977425 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2352     10977425 :  && type_has_mode_precision_p (TREE_TYPE (captures[2]))
    2353     10976117 :  && type_has_mode_precision_p (TREE_TYPE (captures[4]))
    2354     10976117 :  && type_has_mode_precision_p (type)
    2355     10941962 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
    2356            0 :  && types_match (captures[2], type)
    2357     20286737 :  && (types_match (captures[2], captures[4])
    2358            0 :  || poly_int_tree_p (captures[3]))
    2359              : )
    2360              :     {
    2361            0 :       if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
    2362              : )
    2363              :         {
    2364            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail782;
    2365            0 :           {
    2366            0 :             tree res_op0;
    2367            0 :             res_op0 = captures[2];
    2368            0 :             tree res_op1;
    2369            0 :             {
    2370            0 :               tree _o1[1], _r1;
    2371            0 :               _o1[0] = captures[4];
    2372            0 :               if (TREE_TYPE (_o1[0]) != type)
    2373              :                 {
    2374            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2375              :                 }
    2376              :               else
    2377              :                 _r1 = _o1[0];
    2378            0 :               res_op1 = _r1;
    2379              :             }
    2380            0 :             tree _r;
    2381            0 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2382            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 636, __FILE__, __LINE__, true);
    2383            0 :             return _r;
    2384              :           }
    2385            0 : next_after_fail782:;
    2386              :         }
    2387              :       else
    2388              :         {
    2389            0 :           {
    2390            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
    2391            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail783;
    2392            0 :               {
    2393            0 :                 tree res_op0;
    2394            0 :                 {
    2395            0 :                   tree _o1[2], _r1;
    2396            0 :                   {
    2397            0 :                     tree _o2[1], _r2;
    2398            0 :                     _o2[0] = captures[2];
    2399            0 :                     if (TREE_TYPE (_o2[0]) != utype)
    2400              :                       {
    2401            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2402              :                       }
    2403              :                     else
    2404              :                       _r2 = _o2[0];
    2405            0 :                     _o1[0] = _r2;
    2406              :                   }
    2407            0 :                   {
    2408            0 :                     tree _o2[1], _r2;
    2409            0 :                     _o2[0] = captures[4];
    2410            0 :                     if (TREE_TYPE (_o2[0]) != utype)
    2411              :                       {
    2412            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2413              :                       }
    2414              :                     else
    2415              :                       _r2 = _o2[0];
    2416            0 :                     _o1[1] = _r2;
    2417              :                   }
    2418            0 :                   _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2419            0 :                   res_op0 = _r1;
    2420              :                 }
    2421            0 :                 tree _r;
    2422            0 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2423            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 637, __FILE__, __LINE__, true);
    2424            0 :                 return _r;
    2425              :               }
    2426            0 : next_after_fail783:;
    2427              :           }
    2428              :         }
    2429              :     }
    2430              :   else
    2431              :     {
    2432     20239297 :       if (FLOAT_TYPE_P (type)
    2433     20334177 :  && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    2434        47440 :  == DECIMAL_FLOAT_TYPE_P (type)
    2435              : )
    2436              :         {
    2437        47400 :           {
    2438        47400 :  tree arg0 = strip_float_extensions (captures[2]);
    2439        47400 :  tree arg1 = strip_float_extensions (captures[4]);
    2440        47400 :  tree itype = TREE_TYPE (captures[0]);
    2441        47400 :  tree ty1 = TREE_TYPE (arg0);
    2442        47400 :  tree ty2 = TREE_TYPE (arg1);
    2443        47400 :  enum tree_code code = TREE_CODE (itype);
    2444            0 :               if (FLOAT_TYPE_P (ty1)
    2445        47400 :  && FLOAT_TYPE_P (ty2)
    2446              : )
    2447              :                 {
    2448        47400 :                   {
    2449        47400 :  tree newtype = type;
    2450        47400 :  if (TYPE_MODE (ty1) == SDmode
    2451        47132 :  || TYPE_MODE (ty2) == SDmode
    2452        94532 :  || TYPE_MODE (type) == SDmode)
    2453          283 :  newtype = dfloat32_type_node;
    2454        47400 :  if (TYPE_MODE (ty1) == DDmode
    2455        47254 :  || TYPE_MODE (ty2) == DDmode
    2456        94527 :  || TYPE_MODE (type) == DDmode)
    2457          275 :  newtype = dfloat64_type_node;
    2458        47400 :  if (TYPE_MODE (ty1) == TDmode
    2459        47399 :  || TYPE_MODE (ty2) == TDmode
    2460        94547 :  || TYPE_MODE (type) == TDmode)
    2461          268 :  newtype = dfloat128_type_node;
    2462        47400 :                       if ((newtype == dfloat32_type_node
    2463        47396 :  || newtype == dfloat64_type_node
    2464        47253 :  || newtype == dfloat128_type_node)
    2465          415 :  && newtype == type
    2466        47411 :  && types_match (newtype, type)
    2467              : )
    2468              :                         {
    2469           11 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail784;
    2470            5 :                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail784;
    2471            5 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail784;
    2472            5 :                           {
    2473            5 :                             tree res_op0;
    2474            5 :                             {
    2475            5 :                               tree _o1[1], _r1;
    2476            5 :                               _o1[0] = captures[2];
    2477            5 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2478              :                                 {
    2479            5 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2480              :                                 }
    2481              :                               else
    2482              :                                 _r1 = _o1[0];
    2483            5 :                               res_op0 = _r1;
    2484              :                             }
    2485            5 :                             tree res_op1;
    2486            5 :                             {
    2487            5 :                               tree _o1[1], _r1;
    2488            5 :                               _o1[0] = captures[4];
    2489            5 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2490              :                                 {
    2491            5 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2492              :                                 }
    2493              :                               else
    2494              :                                 _r1 = _o1[0];
    2495            5 :                               res_op1 = _r1;
    2496              :                             }
    2497            5 :                             tree _r;
    2498            5 :                             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2499            5 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 638, __FILE__, __LINE__, true);
    2500            5 :                             return _r;
    2501              :                           }
    2502              : next_after_fail784:;
    2503              :                         }
    2504              :                       else
    2505              :                         {
    2506        47389 :                           {
    2507        47389 :  if (element_precision (ty1) > element_precision (newtype))
    2508         9826 :  newtype = ty1;
    2509        47389 :  if (element_precision (ty2) > element_precision (newtype))
    2510         4344 :  newtype = ty2;
    2511        47389 :                               if (element_precision (newtype) < element_precision (itype)
    2512        12603 :  && (!VECTOR_MODE_P (TYPE_MODE (newtype))
    2513            0 :  || target_supports_op_p (newtype, op, optab_default))
    2514        12603 :  && (flag_unsafe_math_optimizations
    2515        12595 :  || (element_precision (newtype) == element_precision (type)
    2516        12566 :  && real_can_shorten_arithmetic (element_mode (itype),
    2517              :  element_mode (type))
    2518         3603 :  && !excess_precision_type (newtype)))
    2519        47544 :  && !types_match (itype, newtype)
    2520              : )
    2521              :                                 {
    2522          155 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail785;
    2523          154 :                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail785;
    2524          136 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail785;
    2525          136 :                                   {
    2526          136 :                                     tree res_op0;
    2527          136 :                                     {
    2528          136 :                                       tree _o1[2], _r1;
    2529          136 :                                       {
    2530          136 :                                         tree _o2[1], _r2;
    2531          136 :                                         _o2[0] = captures[2];
    2532          136 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2533              :                                           {
    2534          136 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2535              :                                           }
    2536              :                                         else
    2537              :                                           _r2 = _o2[0];
    2538          136 :                                         _o1[0] = _r2;
    2539              :                                       }
    2540          136 :                                       {
    2541          136 :                                         tree _o2[1], _r2;
    2542          136 :                                         _o2[0] = captures[4];
    2543          136 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2544              :                                           {
    2545          136 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2546              :                                           }
    2547              :                                         else
    2548              :                                           _r2 = _o2[0];
    2549          136 :                                         _o1[1] = _r2;
    2550              :                                       }
    2551          136 :                                       _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2552          136 :                                       res_op0 = _r1;
    2553              :                                     }
    2554          136 :                                     tree _r;
    2555          136 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2556          136 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 639, __FILE__, __LINE__, true);
    2557          136 :                                     return _r;
    2558              :                                   }
    2559              : next_after_fail785:;
    2560              :                                 }
    2561              :                           }
    2562              :                         }
    2563              :                   }
    2564              :                 }
    2565              :           }
    2566              :         }
    2567              :     }
    2568              :   return NULL_TREE;
    2569              : }
    2570              : 
    2571              : tree
    2572            0 : generic_simplify_470 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2573              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2574              :  const enum tree_code ARG_UNUSED (cmp))
    2575              : {
    2576            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2577            0 :   if (fold_before_rtl_expansion_p ()
    2578              : )
    2579              :     {
    2580            0 :       if (INTEGRAL_TYPE_P (type)
    2581            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2582              : )
    2583              :         {
    2584            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail817;
    2585            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail817;
    2586            0 :           {
    2587            0 :             tree res_op0;
    2588            0 :             res_op0 = captures[0];
    2589            0 :             tree res_op1;
    2590            0 :             res_op1 = captures[3];
    2591            0 :             tree res_op2;
    2592            0 :             res_op2 =  build_zero_cst (type);
    2593            0 :             tree _r;
    2594            0 :             _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    2595            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 670, __FILE__, __LINE__, true);
    2596            0 :             return _r;
    2597              :           }
    2598              : next_after_fail817:;
    2599              :         }
    2600              :     }
    2601              :   return NULL_TREE;
    2602              : }
    2603              : 
    2604              : tree
    2605            0 : generic_simplify_479 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2606              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2607              : {
    2608            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2609            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail847;
    2610            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail847;
    2611            0 :   {
    2612            0 :     tree _r;
    2613            0 :     _r = captures[2];
    2614            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2615            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2616            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 690, __FILE__, __LINE__, true);
    2617              :     return _r;
    2618              :   }
    2619              : next_after_fail847:;
    2620              :   return NULL_TREE;
    2621              : }
    2622              : 
    2623              : tree
    2624          214 : generic_simplify_483 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2625              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2626              :  const enum tree_code ARG_UNUSED (code2),
    2627              :  const enum tree_code ARG_UNUSED (code1))
    2628              : {
    2629          214 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2630          214 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
    2631            6 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2632          214 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2633            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
    2634            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
    2635            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
    2636          208 :  && bitwise_equal_p (captures[2], captures[5]))
    2637              : )
    2638              :     {
    2639            6 :       {
    2640            6 :  bool one_before = false;
    2641            6 :  bool one_after = false;
    2642            6 :  int cmp = 0;
    2643            6 :  bool allbits = true;
    2644            6 :  if (TREE_CODE (captures[2]) == INTEGER_CST
    2645            6 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2646              :  {
    2647            6 :  allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
    2648            6 :  auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
    2649            6 :  auto t2 = wi::to_wide (captures[5]);
    2650            6 :  cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
    2651            6 :  if (cmp < 0
    2652            6 :  && t1 == t2 - 1)
    2653              :  one_before = true;
    2654            6 :  if (cmp > 0
    2655            6 :  && t1 == t2 + 1)
    2656              :  one_after = true;
    2657              :  }
    2658            6 :  bool val;
    2659            6 :  switch (code2)
    2660              :  {
    2661            0 :  case EQ_EXPR: val = (cmp == 0); break;
    2662            2 :  case NE_EXPR: val = (cmp != 0); break;
    2663            0 :  case LT_EXPR: val = (cmp < 0); break;
    2664            4 :  case GT_EXPR: val = (cmp > 0); break;
    2665            0 :  case LE_EXPR: val = (cmp <= 0); break;
    2666            0 :  case GE_EXPR: val = (cmp >= 0); break;
    2667            0 :  default: gcc_unreachable ();
    2668              :  }
    2669            6 :           if (code1 == EQ_EXPR && val
    2670              : )
    2671              :             {
    2672            0 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail858;
    2673            0 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail858;
    2674            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail858;
    2675            0 :               {
    2676            0 :                 tree _r;
    2677            0 :                 _r = captures[0];
    2678            0 :                 if (TREE_SIDE_EFFECTS (captures[4]))
    2679            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    2680            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 676, __FILE__, __LINE__, true);
    2681            0 :                 return _r;
    2682              :               }
    2683              : next_after_fail858:;
    2684              :             }
    2685              :           else
    2686              :             {
    2687            6 :               if (code1 == EQ_EXPR && !val
    2688              : )
    2689              :                 {
    2690            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail859;
    2691            0 :                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail859;
    2692            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail859;
    2693            0 :                   {
    2694            0 :                     tree _r;
    2695            0 :                     _r =  constant_boolean_node (false, type);
    2696            0 :                     if (TREE_SIDE_EFFECTS (captures[4]))
    2697            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    2698            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 677, __FILE__, __LINE__, true);
    2699            0 :                     return _r;
    2700              :                   }
    2701              : next_after_fail859:;
    2702              :                 }
    2703              :               else
    2704              :                 {
    2705            6 :                   if (code1 == NE_EXPR && !val && allbits
    2706              : )
    2707              :                     {
    2708            0 :                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail860;
    2709            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail860;
    2710            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail860;
    2711            0 :                       {
    2712            0 :                         tree _r;
    2713            0 :                         _r = captures[3];
    2714            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 678, __FILE__, __LINE__, true);
    2715            0 :                         return _r;
    2716              :                       }
    2717              : next_after_fail860:;
    2718              :                     }
    2719              :                   else
    2720              :                     {
    2721            6 :                       if ((code1 == NE_EXPR
    2722            6 :  && code2 == GE_EXPR
    2723            0 :  && cmp == 0
    2724            0 :  && allbits)
    2725            6 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2726            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2727            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2728              : )
    2729              :                         {
    2730            0 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail861;
    2731            0 :                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail861;
    2732            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail861;
    2733            0 :                           {
    2734            0 :                             tree res_op0;
    2735            0 :                             res_op0 = captures[4];
    2736            0 :                             tree res_op1;
    2737            0 :                             {
    2738            0 :                               tree _o1[1], _r1;
    2739            0 :                               _o1[0] = captures[2];
    2740            0 :                               if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2741              :                                 {
    2742            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2743              :                                 }
    2744              :                               else
    2745              :                                 _r1 = _o1[0];
    2746            0 :                               res_op1 = _r1;
    2747              :                             }
    2748            0 :                             tree _r;
    2749            0 :                             _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2750            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 679, __FILE__, __LINE__, true);
    2751            0 :                             return _r;
    2752              :                           }
    2753              : next_after_fail861:;
    2754              :                         }
    2755              :                       else
    2756              :                         {
    2757            6 :                           if ((code1 == NE_EXPR
    2758            6 :  && code2 == LE_EXPR
    2759            0 :  && cmp == 0
    2760            0 :  && allbits)
    2761            6 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2762            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2763            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2764              : )
    2765              :                             {
    2766            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail862;
    2767            0 :                               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail862;
    2768            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail862;
    2769            0 :                               {
    2770            0 :                                 tree res_op0;
    2771            0 :                                 res_op0 = captures[4];
    2772            0 :                                 tree res_op1;
    2773            0 :                                 {
    2774            0 :                                   tree _o1[1], _r1;
    2775            0 :                                   _o1[0] = captures[2];
    2776            0 :                                   if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2777              :                                     {
    2778            0 :                                       _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2779              :                                     }
    2780              :                                   else
    2781              :                                     _r1 = _o1[0];
    2782            0 :                                   res_op1 = _r1;
    2783              :                                 }
    2784            0 :                                 tree _r;
    2785            0 :                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2786            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 680, __FILE__, __LINE__, true);
    2787            0 :                                 return _r;
    2788              :                               }
    2789              : next_after_fail862:;
    2790              :                             }
    2791              :                           else
    2792              :                             {
    2793            6 :                               if ((code1 == NE_EXPR
    2794            6 :  && code2 == GT_EXPR
    2795              :  && one_after
    2796            4 :  && allbits)
    2797            6 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2798            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2799            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2800              : )
    2801              :                                 {
    2802            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail863;
    2803            0 :                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail863;
    2804            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail863;
    2805            0 :                                   {
    2806            0 :                                     tree res_op0;
    2807            0 :                                     res_op0 = captures[4];
    2808            0 :                                     tree res_op1;
    2809            0 :                                     {
    2810            0 :                                       tree _o1[1], _r1;
    2811            0 :                                       _o1[0] = captures[2];
    2812            0 :                                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2813              :                                         {
    2814            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2815              :                                         }
    2816              :                                       else
    2817              :                                         _r1 = _o1[0];
    2818            0 :                                       res_op1 = _r1;
    2819              :                                     }
    2820            0 :                                     tree _r;
    2821            0 :                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2822            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 681, __FILE__, __LINE__, true);
    2823            0 :                                     return _r;
    2824              :                                   }
    2825              : next_after_fail863:;
    2826              :                                 }
    2827              :                               else
    2828              :                                 {
    2829            6 :                                   if ((code1 == NE_EXPR
    2830            6 :  && code2 == LT_EXPR
    2831              :  && one_before
    2832            0 :  && allbits)
    2833            6 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2834            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2835            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2836              : )
    2837              :                                     {
    2838            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail864;
    2839            0 :                                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail864;
    2840            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail864;
    2841            0 :                                       {
    2842            0 :                                         tree res_op0;
    2843            0 :                                         res_op0 = captures[4];
    2844            0 :                                         tree res_op1;
    2845            0 :                                         {
    2846            0 :                                           tree _o1[1], _r1;
    2847            0 :                                           _o1[0] = captures[2];
    2848            0 :                                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2849              :                                             {
    2850            0 :                                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2851              :                                             }
    2852              :                                           else
    2853              :                                             _r1 = _o1[0];
    2854            0 :                                           res_op1 = _r1;
    2855              :                                         }
    2856            0 :                                         tree _r;
    2857            0 :                                         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2858            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 682, __FILE__, __LINE__, true);
    2859            0 :                                         return _r;
    2860              :                                       }
    2861              : next_after_fail864:;
    2862              :                                     }
    2863              :                                 }
    2864              :                             }
    2865              :                         }
    2866              :                     }
    2867              :                 }
    2868              :             }
    2869              :       }
    2870              :     }
    2871              :   return NULL_TREE;
    2872              : }
    2873              : 
    2874              : tree
    2875          147 : generic_simplify_516 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2876              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2877              : {
    2878          147 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2879          147 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail908;
    2880          147 :   {
    2881          147 :     tree res_op0;
    2882          147 :     {
    2883          147 :       tree _o1[1], _r1;
    2884          147 :       _o1[0] = captures[0];
    2885          147 :       if (TREE_TYPE (_o1[0]) != type)
    2886              :         {
    2887            0 :           _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    2888              :         }
    2889              :       else
    2890              :         _r1 = _o1[0];
    2891          147 :       res_op0 = _r1;
    2892              :     }
    2893          147 :     tree res_op1;
    2894          147 :     res_op1 =  build_each_one_cst (type);
    2895          147 :     tree _r;
    2896          147 :     _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    2897          147 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 720, __FILE__, __LINE__, true);
    2898              :     return _r;
    2899              :   }
    2900            0 : next_after_fail908:;
    2901            0 :   return NULL_TREE;
    2902              : }
    2903              : 
    2904              : tree
    2905            0 : generic_simplify_523 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2906              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2907              :  const enum tree_code ARG_UNUSED (minmax))
    2908              : {
    2909            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2910            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail916;
    2911            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail916;
    2912            0 :   {
    2913            0 :     tree _r;
    2914            0 :     _r = captures[0];
    2915            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 727, __FILE__, __LINE__, true);
    2916              :     return _r;
    2917              :   }
    2918              : next_after_fail916:;
    2919              :   return NULL_TREE;
    2920              : }
    2921              : 
    2922              : tree
    2923            0 : generic_simplify_531 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2924              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2925              :  const enum tree_code ARG_UNUSED (minmax),
    2926              :  const enum tree_code ARG_UNUSED (cmp))
    2927              : {
    2928            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2929            0 :   {
    2930            0 :  poly_int64 off0, off1;
    2931            0 :  tree base0, base1;
    2932            0 :  int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
    2933              :  off0, off1,
    2934              : 1
    2935              : );
    2936            0 :       if (equal == 1
    2937              : )
    2938              :         {
    2939            0 :           if (minmax == MIN_EXPR
    2940              : )
    2941              :             {
    2942            0 :               if (known_le (off0, off1)
    2943              : )
    2944              :                 {
    2945            0 :                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail929;
    2946            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail929;
    2947            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail929;
    2948            0 :                   {
    2949            0 :                     tree _r;
    2950            0 :                     _r = captures[0];
    2951            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 736, __FILE__, __LINE__, true);
    2952            0 :                     return _r;
    2953              :                   }
    2954            0 : next_after_fail929:;
    2955              :                 }
    2956              :               else
    2957              :                 {
    2958            0 :                   if (known_gt (off0, off1)
    2959              : )
    2960              :                     {
    2961            0 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail930;
    2962            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail930;
    2963            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail930;
    2964            0 :                       {
    2965            0 :                         tree _r;
    2966            0 :                         _r = captures[2];
    2967            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 737, __FILE__, __LINE__, true);
    2968            0 :                         return _r;
    2969              :                       }
    2970            0 : next_after_fail930:;
    2971              :                     }
    2972              :                 }
    2973              :             }
    2974              :           else
    2975              :             {
    2976            0 :               if (known_ge (off0, off1)
    2977              : )
    2978              :                 {
    2979            0 :                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail931;
    2980            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail931;
    2981            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail931;
    2982            0 :                   {
    2983            0 :                     tree _r;
    2984            0 :                     _r = captures[0];
    2985            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 738, __FILE__, __LINE__, true);
    2986            0 :                     return _r;
    2987              :                   }
    2988            0 : next_after_fail931:;
    2989              :                 }
    2990              :               else
    2991              :                 {
    2992            0 :                   if (known_lt (off0, off1)
    2993              : )
    2994              :                     {
    2995            0 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail932;
    2996            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail932;
    2997            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail932;
    2998            0 :                       {
    2999            0 :                         tree _r;
    3000            0 :                         _r = captures[2];
    3001            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 739, __FILE__, __LINE__, true);
    3002            0 :                         return _r;
    3003              :                       }
    3004            0 : next_after_fail932:;
    3005              :                     }
    3006              :                 }
    3007              :             }
    3008              :         }
    3009              :   }
    3010            0 :   return NULL_TREE;
    3011              : }
    3012              : 
    3013              : tree
    3014            0 : generic_simplify_552 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3015              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3016              :  const combined_fn ARG_UNUSED (cond_len_op))
    3017              : {
    3018            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3019            0 :   {
    3020            0 :  tree op_type = TREE_TYPE (captures[5]);
    3021            0 :       if (inverse_conditions_p (captures[0], captures[2])
    3022            0 :  && element_precision (type) == element_precision (op_type)
    3023              : )
    3024              :         {
    3025            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail959;
    3026            0 :           {
    3027            0 :             tree res_op0;
    3028            0 :             {
    3029            0 :               tree _o1[6], _r1;
    3030            0 :               _o1[0] = captures[2];
    3031            0 :               _o1[1] = captures[3];
    3032            0 :               _o1[2] = captures[4];
    3033            0 :               {
    3034            0 :                 tree _o2[1], _r2;
    3035            0 :                 _o2[0] = captures[1];
    3036            0 :                 if (TREE_TYPE (_o2[0]) != op_type)
    3037              :                   {
    3038            0 :                     _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
    3039              :                   }
    3040              :                 else
    3041              :                   _r2 = _o2[0];
    3042            0 :                 _o1[3] = _r2;
    3043              :               }
    3044            0 :               _o1[4] = captures[6];
    3045            0 :               _o1[5] = captures[7];
    3046            0 :               _r1 = maybe_build_call_expr_loc (loc, cond_len_op, TREE_TYPE (_o1[1]), 6, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4], _o1[5]);
    3047            0 :               if (!_r1)
    3048            0 :                 goto next_after_fail959;
    3049            0 :               res_op0 = _r1;
    3050              :             }
    3051            0 :             tree _r;
    3052            0 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3053            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
    3054            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3055            0 :             if (TREE_SIDE_EFFECTS (captures[5]))
    3056            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
    3057            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 753, __FILE__, __LINE__, true);
    3058            0 :             return _r;
    3059              :           }
    3060              : next_after_fail959:;
    3061              :         }
    3062              :   }
    3063              :   return NULL_TREE;
    3064              : }
    3065              : 
    3066              : tree
    3067      1811703 : generic_simplify_564 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3068              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    3069              :  const enum tree_code ARG_UNUSED (cmp))
    3070              : {
    3071      1811703 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3072      1811703 :   if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1]))
    3073      1811703 :  && (cmp != LTGT_EXPR || ! flag_trapping_math)
    3074              : )
    3075              :     {
    3076           10 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail974;
    3077           10 :       {
    3078           10 :         tree _r;
    3079           20 :         _r =  constant_boolean_node (cmp == ORDERED_EXPR || cmp == LTGT_EXPR
    3080           10 :  ? false : true, type);
    3081           10 :         if (TREE_SIDE_EFFECTS (captures[0]))
    3082            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3083           10 :         if (TREE_SIDE_EFFECTS (captures[1]))
    3084            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3085           10 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 768, __FILE__, __LINE__, true);
    3086           10 :         return _r;
    3087              :       }
    3088            0 : next_after_fail974:;
    3089              :     }
    3090              :   return NULL_TREE;
    3091              : }
    3092              : 
    3093              : tree
    3094            0 : generic_simplify_574 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3095              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3096              :  const combined_fn ARG_UNUSED (sinhs),
    3097              :  const combined_fn ARG_UNUSED (atanhs),
    3098              :  const combined_fn ARG_UNUSED (sqrts))
    3099              : {
    3100            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3101            0 :   if (!flag_errno_math
    3102              : )
    3103              :     {
    3104            0 :       {
    3105            0 :  tree t_one = build_one_cst (type);
    3106            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail984;
    3107            0 :           {
    3108            0 :             if (! tree_invariant_p (captures[1])) goto next_after_fail984;
    3109            0 :             tree res_op0;
    3110            0 :             res_op0 = unshare_expr (captures[1]);
    3111            0 :             tree res_op1;
    3112            0 :             {
    3113            0 :               tree _o1[1], _r1;
    3114            0 :               {
    3115            0 :                 tree _o2[2], _r2;
    3116            0 :                 {
    3117            0 :                   tree _o3[2], _r3;
    3118            0 :                   _o3[0] =  t_one;
    3119            0 :                   _o3[1] = unshare_expr (captures[1]);
    3120            0 :                   _r3 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
    3121            0 :                   _o2[0] = _r3;
    3122              :                 }
    3123            0 :                 {
    3124            0 :                   tree _o3[2], _r3;
    3125            0 :                   _o3[0] =  t_one;
    3126            0 :                   _o3[1] = captures[1];
    3127            0 :                   _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
    3128            0 :                   _o2[1] = _r3;
    3129              :                 }
    3130            0 :                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    3131            0 :                 _o1[0] = _r2;
    3132              :               }
    3133            0 :               _r1 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3134            0 :               if (!_r1)
    3135            0 :                 goto next_after_fail984;
    3136            0 :               res_op1 = _r1;
    3137              :             }
    3138            0 :             tree _r;
    3139            0 :             _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    3140            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 778, __FILE__, __LINE__, true);
    3141            0 :             return _r;
    3142              :           }
    3143              : next_after_fail984:;
    3144              :       }
    3145              :     }
    3146              :   return NULL_TREE;
    3147              : }
    3148              : 
    3149              : tree
    3150            0 : generic_simplify_589 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3151              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3152              :  const combined_fn ARG_UNUSED (SIGNBIT))
    3153              : {
    3154            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3155            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail999;
    3156            0 :   {
    3157            0 :     tree _r;
    3158            0 :     _r =  integer_zero_node;
    3159            0 :     if (TREE_SIDE_EFFECTS (captures[0]))
    3160            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3161            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 793, __FILE__, __LINE__, true);
    3162              :     return _r;
    3163              :   }
    3164            0 : next_after_fail999:;
    3165            0 :   return NULL_TREE;
    3166              : }
    3167              : 
    3168              : tree
    3169            0 : generic_simplify_596 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3170              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    3171              : {
    3172            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3173            0 :   if (canonicalize_math_after_vectorization_p ()
    3174              : )
    3175              :     {
    3176              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1006;
    3177              :       {
    3178              :         tree res_op0;
    3179              :         res_op0 = captures[0];
    3180              :         tree res_op1;
    3181              :         res_op1 = captures[1];
    3182              :         tree res_op2;
    3183              :         res_op2 = captures[2];
    3184              :         tree _r;
    3185              :         _r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
    3186              :         if (!_r)
    3187              :           goto next_after_fail1006;
    3188              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 800, __FILE__, __LINE__, true);
    3189              :         return _r;
    3190              :       }
    3191            0 : next_after_fail1006:;
    3192              :     }
    3193            0 :   return NULL_TREE;
    3194              : }
    3195              : 
    3196              : tree
    3197            0 : generic_simplify_605 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3198              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
    3199              : {
    3200            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3201            0 :   if (canonicalize_math_after_vectorization_p ()
    3202              : )
    3203              :     {
    3204              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1015;
    3205              :       {
    3206              :         tree res_op0;
    3207              :         res_op0 = captures[0];
    3208              :         tree res_op1;
    3209              :         res_op1 = captures[1];
    3210              :         tree res_op2;
    3211              :         res_op2 = captures[2];
    3212              :         tree res_op3;
    3213              :         res_op3 = captures[3];
    3214              :         tree res_op4;
    3215              :         res_op4 = captures[4];
    3216              :         tree _r;
    3217              :         _r = maybe_build_call_expr_loc (loc, CFN_COND_FMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3218              :         if (!_r)
    3219              :           goto next_after_fail1015;
    3220              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 809, __FILE__, __LINE__, true);
    3221              :         return _r;
    3222              :       }
    3223            0 : next_after_fail1015:;
    3224              :     }
    3225            0 :   return NULL_TREE;
    3226              : }
    3227              : 
    3228              : tree
    3229            0 : generic_simplify_614 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3230              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3231              :  const enum tree_code ARG_UNUSED (rot),
    3232              :  const combined_fn ARG_UNUSED (popcount))
    3233              : {
    3234            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3235            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3236            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3237            0 :  && (
    3238              : 
    3239            0 :  || !TREE_SIDE_EFFECTS (captures[3]))
    3240              : )
    3241              :     {
    3242            0 :       {
    3243            0 :  tree type0 = TREE_TYPE (captures[0]);
    3244            0 :  tree type1 = TREE_TYPE (captures[1]);
    3245            0 :  unsigned int prec0 = TYPE_PRECISION (type0);
    3246            0 :  unsigned int prec1 = TYPE_PRECISION (type1);
    3247            0 :           if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
    3248              : )
    3249              :             {
    3250            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1024;
    3251            0 :               {
    3252            0 :                 tree res_op0;
    3253            0 :                 {
    3254            0 :                   tree _o1[1], _r1;
    3255            0 :                   _o1[0] = captures[2];
    3256            0 :                   if (TREE_TYPE (_o1[0]) != type0)
    3257              :                     {
    3258            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
    3259              :                     }
    3260              :                   else
    3261              :                     _r1 = _o1[0];
    3262            0 :                   res_op0 = _r1;
    3263              :                 }
    3264            0 :                 tree _r;
    3265            0 :                 _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
    3266            0 :                 if (!_r)
    3267            0 :                   goto next_after_fail1024;
    3268            0 :                 if (TREE_SIDE_EFFECTS (captures[3]))
    3269            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    3270            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 815, __FILE__, __LINE__, true);
    3271            0 :                 return _r;
    3272              :               }
    3273              : next_after_fail1024:;
    3274              :             }
    3275              :       }
    3276              :     }
    3277              :   return NULL_TREE;
    3278              : }
    3279              : 
    3280              : tree
    3281            0 : generic_simplify_626 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3282              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3283              :  const enum tree_code ARG_UNUSED (plusminus),
    3284              :  const enum tree_code ARG_UNUSED (minusplus))
    3285              : {
    3286            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3287            0 :   if (!VECTOR_INTEGER_TYPE_P (type)
    3288              :  && !FLOAT_WORDS_BIG_ENDIAN
    3289            0 :  && (operand_equal_p (captures[0], captures[2], 0)
    3290            0 :  ? operand_equal_p (captures[1], captures[3], 0)
    3291            0 :  : operand_equal_p (captures[0], captures[3], 0) && operand_equal_p (captures[1], captures[2], 0))
    3292              : )
    3293              :     {
    3294            0 :       {
    3295            0 :  vec_perm_builder builder;
    3296            0 :           if (tree_to_vec_perm_builder (&builder, captures[4])
    3297              : )
    3298              :             {
    3299            0 :               {
    3300            0 :  poly_uint64 nelts = TYPE_VECTOR_SUBPARTS (type);
    3301            0 :  vec_perm_indices sel (builder, 2, nelts);
    3302            0 :  machine_mode vec_mode = TYPE_MODE (type);
    3303            0 :  machine_mode wide_mode;
    3304            0 :  scalar_mode wide_elt_mode;
    3305            0 :  poly_uint64 wide_nunits;
    3306            0 :  scalar_mode inner_mode = GET_MODE_INNER (vec_mode);
    3307            0 :                   if (VECTOR_MODE_P (vec_mode)
    3308            0 :  && sel.series_p (0, 2, 0, 2)
    3309            0 :  && sel.series_p (1, 2, nelts + 1, 2)
    3310            0 :  && GET_MODE_2XWIDER_MODE (inner_mode).exists (&wide_elt_mode)
    3311            0 :  && multiple_p (GET_MODE_NUNITS (vec_mode), 2, &wide_nunits)
    3312            0 :  && related_vector_mode (vec_mode, wide_elt_mode,
    3313            0 :  wide_nunits).exists (&wide_mode)
    3314              : )
    3315              :                     {
    3316            0 :                       {
    3317            0 :  tree stype
    3318            0 :  = lang_hooks.types.type_for_mode (GET_MODE_INNER (wide_mode),
    3319            0 :  TYPE_UNSIGNED (type));
    3320            0 :  tree ntype = build_vector_type_for_mode (stype, wide_mode);
    3321            0 :  const struct real_format *fmt_old = FLOAT_MODE_FORMAT (vec_mode);
    3322            0 :  const struct real_format *fmt_new = FLOAT_MODE_FORMAT (wide_mode);
    3323            0 :                           if (TYPE_MODE (stype) != BLKmode
    3324            0 :  && VECTOR_TYPE_P (ntype)
    3325            0 :  && fmt_old != NULL
    3326            0 :  && fmt_new != NULL
    3327              : )
    3328              :                             {
    3329            0 :                               {
    3330            0 :  if (known_eq (GET_MODE_NUNITS (wide_mode), 1)
    3331            0 :  && !target_supports_op_p (ntype, NEGATE_EXPR, optab_vector))
    3332              :  ntype = stype;
    3333            0 :                                   if (fmt_new->signbit_rw
    3334            0 :  == fmt_old->signbit_rw + GET_MODE_UNIT_BITSIZE (vec_mode)
    3335            0 :  && fmt_new->signbit_rw == fmt_new->signbit_ro
    3336            0 :  && targetm.can_change_mode_class (TYPE_MODE (ntype),
    3337            0 :  TYPE_MODE (type), ALL_REGS)
    3338            0 :  && ((optimize_vectors_before_lowering_p ()
    3339            0 :  && VECTOR_TYPE_P (ntype))
    3340            0 :  || target_supports_op_p (ntype, NEGATE_EXPR, optab_vector))
    3341              : )
    3342              :                                     {
    3343            0 :                                       if (plusminus == PLUS_EXPR
    3344              : )
    3345              :                                         {
    3346            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1037;
    3347            0 :                                           {
    3348            0 :                                             tree res_op0;
    3349            0 :                                             {
    3350            0 :                                               tree _o1[1], _r1;
    3351            0 :                                               {
    3352            0 :                                                 tree _o2[1], _r2;
    3353            0 :                                                 {
    3354            0 :                                                   tree _o3[1], _r3;
    3355            0 :                                                   _o3[0] = captures[3];
    3356            0 :                                                   if (TREE_TYPE (_o3[0]) != ntype)
    3357              :                                                     {
    3358            0 :                                                       _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o3[0]);
    3359              :                                                     }
    3360              :                                                   else
    3361              :                                                     _r3 = _o3[0];
    3362            0 :                                                   _o2[0] = _r3;
    3363              :                                                 }
    3364            0 :                                                 _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    3365            0 :                                                 _o1[0] = _r2;
    3366              :                                               }
    3367            0 :                                               if (TREE_TYPE (_o1[0]) != type)
    3368              :                                                 {
    3369            0 :                                                   _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    3370              :                                                 }
    3371              :                                               else
    3372              :                                                 _r1 = _o1[0];
    3373            0 :                                               res_op0 = _r1;
    3374              :                                             }
    3375            0 :                                             tree res_op1;
    3376            0 :                                             res_op1 = captures[2];
    3377            0 :                                             tree _r;
    3378            0 :                                             _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    3379            0 :                                             if (TREE_SIDE_EFFECTS (captures[0]))
    3380            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3381            0 :                                             if (TREE_SIDE_EFFECTS (captures[1]))
    3382            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3383            0 :                                             if (TREE_SIDE_EFFECTS (captures[4]))
    3384            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    3385            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 824, __FILE__, __LINE__, true);
    3386            0 :                                             return _r;
    3387              :                                           }
    3388            0 : next_after_fail1037:;
    3389              :                                         }
    3390              :                                       else
    3391              :                                         {
    3392            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1038;
    3393            0 :                                           {
    3394            0 :                                             tree res_op0;
    3395            0 :                                             res_op0 = captures[0];
    3396            0 :                                             tree res_op1;
    3397            0 :                                             {
    3398            0 :                                               tree _o1[1], _r1;
    3399            0 :                                               {
    3400            0 :                                                 tree _o2[1], _r2;
    3401            0 :                                                 {
    3402            0 :                                                   tree _o3[1], _r3;
    3403            0 :                                                   _o3[0] = captures[1];
    3404            0 :                                                   if (TREE_TYPE (_o3[0]) != ntype)
    3405              :                                                     {
    3406            0 :                                                       _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o3[0]);
    3407              :                                                     }
    3408              :                                                   else
    3409              :                                                     _r3 = _o3[0];
    3410            0 :                                                   _o2[0] = _r3;
    3411              :                                                 }
    3412            0 :                                                 _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    3413            0 :                                                 _o1[0] = _r2;
    3414              :                                               }
    3415            0 :                                               if (TREE_TYPE (_o1[0]) != type)
    3416              :                                                 {
    3417            0 :                                                   _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    3418              :                                                 }
    3419              :                                               else
    3420              :                                                 _r1 = _o1[0];
    3421            0 :                                               res_op1 = _r1;
    3422              :                                             }
    3423            0 :                                             tree _r;
    3424            0 :                                             _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    3425            0 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    3426            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    3427            0 :                                             if (TREE_SIDE_EFFECTS (captures[3]))
    3428            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    3429            0 :                                             if (TREE_SIDE_EFFECTS (captures[4]))
    3430            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    3431            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 825, __FILE__, __LINE__, true);
    3432            0 :                                             return _r;
    3433              :                                           }
    3434            0 : next_after_fail1038:;
    3435              :                                         }
    3436              :                                     }
    3437              :                               }
    3438              :                             }
    3439              :                       }
    3440              :                     }
    3441            0 :               }
    3442              :             }
    3443            0 :       }
    3444              :     }
    3445              :   return NULL_TREE;
    3446              : }
    3447              : 
    3448              : tree
    3449         1330 : generic_simplify_CONJ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3450              : {
    3451         1330 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3452         1330 :   switch (TREE_CODE (_p0))
    3453              :     {
    3454            0 :     CASE_CONVERT:
    3455            0 :       {
    3456            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3457            0 :         switch (TREE_CODE (_q20))
    3458              :           {
    3459            0 :           case CONJ_EXPR:
    3460            0 :             {
    3461            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3462            0 :               {
    3463            0 :                 tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    3464            0 :                 tree res = generic_simplify_560 (loc, type, _p0, captures);
    3465            0 :                 if (res) return res;
    3466              :               }
    3467            0 :               break;
    3468              :             }
    3469            0 :           case COMPLEX_EXPR:
    3470            0 :             {
    3471            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3472            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3473            0 :               {
    3474            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3475            0 :                 {
    3476            0 :  tree itype = TREE_TYPE (type);
    3477            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1161;
    3478            0 :                     {
    3479            0 :                       tree res_op0;
    3480            0 :                       {
    3481            0 :                         tree _o1[1], _r1;
    3482            0 :                         _o1[0] = captures[2];
    3483            0 :                         if (TREE_TYPE (_o1[0]) != itype)
    3484              :                           {
    3485            0 :                             _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
    3486              :                           }
    3487              :                         else
    3488              :                           _r1 = _o1[0];
    3489            0 :                         res_op0 = _r1;
    3490              :                       }
    3491            0 :                       tree res_op1;
    3492            0 :                       {
    3493            0 :                         tree _o1[1], _r1;
    3494            0 :                         {
    3495            0 :                           tree _o2[1], _r2;
    3496            0 :                           _o2[0] = captures[3];
    3497            0 :                           if (TREE_TYPE (_o2[0]) != itype)
    3498              :                             {
    3499            0 :                               _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
    3500              :                             }
    3501              :                           else
    3502              :                             _r2 = _o2[0];
    3503            0 :                           _o1[0] = _r2;
    3504              :                         }
    3505            0 :                         _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3506            0 :                         res_op1 = _r1;
    3507              :                       }
    3508            0 :                       tree _r;
    3509            0 :                       _r = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
    3510            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 887, __FILE__, __LINE__, true);
    3511            0 :                       return _r;
    3512              :                     }
    3513            0 : next_after_fail1161:;
    3514              :                 }
    3515              :               }
    3516            0 :               break;
    3517              :             }
    3518              :           default:;
    3519              :           }
    3520              :         break;
    3521              :       }
    3522            1 :     case CONJ_EXPR:
    3523            1 :       {
    3524            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3525            1 :         {
    3526            1 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3527            1 :           tree res = generic_simplify_560 (loc, type, _p0, captures);
    3528            1 :           if (res) return res;
    3529              :         }
    3530            0 :         break;
    3531              :       }
    3532           12 :     case COMPLEX_EXPR:
    3533           12 :       {
    3534           12 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3535           12 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3536           12 :         {
    3537           12 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    3538           12 :           {
    3539           12 :  tree itype = TREE_TYPE (type);
    3540           12 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1162;
    3541           12 :               {
    3542           12 :                 tree res_op0;
    3543           12 :                 {
    3544           12 :                   tree _o1[1], _r1;
    3545           12 :                   _o1[0] = captures[2];
    3546           12 :                   if (TREE_TYPE (_o1[0]) != itype)
    3547              :                     {
    3548            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
    3549              :                     }
    3550              :                   else
    3551              :                     _r1 = _o1[0];
    3552           12 :                   res_op0 = _r1;
    3553              :                 }
    3554           12 :                 tree res_op1;
    3555           12 :                 {
    3556           12 :                   tree _o1[1], _r1;
    3557           12 :                   {
    3558           12 :                     tree _o2[1], _r2;
    3559           12 :                     _o2[0] = captures[3];
    3560           12 :                     if (TREE_TYPE (_o2[0]) != itype)
    3561              :                       {
    3562            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
    3563              :                       }
    3564              :                     else
    3565              :                       _r2 = _o2[0];
    3566           12 :                     _o1[0] = _r2;
    3567              :                   }
    3568           12 :                   _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3569           12 :                   res_op1 = _r1;
    3570              :                 }
    3571           12 :                 tree _r;
    3572           12 :                 _r = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
    3573           12 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 887, __FILE__, __LINE__, true);
    3574           12 :                 return _r;
    3575              :               }
    3576            0 : next_after_fail1162:;
    3577              :           }
    3578              :         }
    3579            0 :         break;
    3580              :       }
    3581              :     default:;
    3582              :     }
    3583              :   return NULL_TREE;
    3584              : }
    3585              : 
    3586              : tree
    3587     96777583 : generic_simplify_PLUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    3588              : {
    3589     96777583 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3590     96777583 :   if (integer_zerop (_p1))
    3591              :     {
    3592     26583903 :       {
    3593     26583903 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3594     26583903 :         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1242;
    3595     26583903 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1242;
    3596     26583903 :         {
    3597     26583903 :           tree res_op0;
    3598     26583903 :           res_op0 = captures[0];
    3599     26583903 :           tree _r;
    3600     26583903 :           _r = non_lvalue_loc (loc, res_op0);
    3601     26583903 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
    3602     26583903 :           return _r;
    3603              :         }
    3604              : next_after_fail1242:;
    3605              :       }
    3606              :     }
    3607     70193680 :   if (real_zerop (_p1))
    3608              :     {
    3609         5301 :       {
    3610         5301 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    3611         5301 :         tree res = generic_simplify_54 (loc, type, _p0, _p1, captures);
    3612         5301 :         if (res) return res;
    3613              :       }
    3614              :     }
    3615     70193585 :   switch (TREE_CODE (_p0))
    3616              :     {
    3617      6569744 :     case PLUS_EXPR:
    3618      6569744 :       {
    3619      6569744 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3620      6569744 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3621      6569744 :         switch (TREE_CODE (_q21))
    3622              :           {
    3623       115434 :           case REAL_CST:
    3624       115434 :             {
    3625       115434 :               switch (TREE_CODE (_p1))
    3626              :                 {
    3627           70 :                 case REAL_CST:
    3628           70 :                   {
    3629           70 :                     {
    3630           70 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    3631           70 :                       tree res = generic_simplify_55 (loc, type, _p0, _p1, captures, PLUS_EXPR, PLUS_EXPR);
    3632           70 :                       if (res) return res;
    3633              :                     }
    3634           67 :                     break;
    3635              :                   }
    3636              :                 default:;
    3637              :                 }
    3638              :               break;
    3639              :             }
    3640              :           default:;
    3641              :           }
    3642              :         break;
    3643              :       }
    3644      2114442 :     case MINUS_EXPR:
    3645      2114442 :       {
    3646      2114442 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3647      2114442 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3648      2114442 :         switch (TREE_CODE (_q21))
    3649              :           {
    3650        21844 :           case REAL_CST:
    3651        21844 :             {
    3652        21844 :               switch (TREE_CODE (_p1))
    3653              :                 {
    3654          190 :                 case REAL_CST:
    3655          190 :                   {
    3656          190 :                     {
    3657          190 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    3658          190 :                       tree res = generic_simplify_55 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR);
    3659          190 :                       if (res) return res;
    3660              :                     }
    3661          188 :                     break;
    3662              :                   }
    3663              :                 default:;
    3664              :                 }
    3665              :               break;
    3666              :             }
    3667              :           default:;
    3668              :           }
    3669              :         break;
    3670              :       }
    3671        12239 :     case MAX_EXPR:
    3672        12239 :       {
    3673        12239 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3674        12239 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3675        12239 :         if (integer_zerop (_q21))
    3676              :           {
    3677         4652 :             switch (TREE_CODE (_p1))
    3678              :               {
    3679          114 :               case MAX_EXPR:
    3680          114 :                 {
    3681          114 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    3682          114 :                   tree _q51 = TREE_OPERAND (_p1, 1);
    3683          114 :                   switch (TREE_CODE (_q50))
    3684              :                     {
    3685           48 :                     case NEGATE_EXPR:
    3686           48 :                       {
    3687           48 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    3688           48 :                         if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    3689              :                           {
    3690           48 :                             if (integer_zerop (_q51))
    3691              :                               {
    3692           48 :                                 {
    3693           48 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3694           48 :                                   tree res = generic_simplify_56 (loc, type, _p0, _p1, captures);
    3695           48 :                                   if (res) return res;
    3696              :                                 }
    3697              :                               }
    3698              :                           }
    3699              :                         break;
    3700              :                       }
    3701              :                     default:;
    3702              :                     }
    3703              :                   break;
    3704              :                 }
    3705              :               default:;
    3706              :               }
    3707              :           }
    3708        12191 :         switch (TREE_CODE (_q20))
    3709              :           {
    3710           18 :           case NEGATE_EXPR:
    3711           18 :             {
    3712           18 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3713           18 :               if (integer_zerop (_q21))
    3714              :                 {
    3715           18 :                   switch (TREE_CODE (_p1))
    3716              :                     {
    3717           18 :                     case MAX_EXPR:
    3718           18 :                       {
    3719           18 :                         tree _q60 = TREE_OPERAND (_p1, 0);
    3720           18 :                         tree _q61 = TREE_OPERAND (_p1, 1);
    3721           18 :                         if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    3722              :                           {
    3723           18 :                             if (integer_zerop (_q61))
    3724              :                               {
    3725           18 :                                 {
    3726           18 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    3727           18 :                                   tree res = generic_simplify_56 (loc, type, _p0, _p1, captures);
    3728           18 :                                   if (res) return res;
    3729              :                                 }
    3730              :                               }
    3731              :                           }
    3732              :                         break;
    3733              :                       }
    3734              :                     default:;
    3735              :                     }
    3736              :                 }
    3737              :               break;
    3738              :             }
    3739              :           default:;
    3740              :           }
    3741              :         break;
    3742              :       }
    3743     13340583 :     case MULT_EXPR:
    3744     13340583 :       {
    3745     13340583 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3746     13340583 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3747     13340583 :         switch (TREE_CODE (_q20))
    3748              :           {
    3749      1967178 :           case PLUS_EXPR:
    3750      1967178 :             {
    3751      1967178 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3752      1967178 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3753      1967178 :               switch (TREE_CODE (_q31))
    3754              :                 {
    3755       635333 :                 case INTEGER_CST:
    3756       635333 :                   {
    3757       635333 :                     switch (TREE_CODE (_q21))
    3758              :                       {
    3759       191501 :                       case INTEGER_CST:
    3760       191501 :                         {
    3761       191501 :                           switch (TREE_CODE (_p1))
    3762              :                             {
    3763       126865 :                             case INTEGER_CST:
    3764       126865 :                               {
    3765       126865 :                                 {
    3766       126865 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    3767       126865 :                                   {
    3768       126865 :  bool overflowed = true;
    3769       126865 :  wi::overflow_type ovf1;
    3770       126865 :  wi::overflow_type ovf2;
    3771       126865 :  wide_int mul = wi::mul (wi::to_wide (captures[3]), wi::to_wide (captures[4]),
    3772       253730 :  TYPE_SIGN (type), &ovf1);
    3773       380595 :  wide_int add = wi::add (mul, wi::to_wide (captures[5]),
    3774       126865 :  TYPE_SIGN (type), &ovf2);
    3775       126865 :  if (TYPE_OVERFLOW_UNDEFINED (type))
    3776              :  {
    3777              :  }
    3778              :  else
    3779        66004 :  overflowed = false;
    3780        66004 :                                       if (!overflowed
    3781              : )
    3782              :                                         {
    3783        66004 :                                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1243;
    3784        66004 :                                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1243;
    3785        66004 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1243;
    3786        66004 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1243;
    3787        66004 :                                           {
    3788        66004 :                                             tree res_op0;
    3789        66004 :                                             {
    3790        66004 :                                               tree _o1[2], _r1;
    3791        66004 :                                               _o1[0] = captures[2];
    3792        66004 :                                               _o1[1] = captures[4];
    3793        66004 :                                               _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3794        66004 :                                               res_op0 = _r1;
    3795              :                                             }
    3796        66004 :                                             tree res_op1;
    3797        66004 :                                             res_op1 =  wide_int_to_tree (type, add);
    3798        66004 :                                             tree _r;
    3799        66004 :                                             _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    3800        66004 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 901, __FILE__, __LINE__, true);
    3801        66004 :                                             return _r;
    3802              :                                           }
    3803        60861 : next_after_fail1243:;
    3804              :                                         }
    3805       126865 :                                   }
    3806              :                                 }
    3807        60861 :                                 break;
    3808              :                               }
    3809              :                             default:;
    3810              :                             }
    3811              :                           break;
    3812              :                         }
    3813              :                       default:;
    3814              :                       }
    3815              :                     break;
    3816              :                   }
    3817              :                 default:;
    3818              :                 }
    3819              :               break;
    3820              :             }
    3821              :           default:;
    3822              :           }
    3823              :         break;
    3824              :       }
    3825        25841 :     case LSHIFT_EXPR:
    3826        25841 :       {
    3827        25841 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3828        25841 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3829        25841 :         switch (TREE_CODE (_p1))
    3830              :           {
    3831          688 :           case LSHIFT_EXPR:
    3832          688 :             {
    3833          688 :               tree _q50 = TREE_OPERAND (_p1, 0);
    3834          688 :               tree _q51 = TREE_OPERAND (_p1, 1);
    3835          688 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    3836              :                 {
    3837            7 :                   {
    3838            7 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    3839            7 :                     tree res = generic_simplify_57 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    3840            7 :                     if (res) return res;
    3841              :                   }
    3842              :                 }
    3843              :               break;
    3844              :             }
    3845              :           default:;
    3846              :           }
    3847              :         break;
    3848              :       }
    3849       222369 :     case BIT_AND_EXPR:
    3850       222369 :       {
    3851       222369 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3852       222369 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3853       222369 :         switch (TREE_CODE (_p1))
    3854              :           {
    3855          300 :           case BIT_AND_EXPR:
    3856          300 :             {
    3857          300 :               tree _q50 = TREE_OPERAND (_p1, 0);
    3858          300 :               tree _q51 = TREE_OPERAND (_p1, 1);
    3859          300 :               {
    3860          300 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
    3861          300 :                 tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    3862          300 :                 if (res) return res;
    3863              :               }
    3864          300 :               {
    3865          300 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q50 };
    3866          300 :                 tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    3867          300 :                 if (res) return res;
    3868              :               }
    3869          300 :               {
    3870          300 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q51 };
    3871          300 :                 tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    3872          300 :                 if (res) return res;
    3873              :               }
    3874          300 :               {
    3875          300 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q50 };
    3876          300 :                 tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    3877          300 :                 if (res) return res;
    3878              :               }
    3879          300 :               break;
    3880              :             }
    3881       222369 :           default:;
    3882              :           }
    3883       222369 :         if (integer_onep (_q21))
    3884              :           {
    3885       124943 :             if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    3886              :               {
    3887           29 :                 {
    3888           29 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    3889           29 :                   tree res = generic_simplify_58 (loc, type, _p0, _p1, captures);
    3890           29 :                   if (res) return res;
    3891              :                 }
    3892              :               }
    3893              :           }
    3894              :         break;
    3895              :       }
    3896     70127474 :     default:;
    3897              :     }
    3898     70127474 : if (real_zerop (_p0))
    3899              :   {
    3900            0 :     {
    3901            0 :       tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
    3902            0 :       tree res = generic_simplify_54 (loc, type, _p0, _p1, captures);
    3903            0 :       if (res) return res;
    3904              :     }
    3905              :   }
    3906     70127474 :   switch (TREE_CODE (_p1))
    3907              :     {
    3908         6389 :     case BIT_AND_EXPR:
    3909         6389 :       {
    3910         6389 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3911         6389 :         tree _q31 = TREE_OPERAND (_p1, 1);
    3912         6389 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    3913              :           {
    3914           16 :             if (integer_onep (_q31))
    3915              :               {
    3916           16 :                 {
    3917           16 :                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    3918           16 :                   tree res = generic_simplify_58 (loc, type, _p0, _p1, captures);
    3919           16 :                   if (res) return res;
    3920              :                 }
    3921              :               }
    3922              :           }
    3923              :         break;
    3924              :       }
    3925     70127458 :     default:;
    3926              :     }
    3927     70127458 :   switch (TREE_CODE (_p0))
    3928              :     {
    3929       222340 :     case BIT_AND_EXPR:
    3930       222340 :       {
    3931       222340 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3932       222340 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3933       222340 :         switch (TREE_CODE (_p1))
    3934              :           {
    3935            9 :           case BIT_XOR_EXPR:
    3936            9 :             {
    3937            9 :               tree _q50 = TREE_OPERAND (_p1, 0);
    3938            9 :               tree _q51 = TREE_OPERAND (_p1, 1);
    3939            9 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    3940              :                 {
    3941            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    3942              :                     {
    3943            0 :                       {
    3944            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3945            0 :                         tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    3946            0 :                         if (res) return res;
    3947              :                       }
    3948              :                     }
    3949              :                 }
    3950              :               break;
    3951              :             }
    3952            1 :           case BIT_IOR_EXPR:
    3953            1 :             {
    3954            1 :               tree _q50 = TREE_OPERAND (_p1, 0);
    3955            1 :               tree _q51 = TREE_OPERAND (_p1, 1);
    3956            1 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    3957              :                 {
    3958            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    3959              :                     {
    3960            0 :                       {
    3961            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3962            0 :                         tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    3963            0 :                         if (res) return res;
    3964              :                       }
    3965              :                     }
    3966              :                 }
    3967              :               break;
    3968              :             }
    3969       222340 :           default:;
    3970              :           }
    3971       222340 :         switch (TREE_CODE (_q21))
    3972              :           {
    3973       222036 :           case INTEGER_CST:
    3974       222036 :             {
    3975       222036 :               switch (TREE_CODE (_p1))
    3976              :                 {
    3977        19570 :                 CASE_CONVERT:
    3978        19570 :                   {
    3979        19570 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    3980        19570 :                     switch (TREE_CODE (_q50))
    3981              :                       {
    3982            0 :                       case BIT_AND_EXPR:
    3983            0 :                         {
    3984            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    3985            0 :                           tree _q61 = TREE_OPERAND (_q50, 1);
    3986            0 :                           switch (TREE_CODE (_q61))
    3987              :                             {
    3988            0 :                             case INTEGER_CST:
    3989            0 :                               {
    3990            0 :                                 {
    3991            0 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q60, _q61 };
    3992            0 :                                   tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    3993            0 :                                   if (res) return res;
    3994              :                                 }
    3995            0 :                                 break;
    3996              :                               }
    3997              :                             default:;
    3998              :                             }
    3999              :                           break;
    4000              :                         }
    4001              :                       default:;
    4002              :                       }
    4003              :                     break;
    4004              :                   }
    4005          300 :                 case BIT_AND_EXPR:
    4006          300 :                   {
    4007          300 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4008          300 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    4009          300 :                     switch (TREE_CODE (_q51))
    4010              :                       {
    4011          300 :                       case INTEGER_CST:
    4012          300 :                         {
    4013          300 :                           {
    4014          300 :                             tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
    4015          300 :                             tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4016          300 :                             if (res) return res;
    4017              :                           }
    4018          200 :                           break;
    4019              :                         }
    4020              :                       default:;
    4021              :                       }
    4022              :                     break;
    4023              :                   }
    4024              :                 default:;
    4025              :                 }
    4026              :               break;
    4027              :             }
    4028              :           default:;
    4029              :           }
    4030              :         break;
    4031              :       }
    4032         1508 :     case BIT_XOR_EXPR:
    4033         1508 :       {
    4034         1508 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4035         1508 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4036         1508 :         switch (TREE_CODE (_p1))
    4037              :           {
    4038            0 :           case BIT_AND_EXPR:
    4039            0 :             {
    4040            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4041            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4042            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4043              :                 {
    4044            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4045              :                     {
    4046            0 :                       {
    4047            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4048            0 :                         tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4049            0 :                         if (res) return res;
    4050              :                       }
    4051              :                     }
    4052              :                 }
    4053              :               break;
    4054              :             }
    4055              :           default:;
    4056              :           }
    4057              :         break;
    4058              :       }
    4059          552 :     case BIT_IOR_EXPR:
    4060          552 :       {
    4061          552 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4062          552 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4063          552 :         switch (TREE_CODE (_p1))
    4064              :           {
    4065            0 :           case BIT_AND_EXPR:
    4066            0 :             {
    4067            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4068            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4069            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4070              :                 {
    4071            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4072              :                     {
    4073            0 :                       {
    4074            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4075            0 :                         tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    4076            0 :                         if (res) return res;
    4077              :                       }
    4078              :                     }
    4079              :                 }
    4080              :               break;
    4081              :             }
    4082              :           default:;
    4083              :           }
    4084              :         break;
    4085              :       }
    4086      2114440 :     case MINUS_EXPR:
    4087      2114440 :       {
    4088      2114440 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4089      2114440 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4090      2114440 :         switch (TREE_CODE (_q20))
    4091              :           {
    4092            2 :           case BIT_AND_EXPR:
    4093            2 :             {
    4094            2 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4095            2 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4096            2 :               switch (TREE_CODE (_q21))
    4097              :                 {
    4098            1 :                 case BIT_IOR_EXPR:
    4099            1 :                   {
    4100            1 :                     tree _q60 = TREE_OPERAND (_q21, 0);
    4101            1 :                     tree _q61 = TREE_OPERAND (_q21, 1);
    4102            1 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    4103              :                       {
    4104            1 :                         if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
    4105              :                           {
    4106            1 :                             if (integer_all_onesp (_p1))
    4107              :                               {
    4108            1 :                                 {
    4109            1 :                                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    4110            1 :                                   tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    4111            1 :                                   if (res) return res;
    4112              :                                 }
    4113              :                               }
    4114              :                           }
    4115              :                       }
    4116            0 :                     if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    4117              :                       {
    4118            0 :                         if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    4119              :                           {
    4120            0 :                             if (integer_all_onesp (_p1))
    4121              :                               {
    4122            0 :                                 {
    4123            0 :                                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
    4124            0 :                                   tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    4125            0 :                                   if (res) return res;
    4126              :                                 }
    4127              :                               }
    4128              :                           }
    4129              :                       }
    4130              :                     break;
    4131              :                   }
    4132              :                 default:;
    4133              :                 }
    4134              :               break;
    4135              :             }
    4136      2114439 :           default:;
    4137              :           }
    4138      2114439 :       {
    4139      2114439 :         tree _q20_pops[1];
    4140      2114439 :         if (tree_nop_convert (_q20, _q20_pops))
    4141              :           {
    4142       953540 :             tree _q30 = _q20_pops[0];
    4143       953540 :             switch (TREE_CODE (_q30))
    4144              :               {
    4145            0 :               case BIT_AND_EXPR:
    4146            0 :                 {
    4147            0 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    4148            0 :                   tree _q41 = TREE_OPERAND (_q30, 1);
    4149            0 :                   {
    4150            0 :                     tree _q21_pops[1];
    4151            0 :                     if (tree_nop_convert (_q21, _q21_pops))
    4152              :                       {
    4153            0 :                         tree _q70 = _q21_pops[0];
    4154            0 :                         switch (TREE_CODE (_q70))
    4155              :                           {
    4156            0 :                           case BIT_IOR_EXPR:
    4157            0 :                             {
    4158            0 :                               tree _q80 = TREE_OPERAND (_q70, 0);
    4159            0 :                               tree _q81 = TREE_OPERAND (_q70, 1);
    4160            0 :                               if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
    4161              :                                 {
    4162            0 :                                   if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
    4163              :                                     {
    4164            0 :                                       if (integer_all_onesp (_p1))
    4165              :                                         {
    4166            0 :                                           {
    4167            0 :                                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
    4168            0 :                                             tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    4169            0 :                                             if (res) return res;
    4170              :                                           }
    4171              :                                         }
    4172              :                                     }
    4173              :                                 }
    4174            0 :                               if ((_q80 == _q41 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q41, 0) && types_match (_q80, _q41)))
    4175              :                                 {
    4176            0 :                                   if ((_q81 == _q40 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q40, 0) && types_match (_q81, _q40)))
    4177              :                                     {
    4178            0 :                                       if (integer_all_onesp (_p1))
    4179              :                                         {
    4180            0 :                                           {
    4181            0 :                                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q40 };
    4182            0 :                                             tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    4183            0 :                                             if (res) return res;
    4184              :                                           }
    4185              :                                         }
    4186              :                                     }
    4187              :                                 }
    4188              :                               break;
    4189              :                             }
    4190              :                           default:;
    4191              :                           }
    4192              :                       }
    4193              :                   }
    4194            0 :                   break;
    4195              :                 }
    4196              :               default:;
    4197              :               }
    4198              :           }
    4199              :       }
    4200      2114439 :         {
    4201      2114439 :           tree _q21_pops[1];
    4202      2114439 :           if (tree_nop_convert (_q21, _q21_pops))
    4203              :             {
    4204      1171765 :               tree _q40 = _q21_pops[0];
    4205      1171765 :               if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    4206              :                 {
    4207           34 :                   {
    4208           34 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    4209           34 :                     tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    4210           34 :                     if (res) return res;
    4211              :                   }
    4212              :                 }
    4213              :             }
    4214              :         }
    4215      2114409 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4216              :           {
    4217        48274 :             {
    4218        48274 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4219        48274 :               tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    4220        48274 :               if (res) return res;
    4221              :             }
    4222              :           }
    4223              :         break;
    4224              :       }
    4225     18750305 :     CASE_CONVERT:
    4226     18750305 :       {
    4227     18750305 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4228     18750305 :         switch (TREE_CODE (_q20))
    4229              :           {
    4230           72 :           case BIT_AND_EXPR:
    4231           72 :             {
    4232           72 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4233           72 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4234           72 :               switch (TREE_CODE (_q31))
    4235              :                 {
    4236            8 :                 case INTEGER_CST:
    4237            8 :                   {
    4238            8 :                     switch (TREE_CODE (_p1))
    4239              :                       {
    4240            0 :                       CASE_CONVERT:
    4241            0 :                         {
    4242            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    4243            0 :                           switch (TREE_CODE (_q60))
    4244              :                             {
    4245            0 :                             case BIT_AND_EXPR:
    4246            0 :                               {
    4247            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    4248            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    4249            0 :                                 switch (TREE_CODE (_q71))
    4250              :                                   {
    4251            0 :                                   case INTEGER_CST:
    4252            0 :                                     {
    4253            0 :                                       {
    4254            0 :                                         tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q60, _q70, _q71 };
    4255            0 :                                         tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4256            0 :                                         if (res) return res;
    4257              :                                       }
    4258            0 :                                       break;
    4259              :                                     }
    4260              :                                   default:;
    4261              :                                   }
    4262              :                                 break;
    4263              :                               }
    4264              :                             default:;
    4265              :                             }
    4266              :                           break;
    4267              :                         }
    4268            0 :                       case BIT_AND_EXPR:
    4269            0 :                         {
    4270            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    4271            0 :                           tree _q61 = TREE_OPERAND (_p1, 1);
    4272            0 :                           switch (TREE_CODE (_q61))
    4273              :                             {
    4274            0 :                             case INTEGER_CST:
    4275            0 :                               {
    4276            0 :                                 {
    4277            0 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1, _q60, _q61 };
    4278            0 :                                   tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4279            0 :                                   if (res) return res;
    4280              :                                 }
    4281            0 :                                 break;
    4282              :                               }
    4283              :                             default:;
    4284              :                             }
    4285              :                           break;
    4286              :                         }
    4287              :                       default:;
    4288              :                       }
    4289              :                     break;
    4290              :                   }
    4291              :                 default:;
    4292              :                 }
    4293              :               break;
    4294              :             }
    4295         4797 :           case NEGATE_EXPR:
    4296         4797 :             {
    4297         4797 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4298         4797 :               {
    4299         4797 :                 tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q30 };
    4300         4797 :                 tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
    4301         4797 :                 if (res) return res;
    4302              :               }
    4303         1767 :               break;
    4304              :             }
    4305              :           default:;
    4306              :           }
    4307              :         break;
    4308              :       }
    4309       127008 :     case COND_EXPR:
    4310       127008 :       {
    4311       127008 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4312       127008 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4313       127008 :         tree _q22 = TREE_OPERAND (_p0, 2);
    4314       127008 :         if (integer_zerop (_q22))
    4315              :           {
    4316       116062 :             switch (TREE_CODE (_p1))
    4317              :               {
    4318           44 :               case COND_EXPR:
    4319           44 :                 {
    4320           44 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    4321           44 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    4322           44 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    4323           44 :                   if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4324              :                     {
    4325            6 :                       if (integer_zerop (_q61))
    4326              :                         {
    4327            0 :                           {
    4328            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
    4329            0 :                             const enum tree_code op = PLUS_EXPR;
    4330            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1244;
    4331            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1244;
    4332            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1244;
    4333            0 :                             {
    4334            0 :                               tree res_op0;
    4335            0 :                               res_op0 = captures[1];
    4336            0 :                               tree res_op1;
    4337            0 :                               res_op1 = captures[2];
    4338            0 :                               tree res_op2;
    4339            0 :                               res_op2 = captures[4];
    4340            0 :                               tree _r;
    4341            0 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    4342            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    4343            0 :                               return _r;
    4344              :                             }
    4345            0 : next_after_fail1244:;
    4346              :                           }
    4347              :                         }
    4348              :                     }
    4349              :                   break;
    4350              :                 }
    4351              :               default:;
    4352              :               }
    4353              :           }
    4354       127008 :         if (integer_zerop (_q21))
    4355              :           {
    4356         1023 :             switch (TREE_CODE (_p1))
    4357              :               {
    4358            0 :               case COND_EXPR:
    4359            0 :                 {
    4360            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    4361            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    4362            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    4363            0 :                   if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4364              :                     {
    4365            0 :                       if (integer_zerop (_q62))
    4366              :                         {
    4367            0 :                           {
    4368            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
    4369            0 :                             const enum tree_code op = PLUS_EXPR;
    4370            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1245;
    4371            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1245;
    4372            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1245;
    4373            0 :                             {
    4374            0 :                               tree res_op0;
    4375            0 :                               res_op0 = captures[1];
    4376            0 :                               tree res_op1;
    4377            0 :                               res_op1 = captures[2];
    4378            0 :                               tree res_op2;
    4379            0 :                               res_op2 = captures[4];
    4380            0 :                               tree _r;
    4381            0 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    4382            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    4383            0 :                               return _r;
    4384              :                             }
    4385            0 : next_after_fail1245:;
    4386              :                           }
    4387              :                         }
    4388              :                     }
    4389              :                   break;
    4390              :                 }
    4391              :               default:;
    4392              :               }
    4393              :           }
    4394       127008 :         switch (TREE_CODE (_q20))
    4395              :           {
    4396        29604 :           case LT_EXPR:
    4397        29604 :             {
    4398        29604 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4399        29604 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4400        29604 :               if (zerop (_q22))
    4401              :                 {
    4402        29538 :                   switch (TREE_CODE (_p1))
    4403              :                     {
    4404            0 :                     case COND_EXPR:
    4405            0 :                       {
    4406            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4407            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4408            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4409            0 :                         switch (TREE_CODE (_q80))
    4410              :                           {
    4411            0 :                           case GE_EXPR:
    4412            0 :                             {
    4413            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4414            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4415            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4416              :                                 {
    4417            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4418              :                                     {
    4419            0 :                                       if (zerop (_q82))
    4420              :                                         {
    4421            0 :                                           {
    4422            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4423            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR, GE_EXPR);
    4424            0 :                                             if (res) return res;
    4425              :                                           }
    4426              :                                         }
    4427              :                                     }
    4428              :                                 }
    4429              :                               break;
    4430              :                             }
    4431              :                           default:;
    4432              :                           }
    4433              :                         break;
    4434              :                       }
    4435              :                     default:;
    4436              :                     }
    4437              :                 }
    4438              :               break;
    4439              :             }
    4440        30687 :           case LE_EXPR:
    4441        30687 :             {
    4442        30687 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4443        30687 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4444        30687 :               if (zerop (_q22))
    4445              :                 {
    4446        30429 :                   switch (TREE_CODE (_p1))
    4447              :                     {
    4448            5 :                     case COND_EXPR:
    4449            5 :                       {
    4450            5 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4451            5 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4452            5 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4453            5 :                         switch (TREE_CODE (_q80))
    4454              :                           {
    4455            0 :                           case GT_EXPR:
    4456            0 :                             {
    4457            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4458            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4459            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4460              :                                 {
    4461            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4462              :                                     {
    4463            0 :                                       if (zerop (_q82))
    4464              :                                         {
    4465            0 :                                           {
    4466            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4467            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR, GT_EXPR);
    4468            0 :                                             if (res) return res;
    4469              :                                           }
    4470              :                                         }
    4471              :                                     }
    4472              :                                 }
    4473              :                               break;
    4474              :                             }
    4475              :                           default:;
    4476              :                           }
    4477              :                         break;
    4478              :                       }
    4479              :                     default:;
    4480              :                     }
    4481              :                 }
    4482              :               break;
    4483              :             }
    4484         1051 :           case EQ_EXPR:
    4485         1051 :             {
    4486         1051 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4487         1051 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4488         1051 :               if (zerop (_q22))
    4489              :                 {
    4490          570 :                   switch (TREE_CODE (_p1))
    4491              :                     {
    4492           32 :                     case COND_EXPR:
    4493           32 :                       {
    4494           32 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4495           32 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4496           32 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4497           32 :                         switch (TREE_CODE (_q80))
    4498              :                           {
    4499            0 :                           case NE_EXPR:
    4500            0 :                             {
    4501            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4502            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4503            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4504              :                                 {
    4505            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4506              :                                     {
    4507            0 :                                       if (zerop (_q82))
    4508              :                                         {
    4509            0 :                                           {
    4510            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4511            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR, NE_EXPR);
    4512            0 :                                             if (res) return res;
    4513              :                                           }
    4514              :                                         }
    4515              :                                     }
    4516              :                                 }
    4517              :                               break;
    4518              :                             }
    4519              :                           default:;
    4520              :                           }
    4521              :                         break;
    4522              :                       }
    4523              :                     default:;
    4524              :                     }
    4525              :                 }
    4526              :               break;
    4527              :             }
    4528         8078 :           case NE_EXPR:
    4529         8078 :             {
    4530         8078 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4531         8078 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4532         8078 :               if (zerop (_q22))
    4533              :                 {
    4534         5473 :                   switch (TREE_CODE (_p1))
    4535              :                     {
    4536            7 :                     case COND_EXPR:
    4537            7 :                       {
    4538            7 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4539            7 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4540            7 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4541            7 :                         switch (TREE_CODE (_q80))
    4542              :                           {
    4543            0 :                           case EQ_EXPR:
    4544            0 :                             {
    4545            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4546            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4547            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4548              :                                 {
    4549            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4550              :                                     {
    4551            0 :                                       if (zerop (_q82))
    4552              :                                         {
    4553            0 :                                           {
    4554            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4555            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR, EQ_EXPR);
    4556            0 :                                             if (res) return res;
    4557              :                                           }
    4558              :                                         }
    4559              :                                     }
    4560              :                                 }
    4561              :                               break;
    4562              :                             }
    4563              :                           default:;
    4564              :                           }
    4565              :                         break;
    4566              :                       }
    4567              :                     default:;
    4568              :                     }
    4569              :                 }
    4570              :               break;
    4571              :             }
    4572        19943 :           case GE_EXPR:
    4573        19943 :             {
    4574        19943 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4575        19943 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4576        19943 :               if (zerop (_q22))
    4577              :                 {
    4578        18623 :                   switch (TREE_CODE (_p1))
    4579              :                     {
    4580            0 :                     case COND_EXPR:
    4581            0 :                       {
    4582            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4583            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4584            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4585            0 :                         switch (TREE_CODE (_q80))
    4586              :                           {
    4587            0 :                           case LT_EXPR:
    4588            0 :                             {
    4589            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4590            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4591            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4592              :                                 {
    4593            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4594              :                                     {
    4595            0 :                                       if (zerop (_q82))
    4596              :                                         {
    4597            0 :                                           {
    4598            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4599            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR, LT_EXPR);
    4600            0 :                                             if (res) return res;
    4601              :                                           }
    4602              :                                         }
    4603              :                                     }
    4604              :                                 }
    4605              :                               break;
    4606              :                             }
    4607              :                           default:;
    4608              :                           }
    4609              :                         break;
    4610              :                       }
    4611              :                     default:;
    4612              :                     }
    4613              :                 }
    4614              :               break;
    4615              :             }
    4616        30804 :           case GT_EXPR:
    4617        30804 :             {
    4618        30804 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4619        30804 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4620        30804 :               if (zerop (_q22))
    4621              :                 {
    4622        28647 :                   switch (TREE_CODE (_p1))
    4623              :                     {
    4624            0 :                     case COND_EXPR:
    4625            0 :                       {
    4626            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4627            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4628            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4629            0 :                         switch (TREE_CODE (_q80))
    4630              :                           {
    4631            0 :                           case LE_EXPR:
    4632            0 :                             {
    4633            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4634            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4635            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4636              :                                 {
    4637            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4638              :                                     {
    4639            0 :                                       if (zerop (_q82))
    4640              :                                         {
    4641            0 :                                           {
    4642            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4643            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR, LE_EXPR);
    4644            0 :                                             if (res) return res;
    4645              :                                           }
    4646              :                                         }
    4647              :                                     }
    4648              :                                 }
    4649              :                               break;
    4650              :                             }
    4651              :                           default:;
    4652              :                           }
    4653              :                         break;
    4654              :                       }
    4655              :                     default:;
    4656              :                     }
    4657              :                 }
    4658              :               break;
    4659              :             }
    4660            0 :           case UNORDERED_EXPR:
    4661            0 :             {
    4662            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4663            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4664            0 :               if (zerop (_q22))
    4665              :                 {
    4666            0 :                   switch (TREE_CODE (_p1))
    4667              :                     {
    4668            0 :                     case COND_EXPR:
    4669            0 :                       {
    4670            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4671            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4672            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4673            0 :                         switch (TREE_CODE (_q80))
    4674              :                           {
    4675            0 :                           case ORDERED_EXPR:
    4676            0 :                             {
    4677            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4678            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4679            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4680              :                                 {
    4681            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4682              :                                     {
    4683            0 :                                       if (zerop (_q82))
    4684              :                                         {
    4685            0 :                                           {
    4686            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4687            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
    4688            0 :                                             if (res) return res;
    4689              :                                           }
    4690              :                                         }
    4691              :                                     }
    4692              :                                 }
    4693              :                               break;
    4694              :                             }
    4695              :                           default:;
    4696              :                           }
    4697              :                         break;
    4698              :                       }
    4699              :                     default:;
    4700              :                     }
    4701              :                 }
    4702              :               break;
    4703              :             }
    4704            0 :           case ORDERED_EXPR:
    4705            0 :             {
    4706            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4707            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4708            0 :               if (zerop (_q22))
    4709              :                 {
    4710            0 :                   switch (TREE_CODE (_p1))
    4711              :                     {
    4712            0 :                     case COND_EXPR:
    4713            0 :                       {
    4714            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4715            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4716            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4717            0 :                         switch (TREE_CODE (_q80))
    4718              :                           {
    4719            0 :                           case UNORDERED_EXPR:
    4720            0 :                             {
    4721            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4722            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4723            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4724              :                                 {
    4725            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4726              :                                     {
    4727            0 :                                       if (zerop (_q82))
    4728              :                                         {
    4729            0 :                                           {
    4730            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4731            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
    4732            0 :                                             if (res) return res;
    4733              :                                           }
    4734              :                                         }
    4735              :                                     }
    4736              :                                 }
    4737              :                               break;
    4738              :                             }
    4739              :                           default:;
    4740              :                           }
    4741              :                         break;
    4742              :                       }
    4743              :                     default:;
    4744              :                     }
    4745              :                 }
    4746              :               break;
    4747              :             }
    4748            0 :           case UNLT_EXPR:
    4749            0 :             {
    4750            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4751            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4752            0 :               if (zerop (_q22))
    4753              :                 {
    4754            0 :                   switch (TREE_CODE (_p1))
    4755              :                     {
    4756            0 :                     case COND_EXPR:
    4757            0 :                       {
    4758            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4759            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4760            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4761            0 :                         switch (TREE_CODE (_q80))
    4762              :                           {
    4763            0 :                           case GE_EXPR:
    4764            0 :                             {
    4765            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4766            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4767            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4768              :                                 {
    4769            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4770              :                                     {
    4771            0 :                                       if (zerop (_q82))
    4772              :                                         {
    4773            0 :                                           {
    4774            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4775            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLT_EXPR, GE_EXPR);
    4776            0 :                                             if (res) return res;
    4777              :                                           }
    4778              :                                         }
    4779              :                                     }
    4780              :                                 }
    4781              :                               break;
    4782              :                             }
    4783              :                           default:;
    4784              :                           }
    4785              :                         break;
    4786              :                       }
    4787              :                     default:;
    4788              :                     }
    4789              :                 }
    4790              :               break;
    4791              :             }
    4792            0 :           case UNLE_EXPR:
    4793            0 :             {
    4794            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4795            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4796            0 :               if (zerop (_q22))
    4797              :                 {
    4798            0 :                   switch (TREE_CODE (_p1))
    4799              :                     {
    4800            0 :                     case COND_EXPR:
    4801            0 :                       {
    4802            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4803            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4804            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4805            0 :                         switch (TREE_CODE (_q80))
    4806              :                           {
    4807            0 :                           case GT_EXPR:
    4808            0 :                             {
    4809            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4810            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4811            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4812              :                                 {
    4813            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4814              :                                     {
    4815            0 :                                       if (zerop (_q82))
    4816              :                                         {
    4817            0 :                                           {
    4818            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4819            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLE_EXPR, GT_EXPR);
    4820            0 :                                             if (res) return res;
    4821              :                                           }
    4822              :                                         }
    4823              :                                     }
    4824              :                                 }
    4825              :                               break;
    4826              :                             }
    4827              :                           default:;
    4828              :                           }
    4829              :                         break;
    4830              :                       }
    4831              :                     default:;
    4832              :                     }
    4833              :                 }
    4834              :               break;
    4835              :             }
    4836            0 :           case UNGT_EXPR:
    4837            0 :             {
    4838            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4839            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4840            0 :               if (zerop (_q22))
    4841              :                 {
    4842            0 :                   switch (TREE_CODE (_p1))
    4843              :                     {
    4844            0 :                     case COND_EXPR:
    4845            0 :                       {
    4846            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4847            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4848            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4849            0 :                         switch (TREE_CODE (_q80))
    4850              :                           {
    4851            0 :                           case LE_EXPR:
    4852            0 :                             {
    4853            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4854            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4855            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4856              :                                 {
    4857            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4858              :                                     {
    4859            0 :                                       if (zerop (_q82))
    4860              :                                         {
    4861            0 :                                           {
    4862            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4863            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGT_EXPR, LE_EXPR);
    4864            0 :                                             if (res) return res;
    4865              :                                           }
    4866              :                                         }
    4867              :                                     }
    4868              :                                 }
    4869              :                               break;
    4870              :                             }
    4871              :                           default:;
    4872              :                           }
    4873              :                         break;
    4874              :                       }
    4875              :                     default:;
    4876              :                     }
    4877              :                 }
    4878              :               break;
    4879              :             }
    4880            0 :           case UNGE_EXPR:
    4881            0 :             {
    4882            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4883            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4884            0 :               if (zerop (_q22))
    4885              :                 {
    4886            0 :                   switch (TREE_CODE (_p1))
    4887              :                     {
    4888            0 :                     case COND_EXPR:
    4889            0 :                       {
    4890            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4891            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4892            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4893            0 :                         switch (TREE_CODE (_q80))
    4894              :                           {
    4895            0 :                           case LT_EXPR:
    4896            0 :                             {
    4897            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4898            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4899            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4900              :                                 {
    4901            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4902              :                                     {
    4903            0 :                                       if (zerop (_q82))
    4904              :                                         {
    4905            0 :                                           {
    4906            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4907            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGE_EXPR, LT_EXPR);
    4908            0 :                                             if (res) return res;
    4909              :                                           }
    4910              :                                         }
    4911              :                                     }
    4912              :                                 }
    4913              :                               break;
    4914              :                             }
    4915              :                           default:;
    4916              :                           }
    4917              :                         break;
    4918              :                       }
    4919              :                     default:;
    4920              :                     }
    4921              :                 }
    4922              :               break;
    4923              :             }
    4924            0 :           case UNEQ_EXPR:
    4925            0 :             {
    4926            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4927            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4928            0 :               if (zerop (_q22))
    4929              :                 {
    4930            0 :                   switch (TREE_CODE (_p1))
    4931              :                     {
    4932            0 :                     case COND_EXPR:
    4933            0 :                       {
    4934            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4935            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4936            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4937            0 :                         switch (TREE_CODE (_q80))
    4938              :                           {
    4939            0 :                           case LTGT_EXPR:
    4940            0 :                             {
    4941            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4942            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4943            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4944              :                                 {
    4945            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4946              :                                     {
    4947            0 :                                       if (zerop (_q82))
    4948              :                                         {
    4949            0 :                                           {
    4950            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4951            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNEQ_EXPR, LTGT_EXPR);
    4952            0 :                                             if (res) return res;
    4953              :                                           }
    4954              :                                         }
    4955              :                                     }
    4956              :                                 }
    4957              :                               break;
    4958              :                             }
    4959              :                           default:;
    4960              :                           }
    4961              :                         break;
    4962              :                       }
    4963              :                     default:;
    4964              :                     }
    4965              :                 }
    4966              :               break;
    4967              :             }
    4968            0 :           case LTGT_EXPR:
    4969            0 :             {
    4970            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4971            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4972            0 :               if (zerop (_q22))
    4973              :                 {
    4974            0 :                   switch (TREE_CODE (_p1))
    4975              :                     {
    4976            0 :                     case COND_EXPR:
    4977            0 :                       {
    4978            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4979            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4980            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4981            0 :                         switch (TREE_CODE (_q80))
    4982              :                           {
    4983            0 :                           case UNEQ_EXPR:
    4984            0 :                             {
    4985            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4986            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4987            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4988              :                                 {
    4989            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4990              :                                     {
    4991            0 :                                       if (zerop (_q82))
    4992              :                                         {
    4993            0 :                                           {
    4994            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4995            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, PLUS_EXPR, LTGT_EXPR, UNEQ_EXPR);
    4996            0 :                                             if (res) return res;
    4997              :                                           }
    4998              :                                         }
    4999              :                                     }
    5000              :                                 }
    5001              :                               break;
    5002              :                             }
    5003              :                           default:;
    5004              :                           }
    5005              :                         break;
    5006              :                       }
    5007              :                     default:;
    5008              :                     }
    5009              :                 }
    5010              :               break;
    5011              :             }
    5012              :           default:;
    5013              :           }
    5014              :         break;
    5015              :       }
    5016          168 :     case VEC_COND_EXPR:
    5017          168 :       {
    5018          168 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5019          168 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5020          168 :         tree _q22 = TREE_OPERAND (_p0, 2);
    5021          168 :         if (integer_zerop (_q22))
    5022              :           {
    5023          106 :             switch (TREE_CODE (_p1))
    5024              :               {
    5025           24 :               case VEC_COND_EXPR:
    5026           24 :                 {
    5027           24 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    5028           24 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    5029           24 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    5030           24 :                   if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    5031              :                     {
    5032            0 :                       if (integer_zerop (_q61))
    5033              :                         {
    5034            0 :                           {
    5035            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
    5036            0 :                             const enum tree_code op = PLUS_EXPR;
    5037            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1246;
    5038            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1246;
    5039            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1246;
    5040            0 :                             {
    5041            0 :                               tree res_op0;
    5042            0 :                               res_op0 = captures[1];
    5043            0 :                               tree res_op1;
    5044            0 :                               res_op1 = captures[2];
    5045            0 :                               tree res_op2;
    5046            0 :                               res_op2 = captures[4];
    5047            0 :                               tree _r;
    5048            0 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5049            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    5050            0 :                               return _r;
    5051              :                             }
    5052            0 : next_after_fail1246:;
    5053              :                           }
    5054              :                         }
    5055              :                     }
    5056              :                   break;
    5057              :                 }
    5058              :               default:;
    5059              :               }
    5060              :           }
    5061          168 :         if (integer_zerop (_q21))
    5062              :           {
    5063            0 :             switch (TREE_CODE (_p1))
    5064              :               {
    5065            0 :               case VEC_COND_EXPR:
    5066            0 :                 {
    5067            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    5068            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    5069            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    5070            0 :                   if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    5071              :                     {
    5072            0 :                       if (integer_zerop (_q62))
    5073              :                         {
    5074            0 :                           {
    5075            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
    5076            0 :                             const enum tree_code op = PLUS_EXPR;
    5077            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1247;
    5078            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1247;
    5079            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1247;
    5080            0 :                             {
    5081            0 :                               tree res_op0;
    5082            0 :                               res_op0 = captures[1];
    5083            0 :                               tree res_op1;
    5084            0 :                               res_op1 = captures[2];
    5085            0 :                               tree res_op2;
    5086            0 :                               res_op2 = captures[4];
    5087            0 :                               tree _r;
    5088            0 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5089            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    5090            0 :                               return _r;
    5091              :                             }
    5092            0 : next_after_fail1247:;
    5093              :                           }
    5094              :                         }
    5095              :                     }
    5096              :                   break;
    5097              :                 }
    5098              :               default:;
    5099              :               }
    5100              :           }
    5101          168 :         switch (TREE_CODE (_q20))
    5102              :           {
    5103            8 :           case LT_EXPR:
    5104            8 :             {
    5105            8 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5106            8 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5107            8 :               if (integer_zerop (_q22))
    5108              :                 {
    5109            8 :                   switch (TREE_CODE (_p1))
    5110              :                     {
    5111            0 :                     case VEC_COND_EXPR:
    5112            0 :                       {
    5113            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5114            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5115            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5116            0 :                         switch (TREE_CODE (_q80))
    5117              :                           {
    5118            0 :                           case GE_EXPR:
    5119            0 :                             {
    5120            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5121            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5122            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5123              :                                 {
    5124            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5125              :                                     {
    5126            0 :                                       if (integer_zerop (_q82))
    5127              :                                         {
    5128            0 :                                           {
    5129            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5130            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR, GE_EXPR);
    5131            0 :                                             if (res) return res;
    5132              :                                           }
    5133              :                                         }
    5134              :                                     }
    5135              :                                 }
    5136              :                               break;
    5137              :                             }
    5138              :                           default:;
    5139              :                           }
    5140              :                         break;
    5141              :                       }
    5142              :                     default:;
    5143              :                     }
    5144              :                 }
    5145              :               break;
    5146              :             }
    5147            8 :           case LE_EXPR:
    5148            8 :             {
    5149            8 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5150            8 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5151            8 :               if (integer_zerop (_q22))
    5152              :                 {
    5153            8 :                   switch (TREE_CODE (_p1))
    5154              :                     {
    5155            0 :                     case VEC_COND_EXPR:
    5156            0 :                       {
    5157            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5158            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5159            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5160            0 :                         switch (TREE_CODE (_q80))
    5161              :                           {
    5162            0 :                           case GT_EXPR:
    5163            0 :                             {
    5164            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5165            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5166            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5167              :                                 {
    5168            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5169              :                                     {
    5170            0 :                                       if (integer_zerop (_q82))
    5171              :                                         {
    5172            0 :                                           {
    5173            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5174            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR, GT_EXPR);
    5175            0 :                                             if (res) return res;
    5176              :                                           }
    5177              :                                         }
    5178              :                                     }
    5179              :                                 }
    5180              :                               break;
    5181              :                             }
    5182              :                           default:;
    5183              :                           }
    5184              :                         break;
    5185              :                       }
    5186              :                     default:;
    5187              :                     }
    5188              :                 }
    5189              :               break;
    5190              :             }
    5191           34 :           case EQ_EXPR:
    5192           34 :             {
    5193           34 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5194           34 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5195           34 :               if (integer_zerop (_q22))
    5196              :                 {
    5197           34 :                   switch (TREE_CODE (_p1))
    5198              :                     {
    5199           24 :                     case VEC_COND_EXPR:
    5200           24 :                       {
    5201           24 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5202           24 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5203           24 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5204           24 :                         switch (TREE_CODE (_q80))
    5205              :                           {
    5206           24 :                           case NE_EXPR:
    5207           24 :                             {
    5208           24 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5209           24 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5210           24 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5211              :                                 {
    5212           24 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5213              :                                     {
    5214           24 :                                       if (integer_zerop (_q82))
    5215              :                                         {
    5216           24 :                                           {
    5217           24 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5218           24 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR, NE_EXPR);
    5219           24 :                                             if (res) return res;
    5220              :                                           }
    5221              :                                         }
    5222              :                                     }
    5223              :                                 }
    5224              :                               break;
    5225              :                             }
    5226              :                           default:;
    5227              :                           }
    5228              :                         break;
    5229              :                       }
    5230              :                     default:;
    5231              :                     }
    5232              :                 }
    5233              :               break;
    5234              :             }
    5235           22 :           case NE_EXPR:
    5236           22 :             {
    5237           22 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5238           22 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5239           22 :               if (integer_zerop (_q22))
    5240              :                 {
    5241            8 :                   switch (TREE_CODE (_p1))
    5242              :                     {
    5243            0 :                     case VEC_COND_EXPR:
    5244            0 :                       {
    5245            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5246            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5247            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5248            0 :                         switch (TREE_CODE (_q80))
    5249              :                           {
    5250            0 :                           case EQ_EXPR:
    5251            0 :                             {
    5252            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5253            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5254            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5255              :                                 {
    5256            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5257              :                                     {
    5258            0 :                                       if (integer_zerop (_q82))
    5259              :                                         {
    5260            0 :                                           {
    5261            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5262            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR, EQ_EXPR);
    5263            0 :                                             if (res) return res;
    5264              :                                           }
    5265              :                                         }
    5266              :                                     }
    5267              :                                 }
    5268              :                               break;
    5269              :                             }
    5270              :                           default:;
    5271              :                           }
    5272              :                         break;
    5273              :                       }
    5274              :                     default:;
    5275              :                     }
    5276              :                 }
    5277              :               break;
    5278              :             }
    5279           15 :           case GE_EXPR:
    5280           15 :             {
    5281           15 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5282           15 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5283           15 :               if (integer_zerop (_q22))
    5284              :                 {
    5285           15 :                   switch (TREE_CODE (_p1))
    5286              :                     {
    5287            0 :                     case VEC_COND_EXPR:
    5288            0 :                       {
    5289            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5290            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5291            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5292            0 :                         switch (TREE_CODE (_q80))
    5293              :                           {
    5294            0 :                           case LT_EXPR:
    5295            0 :                             {
    5296            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5297            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5298            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5299              :                                 {
    5300            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5301              :                                     {
    5302            0 :                                       if (integer_zerop (_q82))
    5303              :                                         {
    5304            0 :                                           {
    5305            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5306            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR, LT_EXPR);
    5307            0 :                                             if (res) return res;
    5308              :                                           }
    5309              :                                         }
    5310              :                                     }
    5311              :                                 }
    5312              :                               break;
    5313              :                             }
    5314              :                           default:;
    5315              :                           }
    5316              :                         break;
    5317              :                       }
    5318              :                     default:;
    5319              :                     }
    5320              :                 }
    5321              :               break;
    5322              :             }
    5323           81 :           case GT_EXPR:
    5324           81 :             {
    5325           81 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5326           81 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5327           81 :               if (integer_zerop (_q22))
    5328              :                 {
    5329           33 :                   switch (TREE_CODE (_p1))
    5330              :                     {
    5331            0 :                     case VEC_COND_EXPR:
    5332            0 :                       {
    5333            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5334            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5335            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5336            0 :                         switch (TREE_CODE (_q80))
    5337              :                           {
    5338            0 :                           case LE_EXPR:
    5339            0 :                             {
    5340            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5341            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5342            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5343              :                                 {
    5344            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5345              :                                     {
    5346            0 :                                       if (integer_zerop (_q82))
    5347              :                                         {
    5348            0 :                                           {
    5349            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5350            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR, LE_EXPR);
    5351            0 :                                             if (res) return res;
    5352              :                                           }
    5353              :                                         }
    5354              :                                     }
    5355              :                                 }
    5356              :                               break;
    5357              :                             }
    5358              :                           default:;
    5359              :                           }
    5360              :                         break;
    5361              :                       }
    5362              :                     default:;
    5363              :                     }
    5364              :                 }
    5365              :               break;
    5366              :             }
    5367            0 :           case UNORDERED_EXPR:
    5368            0 :             {
    5369            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5370            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5371            0 :               if (integer_zerop (_q22))
    5372              :                 {
    5373            0 :                   switch (TREE_CODE (_p1))
    5374              :                     {
    5375            0 :                     case VEC_COND_EXPR:
    5376            0 :                       {
    5377            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5378            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5379            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5380            0 :                         switch (TREE_CODE (_q80))
    5381              :                           {
    5382            0 :                           case ORDERED_EXPR:
    5383            0 :                             {
    5384            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5385            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5386            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5387              :                                 {
    5388            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5389              :                                     {
    5390            0 :                                       if (integer_zerop (_q82))
    5391              :                                         {
    5392            0 :                                           {
    5393            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5394            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
    5395            0 :                                             if (res) return res;
    5396              :                                           }
    5397              :                                         }
    5398              :                                     }
    5399              :                                 }
    5400              :                               break;
    5401              :                             }
    5402              :                           default:;
    5403              :                           }
    5404              :                         break;
    5405              :                       }
    5406              :                     default:;
    5407              :                     }
    5408              :                 }
    5409              :               break;
    5410              :             }
    5411            0 :           case ORDERED_EXPR:
    5412            0 :             {
    5413            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5414            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5415            0 :               if (integer_zerop (_q22))
    5416              :                 {
    5417            0 :                   switch (TREE_CODE (_p1))
    5418              :                     {
    5419            0 :                     case VEC_COND_EXPR:
    5420            0 :                       {
    5421            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5422            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5423            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5424            0 :                         switch (TREE_CODE (_q80))
    5425              :                           {
    5426            0 :                           case UNORDERED_EXPR:
    5427            0 :                             {
    5428            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5429            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5430            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5431              :                                 {
    5432            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5433              :                                     {
    5434            0 :                                       if (integer_zerop (_q82))
    5435              :                                         {
    5436            0 :                                           {
    5437            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5438            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
    5439            0 :                                             if (res) return res;
    5440              :                                           }
    5441              :                                         }
    5442              :                                     }
    5443              :                                 }
    5444              :                               break;
    5445              :                             }
    5446              :                           default:;
    5447              :                           }
    5448              :                         break;
    5449              :                       }
    5450              :                     default:;
    5451              :                     }
    5452              :                 }
    5453              :               break;
    5454              :             }
    5455            0 :           case UNLT_EXPR:
    5456            0 :             {
    5457            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5458            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5459            0 :               if (integer_zerop (_q22))
    5460              :                 {
    5461            0 :                   switch (TREE_CODE (_p1))
    5462              :                     {
    5463            0 :                     case VEC_COND_EXPR:
    5464            0 :                       {
    5465            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5466            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5467            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5468            0 :                         switch (TREE_CODE (_q80))
    5469              :                           {
    5470            0 :                           case GE_EXPR:
    5471            0 :                             {
    5472            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5473            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5474            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5475              :                                 {
    5476            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5477              :                                     {
    5478            0 :                                       if (integer_zerop (_q82))
    5479              :                                         {
    5480            0 :                                           {
    5481            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5482            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLT_EXPR, GE_EXPR);
    5483            0 :                                             if (res) return res;
    5484              :                                           }
    5485              :                                         }
    5486              :                                     }
    5487              :                                 }
    5488              :                               break;
    5489              :                             }
    5490              :                           default:;
    5491              :                           }
    5492              :                         break;
    5493              :                       }
    5494              :                     default:;
    5495              :                     }
    5496              :                 }
    5497              :               break;
    5498              :             }
    5499            0 :           case UNLE_EXPR:
    5500            0 :             {
    5501            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5502            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5503            0 :               if (integer_zerop (_q22))
    5504              :                 {
    5505            0 :                   switch (TREE_CODE (_p1))
    5506              :                     {
    5507            0 :                     case VEC_COND_EXPR:
    5508            0 :                       {
    5509            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5510            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5511            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5512            0 :                         switch (TREE_CODE (_q80))
    5513              :                           {
    5514            0 :                           case GT_EXPR:
    5515            0 :                             {
    5516            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5517            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5518            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5519              :                                 {
    5520            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5521              :                                     {
    5522            0 :                                       if (integer_zerop (_q82))
    5523              :                                         {
    5524            0 :                                           {
    5525            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5526            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLE_EXPR, GT_EXPR);
    5527            0 :                                             if (res) return res;
    5528              :                                           }
    5529              :                                         }
    5530              :                                     }
    5531              :                                 }
    5532              :                               break;
    5533              :                             }
    5534              :                           default:;
    5535              :                           }
    5536              :                         break;
    5537              :                       }
    5538              :                     default:;
    5539              :                     }
    5540              :                 }
    5541              :               break;
    5542              :             }
    5543            0 :           case UNGT_EXPR:
    5544            0 :             {
    5545            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5546            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5547            0 :               if (integer_zerop (_q22))
    5548              :                 {
    5549            0 :                   switch (TREE_CODE (_p1))
    5550              :                     {
    5551            0 :                     case VEC_COND_EXPR:
    5552            0 :                       {
    5553            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5554            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5555            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5556            0 :                         switch (TREE_CODE (_q80))
    5557              :                           {
    5558            0 :                           case LE_EXPR:
    5559            0 :                             {
    5560            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5561            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5562            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5563              :                                 {
    5564            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5565              :                                     {
    5566            0 :                                       if (integer_zerop (_q82))
    5567              :                                         {
    5568            0 :                                           {
    5569            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5570            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGT_EXPR, LE_EXPR);
    5571            0 :                                             if (res) return res;
    5572              :                                           }
    5573              :                                         }
    5574              :                                     }
    5575              :                                 }
    5576              :                               break;
    5577              :                             }
    5578              :                           default:;
    5579              :                           }
    5580              :                         break;
    5581              :                       }
    5582              :                     default:;
    5583              :                     }
    5584              :                 }
    5585              :               break;
    5586              :             }
    5587            0 :           case UNGE_EXPR:
    5588            0 :             {
    5589            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5590            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5591            0 :               if (integer_zerop (_q22))
    5592              :                 {
    5593            0 :                   switch (TREE_CODE (_p1))
    5594              :                     {
    5595            0 :                     case VEC_COND_EXPR:
    5596            0 :                       {
    5597            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5598            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5599            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5600            0 :                         switch (TREE_CODE (_q80))
    5601              :                           {
    5602            0 :                           case LT_EXPR:
    5603            0 :                             {
    5604            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5605            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5606            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5607              :                                 {
    5608            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5609              :                                     {
    5610            0 :                                       if (integer_zerop (_q82))
    5611              :                                         {
    5612            0 :                                           {
    5613            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5614            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGE_EXPR, LT_EXPR);
    5615            0 :                                             if (res) return res;
    5616              :                                           }
    5617              :                                         }
    5618              :                                     }
    5619              :                                 }
    5620              :                               break;
    5621              :                             }
    5622              :                           default:;
    5623              :                           }
    5624              :                         break;
    5625              :                       }
    5626              :                     default:;
    5627              :                     }
    5628              :                 }
    5629              :               break;
    5630              :             }
    5631            0 :           case UNEQ_EXPR:
    5632            0 :             {
    5633            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5634            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5635            0 :               if (integer_zerop (_q22))
    5636              :                 {
    5637            0 :                   switch (TREE_CODE (_p1))
    5638              :                     {
    5639            0 :                     case VEC_COND_EXPR:
    5640            0 :                       {
    5641            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5642            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5643            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5644            0 :                         switch (TREE_CODE (_q80))
    5645              :                           {
    5646            0 :                           case LTGT_EXPR:
    5647            0 :                             {
    5648            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5649            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5650            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5651              :                                 {
    5652            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5653              :                                     {
    5654            0 :                                       if (integer_zerop (_q82))
    5655              :                                         {
    5656            0 :                                           {
    5657            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5658            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNEQ_EXPR, LTGT_EXPR);
    5659            0 :                                             if (res) return res;
    5660              :                                           }
    5661              :                                         }
    5662              :                                     }
    5663              :                                 }
    5664              :                               break;
    5665              :                             }
    5666              :                           default:;
    5667              :                           }
    5668              :                         break;
    5669              :                       }
    5670              :                     default:;
    5671              :                     }
    5672              :                 }
    5673              :               break;
    5674              :             }
    5675            0 :           case LTGT_EXPR:
    5676            0 :             {
    5677            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5678            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5679            0 :               if (integer_zerop (_q22))
    5680              :                 {
    5681            0 :                   switch (TREE_CODE (_p1))
    5682              :                     {
    5683            0 :                     case VEC_COND_EXPR:
    5684            0 :                       {
    5685            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5686            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5687            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5688            0 :                         switch (TREE_CODE (_q80))
    5689              :                           {
    5690            0 :                           case UNEQ_EXPR:
    5691            0 :                             {
    5692            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5693            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5694            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5695              :                                 {
    5696            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5697              :                                     {
    5698            0 :                                       if (integer_zerop (_q82))
    5699              :                                         {
    5700            0 :                                           {
    5701            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5702            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, PLUS_EXPR, LTGT_EXPR, UNEQ_EXPR);
    5703            0 :                                             if (res) return res;
    5704              :                                           }
    5705              :                                         }
    5706              :                                     }
    5707              :                                 }
    5708              :                               break;
    5709              :                             }
    5710              :                           default:;
    5711              :                           }
    5712              :                         break;
    5713              :                       }
    5714              :                     default:;
    5715              :                     }
    5716              :                 }
    5717              :               break;
    5718              :             }
    5719              :           default:;
    5720              :           }
    5721              :         break;
    5722              :       }
    5723     70076064 :     default:;
    5724              :     }
    5725     70076064 : {
    5726     70076064 :   tree _p0_pops[1];
    5727     70076064 :   if (tree_nop_convert (_p0, _p0_pops))
    5728              :     {
    5729     13700795 :       tree _q20 = _p0_pops[0];
    5730     13700795 :       switch (TREE_CODE (_q20))
    5731              :         {
    5732        97840 :         case MINUS_EXPR:
    5733        97840 :           {
    5734        97840 :             tree _q30 = TREE_OPERAND (_q20, 0);
    5735        97840 :             tree _q31 = TREE_OPERAND (_q20, 1);
    5736        97840 :             switch (TREE_CODE (_q30))
    5737              :               {
    5738            2 :               case BIT_AND_EXPR:
    5739            2 :                 {
    5740            2 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    5741            2 :                   tree _q41 = TREE_OPERAND (_q30, 1);
    5742            2 :                   switch (TREE_CODE (_q31))
    5743              :                     {
    5744            1 :                     case BIT_IOR_EXPR:
    5745            1 :                       {
    5746            1 :                         tree _q70 = TREE_OPERAND (_q31, 0);
    5747            1 :                         tree _q71 = TREE_OPERAND (_q31, 1);
    5748            1 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    5749              :                           {
    5750            1 :                             if ((_q71 == _q41 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q41, 0) && types_match (_q71, _q41)))
    5751              :                               {
    5752            1 :                                 if (integer_all_onesp (_p1))
    5753              :                                   {
    5754            1 :                                     {
    5755            1 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
    5756            1 :                                       tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    5757            1 :                                       if (res) return res;
    5758              :                                     }
    5759              :                                   }
    5760              :                               }
    5761              :                           }
    5762            0 :                         if ((_q70 == _q41 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q41, 0) && types_match (_q70, _q41)))
    5763              :                           {
    5764            0 :                             if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
    5765              :                               {
    5766            0 :                                 if (integer_all_onesp (_p1))
    5767              :                                   {
    5768            0 :                                     {
    5769            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _q40 };
    5770            0 :                                       tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    5771            0 :                                       if (res) return res;
    5772              :                                     }
    5773              :                                   }
    5774              :                               }
    5775              :                           }
    5776              :                         break;
    5777              :                       }
    5778              :                     default:;
    5779              :                     }
    5780              :                   break;
    5781              :                 }
    5782        97839 :               default:;
    5783              :               }
    5784        97839 :           {
    5785        97839 :             tree _q30_pops[1];
    5786        97839 :             if (tree_nop_convert (_q30, _q30_pops))
    5787              :               {
    5788        50784 :                 tree _q40 = _q30_pops[0];
    5789        50784 :                 switch (TREE_CODE (_q40))
    5790              :                   {
    5791            0 :                   case BIT_AND_EXPR:
    5792            0 :                     {
    5793            0 :                       tree _q50 = TREE_OPERAND (_q40, 0);
    5794            0 :                       tree _q51 = TREE_OPERAND (_q40, 1);
    5795            0 :                       {
    5796            0 :                         tree _q31_pops[1];
    5797            0 :                         if (tree_nop_convert (_q31, _q31_pops))
    5798              :                           {
    5799            0 :                             tree _q80 = _q31_pops[0];
    5800            0 :                             switch (TREE_CODE (_q80))
    5801              :                               {
    5802            0 :                               case BIT_IOR_EXPR:
    5803            0 :                                 {
    5804            0 :                                   tree _q90 = TREE_OPERAND (_q80, 0);
    5805            0 :                                   tree _q91 = TREE_OPERAND (_q80, 1);
    5806            0 :                                   if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
    5807              :                                     {
    5808            0 :                                       if ((_q91 == _q51 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q51, 0) && types_match (_q91, _q51)))
    5809              :                                         {
    5810            0 :                                           if (integer_all_onesp (_p1))
    5811              :                                             {
    5812            0 :                                               {
    5813            0 :                                                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
    5814            0 :                                                 tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    5815            0 :                                                 if (res) return res;
    5816              :                                               }
    5817              :                                             }
    5818              :                                         }
    5819              :                                     }
    5820            0 :                                   if ((_q90 == _q51 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q51, 0) && types_match (_q90, _q51)))
    5821              :                                     {
    5822            0 :                                       if ((_q91 == _q50 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q50, 0) && types_match (_q91, _q50)))
    5823              :                                         {
    5824            0 :                                           if (integer_all_onesp (_p1))
    5825              :                                             {
    5826            0 :                                               {
    5827            0 :                                                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
    5828            0 :                                                 tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    5829            0 :                                                 if (res) return res;
    5830              :                                               }
    5831              :                                             }
    5832              :                                         }
    5833              :                                     }
    5834              :                                   break;
    5835              :                                 }
    5836              :                               default:;
    5837              :                               }
    5838              :                           }
    5839              :                       }
    5840            0 :                       break;
    5841              :                     }
    5842              :                   default:;
    5843              :                   }
    5844              :               }
    5845              :           }
    5846        97839 :             break;
    5847              :           }
    5848              :         default:;
    5849              :         }
    5850              :     }
    5851              : }
    5852     70076063 :   switch (TREE_CODE (_p1))
    5853              :     {
    5854      8055736 :     CASE_CONVERT:
    5855      8055736 :       {
    5856      8055736 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5857      8055736 :         switch (TREE_CODE (_q30))
    5858              :           {
    5859         2014 :           case NEGATE_EXPR:
    5860         2014 :             {
    5861         2014 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5862         2014 :               {
    5863         2014 :                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    5864         2014 :                 tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
    5865         2014 :                 if (res) return res;
    5866              :               }
    5867          390 :               break;
    5868              :             }
    5869              :           default:;
    5870              :           }
    5871              :         break;
    5872              :       }
    5873         7937 :     case NEGATE_EXPR:
    5874         7937 :       {
    5875         7937 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5876         7937 :         {
    5877         7937 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    5878         7937 :           tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
    5879         7937 :           if (res) return res;
    5880              :         }
    5881            0 :         break;
    5882              :       }
    5883     70066502 :     default:;
    5884              :     }
    5885     70066502 :   switch (TREE_CODE (_p0))
    5886              :     {
    5887       306572 :     case NEGATE_EXPR:
    5888       306572 :       {
    5889       306572 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5890       306572 :         {
    5891       306572 :           tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
    5892       306572 :           tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
    5893       306572 :           if (res) return res;
    5894              :         }
    5895          134 :         break;
    5896              :       }
    5897     69760064 :     default:;
    5898              :     }
    5899     69760064 : {
    5900     69760064 :   tree _p0_pops[1];
    5901     69760064 :   if (tree_nop_convert (_p0, _p0_pops))
    5902              :     {
    5903     13696125 :       tree _q20 = _p0_pops[0];
    5904     13696125 :       switch (TREE_CODE (_q20))
    5905              :         {
    5906        97741 :         case MINUS_EXPR:
    5907        97741 :           {
    5908        97741 :             tree _q30 = TREE_OPERAND (_q20, 0);
    5909        97741 :             tree _q31 = TREE_OPERAND (_q20, 1);
    5910        97741 :             {
    5911        97741 :               tree _q31_pops[1];
    5912        97741 :               if (tree_nop_convert (_q31, _q31_pops))
    5913              :                 {
    5914        61564 :                   tree _q50 = _q31_pops[0];
    5915        61564 :                   if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    5916              :                     {
    5917           31 :                       {
    5918           31 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
    5919           31 :                         tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    5920           31 :                         if (res) return res;
    5921              :                       }
    5922              :                     }
    5923              :                 }
    5924              :             }
    5925        97710 :             if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    5926              :               {
    5927            6 :                 {
    5928            6 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    5929            6 :                   tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    5930            6 :                   if (res) return res;
    5931              :                 }
    5932              :               }
    5933        97704 :             if (CONSTANT_CLASS_P (_q31))
    5934              :               {
    5935        16702 :                 if (CONSTANT_CLASS_P (_p1))
    5936              :                   {
    5937        16588 :                     {
    5938        16588 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    5939        16588 :                       tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR);
    5940        16588 :                       if (res) return res;
    5941              :                     }
    5942              :                   }
    5943              :               }
    5944        81116 :             if (CONSTANT_CLASS_P (_q30))
    5945              :               {
    5946        14727 :                 if (CONSTANT_CLASS_P (_p1))
    5947              :                   {
    5948         5645 :                     {
    5949         5645 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    5950         5645 :                       tree res = generic_simplify_64 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    5951         5645 :                       if (res) return res;
    5952              :                     }
    5953              :                   }
    5954              :               }
    5955              :             break;
    5956              :           }
    5957      1320668 :         case PLUS_EXPR:
    5958      1320668 :           {
    5959      1320668 :             tree _q30 = TREE_OPERAND (_q20, 0);
    5960      1320668 :             tree _q31 = TREE_OPERAND (_q20, 1);
    5961      1320668 :             if (CONSTANT_CLASS_P (_q31))
    5962              :               {
    5963      1120815 :                 if (CONSTANT_CLASS_P (_p1))
    5964              :                   {
    5965      1031475 :                     {
    5966      1031475 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    5967      1031475 :                       tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR);
    5968      1031475 :                       if (res) return res;
    5969              :                     }
    5970              :                   }
    5971              :               }
    5972              :             break;
    5973              :           }
    5974              :         default:;
    5975              :         }
    5976              :     }
    5977              : }
    5978     68707255 :   switch (TREE_CODE (_p1))
    5979              :     {
    5980       172144 :     case MINUS_EXPR:
    5981       172144 :       {
    5982       172144 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5983       172144 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5984       172144 :         {
    5985       172144 :           tree _q31_pops[1];
    5986       172144 :           if (tree_nop_convert (_q31, _q31_pops))
    5987              :             {
    5988        60790 :               tree _q50 = _q31_pops[0];
    5989        60790 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5990              :                 {
    5991            0 :                   {
    5992            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    5993            0 :                     tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    5994            0 :                     if (res) return res;
    5995              :                   }
    5996              :                 }
    5997              :             }
    5998              :         }
    5999       172144 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6000              :           {
    6001          530 :             {
    6002          530 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    6003          530 :               tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    6004          530 :               if (res) return res;
    6005              :             }
    6006              :           }
    6007              :         break;
    6008              :       }
    6009     68706725 :     default:;
    6010              :     }
    6011     68706725 : {
    6012     68706725 :   tree _p1_pops[1];
    6013     68706725 :   if (tree_nop_convert (_p1, _p1_pops))
    6014              :     {
    6015      7683372 :       tree _q30 = _p1_pops[0];
    6016      7683372 :       switch (TREE_CODE (_q30))
    6017              :         {
    6018         3490 :         case MINUS_EXPR:
    6019         3490 :           {
    6020         3490 :             tree _q40 = TREE_OPERAND (_q30, 0);
    6021         3490 :             tree _q41 = TREE_OPERAND (_q30, 1);
    6022         3490 :             {
    6023         3490 :               tree _q41_pops[1];
    6024         3490 :               if (tree_nop_convert (_q41, _q41_pops))
    6025              :                 {
    6026          562 :                   tree _q60 = _q41_pops[0];
    6027          562 :                   if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    6028              :                     {
    6029            0 :                       {
    6030            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
    6031            0 :                         tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    6032            0 :                         if (res) return res;
    6033              :                       }
    6034              :                     }
    6035              :                 }
    6036              :             }
    6037         3490 :             if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    6038              :               {
    6039            0 :                 {
    6040            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
    6041            0 :                   tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    6042            0 :                   if (res) return res;
    6043              :                 }
    6044              :               }
    6045              :             break;
    6046              :           }
    6047              :         default:;
    6048              :         }
    6049              :     }
    6050              : }
    6051     68706725 :   switch (TREE_CODE (_p0))
    6052              :     {
    6053      6568141 :     case PLUS_EXPR:
    6054      6568141 :       {
    6055      6568141 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6056      6568141 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6057      6568141 :         switch (TREE_CODE (_p1))
    6058              :           {
    6059        45937 :           case MINUS_EXPR:
    6060        45937 :             {
    6061        45937 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6062        45937 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6063        45937 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6064              :                 {
    6065          138 :                   {
    6066          138 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    6067          138 :                     tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
    6068          138 :                     if (res) return res;
    6069              :                   }
    6070              :                 }
    6071        45799 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6072              :                 {
    6073          361 :                   {
    6074          361 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    6075          361 :                     tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
    6076          361 :                     if (res) return res;
    6077              :                   }
    6078              :                 }
    6079              :               break;
    6080              :             }
    6081      6567642 :           default:;
    6082              :           }
    6083      6567642 :         if (CONSTANT_CLASS_P (_q21))
    6084              :           {
    6085      2589280 :             if (CONSTANT_CLASS_P (_p1))
    6086              :               {
    6087      1922067 :                 {
    6088      1922067 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6089      1922067 :                   tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR);
    6090      1922067 :                   if (res) return res;
    6091              :                 }
    6092              :               }
    6093              :           }
    6094              :         break;
    6095              :       }
    6096      2064723 :     case MINUS_EXPR:
    6097      2064723 :       {
    6098      2064723 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6099      2064723 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6100      2064723 :         switch (TREE_CODE (_p1))
    6101              :           {
    6102         2130 :           case PLUS_EXPR:
    6103         2130 :             {
    6104         2130 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6105         2130 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6106         2130 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6107              :                 {
    6108          368 :                   {
    6109          368 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
    6110          368 :                     tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
    6111          368 :                     if (res) return res;
    6112              :                   }
    6113              :                 }
    6114         1762 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6115              :                 {
    6116           28 :                   {
    6117           28 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q50, _q20 };
    6118           28 :                     tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
    6119           28 :                     if (res) return res;
    6120              :                   }
    6121              :                 }
    6122              :               break;
    6123              :             }
    6124          556 :           case MINUS_EXPR:
    6125          556 :             {
    6126          556 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6127          556 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6128          556 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6129              :                 {
    6130            1 :                   {
    6131            1 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    6132            1 :                     tree res = generic_simplify_66 (loc, type, _p0, _p1, captures);
    6133            1 :                     if (res) return res;
    6134              :                   }
    6135              :                 }
    6136          555 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6137              :                 {
    6138            9 :                   {
    6139            9 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
    6140            9 :                     tree res = generic_simplify_66 (loc, type, _p0, _p1, captures);
    6141            9 :                     if (res) return res;
    6142              :                   }
    6143              :                 }
    6144              :               break;
    6145              :             }
    6146      2064317 :           default:;
    6147              :           }
    6148      2064317 :         if (CONSTANT_CLASS_P (_q21))
    6149              :           {
    6150       134882 :             if (CONSTANT_CLASS_P (_p1))
    6151              :               {
    6152        90159 :                 {
    6153        90159 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6154        90159 :                   tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR);
    6155        90159 :                   if (res) return res;
    6156              :                 }
    6157              :               }
    6158              :           }
    6159      1974350 :         if (CONSTANT_CLASS_P (_q20))
    6160              :           {
    6161       403295 :             if (CONSTANT_CLASS_P (_p1))
    6162              :               {
    6163       234203 :                 {
    6164       234203 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6165       234203 :                   tree res = generic_simplify_64 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6166       234203 :                   if (res) return res;
    6167              :                 }
    6168              :               }
    6169              :           }
    6170              :         break;
    6171              :       }
    6172          477 :     case POINTER_DIFF_EXPR:
    6173          477 :       {
    6174          477 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6175          477 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6176          477 :         switch (TREE_CODE (_p1))
    6177              :           {
    6178            7 :           case POINTER_DIFF_EXPR:
    6179            7 :             {
    6180            7 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6181            7 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6182            7 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6183              :                 {
    6184            7 :                   {
    6185            7 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    6186            7 :                     tree res = generic_simplify_67 (loc, type, _p0, _p1, captures);
    6187            7 :                     if (res) return res;
    6188              :                   }
    6189              :                 }
    6190            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6191              :                 {
    6192            0 :                   {
    6193            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
    6194            0 :                     tree res = generic_simplify_67 (loc, type, _p0, _p1, captures);
    6195            0 :                     if (res) return res;
    6196              :                   }
    6197              :                 }
    6198              :               break;
    6199              :             }
    6200              :           default:;
    6201              :           }
    6202              :         break;
    6203              :       }
    6204     17689317 :     CASE_CONVERT:
    6205     17689317 :       {
    6206     17689317 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6207     17689317 :         switch (TREE_CODE (_p1))
    6208              :           {
    6209      2794043 :           CASE_CONVERT:
    6210      2794043 :             {
    6211      2794043 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6212      2794043 :               {
    6213      2794043 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6214      2794043 :                 tree res = generic_simplify_68 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6215      2794043 :                 if (res) return res;
    6216              :               }
    6217      2793903 :               break;
    6218              :             }
    6219     17689177 :           default:;
    6220              :           }
    6221     17689177 :         switch (TREE_CODE (_q20))
    6222              :           {
    6223       117399 :           case BIT_NOT_EXPR:
    6224       117399 :             {
    6225       117399 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6226       117399 :               switch (TREE_CODE (_p1))
    6227              :                 {
    6228          197 :                 CASE_CONVERT:
    6229          197 :                   {
    6230          197 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    6231          197 :                     if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
    6232              :                       {
    6233            0 :                         {
    6234            0 :                           tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    6235            0 :                           tree res = generic_simplify_69 (loc, type, _p0, _p1, captures);
    6236            0 :                           if (res) return res;
    6237              :                         }
    6238              :                       }
    6239              :                     break;
    6240              :                   }
    6241              :                 default:;
    6242              :                 }
    6243              :               break;
    6244              :             }
    6245     17689177 :           default:;
    6246              :           }
    6247     17689177 :         switch (TREE_CODE (_p1))
    6248              :           {
    6249      2793903 :           CASE_CONVERT:
    6250      2793903 :             {
    6251      2793903 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6252      2793903 :               switch (TREE_CODE (_q40))
    6253              :                 {
    6254          596 :                 case BIT_NOT_EXPR:
    6255          596 :                   {
    6256          596 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    6257          596 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6258              :                       {
    6259            0 :                         {
    6260            0 :                           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6261            0 :                           tree res = generic_simplify_69 (loc, type, _p0, _p1, captures);
    6262            0 :                           if (res) return res;
    6263              :                         }
    6264              :                       }
    6265              :                     break;
    6266              :                   }
    6267              :                 default:;
    6268              :                 }
    6269              :               break;
    6270              :             }
    6271              :           default:;
    6272              :           }
    6273              :         break;
    6274              :       }
    6275       321512 :     case BIT_NOT_EXPR:
    6276       321512 :       {
    6277       321512 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6278       321512 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6279              :           {
    6280          538 :             {
    6281          538 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6282          538 :               tree res = generic_simplify_69 (loc, type, _p0, _p1, captures);
    6283          538 :               if (res) return res;
    6284              :             }
    6285              :           }
    6286       320974 :         if (integer_each_onep (_p1))
    6287              :           {
    6288         2660 :             {
    6289         2660 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6290         2660 :               tree res = generic_simplify_70 (loc, type, _p0, _p1, captures);
    6291         2660 :               if (res) return res;
    6292              :             }
    6293              :           }
    6294              :         break;
    6295              :       }
    6296     66456599 :     default:;
    6297              :     }
    6298     66456599 :   switch (TREE_CODE (_p1))
    6299              :     {
    6300        40181 :     case BIT_NOT_EXPR:
    6301        40181 :       {
    6302        40181 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6303        40181 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6304              :           {
    6305            0 :             {
    6306            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    6307            0 :               tree res = generic_simplify_69 (loc, type, _p0, _p1, captures);
    6308            0 :               if (res) return res;
    6309              :             }
    6310              :           }
    6311              :         break;
    6312              :       }
    6313     66456599 :     default:;
    6314              :     }
    6315     66456599 :   switch (TREE_CODE (_p0))
    6316              :     {
    6317     17689177 :     CASE_CONVERT:
    6318     17689177 :       {
    6319     17689177 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6320     17689177 :         switch (TREE_CODE (_q20))
    6321              :           {
    6322       117399 :           case BIT_NOT_EXPR:
    6323       117399 :             {
    6324       117399 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6325       117399 :               if (integer_each_onep (_p1))
    6326              :                 {
    6327       113826 :                   {
    6328       113826 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    6329       113826 :                     tree res = generic_simplify_70 (loc, type, _p0, _p1, captures);
    6330       113826 :                     if (res) return res;
    6331              :                   }
    6332              :                 }
    6333              :               break;
    6334              :             }
    6335              :           default:;
    6336              :           }
    6337              :         break;
    6338              :       }
    6339     13273865 :     case MULT_EXPR:
    6340     13273865 :       {
    6341     13273865 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6342     13273865 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6343     13273865 :         switch (TREE_CODE (_p1))
    6344              :           {
    6345      3380867 :           case MULT_EXPR:
    6346      3380867 :             {
    6347      3380867 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6348      3380867 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6349      3380867 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6350              :                 {
    6351       792468 :                   {
    6352       792468 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
    6353       792468 :                     tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6354       792468 :                     if (res) return res;
    6355              :                   }
    6356              :                 }
    6357      3376308 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6358              :                 {
    6359           22 :                   {
    6360           22 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    6361           22 :                     tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6362           22 :                     if (res) return res;
    6363              :                   }
    6364              :                 }
    6365      3376303 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6366              :                 {
    6367          247 :                   {
    6368          247 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
    6369          247 :                     tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6370          247 :                     if (res) return res;
    6371              :                   }
    6372              :                 }
    6373      3376130 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6374              :                 {
    6375      1255517 :                   {
    6376      1255517 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
    6377      1255517 :                     tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6378      1255517 :                     if (res) return res;
    6379              :                   }
    6380              :                 }
    6381              :               break;
    6382              :             }
    6383              :           default:;
    6384              :           }
    6385              :         break;
    6386              :       }
    6387     65083625 :     default:;
    6388              :     }
    6389     65083625 :   switch (TREE_CODE (_p1))
    6390              :     {
    6391      3636894 :     case MULT_EXPR:
    6392      3636894 :       {
    6393      3636894 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6394      3636894 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6395      3636894 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6396              :           {
    6397         3849 :             {
    6398         3849 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    6399         3849 :               tree res = generic_simplify_72 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6400         3849 :               if (res) return res;
    6401              :             }
    6402              :           }
    6403      3633092 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6404              :           {
    6405            0 :             {
    6406            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6407            0 :               tree res = generic_simplify_72 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6408            0 :               if (res) return res;
    6409              :             }
    6410              :           }
    6411              :         break;
    6412              :       }
    6413     65079823 :     default:;
    6414              :     }
    6415     65079823 :   switch (TREE_CODE (_p0))
    6416              :     {
    6417     12013860 :     case MULT_EXPR:
    6418     12013860 :       {
    6419     12013860 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6420     12013860 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6421     12013860 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6422              :           {
    6423        33425 :             {
    6424        33425 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6425        33425 :               tree res = generic_simplify_73 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6426        33425 :               if (res) return res;
    6427              :             }
    6428              :           }
    6429     11981081 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    6430              :           {
    6431       376279 :             {
    6432       376279 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    6433       376279 :               tree res = generic_simplify_73 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6434       376279 :               if (res) return res;
    6435              :             }
    6436              :           }
    6437     11605430 :         if (integer_nonzerop (_q20))
    6438              :           {
    6439          102 :             switch (TREE_CODE (_p1))
    6440              :               {
    6441           50 :               case INTEGER_CST:
    6442           50 :                 {
    6443           50 :                   {
    6444           50 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    6445           50 :                     tree res = generic_simplify_74 (loc, type, _p0, _p1, captures);
    6446           50 :                     if (res) return res;
    6447              :                   }
    6448           50 :                   break;
    6449              :                 }
    6450              :               default:;
    6451              :               }
    6452              :           }
    6453     11605430 :         if (integer_nonzerop (_q21))
    6454              :           {
    6455      7645653 :             switch (TREE_CODE (_p1))
    6456              :               {
    6457      3904079 :               case INTEGER_CST:
    6458      3904079 :                 {
    6459      3904079 :                   {
    6460      3904079 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
    6461      3904079 :                     tree res = generic_simplify_74 (loc, type, _p0, _p1, captures);
    6462      3904079 :                     if (res) return res;
    6463              :                   }
    6464      3390024 :                   break;
    6465              :                 }
    6466              :               default:;
    6467              :               }
    6468              :           }
    6469     11091375 :         switch (TREE_CODE (_q20))
    6470              :           {
    6471       197105 :           case MINUS_EXPR:
    6472       197105 :             {
    6473       197105 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6474       197105 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6475       197105 :               if (tree_zero_one_valued_p (_q21))
    6476              :                 {
    6477            0 :                   if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    6478              :                     {
    6479            0 :                       {
    6480            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q21 };
    6481            0 :                         tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
    6482            0 :                         if (res) return res;
    6483              :                       }
    6484              :                     }
    6485              :                 }
    6486              :               break;
    6487              :             }
    6488     11091375 :           default:;
    6489              :           }
    6490     11091375 :       if (tree_zero_one_valued_p (_q20))
    6491              :         {
    6492        36220 :           switch (TREE_CODE (_q21))
    6493              :             {
    6494            9 :             case MINUS_EXPR:
    6495            9 :               {
    6496            9 :                 tree _q40 = TREE_OPERAND (_q21, 0);
    6497            9 :                 tree _q41 = TREE_OPERAND (_q21, 1);
    6498            9 :                 if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q41, 0) && types_match (_p1, _q41)))
    6499              :                   {
    6500            9 :                     {
    6501            9 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
    6502            9 :                       tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
    6503            9 :                       if (res) return res;
    6504              :                     }
    6505              :                   }
    6506              :                 break;
    6507              :               }
    6508              :             default:;
    6509              :             }
    6510              :         }
    6511              :         break;
    6512              :       }
    6513         3112 :     case MIN_EXPR:
    6514         3112 :       {
    6515         3112 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6516         3112 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6517         3112 :         switch (TREE_CODE (_p1))
    6518              :           {
    6519            0 :           case MAX_EXPR:
    6520            0 :             {
    6521            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6522            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6523            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6524              :                 {
    6525            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6526              :                     {
    6527            0 :                       {
    6528            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6529            0 :                         if (!HONOR_NANS (captures[0])
    6530              : )
    6531              :                           {
    6532            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1248;
    6533            0 :                             {
    6534            0 :                               tree res_op0;
    6535            0 :                               res_op0 = captures[0];
    6536            0 :                               tree res_op1;
    6537            0 :                               res_op1 = captures[1];
    6538            0 :                               tree _r;
    6539            0 :                               _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    6540            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    6541            0 :                               return _r;
    6542              :                             }
    6543            0 : next_after_fail1248:;
    6544              :                           }
    6545              :                       }
    6546              :                     }
    6547              :                 }
    6548            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6549              :                 {
    6550            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6551              :                     {
    6552            0 :                       {
    6553            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6554            0 :                         if (!HONOR_NANS (captures[0])
    6555              : )
    6556              :                           {
    6557            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1249;
    6558            0 :                             {
    6559            0 :                               tree res_op0;
    6560            0 :                               res_op0 = captures[0];
    6561            0 :                               tree res_op1;
    6562            0 :                               res_op1 = captures[1];
    6563            0 :                               tree _r;
    6564            0 :                               _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    6565            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    6566            0 :                               return _r;
    6567              :                             }
    6568            0 : next_after_fail1249:;
    6569              :                           }
    6570              :                       }
    6571              :                     }
    6572              :                 }
    6573              :               break;
    6574              :             }
    6575              :           default:;
    6576              :           }
    6577              :         break;
    6578              :       }
    6579        12173 :     case MAX_EXPR:
    6580        12173 :       {
    6581        12173 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6582        12173 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6583        12173 :         switch (TREE_CODE (_p1))
    6584              :           {
    6585            0 :           case MIN_EXPR:
    6586            0 :             {
    6587            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6588            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6589            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6590              :                 {
    6591            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6592              :                     {
    6593            0 :                       {
    6594            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6595            0 :                         if (!HONOR_NANS (captures[0])
    6596              : )
    6597              :                           {
    6598            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1250;
    6599            0 :                             {
    6600            0 :                               tree res_op0;
    6601            0 :                               res_op0 = captures[0];
    6602            0 :                               tree res_op1;
    6603            0 :                               res_op1 = captures[1];
    6604            0 :                               tree _r;
    6605            0 :                               _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    6606            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    6607            0 :                               return _r;
    6608              :                             }
    6609            0 : next_after_fail1250:;
    6610              :                           }
    6611              :                       }
    6612              :                     }
    6613              :                 }
    6614            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6615              :                 {
    6616            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6617              :                     {
    6618            0 :                       {
    6619            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6620            0 :                         if (!HONOR_NANS (captures[0])
    6621              : )
    6622              :                           {
    6623            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1251;
    6624            0 :                             {
    6625            0 :                               tree res_op0;
    6626            0 :                               res_op0 = captures[0];
    6627            0 :                               tree res_op1;
    6628            0 :                               res_op1 = captures[1];
    6629            0 :                               tree _r;
    6630            0 :                               _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    6631            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    6632            0 :                               return _r;
    6633              :                             }
    6634            0 : next_after_fail1251:;
    6635              :                           }
    6636              :                       }
    6637              :                     }
    6638              :                 }
    6639              :               break;
    6640              :             }
    6641              :           default:;
    6642              :           }
    6643              :         break;
    6644              :       }
    6645     64157336 :     default:;
    6646              :     }
    6647     64157336 :   switch (TREE_CODE (_p1))
    6648              :     {
    6649      3633028 :     case MULT_EXPR:
    6650      3633028 :       {
    6651      3633028 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6652      3633028 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6653      3633028 :         switch (TREE_CODE (_q30))
    6654              :           {
    6655       147392 :           case MINUS_EXPR:
    6656       147392 :             {
    6657       147392 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6658       147392 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6659       147392 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    6660              :                 {
    6661           16 :                   if (tree_zero_one_valued_p (_q31))
    6662              :                     {
    6663            0 :                       {
    6664            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q31 };
    6665            0 :                         tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
    6666            0 :                         if (res) return res;
    6667              :                       }
    6668              :                     }
    6669              :                 }
    6670              :               break;
    6671              :             }
    6672      3633028 :           default:;
    6673              :           }
    6674      3633028 :       if (tree_zero_one_valued_p (_q30))
    6675              :         {
    6676        14216 :           switch (TREE_CODE (_q31))
    6677              :             {
    6678            0 :             case MINUS_EXPR:
    6679            0 :               {
    6680            0 :                 tree _q50 = TREE_OPERAND (_q31, 0);
    6681            0 :                 tree _q51 = TREE_OPERAND (_q31, 1);
    6682            0 :                 if ((_q51 == _p0 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _p0, 0) && types_match (_q51, _p0)))
    6683              :                   {
    6684            0 :                     {
    6685            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q50, _q30 };
    6686            0 :                       tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
    6687            0 :                       if (res) return res;
    6688              :                     }
    6689              :                   }
    6690              :                 break;
    6691              :               }
    6692              :             default:;
    6693              :             }
    6694              :         }
    6695              :         break;
    6696              :       }
    6697     64157336 :     default:;
    6698              :     }
    6699     64157336 :   switch (TREE_CODE (_p0))
    6700              :     {
    6701     11091373 :     case MULT_EXPR:
    6702     11091373 :       {
    6703     11091373 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6704     11091373 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6705     11091373 :         switch (TREE_CODE (_q20))
    6706              :           {
    6707        20158 :           case TRUNC_DIV_EXPR:
    6708        20158 :             {
    6709        20158 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6710        20158 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6711        20158 :               if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
    6712              :                 {
    6713         2698 :                   switch (TREE_CODE (_p1))
    6714              :                     {
    6715            2 :                     case TRUNC_MOD_EXPR:
    6716            2 :                       {
    6717            2 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    6718            2 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    6719            2 :                         if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    6720              :                           {
    6721            2 :                             if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    6722              :                               {
    6723            2 :                                 {
    6724            2 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    6725            2 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
    6726            2 :                                   if (res) return res;
    6727              :                                 }
    6728              :                               }
    6729              :                           }
    6730              :                         break;
    6731              :                       }
    6732              :                     default:;
    6733              :                     }
    6734              :                 }
    6735              :               break;
    6736              :             }
    6737            0 :           case CEIL_DIV_EXPR:
    6738            0 :             {
    6739            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6740            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6741            0 :               if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
    6742              :                 {
    6743            0 :                   switch (TREE_CODE (_p1))
    6744              :                     {
    6745            0 :                     case CEIL_MOD_EXPR:
    6746            0 :                       {
    6747            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    6748            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    6749            0 :                         if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    6750              :                           {
    6751            0 :                             if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    6752              :                               {
    6753            0 :                                 {
    6754            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    6755            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
    6756            0 :                                   if (res) return res;
    6757              :                                 }
    6758              :                               }
    6759              :                           }
    6760              :                         break;
    6761              :                       }
    6762              :                     default:;
    6763              :                     }
    6764              :                 }
    6765              :               break;
    6766              :             }
    6767            0 :           case FLOOR_DIV_EXPR:
    6768            0 :             {
    6769            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6770            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6771            0 :               if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
    6772              :                 {
    6773            0 :                   switch (TREE_CODE (_p1))
    6774              :                     {
    6775            0 :                     case FLOOR_MOD_EXPR:
    6776            0 :                       {
    6777            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    6778            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    6779            0 :                         if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    6780              :                           {
    6781            0 :                             if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    6782              :                               {
    6783            0 :                                 {
    6784            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    6785            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
    6786            0 :                                   if (res) return res;
    6787              :                                 }
    6788              :                               }
    6789              :                           }
    6790              :                         break;
    6791              :                       }
    6792              :                     default:;
    6793              :                     }
    6794              :                 }
    6795              :               break;
    6796              :             }
    6797            0 :           case ROUND_DIV_EXPR:
    6798            0 :             {
    6799            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6800            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6801            0 :               if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
    6802              :                 {
    6803            0 :                   switch (TREE_CODE (_p1))
    6804              :                     {
    6805            0 :                     case ROUND_MOD_EXPR:
    6806            0 :                       {
    6807            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    6808            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    6809            0 :                         if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    6810              :                           {
    6811            0 :                             if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    6812              :                               {
    6813            0 :                                 {
    6814            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    6815            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
    6816            0 :                                   if (res) return res;
    6817              :                                 }
    6818              :                               }
    6819              :                           }
    6820              :                         break;
    6821              :                       }
    6822              :                     default:;
    6823              :                     }
    6824              :                 }
    6825              :               break;
    6826              :             }
    6827     11091371 :           default:;
    6828              :           }
    6829     11091371 :         switch (TREE_CODE (_q21))
    6830              :           {
    6831            6 :           case TRUNC_DIV_EXPR:
    6832            6 :             {
    6833            6 :               tree _q40 = TREE_OPERAND (_q21, 0);
    6834            6 :               tree _q41 = TREE_OPERAND (_q21, 1);
    6835            6 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    6836              :                 {
    6837            0 :                   switch (TREE_CODE (_p1))
    6838              :                     {
    6839            0 :                     case TRUNC_MOD_EXPR:
    6840            0 :                       {
    6841            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    6842            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    6843            0 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    6844              :                           {
    6845            0 :                             if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
    6846              :                               {
    6847            0 :                                 {
    6848            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    6849            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
    6850            0 :                                   if (res) return res;
    6851              :                                 }
    6852              :                               }
    6853              :                           }
    6854              :                         break;
    6855              :                       }
    6856              :                     default:;
    6857              :                     }
    6858              :                 }
    6859              :               break;
    6860              :             }
    6861            4 :           case CEIL_DIV_EXPR:
    6862            4 :             {
    6863            4 :               tree _q40 = TREE_OPERAND (_q21, 0);
    6864            4 :               tree _q41 = TREE_OPERAND (_q21, 1);
    6865            4 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    6866              :                 {
    6867            0 :                   switch (TREE_CODE (_p1))
    6868              :                     {
    6869            0 :                     case CEIL_MOD_EXPR:
    6870            0 :                       {
    6871            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    6872            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    6873            0 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    6874              :                           {
    6875            0 :                             if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
    6876              :                               {
    6877            0 :                                 {
    6878            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    6879            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
    6880            0 :                                   if (res) return res;
    6881              :                                 }
    6882              :                               }
    6883              :                           }
    6884              :                         break;
    6885              :                       }
    6886              :                     default:;
    6887              :                     }
    6888              :                 }
    6889              :               break;
    6890              :             }
    6891            0 :           case FLOOR_DIV_EXPR:
    6892            0 :             {
    6893            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
    6894            0 :               tree _q41 = TREE_OPERAND (_q21, 1);
    6895            0 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    6896              :                 {
    6897            0 :                   switch (TREE_CODE (_p1))
    6898              :                     {
    6899            0 :                     case FLOOR_MOD_EXPR:
    6900            0 :                       {
    6901            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    6902            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    6903            0 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    6904              :                           {
    6905            0 :                             if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
    6906              :                               {
    6907            0 :                                 {
    6908            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    6909            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
    6910            0 :                                   if (res) return res;
    6911              :                                 }
    6912              :                               }
    6913              :                           }
    6914              :                         break;
    6915              :                       }
    6916              :                     default:;
    6917              :                     }
    6918              :                 }
    6919              :               break;
    6920              :             }
    6921            0 :           case ROUND_DIV_EXPR:
    6922            0 :             {
    6923            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
    6924            0 :               tree _q41 = TREE_OPERAND (_q21, 1);
    6925            0 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    6926              :                 {
    6927            0 :                   switch (TREE_CODE (_p1))
    6928              :                     {
    6929            0 :                     case ROUND_MOD_EXPR:
    6930            0 :                       {
    6931            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    6932            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    6933            0 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    6934              :                           {
    6935            0 :                             if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
    6936              :                               {
    6937            0 :                                 {
    6938            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    6939            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
    6940            0 :                                   if (res) return res;
    6941              :                                 }
    6942              :                               }
    6943              :                           }
    6944              :                         break;
    6945              :                       }
    6946              :                     default:;
    6947              :                     }
    6948              :                 }
    6949              :               break;
    6950              :             }
    6951              :           default:;
    6952              :           }
    6953              :         break;
    6954              :       }
    6955        30052 :     case TRUNC_MOD_EXPR:
    6956        30052 :       {
    6957        30052 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6958        30052 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6959        30052 :         switch (TREE_CODE (_p1))
    6960              :           {
    6961          119 :           case MULT_EXPR:
    6962          119 :             {
    6963          119 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6964          119 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6965          119 :               switch (TREE_CODE (_q50))
    6966              :                 {
    6967          106 :                 case TRUNC_DIV_EXPR:
    6968          106 :                   {
    6969          106 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    6970          106 :                     tree _q61 = TREE_OPERAND (_q50, 1);
    6971          106 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    6972              :                       {
    6973          106 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    6974              :                           {
    6975           94 :                             if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6976              :                               {
    6977            0 :                                 {
    6978            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6979            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
    6980            0 :                                   if (res) return res;
    6981              :                                 }
    6982              :                               }
    6983              :                           }
    6984              :                       }
    6985              :                     break;
    6986              :                   }
    6987          119 :                 default:;
    6988              :                 }
    6989          119 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6990              :                 {
    6991            0 :                   switch (TREE_CODE (_q51))
    6992              :                     {
    6993            0 :                     case TRUNC_DIV_EXPR:
    6994            0 :                       {
    6995            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    6996            0 :                         tree _q71 = TREE_OPERAND (_q51, 1);
    6997            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    6998              :                           {
    6999            0 :                             if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    7000              :                               {
    7001            0 :                                 {
    7002            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7003            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
    7004            0 :                                   if (res) return res;
    7005              :                                 }
    7006              :                               }
    7007              :                           }
    7008              :                         break;
    7009              :                       }
    7010              :                     default:;
    7011              :                     }
    7012              :                 }
    7013              :               break;
    7014              :             }
    7015              :           default:;
    7016              :           }
    7017              :         break;
    7018              :       }
    7019            0 :     case CEIL_MOD_EXPR:
    7020            0 :       {
    7021            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7022            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7023            0 :         switch (TREE_CODE (_p1))
    7024              :           {
    7025            0 :           case MULT_EXPR:
    7026            0 :             {
    7027            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7028            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7029            0 :               switch (TREE_CODE (_q50))
    7030              :                 {
    7031            0 :                 case CEIL_DIV_EXPR:
    7032            0 :                   {
    7033            0 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    7034            0 :                     tree _q61 = TREE_OPERAND (_q50, 1);
    7035            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7036              :                       {
    7037            0 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    7038              :                           {
    7039            0 :                             if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7040              :                               {
    7041            0 :                                 {
    7042            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7043            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
    7044            0 :                                   if (res) return res;
    7045              :                                 }
    7046              :                               }
    7047              :                           }
    7048              :                       }
    7049              :                     break;
    7050              :                   }
    7051            0 :                 default:;
    7052              :                 }
    7053            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7054              :                 {
    7055            0 :                   switch (TREE_CODE (_q51))
    7056              :                     {
    7057            0 :                     case CEIL_DIV_EXPR:
    7058            0 :                       {
    7059            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    7060            0 :                         tree _q71 = TREE_OPERAND (_q51, 1);
    7061            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    7062              :                           {
    7063            0 :                             if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    7064              :                               {
    7065            0 :                                 {
    7066            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7067            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
    7068            0 :                                   if (res) return res;
    7069              :                                 }
    7070              :                               }
    7071              :                           }
    7072              :                         break;
    7073              :                       }
    7074              :                     default:;
    7075              :                     }
    7076              :                 }
    7077              :               break;
    7078              :             }
    7079              :           default:;
    7080              :           }
    7081              :         break;
    7082              :       }
    7083          126 :     case FLOOR_MOD_EXPR:
    7084          126 :       {
    7085          126 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7086          126 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7087          126 :         switch (TREE_CODE (_p1))
    7088              :           {
    7089            0 :           case MULT_EXPR:
    7090            0 :             {
    7091            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7092            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7093            0 :               switch (TREE_CODE (_q50))
    7094              :                 {
    7095            0 :                 case FLOOR_DIV_EXPR:
    7096            0 :                   {
    7097            0 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    7098            0 :                     tree _q61 = TREE_OPERAND (_q50, 1);
    7099            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7100              :                       {
    7101            0 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    7102              :                           {
    7103            0 :                             if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7104              :                               {
    7105            0 :                                 {
    7106            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7107            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
    7108            0 :                                   if (res) return res;
    7109              :                                 }
    7110              :                               }
    7111              :                           }
    7112              :                       }
    7113              :                     break;
    7114              :                   }
    7115            0 :                 default:;
    7116              :                 }
    7117            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7118              :                 {
    7119            0 :                   switch (TREE_CODE (_q51))
    7120              :                     {
    7121            0 :                     case FLOOR_DIV_EXPR:
    7122            0 :                       {
    7123            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    7124            0 :                         tree _q71 = TREE_OPERAND (_q51, 1);
    7125            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    7126              :                           {
    7127            0 :                             if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    7128              :                               {
    7129            0 :                                 {
    7130            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7131            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
    7132            0 :                                   if (res) return res;
    7133              :                                 }
    7134              :                               }
    7135              :                           }
    7136              :                         break;
    7137              :                       }
    7138              :                     default:;
    7139              :                     }
    7140              :                 }
    7141              :               break;
    7142              :             }
    7143              :           default:;
    7144              :           }
    7145              :         break;
    7146              :       }
    7147            0 :     case ROUND_MOD_EXPR:
    7148            0 :       {
    7149            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7150            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7151            0 :         switch (TREE_CODE (_p1))
    7152              :           {
    7153            0 :           case MULT_EXPR:
    7154            0 :             {
    7155            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7156            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7157            0 :               switch (TREE_CODE (_q50))
    7158              :                 {
    7159            0 :                 case ROUND_DIV_EXPR:
    7160            0 :                   {
    7161            0 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    7162            0 :                     tree _q61 = TREE_OPERAND (_q50, 1);
    7163            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7164              :                       {
    7165            0 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    7166              :                           {
    7167            0 :                             if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7168              :                               {
    7169            0 :                                 {
    7170            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7171            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
    7172            0 :                                   if (res) return res;
    7173              :                                 }
    7174              :                               }
    7175              :                           }
    7176              :                       }
    7177              :                     break;
    7178              :                   }
    7179            0 :                 default:;
    7180              :                 }
    7181            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7182              :                 {
    7183            0 :                   switch (TREE_CODE (_q51))
    7184              :                     {
    7185            0 :                     case ROUND_DIV_EXPR:
    7186            0 :                       {
    7187            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    7188            0 :                         tree _q71 = TREE_OPERAND (_q51, 1);
    7189            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    7190              :                           {
    7191            0 :                             if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    7192              :                               {
    7193            0 :                                 {
    7194            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7195            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
    7196            0 :                                   if (res) return res;
    7197              :                                 }
    7198              :                               }
    7199              :                           }
    7200              :                         break;
    7201              :                       }
    7202              :                     default:;
    7203              :                     }
    7204              :                 }
    7205              :               break;
    7206              :             }
    7207              :           default:;
    7208              :           }
    7209              :         break;
    7210              :       }
    7211     64157334 :     default:;
    7212              :     }
    7213     64157334 :   switch (TREE_CODE (_p1))
    7214              :     {
    7215      3070267 :     case REAL_CST:
    7216      3070267 :       {
    7217      3070267 :         {
    7218      3070267 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    7219      3070267 :           if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
    7220              : )
    7221              :             {
    7222       113696 :               {
    7223       113696 :  tree tem = const_unop (NEGATE_EXPR, type, captures[1]);
    7224       113696 :                   if (!TREE_OVERFLOW (tem) || !flag_trapping_math
    7225              : )
    7226              :                     {
    7227       113696 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1252;
    7228       113696 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1252;
    7229       113696 :                       {
    7230       113696 :                         tree res_op0;
    7231       113696 :                         res_op0 = captures[0];
    7232       113696 :                         tree res_op1;
    7233       113696 :                         res_op1 =  tem;
    7234       113696 :                         tree _r;
    7235       113696 :                         _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    7236       113696 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
    7237       113696 :                         return _r;
    7238              :                       }
    7239      2956571 : next_after_fail1252:;
    7240              :                     }
    7241              :               }
    7242              :             }
    7243              :         }
    7244      2956571 :         break;
    7245              :       }
    7246     64043638 :     default:;
    7247              :     }
    7248     64043638 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    7249              :     {
    7250      1589650 :       {
    7251      1589650 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7252      1589650 :         if (SCALAR_FLOAT_TYPE_P (type)
    7253              : )
    7254              :           {
    7255          699 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1253;
    7256          699 :             {
    7257          699 :               tree res_op0;
    7258          699 :               res_op0 = captures[0];
    7259          699 :               tree res_op1;
    7260          699 :               res_op1 =  build_real (type, dconst2);
    7261          699 :               tree _r;
    7262          699 :               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    7263          699 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    7264          699 :               return _r;
    7265              :             }
    7266            0 : next_after_fail1253:;
    7267              :           }
    7268              :         else
    7269              :           {
    7270      1588951 :             if (INTEGRAL_TYPE_P (type)
    7271              : )
    7272              :               {
    7273      1588875 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1254;
    7274      1588875 :                 {
    7275      1588875 :                   tree res_op0;
    7276      1588875 :                   res_op0 = captures[0];
    7277      1588875 :                   tree res_op1;
    7278      1588875 :                   res_op1 =  build_int_cst (type, 2);
    7279      1588875 :                   tree _r;
    7280      1588875 :                   _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    7281      1588875 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
    7282      1588875 :                   return _r;
    7283              :                 }
    7284            0 : next_after_fail1254:;
    7285              :               }
    7286              :           }
    7287              :       }
    7288              :     }
    7289     62454064 :   switch (TREE_CODE (_p0))
    7290              :     {
    7291          144 :     case VEC_COND_EXPR:
    7292          144 :       {
    7293          144 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7294          144 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7295          144 :         tree _q22 = TREE_OPERAND (_p0, 2);
    7296          144 :         switch (TREE_CODE (_p1))
    7297              :           {
    7298           48 :           case VEC_COND_EXPR:
    7299           48 :             {
    7300           48 :               tree _q60 = TREE_OPERAND (_p1, 0);
    7301           48 :               tree _q61 = TREE_OPERAND (_p1, 1);
    7302           48 :               tree _q62 = TREE_OPERAND (_p1, 2);
    7303           48 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7304              :                 {
    7305           24 :                   {
    7306           24 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    7307           24 :                     if (VECTOR_TYPE_P (type)
    7308           24 :  && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
    7309              :  || types_match (type, TREE_TYPE (captures[2]))
    7310              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7311              :  || (optimize_vectors_before_lowering_p ()
    7312              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7313              : )
    7314              :                       {
    7315           24 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1255;
    7316           24 :                         {
    7317           24 :                           tree res_op0;
    7318           24 :                           res_op0 = captures[1];
    7319           24 :                           tree res_op1;
    7320           24 :                           {
    7321           24 :                             tree _o1[2], _r1;
    7322           24 :                             _o1[0] = captures[2];
    7323           24 :                             _o1[1] = captures[5];
    7324           24 :                             _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
    7325           24 :                             if (EXPR_P (_r1))
    7326            0 :                               goto next_after_fail1255;
    7327           24 :                             res_op1 = _r1;
    7328              :                           }
    7329           24 :                           tree res_op2;
    7330           24 :                           {
    7331           24 :                             tree _o1[2], _r1;
    7332           24 :                             _o1[0] = captures[3];
    7333           24 :                             _o1[1] = captures[6];
    7334           24 :                             _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
    7335           24 :                             if (EXPR_P (_r1))
    7336            0 :                               goto next_after_fail1255;
    7337           24 :                             res_op2 = _r1;
    7338              :                           }
    7339           24 :                           tree _r;
    7340           24 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7341           24 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    7342           24 :                           return _r;
    7343              :                         }
    7344            0 : next_after_fail1255:;
    7345              :                       }
    7346              :                   }
    7347              :                 }
    7348              :               break;
    7349              :             }
    7350          120 :           default:;
    7351              :           }
    7352          120 :         {
    7353          120 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    7354          120 :           if (VECTOR_TYPE_P (type)
    7355          120 :  && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
    7356              :  || types_match (type, TREE_TYPE (captures[2]))
    7357              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7358              :  || (optimize_vectors_before_lowering_p ()
    7359              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7360              : )
    7361              :             {
    7362          120 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1256;
    7363          120 :               {
    7364          120 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1256;
    7365           26 :                 tree res_op0;
    7366           26 :                 res_op0 = captures[1];
    7367           26 :                 tree res_op1;
    7368           26 :                 {
    7369           26 :                   tree _o1[2], _r1;
    7370           26 :                   _o1[0] = captures[2];
    7371           26 :                   _o1[1] = unshare_expr (captures[4]);
    7372           26 :                   _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
    7373           26 :                   if (EXPR_P (_r1))
    7374            0 :                     goto next_after_fail1256;
    7375           26 :                   res_op1 = _r1;
    7376              :                 }
    7377           26 :                 tree res_op2;
    7378           26 :                 {
    7379           26 :                   tree _o1[2], _r1;
    7380           26 :                   _o1[0] = captures[3];
    7381           26 :                   _o1[1] = captures[4];
    7382           26 :                   _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
    7383           26 :                   if (EXPR_P (_r1))
    7384            0 :                     goto next_after_fail1256;
    7385           26 :                   res_op2 = _r1;
    7386              :                 }
    7387           26 :                 tree _r;
    7388           26 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7389           26 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
    7390           26 :                 return _r;
    7391              :               }
    7392           94 : next_after_fail1256:;
    7393              :             }
    7394              :         }
    7395           94 :         if (integer_each_onep (_q21))
    7396              :           {
    7397            0 :             if (integer_zerop (_q22))
    7398              :               {
    7399            0 :                 {
    7400            0 :                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p0, _q20, _q21, _q22 };
    7401            0 :                   tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
    7402            0 :                   if (res) return res;
    7403              :                 }
    7404              :               }
    7405              :           }
    7406              :         break;
    7407              :       }
    7408     62454014 :     default:;
    7409              :     }
    7410     62454014 :   switch (TREE_CODE (_p1))
    7411              :     {
    7412           40 :     case VEC_COND_EXPR:
    7413           40 :       {
    7414           40 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7415           40 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7416           40 :         tree _q32 = TREE_OPERAND (_p1, 2);
    7417           40 :         {
    7418           40 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    7419           40 :           if (VECTOR_TYPE_P (type)
    7420           40 :  && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
    7421              :  || types_match (type, TREE_TYPE (captures[3]))
    7422              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    7423              :  || (optimize_vectors_before_lowering_p ()
    7424              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    7425              : )
    7426              :             {
    7427           40 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1257;
    7428           40 :               {
    7429           40 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1257;
    7430            0 :                 tree res_op0;
    7431            0 :                 res_op0 = captures[2];
    7432            0 :                 tree res_op1;
    7433            0 :                 {
    7434            0 :                   tree _o1[2], _r1;
    7435            0 :                   _o1[0] = unshare_expr (captures[0]);
    7436            0 :                   _o1[1] = captures[3];
    7437            0 :                   _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
    7438            0 :                   if (EXPR_P (_r1))
    7439            0 :                     goto next_after_fail1257;
    7440            0 :                   res_op1 = _r1;
    7441              :                 }
    7442            0 :                 tree res_op2;
    7443            0 :                 {
    7444            0 :                   tree _o1[2], _r1;
    7445            0 :                   _o1[0] = captures[0];
    7446            0 :                   _o1[1] = captures[4];
    7447            0 :                   _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
    7448            0 :                   if (EXPR_P (_r1))
    7449            0 :                     goto next_after_fail1257;
    7450            0 :                   res_op2 = _r1;
    7451              :                 }
    7452            0 :                 tree _r;
    7453            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7454            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    7455            0 :                 return _r;
    7456              :               }
    7457           40 : next_after_fail1257:;
    7458              :             }
    7459              :         }
    7460           40 :         break;
    7461              :       }
    7462       327094 :     case VIEW_CONVERT_EXPR:
    7463       327094 :       {
    7464       327094 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7465       327094 :         switch (TREE_CODE (_q30))
    7466              :           {
    7467            0 :           case VEC_COND_EXPR:
    7468            0 :             {
    7469            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7470            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7471            0 :               tree _q42 = TREE_OPERAND (_q30, 2);
    7472            0 :               if (integer_each_onep (_q41))
    7473              :                 {
    7474            0 :                   if (integer_zerop (_q42))
    7475              :                     {
    7476            0 :                       {
    7477            0 :                         tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _q42 };
    7478            0 :                         tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
    7479            0 :                         if (res) return res;
    7480              :                       }
    7481              :                     }
    7482              :                 }
    7483              :               break;
    7484              :             }
    7485              :           default:;
    7486              :           }
    7487              :         break;
    7488              :       }
    7489     62454014 :     default:;
    7490              :     }
    7491     62454014 :   switch (TREE_CODE (_p0))
    7492              :     {
    7493       316302 :     case VIEW_CONVERT_EXPR:
    7494       316302 :       {
    7495       316302 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7496       316302 :         switch (TREE_CODE (_q20))
    7497              :           {
    7498            0 :           case VEC_COND_EXPR:
    7499            0 :             {
    7500            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7501            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7502            0 :               tree _q32 = TREE_OPERAND (_q20, 2);
    7503            0 :               if (integer_each_onep (_q31))
    7504              :                 {
    7505            0 :                   if (integer_zerop (_q32))
    7506              :                     {
    7507            0 :                       {
    7508            0 :                         tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q30, _q31, _q32 };
    7509            0 :                         tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
    7510            0 :                         if (res) return res;
    7511              :                       }
    7512              :                     }
    7513              :                 }
    7514              :               break;
    7515              :             }
    7516              :           default:;
    7517              :           }
    7518              :         break;
    7519              :       }
    7520     62454014 :     default:;
    7521              :     }
    7522     62454014 :   switch (TREE_CODE (_p1))
    7523              :     {
    7524           40 :     case VEC_COND_EXPR:
    7525           40 :       {
    7526           40 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7527           40 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7528           40 :         tree _q32 = TREE_OPERAND (_p1, 2);
    7529           40 :         if (integer_each_onep (_q31))
    7530              :           {
    7531            0 :             if (integer_zerop (_q32))
    7532              :               {
    7533            0 :                 {
    7534            0 :                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    7535            0 :                   tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
    7536            0 :                   if (res) return res;
    7537              :                 }
    7538              :               }
    7539              :           }
    7540              :         break;
    7541              :       }
    7542     62454014 :     default:;
    7543              :     }
    7544     62454014 :   switch (TREE_CODE (_p0))
    7545              :     {
    7546     17567511 :     CASE_CONVERT:
    7547     17567511 :       {
    7548     17567511 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7549     17567511 :         switch (TREE_CODE (_q20))
    7550              :           {
    7551            0 :           case LT_EXPR:
    7552            0 :             {
    7553            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7554            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7555            0 :               if (integer_minus_onep (_p1))
    7556              :                 {
    7557            0 :                   {
    7558            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7559            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
    7560            0 :                     if (res) return res;
    7561              :                   }
    7562              :                 }
    7563              :               break;
    7564              :             }
    7565            0 :           case LE_EXPR:
    7566            0 :             {
    7567            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7568            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7569            0 :               if (integer_minus_onep (_p1))
    7570              :                 {
    7571            0 :                   {
    7572            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7573            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
    7574            0 :                     if (res) return res;
    7575              :                   }
    7576              :                 }
    7577              :               break;
    7578              :             }
    7579           78 :           case EQ_EXPR:
    7580           78 :             {
    7581           78 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7582           78 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7583           78 :               if (integer_minus_onep (_p1))
    7584              :                 {
    7585            0 :                   {
    7586            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7587            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
    7588            0 :                     if (res) return res;
    7589              :                   }
    7590              :                 }
    7591              :               break;
    7592              :             }
    7593          224 :           case NE_EXPR:
    7594          224 :             {
    7595          224 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7596          224 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7597          224 :               if (integer_minus_onep (_p1))
    7598              :                 {
    7599            0 :                   {
    7600            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7601            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
    7602            0 :                     if (res) return res;
    7603              :                   }
    7604              :                 }
    7605              :               break;
    7606              :             }
    7607           12 :           case GE_EXPR:
    7608           12 :             {
    7609           12 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7610           12 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7611           12 :               if (integer_minus_onep (_p1))
    7612              :                 {
    7613            0 :                   {
    7614            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7615            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
    7616            0 :                     if (res) return res;
    7617              :                   }
    7618              :                 }
    7619              :               break;
    7620              :             }
    7621            1 :           case GT_EXPR:
    7622            1 :             {
    7623            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7624            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7625            1 :               if (integer_minus_onep (_p1))
    7626              :                 {
    7627            0 :                   {
    7628            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7629            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
    7630            0 :                     if (res) return res;
    7631              :                   }
    7632              :                 }
    7633              :               break;
    7634              :             }
    7635            0 :           case UNORDERED_EXPR:
    7636            0 :             {
    7637            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7638            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7639            0 :               if (integer_minus_onep (_p1))
    7640              :                 {
    7641            0 :                   {
    7642            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7643            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
    7644            0 :                     if (res) return res;
    7645              :                   }
    7646              :                 }
    7647              :               break;
    7648              :             }
    7649            0 :           case ORDERED_EXPR:
    7650            0 :             {
    7651            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7652            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7653            0 :               if (integer_minus_onep (_p1))
    7654              :                 {
    7655            0 :                   {
    7656            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7657            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
    7658            0 :                     if (res) return res;
    7659              :                   }
    7660              :                 }
    7661              :               break;
    7662              :             }
    7663            0 :           case UNLT_EXPR:
    7664            0 :             {
    7665            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7666            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7667            0 :               if (integer_minus_onep (_p1))
    7668              :                 {
    7669            0 :                   {
    7670            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7671            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
    7672            0 :                     if (res) return res;
    7673              :                   }
    7674              :                 }
    7675              :               break;
    7676              :             }
    7677            0 :           case UNLE_EXPR:
    7678            0 :             {
    7679            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7680            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7681            0 :               if (integer_minus_onep (_p1))
    7682              :                 {
    7683            0 :                   {
    7684            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7685            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
    7686            0 :                     if (res) return res;
    7687              :                   }
    7688              :                 }
    7689              :               break;
    7690              :             }
    7691            0 :           case UNGT_EXPR:
    7692            0 :             {
    7693            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7694            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7695            0 :               if (integer_minus_onep (_p1))
    7696              :                 {
    7697            0 :                   {
    7698            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7699            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
    7700            0 :                     if (res) return res;
    7701              :                   }
    7702              :                 }
    7703              :               break;
    7704              :             }
    7705            0 :           case UNGE_EXPR:
    7706            0 :             {
    7707            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7708            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7709            0 :               if (integer_minus_onep (_p1))
    7710              :                 {
    7711            0 :                   {
    7712            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7713            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
    7714            0 :                     if (res) return res;
    7715              :                   }
    7716              :                 }
    7717              :               break;
    7718              :             }
    7719            0 :           case UNEQ_EXPR:
    7720            0 :             {
    7721            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7722            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7723            0 :               if (integer_minus_onep (_p1))
    7724              :                 {
    7725            0 :                   {
    7726            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7727            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
    7728            0 :                     if (res) return res;
    7729              :                   }
    7730              :                 }
    7731              :               break;
    7732              :             }
    7733            0 :           case LTGT_EXPR:
    7734            0 :             {
    7735            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7736            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7737            0 :               if (integer_minus_onep (_p1))
    7738              :                 {
    7739            0 :                   {
    7740            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7741            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
    7742            0 :                     if (res) return res;
    7743              :                   }
    7744              :                 }
    7745              :               break;
    7746              :             }
    7747              :           default:;
    7748              :           }
    7749              :         break;
    7750              :       }
    7751          155 :     case LT_EXPR:
    7752          155 :       {
    7753          155 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7754          155 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7755          155 :         if (integer_minus_onep (_p1))
    7756              :           {
    7757            0 :             {
    7758            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7759            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
    7760            0 :               if (res) return res;
    7761              :             }
    7762              :           }
    7763              :         break;
    7764              :       }
    7765           49 :     case LE_EXPR:
    7766           49 :       {
    7767           49 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7768           49 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7769           49 :         if (integer_minus_onep (_p1))
    7770              :           {
    7771            0 :             {
    7772            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7773            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
    7774            0 :               if (res) return res;
    7775              :             }
    7776              :           }
    7777              :         break;
    7778              :       }
    7779        15413 :     case EQ_EXPR:
    7780        15413 :       {
    7781        15413 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7782        15413 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7783        15413 :         if (integer_minus_onep (_p1))
    7784              :           {
    7785           23 :             {
    7786           23 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7787           23 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
    7788           23 :               if (res) return res;
    7789              :             }
    7790              :           }
    7791              :         break;
    7792              :       }
    7793         1677 :     case NE_EXPR:
    7794         1677 :       {
    7795         1677 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7796         1677 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7797         1677 :         if (integer_minus_onep (_p1))
    7798              :           {
    7799           33 :             {
    7800           33 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7801           33 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
    7802           33 :               if (res) return res;
    7803              :             }
    7804              :           }
    7805              :         break;
    7806              :       }
    7807           35 :     case GE_EXPR:
    7808           35 :       {
    7809           35 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7810           35 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7811           35 :         if (integer_minus_onep (_p1))
    7812              :           {
    7813            0 :             {
    7814            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7815            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
    7816            0 :               if (res) return res;
    7817              :             }
    7818              :           }
    7819              :         break;
    7820              :       }
    7821          103 :     case GT_EXPR:
    7822          103 :       {
    7823          103 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7824          103 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7825          103 :         if (integer_minus_onep (_p1))
    7826              :           {
    7827            0 :             {
    7828            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7829            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
    7830            0 :               if (res) return res;
    7831              :             }
    7832              :           }
    7833              :         break;
    7834              :       }
    7835            0 :     case UNORDERED_EXPR:
    7836            0 :       {
    7837            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7838            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7839            0 :         if (integer_minus_onep (_p1))
    7840              :           {
    7841            0 :             {
    7842            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7843            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
    7844            0 :               if (res) return res;
    7845              :             }
    7846              :           }
    7847              :         break;
    7848              :       }
    7849            0 :     case ORDERED_EXPR:
    7850            0 :       {
    7851            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7852            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7853            0 :         if (integer_minus_onep (_p1))
    7854              :           {
    7855            0 :             {
    7856            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7857            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
    7858            0 :               if (res) return res;
    7859              :             }
    7860              :           }
    7861              :         break;
    7862              :       }
    7863            0 :     case UNLT_EXPR:
    7864            0 :       {
    7865            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7866            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7867            0 :         if (integer_minus_onep (_p1))
    7868              :           {
    7869            0 :             {
    7870            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7871            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
    7872            0 :               if (res) return res;
    7873              :             }
    7874              :           }
    7875              :         break;
    7876              :       }
    7877            0 :     case UNLE_EXPR:
    7878            0 :       {
    7879            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7880            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7881            0 :         if (integer_minus_onep (_p1))
    7882              :           {
    7883            0 :             {
    7884            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7885            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
    7886            0 :               if (res) return res;
    7887              :             }
    7888              :           }
    7889              :         break;
    7890              :       }
    7891            0 :     case UNGT_EXPR:
    7892            0 :       {
    7893            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7894            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7895            0 :         if (integer_minus_onep (_p1))
    7896              :           {
    7897            0 :             {
    7898            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7899            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
    7900            0 :               if (res) return res;
    7901              :             }
    7902              :           }
    7903              :         break;
    7904              :       }
    7905            0 :     case UNGE_EXPR:
    7906            0 :       {
    7907            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7908            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7909            0 :         if (integer_minus_onep (_p1))
    7910              :           {
    7911            0 :             {
    7912            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7913            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
    7914            0 :               if (res) return res;
    7915              :             }
    7916              :           }
    7917              :         break;
    7918              :       }
    7919            0 :     case UNEQ_EXPR:
    7920            0 :       {
    7921            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7922            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7923            0 :         if (integer_minus_onep (_p1))
    7924              :           {
    7925            0 :             {
    7926            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7927            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
    7928            0 :               if (res) return res;
    7929              :             }
    7930              :           }
    7931              :         break;
    7932              :       }
    7933            0 :     case LTGT_EXPR:
    7934            0 :       {
    7935            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7936            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7937            0 :         if (integer_minus_onep (_p1))
    7938              :           {
    7939            0 :             {
    7940            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7941            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
    7942            0 :               if (res) return res;
    7943              :             }
    7944              :           }
    7945              :         break;
    7946              :       }
    7947       521302 :     case RDIV_EXPR:
    7948       521302 :       {
    7949       521302 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7950       521302 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7951       521302 :         switch (TREE_CODE (_p1))
    7952              :           {
    7953       110971 :           case RDIV_EXPR:
    7954       110971 :             {
    7955       110971 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7956       110971 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7957       110971 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7958              :                 {
    7959            2 :                   {
    7960            2 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    7961            2 :                     tree res = generic_simplify_79 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    7962            2 :                     if (res) return res;
    7963              :                   }
    7964              :                 }
    7965              :               break;
    7966              :             }
    7967              :           default:;
    7968              :           }
    7969              :         break;
    7970              :       }
    7971      1740152 :     case MINUS_EXPR:
    7972      1740152 :       {
    7973      1740152 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7974      1740152 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7975      1740152 :         switch (TREE_CODE (_q20))
    7976              :           {
    7977           41 :           case CALL_EXPR:
    7978           41 :             switch (get_call_combined_fn (_q20))
    7979              :               {
    7980            4 :               case CFN_BUILT_IN_POPCOUNT:
    7981            4 :                 if (call_expr_nargs (_q20) == 1)
    7982              :     {
    7983            4 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    7984            4 :                     switch (TREE_CODE (_q21))
    7985              :                       {
    7986            4 :                       case CALL_EXPR:
    7987            4 :                         switch (get_call_combined_fn (_q21))
    7988              :                           {
    7989            4 :                           case CFN_BUILT_IN_POPCOUNT:
    7990            4 :                             if (call_expr_nargs (_q21) == 1)
    7991              :     {
    7992            4 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    7993            4 :                                 switch (TREE_CODE (_q50))
    7994              :                                   {
    7995            2 :                                   case BIT_AND_EXPR:
    7996            2 :                                     {
    7997            2 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    7998            2 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    7999            2 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8000              :                                         {
    8001            1 :                                           switch (TREE_CODE (_p1))
    8002              :                                             {
    8003            1 :                                             case CALL_EXPR:
    8004            1 :                                               switch (get_call_combined_fn (_p1))
    8005              :                                                 {
    8006            1 :                                                 case CFN_BUILT_IN_POPCOUNT:
    8007            1 :                                                   if (call_expr_nargs (_p1) == 1)
    8008              :     {
    8009            1 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8010            1 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8011              :                                                         {
    8012            1 :                                                           {
    8013            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8014            1 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
    8015            1 :                                                             if (res) return res;
    8016              :                                                           }
    8017              :                                                         }
    8018              :                                                     }
    8019              :                                                   break;
    8020              :                                                 default:;
    8021              :                                                 }
    8022              :                                               break;
    8023              :                                             default:;
    8024              :                                             }
    8025              :                                         }
    8026            1 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8027              :                                         {
    8028            1 :                                           switch (TREE_CODE (_p1))
    8029              :                                             {
    8030            1 :                                             case CALL_EXPR:
    8031            1 :                                               switch (get_call_combined_fn (_p1))
    8032              :                                                 {
    8033            1 :                                                 case CFN_BUILT_IN_POPCOUNT:
    8034            1 :                                                   if (call_expr_nargs (_p1) == 1)
    8035              :     {
    8036            1 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8037            1 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8038              :                                                         {
    8039            1 :                                                           {
    8040            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8041            1 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
    8042            1 :                                                             if (res) return res;
    8043              :                                                           }
    8044              :                                                         }
    8045              :                                                     }
    8046              :                                                   break;
    8047              :                                                 default:;
    8048              :                                                 }
    8049              :                                               break;
    8050              :                                             default:;
    8051              :                                             }
    8052              :                                         }
    8053              :                                       break;
    8054              :                                     }
    8055            2 :                                   case BIT_IOR_EXPR:
    8056            2 :                                     {
    8057            2 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8058            2 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8059            2 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8060              :                                         {
    8061            1 :                                           switch (TREE_CODE (_p1))
    8062              :                                             {
    8063            1 :                                             case CALL_EXPR:
    8064            1 :                                               switch (get_call_combined_fn (_p1))
    8065              :                                                 {
    8066            1 :                                                 case CFN_BUILT_IN_POPCOUNT:
    8067            1 :                                                   if (call_expr_nargs (_p1) == 1)
    8068              :     {
    8069            1 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8070            1 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8071              :                                                         {
    8072            1 :                                                           {
    8073            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8074            1 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
    8075            1 :                                                             if (res) return res;
    8076              :                                                           }
    8077              :                                                         }
    8078              :                                                     }
    8079              :                                                   break;
    8080              :                                                 default:;
    8081              :                                                 }
    8082              :                                               break;
    8083              :                                             default:;
    8084              :                                             }
    8085              :                                         }
    8086            1 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8087              :                                         {
    8088            1 :                                           switch (TREE_CODE (_p1))
    8089              :                                             {
    8090            1 :                                             case CALL_EXPR:
    8091            1 :                                               switch (get_call_combined_fn (_p1))
    8092              :                                                 {
    8093            1 :                                                 case CFN_BUILT_IN_POPCOUNT:
    8094            1 :                                                   if (call_expr_nargs (_p1) == 1)
    8095              :     {
    8096            1 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8097            1 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8098              :                                                         {
    8099            1 :                                                           {
    8100            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8101            1 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
    8102            1 :                                                             if (res) return res;
    8103              :                                                           }
    8104              :                                                         }
    8105              :                                                     }
    8106              :                                                   break;
    8107              :                                                 default:;
    8108              :                                                 }
    8109              :                                               break;
    8110              :                                             default:;
    8111              :                                             }
    8112              :                                         }
    8113              :                                       break;
    8114              :                                     }
    8115              :                                   default:;
    8116              :                                   }
    8117              :                               }
    8118              :                             break;
    8119              :                           default:;
    8120              :                           }
    8121              :                         break;
    8122              :                       default:;
    8123              :                       }
    8124              :                   }
    8125              :                 break;
    8126            0 :               case CFN_BUILT_IN_POPCOUNTLL:
    8127            0 :                 if (call_expr_nargs (_q20) == 1)
    8128              :     {
    8129            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    8130            0 :                     switch (TREE_CODE (_q21))
    8131              :                       {
    8132            0 :                       case CALL_EXPR:
    8133            0 :                         switch (get_call_combined_fn (_q21))
    8134              :                           {
    8135            0 :                           case CFN_BUILT_IN_POPCOUNTLL:
    8136            0 :                             if (call_expr_nargs (_q21) == 1)
    8137              :     {
    8138            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    8139            0 :                                 switch (TREE_CODE (_q50))
    8140              :                                   {
    8141            0 :                                   case BIT_AND_EXPR:
    8142            0 :                                     {
    8143            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8144            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8145            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8146              :                                         {
    8147            0 :                                           switch (TREE_CODE (_p1))
    8148              :                                             {
    8149            0 :                                             case CALL_EXPR:
    8150            0 :                                               switch (get_call_combined_fn (_p1))
    8151              :                                                 {
    8152            0 :                                                 case CFN_BUILT_IN_POPCOUNTLL:
    8153            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8154              :     {
    8155            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8156            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8157              :                                                         {
    8158            0 :                                                           {
    8159            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8160            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    8161            0 :                                                             if (res) return res;
    8162              :                                                           }
    8163              :                                                         }
    8164              :                                                     }
    8165              :                                                   break;
    8166              :                                                 default:;
    8167              :                                                 }
    8168              :                                               break;
    8169              :                                             default:;
    8170              :                                             }
    8171              :                                         }
    8172            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8173              :                                         {
    8174            0 :                                           switch (TREE_CODE (_p1))
    8175              :                                             {
    8176            0 :                                             case CALL_EXPR:
    8177            0 :                                               switch (get_call_combined_fn (_p1))
    8178              :                                                 {
    8179            0 :                                                 case CFN_BUILT_IN_POPCOUNTLL:
    8180            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8181              :     {
    8182            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8183            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8184              :                                                         {
    8185            0 :                                                           {
    8186            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8187            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    8188            0 :                                                             if (res) return res;
    8189              :                                                           }
    8190              :                                                         }
    8191              :                                                     }
    8192              :                                                   break;
    8193              :                                                 default:;
    8194              :                                                 }
    8195              :                                               break;
    8196              :                                             default:;
    8197              :                                             }
    8198              :                                         }
    8199              :                                       break;
    8200              :                                     }
    8201            0 :                                   case BIT_IOR_EXPR:
    8202            0 :                                     {
    8203            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8204            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8205            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8206              :                                         {
    8207            0 :                                           switch (TREE_CODE (_p1))
    8208              :                                             {
    8209            0 :                                             case CALL_EXPR:
    8210            0 :                                               switch (get_call_combined_fn (_p1))
    8211              :                                                 {
    8212            0 :                                                 case CFN_BUILT_IN_POPCOUNTLL:
    8213            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8214              :     {
    8215            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8216            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8217              :                                                         {
    8218            0 :                                                           {
    8219            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8220            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    8221            0 :                                                             if (res) return res;
    8222              :                                                           }
    8223              :                                                         }
    8224              :                                                     }
    8225              :                                                   break;
    8226              :                                                 default:;
    8227              :                                                 }
    8228              :                                               break;
    8229              :                                             default:;
    8230              :                                             }
    8231              :                                         }
    8232            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8233              :                                         {
    8234            0 :                                           switch (TREE_CODE (_p1))
    8235              :                                             {
    8236            0 :                                             case CALL_EXPR:
    8237            0 :                                               switch (get_call_combined_fn (_p1))
    8238              :                                                 {
    8239            0 :                                                 case CFN_BUILT_IN_POPCOUNTLL:
    8240            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8241              :     {
    8242            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8243            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8244              :                                                         {
    8245            0 :                                                           {
    8246            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8247            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    8248            0 :                                                             if (res) return res;
    8249              :                                                           }
    8250              :                                                         }
    8251              :                                                     }
    8252              :                                                   break;
    8253              :                                                 default:;
    8254              :                                                 }
    8255              :                                               break;
    8256              :                                             default:;
    8257              :                                             }
    8258              :                                         }
    8259              :                                       break;
    8260              :                                     }
    8261              :                                   default:;
    8262              :                                   }
    8263              :                               }
    8264              :                             break;
    8265              :                           default:;
    8266              :                           }
    8267              :                         break;
    8268              :                       default:;
    8269              :                       }
    8270              :                   }
    8271              :                 break;
    8272            0 :               case CFN_POPCOUNT:
    8273            0 :                 if (call_expr_nargs (_q20) == 1)
    8274              :     {
    8275            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    8276            0 :                     switch (TREE_CODE (_q21))
    8277              :                       {
    8278            0 :                       case CALL_EXPR:
    8279            0 :                         switch (get_call_combined_fn (_q21))
    8280              :                           {
    8281            0 :                           case CFN_POPCOUNT:
    8282            0 :                             if (call_expr_nargs (_q21) == 1)
    8283              :     {
    8284            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    8285            0 :                                 switch (TREE_CODE (_q50))
    8286              :                                   {
    8287            0 :                                   case BIT_AND_EXPR:
    8288            0 :                                     {
    8289            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8290            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8291            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8292              :                                         {
    8293            0 :                                           switch (TREE_CODE (_p1))
    8294              :                                             {
    8295            0 :                                             case CALL_EXPR:
    8296            0 :                                               switch (get_call_combined_fn (_p1))
    8297              :                                                 {
    8298            0 :                                                 case CFN_POPCOUNT:
    8299            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8300              :     {
    8301            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8302            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8303              :                                                         {
    8304            0 :                                                           {
    8305            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8306            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
    8307            0 :                                                             if (res) return res;
    8308              :                                                           }
    8309              :                                                         }
    8310              :                                                     }
    8311              :                                                   break;
    8312              :                                                 default:;
    8313              :                                                 }
    8314              :                                               break;
    8315              :                                             default:;
    8316              :                                             }
    8317              :                                         }
    8318            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8319              :                                         {
    8320            0 :                                           switch (TREE_CODE (_p1))
    8321              :                                             {
    8322            0 :                                             case CALL_EXPR:
    8323            0 :                                               switch (get_call_combined_fn (_p1))
    8324              :                                                 {
    8325            0 :                                                 case CFN_POPCOUNT:
    8326            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8327              :     {
    8328            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8329            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8330              :                                                         {
    8331            0 :                                                           {
    8332            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8333            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
    8334            0 :                                                             if (res) return res;
    8335              :                                                           }
    8336              :                                                         }
    8337              :                                                     }
    8338              :                                                   break;
    8339              :                                                 default:;
    8340              :                                                 }
    8341              :                                               break;
    8342              :                                             default:;
    8343              :                                             }
    8344              :                                         }
    8345              :                                       break;
    8346              :                                     }
    8347            0 :                                   case BIT_IOR_EXPR:
    8348            0 :                                     {
    8349            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8350            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8351            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8352              :                                         {
    8353            0 :                                           switch (TREE_CODE (_p1))
    8354              :                                             {
    8355            0 :                                             case CALL_EXPR:
    8356            0 :                                               switch (get_call_combined_fn (_p1))
    8357              :                                                 {
    8358            0 :                                                 case CFN_POPCOUNT:
    8359            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8360              :     {
    8361            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8362            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8363              :                                                         {
    8364            0 :                                                           {
    8365            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8366            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
    8367            0 :                                                             if (res) return res;
    8368              :                                                           }
    8369              :                                                         }
    8370              :                                                     }
    8371              :                                                   break;
    8372              :                                                 default:;
    8373              :                                                 }
    8374              :                                               break;
    8375              :                                             default:;
    8376              :                                             }
    8377              :                                         }
    8378            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8379              :                                         {
    8380            0 :                                           switch (TREE_CODE (_p1))
    8381              :                                             {
    8382            0 :                                             case CALL_EXPR:
    8383            0 :                                               switch (get_call_combined_fn (_p1))
    8384              :                                                 {
    8385            0 :                                                 case CFN_POPCOUNT:
    8386            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8387              :     {
    8388            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8389            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8390              :                                                         {
    8391            0 :                                                           {
    8392            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8393            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
    8394            0 :                                                             if (res) return res;
    8395              :                                                           }
    8396              :                                                         }
    8397              :                                                     }
    8398              :                                                   break;
    8399              :                                                 default:;
    8400              :                                                 }
    8401              :                                               break;
    8402              :                                             default:;
    8403              :                                             }
    8404              :                                         }
    8405              :                                       break;
    8406              :                                     }
    8407              :                                   default:;
    8408              :                                   }
    8409              :                               }
    8410              :                             break;
    8411              :                           default:;
    8412              :                           }
    8413              :                         break;
    8414              :                       default:;
    8415              :                       }
    8416              :                   }
    8417              :                 break;
    8418            0 :               case CFN_BUILT_IN_POPCOUNTIMAX:
    8419            0 :                 if (call_expr_nargs (_q20) == 1)
    8420              :     {
    8421            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    8422            0 :                     switch (TREE_CODE (_q21))
    8423              :                       {
    8424            0 :                       case CALL_EXPR:
    8425            0 :                         switch (get_call_combined_fn (_q21))
    8426              :                           {
    8427            0 :                           case CFN_BUILT_IN_POPCOUNTIMAX:
    8428            0 :                             if (call_expr_nargs (_q21) == 1)
    8429              :     {
    8430            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    8431            0 :                                 switch (TREE_CODE (_q50))
    8432              :                                   {
    8433            0 :                                   case BIT_AND_EXPR:
    8434            0 :                                     {
    8435            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8436            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8437            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8438              :                                         {
    8439            0 :                                           switch (TREE_CODE (_p1))
    8440              :                                             {
    8441            0 :                                             case CALL_EXPR:
    8442            0 :                                               switch (get_call_combined_fn (_p1))
    8443              :                                                 {
    8444            0 :                                                 case CFN_BUILT_IN_POPCOUNTIMAX:
    8445            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8446              :     {
    8447            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8448            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8449              :                                                         {
    8450            0 :                                                           {
    8451            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8452            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    8453            0 :                                                             if (res) return res;
    8454              :                                                           }
    8455              :                                                         }
    8456              :                                                     }
    8457              :                                                   break;
    8458              :                                                 default:;
    8459              :                                                 }
    8460              :                                               break;
    8461              :                                             default:;
    8462              :                                             }
    8463              :                                         }
    8464            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8465              :                                         {
    8466            0 :                                           switch (TREE_CODE (_p1))
    8467              :                                             {
    8468            0 :                                             case CALL_EXPR:
    8469            0 :                                               switch (get_call_combined_fn (_p1))
    8470              :                                                 {
    8471            0 :                                                 case CFN_BUILT_IN_POPCOUNTIMAX:
    8472            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8473              :     {
    8474            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8475            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8476              :                                                         {
    8477            0 :                                                           {
    8478            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8479            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    8480            0 :                                                             if (res) return res;
    8481              :                                                           }
    8482              :                                                         }
    8483              :                                                     }
    8484              :                                                   break;
    8485              :                                                 default:;
    8486              :                                                 }
    8487              :                                               break;
    8488              :                                             default:;
    8489              :                                             }
    8490              :                                         }
    8491              :                                       break;
    8492              :                                     }
    8493            0 :                                   case BIT_IOR_EXPR:
    8494            0 :                                     {
    8495            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8496            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8497            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8498              :                                         {
    8499            0 :                                           switch (TREE_CODE (_p1))
    8500              :                                             {
    8501            0 :                                             case CALL_EXPR:
    8502            0 :                                               switch (get_call_combined_fn (_p1))
    8503              :                                                 {
    8504            0 :                                                 case CFN_BUILT_IN_POPCOUNTIMAX:
    8505            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8506              :     {
    8507            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8508            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8509              :                                                         {
    8510            0 :                                                           {
    8511            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8512            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    8513            0 :                                                             if (res) return res;
    8514              :                                                           }
    8515              :                                                         }
    8516              :                                                     }
    8517              :                                                   break;
    8518              :                                                 default:;
    8519              :                                                 }
    8520              :                                               break;
    8521              :                                             default:;
    8522              :                                             }
    8523              :                                         }
    8524            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8525              :                                         {
    8526            0 :                                           switch (TREE_CODE (_p1))
    8527              :                                             {
    8528            0 :                                             case CALL_EXPR:
    8529            0 :                                               switch (get_call_combined_fn (_p1))
    8530              :                                                 {
    8531            0 :                                                 case CFN_BUILT_IN_POPCOUNTIMAX:
    8532            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8533              :     {
    8534            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8535            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8536              :                                                         {
    8537            0 :                                                           {
    8538            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8539            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    8540            0 :                                                             if (res) return res;
    8541              :                                                           }
    8542              :                                                         }
    8543              :                                                     }
    8544              :                                                   break;
    8545              :                                                 default:;
    8546              :                                                 }
    8547              :                                               break;
    8548              :                                             default:;
    8549              :                                             }
    8550              :                                         }
    8551              :                                       break;
    8552              :                                     }
    8553              :                                   default:;
    8554              :                                   }
    8555              :                               }
    8556              :                             break;
    8557              :                           default:;
    8558              :                           }
    8559              :                         break;
    8560              :                       default:;
    8561              :                       }
    8562              :                   }
    8563              :                 break;
    8564            0 :               case CFN_BUILT_IN_POPCOUNTL:
    8565            0 :                 if (call_expr_nargs (_q20) == 1)
    8566              :     {
    8567            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    8568            0 :                     switch (TREE_CODE (_q21))
    8569              :                       {
    8570            0 :                       case CALL_EXPR:
    8571            0 :                         switch (get_call_combined_fn (_q21))
    8572              :                           {
    8573            0 :                           case CFN_BUILT_IN_POPCOUNTL:
    8574            0 :                             if (call_expr_nargs (_q21) == 1)
    8575              :     {
    8576            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    8577            0 :                                 switch (TREE_CODE (_q50))
    8578              :                                   {
    8579            0 :                                   case BIT_AND_EXPR:
    8580            0 :                                     {
    8581            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8582            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8583            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8584              :                                         {
    8585            0 :                                           switch (TREE_CODE (_p1))
    8586              :                                             {
    8587            0 :                                             case CALL_EXPR:
    8588            0 :                                               switch (get_call_combined_fn (_p1))
    8589              :                                                 {
    8590            0 :                                                 case CFN_BUILT_IN_POPCOUNTL:
    8591            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8592              :     {
    8593            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8594            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8595              :                                                         {
    8596            0 :                                                           {
    8597            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8598            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
    8599            0 :                                                             if (res) return res;
    8600              :                                                           }
    8601              :                                                         }
    8602              :                                                     }
    8603              :                                                   break;
    8604              :                                                 default:;
    8605              :                                                 }
    8606              :                                               break;
    8607              :                                             default:;
    8608              :                                             }
    8609              :                                         }
    8610            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8611              :                                         {
    8612            0 :                                           switch (TREE_CODE (_p1))
    8613              :                                             {
    8614            0 :                                             case CALL_EXPR:
    8615            0 :                                               switch (get_call_combined_fn (_p1))
    8616              :                                                 {
    8617            0 :                                                 case CFN_BUILT_IN_POPCOUNTL:
    8618            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8619              :     {
    8620            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8621            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8622              :                                                         {
    8623            0 :                                                           {
    8624            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8625            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
    8626            0 :                                                             if (res) return res;
    8627              :                                                           }
    8628              :                                                         }
    8629              :                                                     }
    8630              :                                                   break;
    8631              :                                                 default:;
    8632              :                                                 }
    8633              :                                               break;
    8634              :                                             default:;
    8635              :                                             }
    8636              :                                         }
    8637              :                                       break;
    8638              :                                     }
    8639            0 :                                   case BIT_IOR_EXPR:
    8640            0 :                                     {
    8641            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8642            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8643            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8644              :                                         {
    8645            0 :                                           switch (TREE_CODE (_p1))
    8646              :                                             {
    8647            0 :                                             case CALL_EXPR:
    8648            0 :                                               switch (get_call_combined_fn (_p1))
    8649              :                                                 {
    8650            0 :                                                 case CFN_BUILT_IN_POPCOUNTL:
    8651            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8652              :     {
    8653            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8654            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8655              :                                                         {
    8656            0 :                                                           {
    8657            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8658            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
    8659            0 :                                                             if (res) return res;
    8660              :                                                           }
    8661              :                                                         }
    8662              :                                                     }
    8663              :                                                   break;
    8664              :                                                 default:;
    8665              :                                                 }
    8666              :                                               break;
    8667              :                                             default:;
    8668              :                                             }
    8669              :                                         }
    8670            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8671              :                                         {
    8672            0 :                                           switch (TREE_CODE (_p1))
    8673              :                                             {
    8674            0 :                                             case CALL_EXPR:
    8675            0 :                                               switch (get_call_combined_fn (_p1))
    8676              :                                                 {
    8677            0 :                                                 case CFN_BUILT_IN_POPCOUNTL:
    8678            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8679              :     {
    8680            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8681            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8682              :                                                         {
    8683            0 :                                                           {
    8684            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8685            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
    8686            0 :                                                             if (res) return res;
    8687              :                                                           }
    8688              :                                                         }
    8689              :                                                     }
    8690              :                                                   break;
    8691              :                                                 default:;
    8692              :                                                 }
    8693              :                                               break;
    8694              :                                             default:;
    8695              :                                             }
    8696              :                                         }
    8697              :                                       break;
    8698              :                                     }
    8699              :                                   default:;
    8700              :                                   }
    8701              :                               }
    8702              :                             break;
    8703              :                           default:;
    8704              :                           }
    8705              :                         break;
    8706              :                       default:;
    8707              :                       }
    8708              :                   }
    8709              :                 break;
    8710              :               default:;
    8711              :               }
    8712              :             break;
    8713              :           default:;
    8714              :           }
    8715              :         break;
    8716              :       }
    8717            1 :     case VEC_PERM_EXPR:
    8718            1 :       {
    8719            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8720            1 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8721            1 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8722            1 :         switch (TREE_CODE (_q20))
    8723              :           {
    8724            0 :           case MULT_EXPR:
    8725            0 :             {
    8726            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8727            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8728            0 :               if (tree_vec_same_elem_p (_q31))
    8729              :                 {
    8730            0 :                   if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    8731              :                     {
    8732            0 :                       {
    8733            0 :                         tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q22, _p1 };
    8734            0 :                         tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
    8735            0 :                         if (res) return res;
    8736              :                       }
    8737              :                     }
    8738              :                 }
    8739            0 :               if (tree_vec_same_elem_p (_q30))
    8740              :                 {
    8741            0 :                   if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    8742              :                     {
    8743            0 :                       {
    8744            0 :                         tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _q22, _p1 };
    8745            0 :                         tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
    8746            0 :                         if (res) return res;
    8747              :                       }
    8748              :                     }
    8749              :                 }
    8750              :               break;
    8751              :             }
    8752            1 :           default:;
    8753              :           }
    8754            1 :         if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    8755              :           {
    8756            0 :             switch (TREE_CODE (_p1))
    8757              :               {
    8758            0 :               case VEC_PERM_EXPR:
    8759            0 :                 {
    8760            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    8761            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    8762            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    8763            0 :                   if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
    8764              :                     {
    8765            0 :                       if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    8766              :                         {
    8767            0 :                           {
    8768            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
    8769            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
    8770              : )
    8771              :                               {
    8772            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1258;
    8773            0 :                                 {
    8774            0 :                                   tree res_op0;
    8775            0 :                                   {
    8776            0 :                                     tree _o1[2], _r1;
    8777            0 :                                     _o1[0] = captures[0];
    8778            0 :                                     _o1[1] = captures[2];
    8779            0 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8780            0 :                                     captures[3] = _r1;
    8781              :                                   }
    8782            0 :                                   res_op0 = unshare_expr (captures[3]);
    8783            0 :                                   tree res_op1;
    8784            0 :                                   res_op1 = captures[3];
    8785            0 :                                   tree res_op2;
    8786            0 :                                   res_op2 = captures[1];
    8787            0 :                                   tree _r;
    8788            0 :                                   _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
    8789            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
    8790            0 :                                   return _r;
    8791              :                                 }
    8792            0 : next_after_fail1258:;
    8793              :                               }
    8794              :                           }
    8795              :                         }
    8796              :                     }
    8797              :                   break;
    8798              :                 }
    8799            0 :               default:;
    8800              :               }
    8801            0 :             switch (TREE_CODE (_q22))
    8802              :               {
    8803            0 :               case VECTOR_CST:
    8804            0 :                 {
    8805            0 :                   switch (TREE_CODE (_p1))
    8806              :                     {
    8807            0 :                     case VEC_PERM_EXPR:
    8808            0 :                       {
    8809            0 :                         tree _q60 = TREE_OPERAND (_p1, 0);
    8810            0 :                         tree _q61 = TREE_OPERAND (_p1, 1);
    8811            0 :                         tree _q62 = TREE_OPERAND (_p1, 2);
    8812            0 :                         if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
    8813              :                           {
    8814            0 :                             if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    8815              :                               {
    8816            0 :                                 switch (TREE_CODE (_q62))
    8817              :                                   {
    8818            0 :                                   case VECTOR_CST:
    8819            0 :                                     {
    8820            0 :                                       {
    8821            0 :                                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
    8822            0 :                                         tree res = generic_simplify_85 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8823            0 :                                         if (res) return res;
    8824              :                                       }
    8825            0 :                                       break;
    8826              :                                     }
    8827              :                                   default:;
    8828              :                                   }
    8829              :                               }
    8830              :                           }
    8831              :                         break;
    8832              :                       }
    8833              :                     default:;
    8834              :                     }
    8835              :                   break;
    8836              :                 }
    8837              :               default:;
    8838              :               }
    8839              :           }
    8840              :         break;
    8841              :       }
    8842      1368626 :     case CALL_EXPR:
    8843      1368626 :       switch (get_call_combined_fn (_p0))
    8844              :         {
    8845            9 :         case CFN_BUILT_IN_LOG:
    8846            9 :           if (call_expr_nargs (_p0) == 1)
    8847              :     {
    8848            9 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8849            9 :               switch (TREE_CODE (_p1))
    8850              :                 {
    8851            0 :                 case CALL_EXPR:
    8852            0 :                   switch (get_call_combined_fn (_p1))
    8853              :                     {
    8854            0 :                     case CFN_BUILT_IN_LOG:
    8855            0 :                       if (call_expr_nargs (_p1) == 1)
    8856              :     {
    8857            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8858            0 :                           {
    8859            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8860            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG);
    8861            0 :                             if (res) return res;
    8862              :                           }
    8863              :                         }
    8864              :                       break;
    8865              :                     default:;
    8866              :                     }
    8867              :                   break;
    8868              :                 default:;
    8869              :                 }
    8870              :             }
    8871              :           break;
    8872         1326 :         case CFN_BUILT_IN_POPCOUNT:
    8873         1326 :           if (call_expr_nargs (_p0) == 1)
    8874              :     {
    8875         1326 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8876         1326 :               switch (TREE_CODE (_p1))
    8877              :                 {
    8878           22 :                 case CALL_EXPR:
    8879           22 :                   switch (get_call_combined_fn (_p1))
    8880              :                     {
    8881           22 :                     case CFN_BUILT_IN_POPCOUNT:
    8882           22 :                       if (call_expr_nargs (_p1) == 1)
    8883              :     {
    8884           22 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8885           22 :                           {
    8886           22 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8887           22 :                             tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
    8888           22 :                             if (res) return res;
    8889              :                           }
    8890              :                         }
    8891              :                       break;
    8892              :                     default:;
    8893              :                     }
    8894              :                   break;
    8895         1325 :                 default:;
    8896              :                 }
    8897         1325 :               switch (TREE_CODE (_q20))
    8898              :                 {
    8899            9 :                 case BIT_AND_EXPR:
    8900            9 :                   {
    8901            9 :                     tree _q30 = TREE_OPERAND (_q20, 0);
    8902            9 :                     tree _q31 = TREE_OPERAND (_q20, 1);
    8903            9 :                     switch (TREE_CODE (_p1))
    8904              :                       {
    8905            9 :                       case CALL_EXPR:
    8906            9 :                         switch (get_call_combined_fn (_p1))
    8907              :                           {
    8908            9 :                           case CFN_BUILT_IN_POPCOUNT:
    8909            9 :                             if (call_expr_nargs (_p1) == 1)
    8910              :     {
    8911            9 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
    8912            9 :                                 switch (TREE_CODE (_q60))
    8913              :                                   {
    8914            9 :                                   case BIT_IOR_EXPR:
    8915            9 :                                     {
    8916            9 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
    8917            9 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
    8918            9 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    8919              :                                         {
    8920            1 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    8921              :                                             {
    8922            1 :                                               {
    8923            1 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
    8924            1 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
    8925            1 :                                                 if (res) return res;
    8926              :                                               }
    8927              :                                             }
    8928              :                                         }
    8929            8 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    8930              :                                         {
    8931            1 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    8932              :                                             {
    8933            1 :                                               {
    8934            1 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
    8935            1 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
    8936            1 :                                                 if (res) return res;
    8937              :                                               }
    8938              :                                             }
    8939              :                                         }
    8940              :                                       break;
    8941              :                                     }
    8942              :                                   default:;
    8943              :                                   }
    8944              :                               }
    8945              :                             break;
    8946              :                           default:;
    8947              :                           }
    8948              :                         break;
    8949              :                       default:;
    8950              :                       }
    8951              :                     break;
    8952              :                   }
    8953            2 :                 case BIT_IOR_EXPR:
    8954            2 :                   {
    8955            2 :                     tree _q30 = TREE_OPERAND (_q20, 0);
    8956            2 :                     tree _q31 = TREE_OPERAND (_q20, 1);
    8957            2 :                     switch (TREE_CODE (_p1))
    8958              :                       {
    8959            2 :                       case CALL_EXPR:
    8960            2 :                         switch (get_call_combined_fn (_p1))
    8961              :                           {
    8962            2 :                           case CFN_BUILT_IN_POPCOUNT:
    8963            2 :                             if (call_expr_nargs (_p1) == 1)
    8964              :     {
    8965            2 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
    8966            2 :                                 switch (TREE_CODE (_q60))
    8967              :                                   {
    8968            2 :                                   case BIT_AND_EXPR:
    8969            2 :                                     {
    8970            2 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
    8971            2 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
    8972            2 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    8973              :                                         {
    8974            1 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    8975              :                                             {
    8976            1 :                                               {
    8977            1 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
    8978            1 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
    8979            1 :                                                 if (res) return res;
    8980              :                                               }
    8981              :                                             }
    8982              :                                         }
    8983            1 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    8984              :                                         {
    8985            1 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    8986              :                                             {
    8987            1 :                                               {
    8988            1 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
    8989            1 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
    8990            1 :                                                 if (res) return res;
    8991              :                                               }
    8992              :                                             }
    8993              :                                         }
    8994              :                                       break;
    8995              :                                     }
    8996              :                                   default:;
    8997              :                                   }
    8998              :                               }
    8999              :                             break;
    9000              :                           default:;
    9001              :                           }
    9002              :                         break;
    9003              :                       default:;
    9004              :                       }
    9005              :                     break;
    9006              :                   }
    9007         1321 :                 default:;
    9008              :                 }
    9009         1321 :               switch (TREE_CODE (_p1))
    9010              :                 {
    9011            0 :                 case MINUS_EXPR:
    9012            0 :                   {
    9013            0 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    9014            0 :                     tree _q41 = TREE_OPERAND (_p1, 1);
    9015            0 :                     switch (TREE_CODE (_q40))
    9016              :                       {
    9017            0 :                       case CALL_EXPR:
    9018            0 :                         switch (get_call_combined_fn (_q40))
    9019              :                           {
    9020            0 :                           case CFN_BUILT_IN_POPCOUNT:
    9021            0 :                             if (call_expr_nargs (_q40) == 1)
    9022              :     {
    9023            0 :                                 tree _q50 = CALL_EXPR_ARG (_q40, 0);
    9024            0 :                                 switch (TREE_CODE (_q41))
    9025              :                                   {
    9026            0 :                                   case CALL_EXPR:
    9027            0 :                                     switch (get_call_combined_fn (_q41))
    9028              :                                       {
    9029            0 :                                       case CFN_BUILT_IN_POPCOUNT:
    9030            0 :                                         if (call_expr_nargs (_q41) == 1)
    9031              :     {
    9032            0 :                                             tree _q70 = CALL_EXPR_ARG (_q41, 0);
    9033            0 :                                             switch (TREE_CODE (_q70))
    9034              :                                               {
    9035            0 :                                               case BIT_AND_EXPR:
    9036            0 :                                                 {
    9037            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    9038            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    9039            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    9040              :                                                     {
    9041            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    9042              :                                                         {
    9043            0 :                                                           {
    9044            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9045            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
    9046            0 :                                                             if (res) return res;
    9047              :                                                           }
    9048              :                                                         }
    9049              :                                                     }
    9050            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    9051              :                                                     {
    9052            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    9053              :                                                         {
    9054            0 :                                                           {
    9055            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9056            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
    9057            0 :                                                             if (res) return res;
    9058              :                                                           }
    9059              :                                                         }
    9060              :                                                     }
    9061              :                                                   break;
    9062              :                                                 }
    9063            0 :                                               case BIT_IOR_EXPR:
    9064            0 :                                                 {
    9065            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    9066            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    9067            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    9068              :                                                     {
    9069            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    9070              :                                                         {
    9071            0 :                                                           {
    9072            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9073            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
    9074            0 :                                                             if (res) return res;
    9075              :                                                           }
    9076              :                                                         }
    9077              :                                                     }
    9078            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    9079              :                                                     {
    9080            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    9081              :                                                         {
    9082            0 :                                                           {
    9083            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9084            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
    9085            0 :                                                             if (res) return res;
    9086              :                                                           }
    9087              :                                                         }
    9088              :                                                     }
    9089              :                                                   break;
    9090              :                                                 }
    9091              :                                               default:;
    9092              :                                               }
    9093              :                                           }
    9094              :                                         break;
    9095              :                                       default:;
    9096              :                                       }
    9097              :                                     break;
    9098              :                                   default:;
    9099              :                                   }
    9100              :                               }
    9101              :                             break;
    9102              :                           default:;
    9103              :                           }
    9104              :                         break;
    9105              :                       default:;
    9106              :                       }
    9107              :                     break;
    9108              :                   }
    9109              :                 default:;
    9110              :                 }
    9111              :             }
    9112              :           break;
    9113            1 :         case CFN_BUILT_IN_LOG2:
    9114            1 :           if (call_expr_nargs (_p0) == 1)
    9115              :     {
    9116            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9117            1 :               switch (TREE_CODE (_p1))
    9118              :                 {
    9119            1 :                 case CALL_EXPR:
    9120            1 :                   switch (get_call_combined_fn (_p1))
    9121              :                     {
    9122            1 :                     case CFN_BUILT_IN_LOG2:
    9123            1 :                       if (call_expr_nargs (_p1) == 1)
    9124              :     {
    9125            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9126            1 :                           {
    9127            1 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9128            1 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2);
    9129            1 :                             if (res) return res;
    9130              :                           }
    9131              :                         }
    9132              :                       break;
    9133              :                     default:;
    9134              :                     }
    9135              :                   break;
    9136              :                 default:;
    9137              :                 }
    9138              :             }
    9139              :           break;
    9140            0 :         case CFN_BUILT_IN_LOGF:
    9141            0 :           if (call_expr_nargs (_p0) == 1)
    9142              :     {
    9143            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9144            0 :               switch (TREE_CODE (_p1))
    9145              :                 {
    9146            0 :                 case CALL_EXPR:
    9147            0 :                   switch (get_call_combined_fn (_p1))
    9148              :                     {
    9149            0 :                     case CFN_BUILT_IN_LOGF:
    9150            0 :                       if (call_expr_nargs (_p1) == 1)
    9151              :     {
    9152            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9153            0 :                           {
    9154            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9155            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF);
    9156            0 :                             if (res) return res;
    9157              :                           }
    9158              :                         }
    9159              :                       break;
    9160              :                     default:;
    9161              :                     }
    9162              :                   break;
    9163              :                 default:;
    9164              :                 }
    9165              :             }
    9166              :           break;
    9167            0 :         case CFN_BUILT_IN_LOGL:
    9168            0 :           if (call_expr_nargs (_p0) == 1)
    9169              :     {
    9170            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9171            0 :               switch (TREE_CODE (_p1))
    9172              :                 {
    9173            0 :                 case CALL_EXPR:
    9174            0 :                   switch (get_call_combined_fn (_p1))
    9175              :                     {
    9176            0 :                     case CFN_BUILT_IN_LOGL:
    9177            0 :                       if (call_expr_nargs (_p1) == 1)
    9178              :     {
    9179            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9180            0 :                           {
    9181            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9182            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL);
    9183            0 :                             if (res) return res;
    9184              :                           }
    9185              :                         }
    9186              :                       break;
    9187              :                     default:;
    9188              :                     }
    9189              :                   break;
    9190              :                 default:;
    9191              :                 }
    9192              :             }
    9193              :           break;
    9194           27 :         case CFN_BUILT_IN_POPCOUNTLL:
    9195           27 :           if (call_expr_nargs (_p0) == 1)
    9196              :     {
    9197           27 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9198           27 :               switch (TREE_CODE (_p1))
    9199              :                 {
    9200           25 :                 case CALL_EXPR:
    9201           25 :                   switch (get_call_combined_fn (_p1))
    9202              :                     {
    9203           25 :                     case CFN_BUILT_IN_POPCOUNTLL:
    9204           25 :                       if (call_expr_nargs (_p1) == 1)
    9205              :     {
    9206           25 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9207           25 :                           {
    9208           25 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9209           25 :                             tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
    9210           25 :                             if (res) return res;
    9211              :                           }
    9212              :                         }
    9213              :                       break;
    9214              :                     default:;
    9215              :                     }
    9216              :                   break;
    9217           27 :                 default:;
    9218              :                 }
    9219           27 :               switch (TREE_CODE (_q20))
    9220              :                 {
    9221            0 :                 case BIT_AND_EXPR:
    9222            0 :                   {
    9223            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
    9224            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
    9225            0 :                     switch (TREE_CODE (_p1))
    9226              :                       {
    9227            0 :                       case CALL_EXPR:
    9228            0 :                         switch (get_call_combined_fn (_p1))
    9229              :                           {
    9230            0 :                           case CFN_BUILT_IN_POPCOUNTLL:
    9231            0 :                             if (call_expr_nargs (_p1) == 1)
    9232              :     {
    9233            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
    9234            0 :                                 switch (TREE_CODE (_q60))
    9235              :                                   {
    9236            0 :                                   case BIT_IOR_EXPR:
    9237            0 :                                     {
    9238            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
    9239            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
    9240            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    9241              :                                         {
    9242            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    9243              :                                             {
    9244            0 :                                               {
    9245            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
    9246            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
    9247            0 :                                                 if (res) return res;
    9248              :                                               }
    9249              :                                             }
    9250              :                                         }
    9251            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    9252              :                                         {
    9253            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    9254              :                                             {
    9255            0 :                                               {
    9256            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
    9257            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
    9258            0 :                                                 if (res) return res;
    9259              :                                               }
    9260              :                                             }
    9261              :                                         }
    9262              :                                       break;
    9263              :                                     }
    9264              :                                   default:;
    9265              :                                   }
    9266              :                               }
    9267              :                             break;
    9268              :                           default:;
    9269              :                           }
    9270              :                         break;
    9271              :                       default:;
    9272              :                       }
    9273              :                     break;
    9274              :                   }
    9275            0 :                 case BIT_IOR_EXPR:
    9276            0 :                   {
    9277            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
    9278            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
    9279            0 :                     switch (TREE_CODE (_p1))
    9280              :                       {
    9281            0 :                       case CALL_EXPR:
    9282            0 :                         switch (get_call_combined_fn (_p1))
    9283              :                           {
    9284            0 :                           case CFN_BUILT_IN_POPCOUNTLL:
    9285            0 :                             if (call_expr_nargs (_p1) == 1)
    9286              :     {
    9287            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
    9288            0 :                                 switch (TREE_CODE (_q60))
    9289              :                                   {
    9290            0 :                                   case BIT_AND_EXPR:
    9291            0 :                                     {
    9292            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
    9293            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
    9294            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    9295              :                                         {
    9296            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    9297              :                                             {
    9298            0 :                                               {
    9299            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
    9300            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
    9301            0 :                                                 if (res) return res;
    9302              :                                               }
    9303              :                                             }
    9304              :                                         }
    9305            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    9306              :                                         {
    9307            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    9308              :                                             {
    9309            0 :                                               {
    9310            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
    9311            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
    9312            0 :                                                 if (res) return res;
    9313              :                                               }
    9314              :                                             }
    9315              :                                         }
    9316              :                                       break;
    9317              :                                     }
    9318              :                                   default:;
    9319              :                                   }
    9320              :                               }
    9321              :                             break;
    9322              :                           default:;
    9323              :                           }
    9324              :                         break;
    9325              :                       default:;
    9326              :                       }
    9327              :                     break;
    9328              :                   }
    9329           27 :                 default:;
    9330              :                 }
    9331           27 :               switch (TREE_CODE (_p1))
    9332              :                 {
    9333            0 :                 case MINUS_EXPR:
    9334            0 :                   {
    9335            0 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    9336            0 :                     tree _q41 = TREE_OPERAND (_p1, 1);
    9337            0 :                     switch (TREE_CODE (_q40))
    9338              :                       {
    9339            0 :                       case CALL_EXPR:
    9340            0 :                         switch (get_call_combined_fn (_q40))
    9341              :                           {
    9342            0 :                           case CFN_BUILT_IN_POPCOUNTLL:
    9343            0 :                             if (call_expr_nargs (_q40) == 1)
    9344              :     {
    9345            0 :                                 tree _q50 = CALL_EXPR_ARG (_q40, 0);
    9346            0 :                                 switch (TREE_CODE (_q41))
    9347              :                                   {
    9348            0 :                                   case CALL_EXPR:
    9349            0 :                                     switch (get_call_combined_fn (_q41))
    9350              :                                       {
    9351            0 :                                       case CFN_BUILT_IN_POPCOUNTLL:
    9352            0 :                                         if (call_expr_nargs (_q41) == 1)
    9353              :     {
    9354            0 :                                             tree _q70 = CALL_EXPR_ARG (_q41, 0);
    9355            0 :                                             switch (TREE_CODE (_q70))
    9356              :                                               {
    9357            0 :                                               case BIT_AND_EXPR:
    9358            0 :                                                 {
    9359            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    9360            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    9361            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    9362              :                                                     {
    9363            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    9364              :                                                         {
    9365            0 :                                                           {
    9366            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9367            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    9368            0 :                                                             if (res) return res;
    9369              :                                                           }
    9370              :                                                         }
    9371              :                                                     }
    9372            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    9373              :                                                     {
    9374            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    9375              :                                                         {
    9376            0 :                                                           {
    9377            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9378            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    9379            0 :                                                             if (res) return res;
    9380              :                                                           }
    9381              :                                                         }
    9382              :                                                     }
    9383              :                                                   break;
    9384              :                                                 }
    9385            0 :                                               case BIT_IOR_EXPR:
    9386            0 :                                                 {
    9387            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    9388            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    9389            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    9390              :                                                     {
    9391            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    9392              :                                                         {
    9393            0 :                                                           {
    9394            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9395            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    9396            0 :                                                             if (res) return res;
    9397              :                                                           }
    9398              :                                                         }
    9399              :                                                     }
    9400            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    9401              :                                                     {
    9402            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    9403              :                                                         {
    9404            0 :                                                           {
    9405            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9406            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    9407            0 :                                                             if (res) return res;
    9408              :                                                           }
    9409              :                                                         }
    9410              :                                                     }
    9411              :                                                   break;
    9412              :                                                 }
    9413              :                                               default:;
    9414              :                                               }
    9415              :                                           }
    9416              :                                         break;
    9417              :                                       default:;
    9418              :                                       }
    9419              :                                     break;
    9420              :                                   default:;
    9421              :                                   }
    9422              :                               }
    9423              :                             break;
    9424              :                           default:;
    9425              :                           }
    9426              :                         break;
    9427              :                       default:;
    9428              :                       }
    9429              :                     break;
    9430              :                   }
    9431              :                 default:;
    9432              :                 }
    9433              :             }
    9434              :           break;
    9435            0 :         case CFN_BUILT_IN_LOG10F:
    9436            0 :           if (call_expr_nargs (_p0) == 1)
    9437              :     {
    9438            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9439            0 :               switch (TREE_CODE (_p1))
    9440              :                 {
    9441            0 :                 case CALL_EXPR:
    9442            0 :                   switch (get_call_combined_fn (_p1))
    9443              :                     {
    9444            0 :                     case CFN_BUILT_IN_LOG10F:
    9445            0 :                       if (call_expr_nargs (_p1) == 1)
    9446              :     {
    9447            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9448            0 :                           {
    9449            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9450            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F);
    9451            0 :                             if (res) return res;
    9452              :                           }
    9453              :                         }
    9454              :                       break;
    9455              :                     default:;
    9456              :                     }
    9457              :                   break;
    9458              :                 default:;
    9459              :                 }
    9460              :             }
    9461              :           break;
    9462            0 :         case CFN_BUILT_IN_LOG10L:
    9463            0 :           if (call_expr_nargs (_p0) == 1)
    9464              :     {
    9465            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9466            0 :               switch (TREE_CODE (_p1))
    9467              :                 {
    9468            0 :                 case CALL_EXPR:
    9469            0 :                   switch (get_call_combined_fn (_p1))
    9470              :                     {
    9471            0 :                     case CFN_BUILT_IN_LOG10L:
    9472            0 :                       if (call_expr_nargs (_p1) == 1)
    9473              :     {
    9474            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9475            0 :                           {
    9476            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9477            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L);
    9478            0 :                             if (res) return res;
    9479              :                           }
    9480              :                         }
    9481              :                       break;
    9482              :                     default:;
    9483              :                     }
    9484              :                   break;
    9485              :                 default:;
    9486              :                 }
    9487              :             }
    9488              :           break;
    9489            7 :         case CFN_POPCOUNT:
    9490            7 :           if (call_expr_nargs (_p0) == 1)
    9491              :     {
    9492            7 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9493            7 :               switch (TREE_CODE (_p1))
    9494              :                 {
    9495            1 :                 case CALL_EXPR:
    9496            1 :                   switch (get_call_combined_fn (_p1))
    9497              :                     {
    9498            1 :                     case CFN_POPCOUNT:
    9499            1 :                       if (call_expr_nargs (_p1) == 1)
    9500              :     {
    9501            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9502            1 :                           {
    9503            1 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9504            1 :                             tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
    9505            1 :                             if (res) return res;
    9506              :                           }
    9507              :                         }
    9508              :                       break;
    9509              :                     default:;
    9510              :                     }
    9511              :                   break;
    9512            7 :                 default:;
    9513              :                 }
    9514            7 :               switch (TREE_CODE (_q20))
    9515              :                 {
    9516            0 :                 case BIT_AND_EXPR:
    9517            0 :                   {
    9518            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
    9519            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
    9520            0 :                     switch (TREE_CODE (_p1))
    9521              :                       {
    9522            0 :                       case CALL_EXPR:
    9523            0 :                         switch (get_call_combined_fn (_p1))
    9524              :                           {
    9525            0 :                           case CFN_POPCOUNT:
    9526            0 :                             if (call_expr_nargs (_p1) == 1)
    9527              :     {
    9528            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
    9529            0 :                                 switch (TREE_CODE (_q60))
    9530              :                                   {
    9531            0 :                                   case BIT_IOR_EXPR:
    9532            0 :                                     {
    9533            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
    9534            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
    9535            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    9536              :                                         {
    9537            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    9538              :                                             {
    9539            0 :                                               {
    9540            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
    9541            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
    9542            0 :                                                 if (res) return res;
    9543              :                                               }
    9544              :                                             }
    9545              :                                         }
    9546            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    9547              :                                         {
    9548            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    9549              :                                             {
    9550            0 :                                               {
    9551            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
    9552            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
    9553            0 :                                                 if (res) return res;
    9554              :                                               }
    9555              :                                             }
    9556              :                                         }
    9557              :                                       break;
    9558              :                                     }
    9559              :                                   default:;
    9560              :                                   }
    9561              :                               }
    9562              :                             break;
    9563              :                           default:;
    9564              :                           }
    9565              :                         break;
    9566              :                       default:;
    9567              :                       }
    9568              :                     break;
    9569              :                   }
    9570            0 :                 case BIT_IOR_EXPR:
    9571            0 :                   {
    9572            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
    9573            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
    9574            0 :                     switch (TREE_CODE (_p1))
    9575              :                       {
    9576            0 :                       case CALL_EXPR:
    9577            0 :                         switch (get_call_combined_fn (_p1))
    9578              :                           {
    9579            0 :                           case CFN_POPCOUNT:
    9580            0 :                             if (call_expr_nargs (_p1) == 1)
    9581              :     {
    9582            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
    9583            0 :                                 switch (TREE_CODE (_q60))
    9584              :                                   {
    9585            0 :                                   case BIT_AND_EXPR:
    9586            0 :                                     {
    9587            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
    9588            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
    9589            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    9590              :                                         {
    9591            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    9592              :                                             {
    9593            0 :                                               {
    9594            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
    9595            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
    9596            0 :                                                 if (res) return res;
    9597              :                                               }
    9598              :                                             }
    9599              :                                         }
    9600            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    9601              :                                         {
    9602            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    9603              :                                             {
    9604            0 :                                               {
    9605            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
    9606            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
    9607            0 :                                                 if (res) return res;
    9608              :                                               }
    9609              :                                             }
    9610              :                                         }
    9611              :                                       break;
    9612              :                                     }
    9613              :                                   default:;
    9614              :                                   }
    9615              :                               }
    9616              :                             break;
    9617              :                           default:;
    9618              :                           }
    9619              :                         break;
    9620              :                       default:;
    9621              :                       }
    9622              :                     break;
    9623              :                   }
    9624            7 :                 default:;
    9625              :                 }
    9626            7 :               switch (TREE_CODE (_p1))
    9627              :                 {
    9628            0 :                 case MINUS_EXPR:
    9629            0 :                   {
    9630            0 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    9631            0 :                     tree _q41 = TREE_OPERAND (_p1, 1);
    9632            0 :                     switch (TREE_CODE (_q40))
    9633              :                       {
    9634            0 :                       case CALL_EXPR:
    9635            0 :                         switch (get_call_combined_fn (_q40))
    9636              :                           {
    9637            0 :                           case CFN_POPCOUNT:
    9638            0 :                             if (call_expr_nargs (_q40) == 1)
    9639              :     {
    9640            0 :                                 tree _q50 = CALL_EXPR_ARG (_q40, 0);
    9641            0 :                                 switch (TREE_CODE (_q41))
    9642              :                                   {
    9643            0 :                                   case CALL_EXPR:
    9644            0 :                                     switch (get_call_combined_fn (_q41))
    9645              :                                       {
    9646            0 :                                       case CFN_POPCOUNT:
    9647            0 :                                         if (call_expr_nargs (_q41) == 1)
    9648              :     {
    9649            0 :                                             tree _q70 = CALL_EXPR_ARG (_q41, 0);
    9650            0 :                                             switch (TREE_CODE (_q70))
    9651              :                                               {
    9652            0 :                                               case BIT_AND_EXPR:
    9653            0 :                                                 {
    9654            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    9655            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    9656            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    9657              :                                                     {
    9658            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    9659              :                                                         {
    9660            0 :                                                           {
    9661            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9662            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
    9663            0 :                                                             if (res) return res;
    9664              :                                                           }
    9665              :                                                         }
    9666              :                                                     }
    9667            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    9668              :                                                     {
    9669            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    9670              :                                                         {
    9671            0 :                                                           {
    9672            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9673            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
    9674            0 :                                                             if (res) return res;
    9675              :                                                           }
    9676              :                                                         }
    9677              :                                                     }
    9678              :                                                   break;
    9679              :                                                 }
    9680            0 :                                               case BIT_IOR_EXPR:
    9681            0 :                                                 {
    9682            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    9683            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    9684            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    9685              :                                                     {
    9686            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    9687              :                                                         {
    9688            0 :                                                           {
    9689            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9690            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
    9691            0 :                                                             if (res) return res;
    9692              :                                                           }
    9693              :                                                         }
    9694              :                                                     }
    9695            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    9696              :                                                     {
    9697            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    9698              :                                                         {
    9699            0 :                                                           {
    9700            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9701            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
    9702            0 :                                                             if (res) return res;
    9703              :                                                           }
    9704              :                                                         }
    9705              :                                                     }
    9706              :                                                   break;
    9707              :                                                 }
    9708              :                                               default:;
    9709              :                                               }
    9710              :                                           }
    9711              :                                         break;
    9712              :                                       default:;
    9713              :                                       }
    9714              :                                     break;
    9715              :                                   default:;
    9716              :                                   }
    9717              :                               }
    9718              :                             break;
    9719              :                           default:;
    9720              :                           }
    9721              :                         break;
    9722              :                       default:;
    9723              :                       }
    9724              :                     break;
    9725              :                   }
    9726              :                 default:;
    9727              :                 }
    9728              :             }
    9729              :           break;
    9730            0 :         case CFN_LOG:
    9731            0 :           if (call_expr_nargs (_p0) == 1)
    9732              :     {
    9733            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9734            0 :               switch (TREE_CODE (_p1))
    9735              :                 {
    9736            0 :                 case CALL_EXPR:
    9737            0 :                   switch (get_call_combined_fn (_p1))
    9738              :                     {
    9739            0 :                     case CFN_LOG:
    9740            0 :                       if (call_expr_nargs (_p1) == 1)
    9741              :     {
    9742            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9743            0 :                           {
    9744            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9745            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_LOG);
    9746            0 :                             if (res) return res;
    9747              :                           }
    9748              :                         }
    9749              :                       break;
    9750              :                     default:;
    9751              :                     }
    9752              :                   break;
    9753              :                 default:;
    9754              :                 }
    9755              :             }
    9756              :           break;
    9757            0 :         case CFN_BUILT_IN_POPCOUNTIMAX:
    9758            0 :           if (call_expr_nargs (_p0) == 1)
    9759              :     {
    9760            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9761            0 :               switch (TREE_CODE (_p1))
    9762              :                 {
    9763            0 :                 case CALL_EXPR:
    9764            0 :                   switch (get_call_combined_fn (_p1))
    9765              :                     {
    9766            0 :                     case CFN_BUILT_IN_POPCOUNTIMAX:
    9767            0 :                       if (call_expr_nargs (_p1) == 1)
    9768              :     {
    9769            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9770            0 :                           {
    9771            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9772            0 :                             tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
    9773            0 :                             if (res) return res;
    9774              :                           }
    9775              :                         }
    9776              :                       break;
    9777              :                     default:;
    9778              :                     }
    9779              :                   break;
    9780            0 :                 default:;
    9781              :                 }
    9782            0 :               switch (TREE_CODE (_q20))
    9783              :                 {
    9784            0 :                 case BIT_AND_EXPR:
    9785            0 :                   {
    9786            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
    9787            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
    9788            0 :                     switch (TREE_CODE (_p1))
    9789              :                       {
    9790            0 :                       case CALL_EXPR:
    9791            0 :                         switch (get_call_combined_fn (_p1))
    9792              :                           {
    9793            0 :                           case CFN_BUILT_IN_POPCOUNTIMAX:
    9794            0 :                             if (call_expr_nargs (_p1) == 1)
    9795              :     {
    9796            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
    9797            0 :                                 switch (TREE_CODE (_q60))
    9798              :                                   {
    9799            0 :                                   case BIT_IOR_EXPR:
    9800            0 :                                     {
    9801            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
    9802            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
    9803            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    9804              :                                         {
    9805            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    9806              :                                             {
    9807            0 :                                               {
    9808            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
    9809            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
    9810            0 :                                                 if (res) return res;
    9811              :                                               }
    9812              :                                             }
    9813              :                                         }
    9814            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    9815              :                                         {
    9816            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    9817              :                                             {
    9818            0 :                                               {
    9819            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
    9820            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
    9821            0 :                                                 if (res) return res;
    9822              :                                               }
    9823              :                                             }
    9824              :                                         }
    9825              :                                       break;
    9826              :                                     }
    9827              :                                   default:;
    9828              :                                   }
    9829              :                               }
    9830              :                             break;
    9831              :                           default:;
    9832              :                           }
    9833              :                         break;
    9834              :                       default:;
    9835              :                       }
    9836              :                     break;
    9837              :                   }
    9838            0 :                 case BIT_IOR_EXPR:
    9839            0 :                   {
    9840            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
    9841            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
    9842            0 :                     switch (TREE_CODE (_p1))
    9843              :                       {
    9844            0 :                       case CALL_EXPR:
    9845            0 :                         switch (get_call_combined_fn (_p1))
    9846              :                           {
    9847            0 :                           case CFN_BUILT_IN_POPCOUNTIMAX:
    9848            0 :                             if (call_expr_nargs (_p1) == 1)
    9849              :     {
    9850            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
    9851            0 :                                 switch (TREE_CODE (_q60))
    9852              :                                   {
    9853            0 :                                   case BIT_AND_EXPR:
    9854            0 :                                     {
    9855            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
    9856            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
    9857            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    9858              :                                         {
    9859            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    9860              :                                             {
    9861            0 :                                               {
    9862            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
    9863            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
    9864            0 :                                                 if (res) return res;
    9865              :                                               }
    9866              :                                             }
    9867              :                                         }
    9868            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    9869              :                                         {
    9870            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    9871              :                                             {
    9872            0 :                                               {
    9873            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
    9874            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
    9875            0 :                                                 if (res) return res;
    9876              :                                               }
    9877              :                                             }
    9878              :                                         }
    9879              :                                       break;
    9880              :                                     }
    9881              :                                   default:;
    9882              :                                   }
    9883              :                               }
    9884              :                             break;
    9885              :                           default:;
    9886              :                           }
    9887              :                         break;
    9888              :                       default:;
    9889              :                       }
    9890              :                     break;
    9891              :                   }
    9892            0 :                 default:;
    9893              :                 }
    9894            0 :               switch (TREE_CODE (_p1))
    9895              :                 {
    9896            0 :                 case MINUS_EXPR:
    9897            0 :                   {
    9898            0 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    9899            0 :                     tree _q41 = TREE_OPERAND (_p1, 1);
    9900            0 :                     switch (TREE_CODE (_q40))
    9901              :                       {
    9902            0 :                       case CALL_EXPR:
    9903            0 :                         switch (get_call_combined_fn (_q40))
    9904              :                           {
    9905            0 :                           case CFN_BUILT_IN_POPCOUNTIMAX:
    9906            0 :                             if (call_expr_nargs (_q40) == 1)
    9907              :     {
    9908            0 :                                 tree _q50 = CALL_EXPR_ARG (_q40, 0);
    9909            0 :                                 switch (TREE_CODE (_q41))
    9910              :                                   {
    9911            0 :                                   case CALL_EXPR:
    9912            0 :                                     switch (get_call_combined_fn (_q41))
    9913              :                                       {
    9914            0 :                                       case CFN_BUILT_IN_POPCOUNTIMAX:
    9915            0 :                                         if (call_expr_nargs (_q41) == 1)
    9916              :     {
    9917            0 :                                             tree _q70 = CALL_EXPR_ARG (_q41, 0);
    9918            0 :                                             switch (TREE_CODE (_q70))
    9919              :                                               {
    9920            0 :                                               case BIT_AND_EXPR:
    9921            0 :                                                 {
    9922            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    9923            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    9924            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    9925              :                                                     {
    9926            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    9927              :                                                         {
    9928            0 :                                                           {
    9929            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9930            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    9931            0 :                                                             if (res) return res;
    9932              :                                                           }
    9933              :                                                         }
    9934              :                                                     }
    9935            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    9936              :                                                     {
    9937            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    9938              :                                                         {
    9939            0 :                                                           {
    9940            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9941            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    9942            0 :                                                             if (res) return res;
    9943              :                                                           }
    9944              :                                                         }
    9945              :                                                     }
    9946              :                                                   break;
    9947              :                                                 }
    9948            0 :                                               case BIT_IOR_EXPR:
    9949            0 :                                                 {
    9950            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    9951            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    9952            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    9953              :                                                     {
    9954            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    9955              :                                                         {
    9956            0 :                                                           {
    9957            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9958            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    9959            0 :                                                             if (res) return res;
    9960              :                                                           }
    9961              :                                                         }
    9962              :                                                     }
    9963            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    9964              :                                                     {
    9965            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    9966              :                                                         {
    9967            0 :                                                           {
    9968            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9969            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    9970            0 :                                                             if (res) return res;
    9971              :                                                           }
    9972              :                                                         }
    9973              :                                                     }
    9974              :                                                   break;
    9975              :                                                 }
    9976              :                                               default:;
    9977              :                                               }
    9978              :                                           }
    9979              :                                         break;
    9980              :                                       default:;
    9981              :                                       }
    9982              :                                     break;
    9983              :                                   default:;
    9984              :                                   }
    9985              :                               }
    9986              :                             break;
    9987              :                           default:;
    9988              :                           }
    9989              :                         break;
    9990              :                       default:;
    9991              :                       }
    9992              :                     break;
    9993              :                   }
    9994              :                 default:;
    9995              :                 }
    9996              :             }
    9997              :           break;
    9998            0 :         case CFN_LOG2:
    9999            0 :           if (call_expr_nargs (_p0) == 1)
   10000              :     {
   10001            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10002            0 :               switch (TREE_CODE (_p1))
   10003              :                 {
   10004            0 :                 case CALL_EXPR:
   10005            0 :                   switch (get_call_combined_fn (_p1))
   10006              :                     {
   10007            0 :                     case CFN_LOG2:
   10008            0 :                       if (call_expr_nargs (_p1) == 1)
   10009              :     {
   10010            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10011            0 :                           {
   10012            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10013            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_LOG2);
   10014            0 :                             if (res) return res;
   10015              :                           }
   10016              :                         }
   10017              :                       break;
   10018              :                     default:;
   10019              :                     }
   10020              :                   break;
   10021              :                 default:;
   10022              :                 }
   10023              :             }
   10024              :           break;
   10025          136 :         case CFN_BUILT_IN_POPCOUNTL:
   10026          136 :           if (call_expr_nargs (_p0) == 1)
   10027              :     {
   10028          136 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10029          136 :               switch (TREE_CODE (_p1))
   10030              :                 {
   10031           69 :                 case CALL_EXPR:
   10032           69 :                   switch (get_call_combined_fn (_p1))
   10033              :                     {
   10034           69 :                     case CFN_BUILT_IN_POPCOUNTL:
   10035           69 :                       if (call_expr_nargs (_p1) == 1)
   10036              :     {
   10037           69 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10038           69 :                           {
   10039           69 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10040           69 :                             tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
   10041           69 :                             if (res) return res;
   10042              :                           }
   10043              :                         }
   10044              :                       break;
   10045              :                     default:;
   10046              :                     }
   10047              :                   break;
   10048          136 :                 default:;
   10049              :                 }
   10050          136 :               switch (TREE_CODE (_q20))
   10051              :                 {
   10052            0 :                 case BIT_AND_EXPR:
   10053            0 :                   {
   10054            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
   10055            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
   10056            0 :                     switch (TREE_CODE (_p1))
   10057              :                       {
   10058            0 :                       case CALL_EXPR:
   10059            0 :                         switch (get_call_combined_fn (_p1))
   10060              :                           {
   10061            0 :                           case CFN_BUILT_IN_POPCOUNTL:
   10062            0 :                             if (call_expr_nargs (_p1) == 1)
   10063              :     {
   10064            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
   10065            0 :                                 switch (TREE_CODE (_q60))
   10066              :                                   {
   10067            0 :                                   case BIT_IOR_EXPR:
   10068            0 :                                     {
   10069            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
   10070            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
   10071            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   10072              :                                         {
   10073            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
   10074              :                                             {
   10075            0 :                                               {
   10076            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
   10077            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
   10078            0 :                                                 if (res) return res;
   10079              :                                               }
   10080              :                                             }
   10081              :                                         }
   10082            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
   10083              :                                         {
   10084            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   10085              :                                             {
   10086            0 :                                               {
   10087            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
   10088            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
   10089            0 :                                                 if (res) return res;
   10090              :                                               }
   10091              :                                             }
   10092              :                                         }
   10093              :                                       break;
   10094              :                                     }
   10095              :                                   default:;
   10096              :                                   }
   10097              :                               }
   10098              :                             break;
   10099              :                           default:;
   10100              :                           }
   10101              :                         break;
   10102              :                       default:;
   10103              :                       }
   10104              :                     break;
   10105              :                   }
   10106            0 :                 case BIT_IOR_EXPR:
   10107            0 :                   {
   10108            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
   10109            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
   10110            0 :                     switch (TREE_CODE (_p1))
   10111              :                       {
   10112            0 :                       case CALL_EXPR:
   10113            0 :                         switch (get_call_combined_fn (_p1))
   10114              :                           {
   10115            0 :                           case CFN_BUILT_IN_POPCOUNTL:
   10116            0 :                             if (call_expr_nargs (_p1) == 1)
   10117              :     {
   10118            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
   10119            0 :                                 switch (TREE_CODE (_q60))
   10120              :                                   {
   10121            0 :                                   case BIT_AND_EXPR:
   10122            0 :                                     {
   10123            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
   10124            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
   10125            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   10126              :                                         {
   10127            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
   10128              :                                             {
   10129            0 :                                               {
   10130            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
   10131            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
   10132            0 :                                                 if (res) return res;
   10133              :                                               }
   10134              :                                             }
   10135              :                                         }
   10136            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
   10137              :                                         {
   10138            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   10139              :                                             {
   10140            0 :                                               {
   10141            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
   10142            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
   10143            0 :                                                 if (res) return res;
   10144              :                                               }
   10145              :                                             }
   10146              :                                         }
   10147              :                                       break;
   10148              :                                     }
   10149              :                                   default:;
   10150              :                                   }
   10151              :                               }
   10152              :                             break;
   10153              :                           default:;
   10154              :                           }
   10155              :                         break;
   10156              :                       default:;
   10157              :                       }
   10158              :                     break;
   10159              :                   }
   10160          136 :                 default:;
   10161              :                 }
   10162          136 :               switch (TREE_CODE (_p1))
   10163              :                 {
   10164            0 :                 case MINUS_EXPR:
   10165            0 :                   {
   10166            0 :                     tree _q40 = TREE_OPERAND (_p1, 0);
   10167            0 :                     tree _q41 = TREE_OPERAND (_p1, 1);
   10168            0 :                     switch (TREE_CODE (_q40))
   10169              :                       {
   10170            0 :                       case CALL_EXPR:
   10171            0 :                         switch (get_call_combined_fn (_q40))
   10172              :                           {
   10173            0 :                           case CFN_BUILT_IN_POPCOUNTL:
   10174            0 :                             if (call_expr_nargs (_q40) == 1)
   10175              :     {
   10176            0 :                                 tree _q50 = CALL_EXPR_ARG (_q40, 0);
   10177            0 :                                 switch (TREE_CODE (_q41))
   10178              :                                   {
   10179            0 :                                   case CALL_EXPR:
   10180            0 :                                     switch (get_call_combined_fn (_q41))
   10181              :                                       {
   10182            0 :                                       case CFN_BUILT_IN_POPCOUNTL:
   10183            0 :                                         if (call_expr_nargs (_q41) == 1)
   10184              :     {
   10185            0 :                                             tree _q70 = CALL_EXPR_ARG (_q41, 0);
   10186            0 :                                             switch (TREE_CODE (_q70))
   10187              :                                               {
   10188            0 :                                               case BIT_AND_EXPR:
   10189            0 :                                                 {
   10190            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
   10191            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
   10192            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
   10193              :                                                     {
   10194            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
   10195              :                                                         {
   10196            0 :                                                           {
   10197            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
   10198            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
   10199            0 :                                                             if (res) return res;
   10200              :                                                           }
   10201              :                                                         }
   10202              :                                                     }
   10203            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   10204              :                                                     {
   10205            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
   10206              :                                                         {
   10207            0 :                                                           {
   10208            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
   10209            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
   10210            0 :                                                             if (res) return res;
   10211              :                                                           }
   10212              :                                                         }
   10213              :                                                     }
   10214              :                                                   break;
   10215              :                                                 }
   10216            0 :                                               case BIT_IOR_EXPR:
   10217            0 :                                                 {
   10218            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
   10219            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
   10220            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
   10221              :                                                     {
   10222            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
   10223              :                                                         {
   10224            0 :                                                           {
   10225            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
   10226            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
   10227            0 :                                                             if (res) return res;
   10228              :                                                           }
   10229              :                                                         }
   10230              :                                                     }
   10231            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   10232              :                                                     {
   10233            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
   10234              :                                                         {
   10235            0 :                                                           {
   10236            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
   10237            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
   10238            0 :                                                             if (res) return res;
   10239              :                                                           }
   10240              :                                                         }
   10241              :                                                     }
   10242              :                                                   break;
   10243              :                                                 }
   10244              :                                               default:;
   10245              :                                               }
   10246              :                                           }
   10247              :                                         break;
   10248              :                                       default:;
   10249              :                                       }
   10250              :                                     break;
   10251              :                                   default:;
   10252              :                                   }
   10253              :                               }
   10254              :                             break;
   10255              :                           default:;
   10256              :                           }
   10257              :                         break;
   10258              :                       default:;
   10259              :                       }
   10260              :                     break;
   10261              :                   }
   10262              :                 default:;
   10263              :                 }
   10264              :             }
   10265              :           break;
   10266            0 :         case CFN_LOG10:
   10267            0 :           if (call_expr_nargs (_p0) == 1)
   10268              :     {
   10269            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10270            0 :               switch (TREE_CODE (_p1))
   10271              :                 {
   10272            0 :                 case CALL_EXPR:
   10273            0 :                   switch (get_call_combined_fn (_p1))
   10274              :                     {
   10275            0 :                     case CFN_LOG10:
   10276            0 :                       if (call_expr_nargs (_p1) == 1)
   10277              :     {
   10278            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10279            0 :                           {
   10280            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10281            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_LOG10);
   10282            0 :                             if (res) return res;
   10283              :                           }
   10284              :                         }
   10285              :                       break;
   10286              :                     default:;
   10287              :                     }
   10288              :                   break;
   10289              :                 default:;
   10290              :                 }
   10291              :             }
   10292              :           break;
   10293            0 :         case CFN_BUILT_IN_LOG10:
   10294            0 :           if (call_expr_nargs (_p0) == 1)
   10295              :     {
   10296            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10297            0 :               switch (TREE_CODE (_p1))
   10298              :                 {
   10299            0 :                 case CALL_EXPR:
   10300            0 :                   switch (get_call_combined_fn (_p1))
   10301              :                     {
   10302            0 :                     case CFN_BUILT_IN_LOG10:
   10303            0 :                       if (call_expr_nargs (_p1) == 1)
   10304              :     {
   10305            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10306            0 :                           {
   10307            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10308            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10);
   10309            0 :                             if (res) return res;
   10310              :                           }
   10311              :                         }
   10312              :                       break;
   10313              :                     default:;
   10314              :                     }
   10315              :                   break;
   10316              :                 default:;
   10317              :                 }
   10318              :             }
   10319              :           break;
   10320            0 :         case CFN_BUILT_IN_LOG2F:
   10321            0 :           if (call_expr_nargs (_p0) == 1)
   10322              :     {
   10323            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10324            0 :               switch (TREE_CODE (_p1))
   10325              :                 {
   10326            0 :                 case CALL_EXPR:
   10327            0 :                   switch (get_call_combined_fn (_p1))
   10328              :                     {
   10329            0 :                     case CFN_BUILT_IN_LOG2F:
   10330            0 :                       if (call_expr_nargs (_p1) == 1)
   10331              :     {
   10332            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10333            0 :                           {
   10334            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10335            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F);
   10336            0 :                             if (res) return res;
   10337              :                           }
   10338              :                         }
   10339              :                       break;
   10340              :                     default:;
   10341              :                     }
   10342              :                   break;
   10343              :                 default:;
   10344              :                 }
   10345              :             }
   10346              :           break;
   10347            0 :         case CFN_BUILT_IN_LOG2L:
   10348            0 :           if (call_expr_nargs (_p0) == 1)
   10349              :     {
   10350            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10351            0 :               switch (TREE_CODE (_p1))
   10352              :                 {
   10353            0 :                 case CALL_EXPR:
   10354            0 :                   switch (get_call_combined_fn (_p1))
   10355              :                     {
   10356            0 :                     case CFN_BUILT_IN_LOG2L:
   10357            0 :                       if (call_expr_nargs (_p1) == 1)
   10358              :     {
   10359            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10360            0 :                           {
   10361            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10362            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L);
   10363            0 :                             if (res) return res;
   10364              :                           }
   10365              :                         }
   10366              :                       break;
   10367              :                     default:;
   10368              :                     }
   10369              :                   break;
   10370              :                 default:;
   10371              :                 }
   10372              :             }
   10373              :           break;
   10374              :         default:;
   10375              :         }
   10376              :       break;
   10377     62454003 :     default:;
   10378              :     }
   10379     62454003 :   switch (TREE_CODE (_p1))
   10380              :     {
   10381            0 :     case VEC_PERM_EXPR:
   10382            0 :       {
   10383            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10384            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10385            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10386            0 :         switch (TREE_CODE (_q30))
   10387              :           {
   10388            0 :           case MULT_EXPR:
   10389            0 :             {
   10390            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
   10391            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
   10392            0 :               if (tree_vec_same_elem_p (_q41))
   10393              :                 {
   10394            0 :                   if ((_q31 == _q30 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q30, 0) && types_match (_q31, _q30)))
   10395              :                     {
   10396            0 :                       {
   10397            0 :                         tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q41, _q32, _p0 };
   10398            0 :                         tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
   10399            0 :                         if (res) return res;
   10400              :                       }
   10401              :                     }
   10402              :                 }
   10403            0 :               if (tree_vec_same_elem_p (_q40))
   10404              :                 {
   10405            0 :                   if ((_q31 == _q30 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q30, 0) && types_match (_q31, _q30)))
   10406              :                     {
   10407            0 :                       {
   10408            0 :                         tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _q40, _q32, _p0 };
   10409            0 :                         tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
   10410            0 :                         if (res) return res;
   10411              :                       }
   10412              :                     }
   10413              :                 }
   10414              :               break;
   10415              :             }
   10416              :           default:;
   10417              :           }
   10418              :         break;
   10419              :       }
   10420              :     default:;
   10421              :     }
   10422              :   return NULL_TREE;
   10423              : }
   10424              : 
   10425              : tree
   10426       848923 : generic_simplify_UNLE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10427              : {
   10428       848923 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10429       848923 :   switch (TREE_CODE (_p0))
   10430              :     {
   10431            0 :     case VEC_COND_EXPR:
   10432            0 :       {
   10433            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10434            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10435            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10436            0 :         switch (TREE_CODE (_p1))
   10437              :           {
   10438            0 :           case VEC_COND_EXPR:
   10439            0 :             {
   10440            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   10441            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   10442            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   10443            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   10444              :                 {
   10445            0 :                   {
   10446            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   10447            0 :                     if (VECTOR_TYPE_P (type)
   10448            0 :  && (TREE_CODE_CLASS (UNLE_EXPR) != tcc_comparison
   10449            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10450            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10451              :  || (optimize_vectors_before_lowering_p ()
   10452            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10453              : )
   10454              :                       {
   10455            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1773;
   10456            0 :                         {
   10457            0 :                           tree res_op0;
   10458            0 :                           res_op0 = captures[1];
   10459            0 :                           tree res_op1;
   10460            0 :                           {
   10461            0 :                             tree _o1[2], _r1;
   10462            0 :                             _o1[0] = captures[2];
   10463            0 :                             _o1[1] = captures[5];
   10464            0 :                             _r1 = fold_build2_loc (loc, UNLE_EXPR, type, _o1[0], _o1[1]);
   10465            0 :                             if (EXPR_P (_r1))
   10466            0 :                               goto next_after_fail1773;
   10467            0 :                             res_op1 = _r1;
   10468              :                           }
   10469            0 :                           tree res_op2;
   10470            0 :                           {
   10471            0 :                             tree _o1[2], _r1;
   10472            0 :                             _o1[0] = captures[3];
   10473            0 :                             _o1[1] = captures[6];
   10474            0 :                             _r1 = fold_build2_loc (loc, UNLE_EXPR, type, _o1[0], _o1[1]);
   10475            0 :                             if (EXPR_P (_r1))
   10476            0 :                               goto next_after_fail1773;
   10477            0 :                             res_op2 = _r1;
   10478              :                           }
   10479            0 :                           tree _r;
   10480            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10481            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
   10482            0 :                           return _r;
   10483              :                         }
   10484            0 : next_after_fail1773:;
   10485              :                       }
   10486              :                   }
   10487              :                 }
   10488              :               break;
   10489              :             }
   10490            0 :           default:;
   10491              :           }
   10492            0 :         {
   10493            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   10494            0 :           if (VECTOR_TYPE_P (type)
   10495            0 :  && (TREE_CODE_CLASS (UNLE_EXPR) != tcc_comparison
   10496            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10497            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10498              :  || (optimize_vectors_before_lowering_p ()
   10499            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10500              : )
   10501              :             {
   10502            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1774;
   10503            0 :               {
   10504            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1774;
   10505            0 :                 tree res_op0;
   10506            0 :                 res_op0 = captures[1];
   10507            0 :                 tree res_op1;
   10508            0 :                 {
   10509            0 :                   tree _o1[2], _r1;
   10510            0 :                   _o1[0] = captures[2];
   10511            0 :                   _o1[1] = unshare_expr (captures[4]);
   10512            0 :                   _r1 = fold_build2_loc (loc, UNLE_EXPR, type, _o1[0], _o1[1]);
   10513            0 :                   if (EXPR_P (_r1))
   10514            0 :                     goto next_after_fail1774;
   10515            0 :                   res_op1 = _r1;
   10516              :                 }
   10517            0 :                 tree res_op2;
   10518            0 :                 {
   10519            0 :                   tree _o1[2], _r1;
   10520            0 :                   _o1[0] = captures[3];
   10521            0 :                   _o1[1] = captures[4];
   10522            0 :                   _r1 = fold_build2_loc (loc, UNLE_EXPR, type, _o1[0], _o1[1]);
   10523            0 :                   if (EXPR_P (_r1))
   10524            0 :                     goto next_after_fail1774;
   10525            0 :                   res_op2 = _r1;
   10526              :                 }
   10527            0 :                 tree _r;
   10528            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10529            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
   10530            0 :                 return _r;
   10531              :               }
   10532            0 : next_after_fail1774:;
   10533              :             }
   10534              :         }
   10535            0 :         break;
   10536              :       }
   10537       848923 :     default:;
   10538              :     }
   10539       848923 :   switch (TREE_CODE (_p1))
   10540              :     {
   10541            0 :     case VEC_COND_EXPR:
   10542            0 :       {
   10543            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10544            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10545            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10546            0 :         {
   10547            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   10548            0 :           if (VECTOR_TYPE_P (type)
   10549            0 :  && (TREE_CODE_CLASS (UNLE_EXPR) != tcc_comparison
   10550            0 :  || types_match (type, TREE_TYPE (captures[3]))
   10551            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   10552              :  || (optimize_vectors_before_lowering_p ()
   10553            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   10554              : )
   10555              :             {
   10556            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1775;
   10557            0 :               {
   10558            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1775;
   10559            0 :                 tree res_op0;
   10560            0 :                 res_op0 = captures[2];
   10561            0 :                 tree res_op1;
   10562            0 :                 {
   10563            0 :                   tree _o1[2], _r1;
   10564            0 :                   _o1[0] = unshare_expr (captures[0]);
   10565            0 :                   _o1[1] = captures[3];
   10566            0 :                   _r1 = fold_build2_loc (loc, UNLE_EXPR, type, _o1[0], _o1[1]);
   10567            0 :                   if (EXPR_P (_r1))
   10568            0 :                     goto next_after_fail1775;
   10569            0 :                   res_op1 = _r1;
   10570              :                 }
   10571            0 :                 tree res_op2;
   10572            0 :                 {
   10573            0 :                   tree _o1[2], _r1;
   10574            0 :                   _o1[0] = captures[0];
   10575            0 :                   _o1[1] = captures[4];
   10576            0 :                   _r1 = fold_build2_loc (loc, UNLE_EXPR, type, _o1[0], _o1[1]);
   10577            0 :                   if (EXPR_P (_r1))
   10578            0 :                     goto next_after_fail1775;
   10579            0 :                   res_op2 = _r1;
   10580              :                 }
   10581            0 :                 tree _r;
   10582            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10583            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10584            0 :                 return _r;
   10585              :               }
   10586            0 : next_after_fail1775:;
   10587              :             }
   10588              :         }
   10589            0 :         break;
   10590              :       }
   10591       848923 :     default:;
   10592              :     }
   10593       848923 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10594              :     {
   10595           30 :       {
   10596           30 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10597           30 :         tree res = generic_simplify_566 (loc, type, _p0, _p1, captures, UNLE_EXPR);
   10598           30 :         if (res) return res;
   10599              :       }
   10600              :     }
   10601       848893 :   switch (TREE_CODE (_p0))
   10602              :     {
   10603           96 :     case FLOAT_EXPR:
   10604           96 :       {
   10605           96 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10606           96 :         switch (TREE_CODE (_p1))
   10607              :           {
   10608            0 :           case FLOAT_EXPR:
   10609            0 :             {
   10610            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10611            0 :               {
   10612            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
   10613            0 :                 tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNLE_EXPR, LE_EXPR);
   10614            0 :                 if (res) return res;
   10615              :               }
   10616            0 :               break;
   10617              :             }
   10618              :           default:;
   10619              :           }
   10620              :         break;
   10621              :       }
   10622          112 :     case NEGATE_EXPR:
   10623          112 :       {
   10624          112 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10625          112 :         switch (TREE_CODE (_p1))
   10626              :           {
   10627            0 :           case NEGATE_EXPR:
   10628            0 :             {
   10629            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10630            0 :               {
   10631            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   10632            0 :                 tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, UNLE_EXPR, UNGE_EXPR);
   10633            0 :                 if (res) return res;
   10634              :               }
   10635            0 :               break;
   10636              :             }
   10637          112 :           default:;
   10638              :           }
   10639          112 :       if (CONSTANT_CLASS_P (_p1))
   10640              :         {
   10641          112 :           {
   10642          112 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10643          112 :             tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, UNLE_EXPR, UNGE_EXPR);
   10644          112 :             if (res) return res;
   10645              :           }
   10646              :         }
   10647              :         break;
   10648              :       }
   10649       848781 :     default:;
   10650              :     }
   10651       848781 :   switch (TREE_CODE (_p1))
   10652              :     {
   10653       494788 :     case REAL_CST:
   10654       494788 :       {
   10655       494788 :         {
   10656       494788 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10657       494788 :           tree res = generic_simplify_564 (loc, type, _p0, _p1, captures, UNLE_EXPR);
   10658       494788 :           if (res) return res;
   10659              :         }
   10660       494786 :         break;
   10661              :       }
   10662              :     default:;
   10663              :     }
   10664              :   return NULL_TREE;
   10665              : }
   10666              : 
   10667              : tree
   10668      3288112 : generic_simplify_TRUTH_ORIF_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10669              : {
   10670      3288112 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10671      3288112 :   switch (TREE_CODE (_p0))
   10672              :     {
   10673       349800 :     case LE_EXPR:
   10674       349800 :       {
   10675       349800 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10676       349800 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10677       349800 :         switch (TREE_CODE (_q20))
   10678              :           {
   10679           90 :           case POINTER_PLUS_EXPR:
   10680           90 :             {
   10681           90 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10682           90 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10683           90 :               switch (TREE_CODE (_q31))
   10684              :                 {
   10685            2 :                 case INTEGER_CST:
   10686            2 :                   {
   10687            2 :                     switch (TREE_CODE (_p1))
   10688              :                       {
   10689            2 :                       case LE_EXPR:
   10690            2 :                         {
   10691            2 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   10692            2 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   10693            2 :                           switch (TREE_CODE (_q70))
   10694              :                             {
   10695            2 :                             case POINTER_PLUS_EXPR:
   10696            2 :                               {
   10697            2 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   10698            2 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   10699            2 :                                 if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
   10700              :                                   {
   10701            2 :                                     if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
   10702              :                                       {
   10703            2 :                                         if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   10704              :                                           {
   10705            2 :                                             {
   10706            2 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
   10707            2 :                                               const enum tree_code cmp = LE_EXPR;
   10708            2 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   10709            1 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   10710            3 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   10711              : )
   10712              :                                                 {
   10713            1 :                                                   {
   10714            1 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   10715            1 :  offset_int rhs = off * 2;
   10716            1 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   10717              : )
   10718              :                                                         {
   10719            1 :                                                           {
   10720            1 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   10721            1 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   10722            1 :                                                               if (cmp == LT_EXPR
   10723              : )
   10724              :                                                                 {
   10725              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1789;
   10726              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1789;
   10727              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1789;
   10728              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1789;
   10729              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1789;
   10730              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1789;
   10731              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1789;
   10732              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1789;
   10733              :                                                                   {
   10734              :                                                                     tree res_op0;
   10735              :                                                                     {
   10736              :                                                                       tree _o1[1], _r1;
   10737              :                                                                       {
   10738              :                                                                         tree _o2[2], _r2;
   10739              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   10740              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10741              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10742              :                                                                         _o1[0] = _r2;
   10743              :                                                                       }
   10744              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10745              :                                                                         {
   10746              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10747              :                                                                         }
   10748              :                                                                       else
   10749              :                                                                         _r1 = _o1[0];
   10750              :                                                                       res_op0 = _r1;
   10751              :                                                                     }
   10752              :                                                                     tree res_op1;
   10753              :                                                                     res_op1 =  rhs_tree;
   10754              :                                                                     tree _r;
   10755              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10756              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   10757            1 :                                                                     return _r;
   10758              :                                                                   }
   10759              : next_after_fail1789:;
   10760              :                                                                 }
   10761              :                                                               else
   10762              :                                                                 {
   10763            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1790;
   10764            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1790;
   10765            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1790;
   10766            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1790;
   10767            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1790;
   10768            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1790;
   10769            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1790;
   10770            1 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1790;
   10771            1 :                                                                   {
   10772            1 :                                                                     tree res_op0;
   10773            1 :                                                                     {
   10774            1 :                                                                       tree _o1[1], _r1;
   10775            1 :                                                                       {
   10776            1 :                                                                         tree _o2[2], _r2;
   10777            1 :                                                                         {
   10778            1 :                                                                           tree _o3[2], _r3;
   10779            1 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   10780            1 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   10781            1 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   10782            1 :                                                                           _o2[0] = _r3;
   10783              :                                                                         }
   10784            1 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10785            1 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10786            1 :                                                                         _o1[0] = _r2;
   10787              :                                                                       }
   10788            1 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10789              :                                                                         {
   10790            1 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10791              :                                                                         }
   10792              :                                                                       else
   10793              :                                                                         _r1 = _o1[0];
   10794            1 :                                                                       res_op0 = _r1;
   10795              :                                                                     }
   10796            1 :                                                                     tree res_op1;
   10797            1 :                                                                     res_op1 =  rhs_tree;
   10798            1 :                                                                     tree _r;
   10799            1 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10800            1 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   10801            1 :                                                                     return _r;
   10802              :                                                                   }
   10803            0 : next_after_fail1790:;
   10804              :                                                                 }
   10805              :                                                           }
   10806              :                                                         }
   10807              :                                                   }
   10808              :                                                 }
   10809              :                                             }
   10810              :                                           }
   10811              :                                       }
   10812              :                                   }
   10813              :                                 break;
   10814              :                               }
   10815              :                             default:;
   10816              :                             }
   10817              :                           break;
   10818              :                         }
   10819            0 :                       case GE_EXPR:
   10820            0 :                         {
   10821            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   10822            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   10823            0 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   10824              :                             {
   10825            0 :                               switch (TREE_CODE (_q71))
   10826              :                                 {
   10827            0 :                                 case POINTER_PLUS_EXPR:
   10828            0 :                                   {
   10829            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   10830            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   10831            0 :                                     if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
   10832              :                                       {
   10833            0 :                                         if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
   10834              :                                           {
   10835            0 :                                             {
   10836            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
   10837            0 :                                               const enum tree_code cmp = LE_EXPR;
   10838            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   10839            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   10840            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   10841              : )
   10842              :                                                 {
   10843            0 :                                                   {
   10844            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   10845            0 :  offset_int rhs = off * 2;
   10846            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   10847              : )
   10848              :                                                         {
   10849            0 :                                                           {
   10850            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   10851            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   10852            0 :                                                               if (cmp == LT_EXPR
   10853              : )
   10854              :                                                                 {
   10855              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1791;
   10856              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1791;
   10857              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1791;
   10858              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1791;
   10859              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1791;
   10860              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1791;
   10861              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1791;
   10862              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1791;
   10863              :                                                                   {
   10864              :                                                                     tree res_op0;
   10865              :                                                                     {
   10866              :                                                                       tree _o1[1], _r1;
   10867              :                                                                       {
   10868              :                                                                         tree _o2[2], _r2;
   10869              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   10870              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10871              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10872              :                                                                         _o1[0] = _r2;
   10873              :                                                                       }
   10874              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10875              :                                                                         {
   10876              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10877              :                                                                         }
   10878              :                                                                       else
   10879              :                                                                         _r1 = _o1[0];
   10880              :                                                                       res_op0 = _r1;
   10881              :                                                                     }
   10882              :                                                                     tree res_op1;
   10883              :                                                                     res_op1 =  rhs_tree;
   10884              :                                                                     tree _r;
   10885              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10886              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   10887            0 :                                                                     return _r;
   10888              :                                                                   }
   10889              : next_after_fail1791:;
   10890              :                                                                 }
   10891              :                                                               else
   10892              :                                                                 {
   10893            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1792;
   10894            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1792;
   10895            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1792;
   10896            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1792;
   10897            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1792;
   10898            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1792;
   10899            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1792;
   10900            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1792;
   10901            0 :                                                                   {
   10902            0 :                                                                     tree res_op0;
   10903            0 :                                                                     {
   10904            0 :                                                                       tree _o1[1], _r1;
   10905            0 :                                                                       {
   10906            0 :                                                                         tree _o2[2], _r2;
   10907            0 :                                                                         {
   10908            0 :                                                                           tree _o3[2], _r3;
   10909            0 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   10910            0 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   10911            0 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   10912            0 :                                                                           _o2[0] = _r3;
   10913              :                                                                         }
   10914            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10915            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10916            0 :                                                                         _o1[0] = _r2;
   10917              :                                                                       }
   10918            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10919              :                                                                         {
   10920            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10921              :                                                                         }
   10922              :                                                                       else
   10923              :                                                                         _r1 = _o1[0];
   10924            0 :                                                                       res_op0 = _r1;
   10925              :                                                                     }
   10926            0 :                                                                     tree res_op1;
   10927            0 :                                                                     res_op1 =  rhs_tree;
   10928            0 :                                                                     tree _r;
   10929            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10930            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   10931            0 :                                                                     return _r;
   10932              :                                                                   }
   10933            0 : next_after_fail1792:;
   10934              :                                                                 }
   10935              :                                                           }
   10936              :                                                         }
   10937              :                                                   }
   10938              :                                                 }
   10939              :                                             }
   10940              :                                           }
   10941              :                                       }
   10942              :                                     break;
   10943              :                                   }
   10944              :                                 default:;
   10945              :                                 }
   10946              :                             }
   10947              :                           break;
   10948              :                         }
   10949              :                       default:;
   10950              :                       }
   10951              :                     break;
   10952              :                   }
   10953              :                 default:;
   10954              :                 }
   10955              :               break;
   10956              :             }
   10957              :           default:;
   10958              :           }
   10959              :         break;
   10960              :       }
   10961       754639 :     case LT_EXPR:
   10962       754639 :       {
   10963       754639 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10964       754639 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10965       754639 :         switch (TREE_CODE (_q20))
   10966              :           {
   10967           13 :           case POINTER_PLUS_EXPR:
   10968           13 :             {
   10969           13 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10970           13 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10971           13 :               switch (TREE_CODE (_q31))
   10972              :                 {
   10973            7 :                 case INTEGER_CST:
   10974            7 :                   {
   10975            7 :                     switch (TREE_CODE (_p1))
   10976              :                       {
   10977            2 :                       case LT_EXPR:
   10978            2 :                         {
   10979            2 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   10980            2 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   10981            2 :                           switch (TREE_CODE (_q70))
   10982              :                             {
   10983            2 :                             case POINTER_PLUS_EXPR:
   10984            2 :                               {
   10985            2 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   10986            2 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   10987            2 :                                 if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
   10988              :                                   {
   10989            2 :                                     if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
   10990              :                                       {
   10991            2 :                                         if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   10992              :                                           {
   10993            2 :                                             {
   10994            2 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
   10995            2 :                                               const enum tree_code cmp = LT_EXPR;
   10996            2 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   10997            1 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   10998            3 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   10999              : )
   11000              :                                                 {
   11001            1 :                                                   {
   11002            1 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11003            1 :  offset_int rhs = off * 2;
   11004            1 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11005              : )
   11006              :                                                         {
   11007            1 :                                                           {
   11008            1 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11009            1 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11010            1 :                                                               if (cmp == LT_EXPR
   11011              : )
   11012              :                                                                 {
   11013            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1793;
   11014            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1793;
   11015            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1793;
   11016            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1793;
   11017            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1793;
   11018            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1793;
   11019            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1793;
   11020            1 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1793;
   11021            1 :                                                                   {
   11022            1 :                                                                     tree res_op0;
   11023            1 :                                                                     {
   11024            1 :                                                                       tree _o1[1], _r1;
   11025            1 :                                                                       {
   11026            1 :                                                                         tree _o2[2], _r2;
   11027            1 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11028            1 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11029            1 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11030            1 :                                                                         _o1[0] = _r2;
   11031              :                                                                       }
   11032            1 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11033              :                                                                         {
   11034            1 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11035              :                                                                         }
   11036              :                                                                       else
   11037              :                                                                         _r1 = _o1[0];
   11038            1 :                                                                       res_op0 = _r1;
   11039              :                                                                     }
   11040            1 :                                                                     tree res_op1;
   11041            1 :                                                                     res_op1 =  rhs_tree;
   11042            1 :                                                                     tree _r;
   11043            1 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11044            1 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   11045            1 :                                                                     return _r;
   11046              :                                                                   }
   11047            0 : next_after_fail1793:;
   11048              :                                                                 }
   11049              :                                                               else
   11050              :                                                                 {
   11051              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1794;
   11052              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1794;
   11053              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1794;
   11054              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1794;
   11055              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1794;
   11056              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1794;
   11057              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1794;
   11058              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1794;
   11059              :                                                                   {
   11060              :                                                                     tree res_op0;
   11061              :                                                                     {
   11062              :                                                                       tree _o1[1], _r1;
   11063              :                                                                       {
   11064              :                                                                         tree _o2[2], _r2;
   11065              :                                                                         {
   11066              :                                                                           tree _o3[2], _r3;
   11067              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11068              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11069              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11070              :                                                                           _o2[0] = _r3;
   11071              :                                                                         }
   11072              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11073              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11074              :                                                                         _o1[0] = _r2;
   11075              :                                                                       }
   11076              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11077              :                                                                         {
   11078              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11079              :                                                                         }
   11080              :                                                                       else
   11081              :                                                                         _r1 = _o1[0];
   11082              :                                                                       res_op0 = _r1;
   11083              :                                                                     }
   11084              :                                                                     tree res_op1;
   11085              :                                                                     res_op1 =  rhs_tree;
   11086              :                                                                     tree _r;
   11087              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11088              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   11089              :                                                                     return _r;
   11090              :                                                                   }
   11091              : next_after_fail1794:;
   11092              :                                                                 }
   11093              :                                                           }
   11094              :                                                         }
   11095              :                                                   }
   11096              :                                                 }
   11097              :                                             }
   11098              :                                           }
   11099              :                                       }
   11100              :                                   }
   11101              :                                 break;
   11102              :                               }
   11103              :                             default:;
   11104              :                             }
   11105              :                           break;
   11106              :                         }
   11107            0 :                       case GT_EXPR:
   11108            0 :                         {
   11109            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11110            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11111            0 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   11112              :                             {
   11113            0 :                               switch (TREE_CODE (_q71))
   11114              :                                 {
   11115            0 :                                 case POINTER_PLUS_EXPR:
   11116            0 :                                   {
   11117            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   11118            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   11119            0 :                                     if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
   11120              :                                       {
   11121            0 :                                         if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
   11122              :                                           {
   11123            0 :                                             {
   11124            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
   11125            0 :                                               const enum tree_code cmp = LT_EXPR;
   11126            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11127            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11128            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11129              : )
   11130              :                                                 {
   11131            0 :                                                   {
   11132            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11133            0 :  offset_int rhs = off * 2;
   11134            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11135              : )
   11136              :                                                         {
   11137            0 :                                                           {
   11138            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11139            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11140            0 :                                                               if (cmp == LT_EXPR
   11141              : )
   11142              :                                                                 {
   11143            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1795;
   11144            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1795;
   11145            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1795;
   11146            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1795;
   11147            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1795;
   11148            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1795;
   11149            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1795;
   11150            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1795;
   11151            0 :                                                                   {
   11152            0 :                                                                     tree res_op0;
   11153            0 :                                                                     {
   11154            0 :                                                                       tree _o1[1], _r1;
   11155            0 :                                                                       {
   11156            0 :                                                                         tree _o2[2], _r2;
   11157            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11158            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11159            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11160            0 :                                                                         _o1[0] = _r2;
   11161              :                                                                       }
   11162            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11163              :                                                                         {
   11164            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11165              :                                                                         }
   11166              :                                                                       else
   11167              :                                                                         _r1 = _o1[0];
   11168            0 :                                                                       res_op0 = _r1;
   11169              :                                                                     }
   11170            0 :                                                                     tree res_op1;
   11171            0 :                                                                     res_op1 =  rhs_tree;
   11172            0 :                                                                     tree _r;
   11173            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11174            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   11175            0 :                                                                     return _r;
   11176              :                                                                   }
   11177            0 : next_after_fail1795:;
   11178              :                                                                 }
   11179              :                                                               else
   11180              :                                                                 {
   11181              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1796;
   11182              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1796;
   11183              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1796;
   11184              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1796;
   11185              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1796;
   11186              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1796;
   11187              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1796;
   11188              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1796;
   11189              :                                                                   {
   11190              :                                                                     tree res_op0;
   11191              :                                                                     {
   11192              :                                                                       tree _o1[1], _r1;
   11193              :                                                                       {
   11194              :                                                                         tree _o2[2], _r2;
   11195              :                                                                         {
   11196              :                                                                           tree _o3[2], _r3;
   11197              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11198              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11199              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11200              :                                                                           _o2[0] = _r3;
   11201              :                                                                         }
   11202              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11203              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11204              :                                                                         _o1[0] = _r2;
   11205              :                                                                       }
   11206              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11207              :                                                                         {
   11208              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11209              :                                                                         }
   11210              :                                                                       else
   11211              :                                                                         _r1 = _o1[0];
   11212              :                                                                       res_op0 = _r1;
   11213              :                                                                     }
   11214              :                                                                     tree res_op1;
   11215              :                                                                     res_op1 =  rhs_tree;
   11216              :                                                                     tree _r;
   11217              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11218              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   11219              :                                                                     return _r;
   11220              :                                                                   }
   11221              : next_after_fail1796:;
   11222              :                                                                 }
   11223              :                                                           }
   11224              :                                                         }
   11225              :                                                   }
   11226              :                                                 }
   11227              :                                             }
   11228              :                                           }
   11229              :                                       }
   11230              :                                     break;
   11231              :                                   }
   11232              :                                 default:;
   11233              :                                 }
   11234              :                             }
   11235              :                           break;
   11236              :                         }
   11237              :                       default:;
   11238              :                       }
   11239              :                     break;
   11240              :                   }
   11241              :                 default:;
   11242              :                 }
   11243              :               break;
   11244              :             }
   11245              :           default:;
   11246              :           }
   11247              :         break;
   11248              :       }
   11249        18458 :     case GE_EXPR:
   11250        18458 :       {
   11251        18458 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11252        18458 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11253        18458 :         switch (TREE_CODE (_q21))
   11254              :           {
   11255            0 :           case POINTER_PLUS_EXPR:
   11256            0 :             {
   11257            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
   11258            0 :               tree _q41 = TREE_OPERAND (_q21, 1);
   11259            0 :               switch (TREE_CODE (_q41))
   11260              :                 {
   11261            0 :                 case INTEGER_CST:
   11262            0 :                   {
   11263            0 :                     switch (TREE_CODE (_p1))
   11264              :                       {
   11265            0 :                       case LE_EXPR:
   11266            0 :                         {
   11267            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11268            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11269            0 :                           switch (TREE_CODE (_q70))
   11270              :                             {
   11271            0 :                             case POINTER_PLUS_EXPR:
   11272            0 :                               {
   11273            0 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   11274            0 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   11275            0 :                                 if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   11276              :                                   {
   11277            0 :                                     if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
   11278              :                                       {
   11279            0 :                                         if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
   11280              :                                           {
   11281            0 :                                             {
   11282            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
   11283            0 :                                               const enum tree_code cmp = LE_EXPR;
   11284            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11285            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11286            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11287              : )
   11288              :                                                 {
   11289            0 :                                                   {
   11290            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11291            0 :  offset_int rhs = off * 2;
   11292            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11293              : )
   11294              :                                                         {
   11295            0 :                                                           {
   11296            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11297            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11298            0 :                                                               if (cmp == LT_EXPR
   11299              : )
   11300              :                                                                 {
   11301              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1797;
   11302              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1797;
   11303              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1797;
   11304              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1797;
   11305              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1797;
   11306              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1797;
   11307              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1797;
   11308              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1797;
   11309              :                                                                   {
   11310              :                                                                     tree res_op0;
   11311              :                                                                     {
   11312              :                                                                       tree _o1[1], _r1;
   11313              :                                                                       {
   11314              :                                                                         tree _o2[2], _r2;
   11315              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11316              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11317              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11318              :                                                                         _o1[0] = _r2;
   11319              :                                                                       }
   11320              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11321              :                                                                         {
   11322              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11323              :                                                                         }
   11324              :                                                                       else
   11325              :                                                                         _r1 = _o1[0];
   11326              :                                                                       res_op0 = _r1;
   11327              :                                                                     }
   11328              :                                                                     tree res_op1;
   11329              :                                                                     res_op1 =  rhs_tree;
   11330              :                                                                     tree _r;
   11331              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11332              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   11333            0 :                                                                     return _r;
   11334              :                                                                   }
   11335              : next_after_fail1797:;
   11336              :                                                                 }
   11337              :                                                               else
   11338              :                                                                 {
   11339            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1798;
   11340            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1798;
   11341            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1798;
   11342            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1798;
   11343            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1798;
   11344            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1798;
   11345            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1798;
   11346            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1798;
   11347            0 :                                                                   {
   11348            0 :                                                                     tree res_op0;
   11349            0 :                                                                     {
   11350            0 :                                                                       tree _o1[1], _r1;
   11351            0 :                                                                       {
   11352            0 :                                                                         tree _o2[2], _r2;
   11353            0 :                                                                         {
   11354            0 :                                                                           tree _o3[2], _r3;
   11355            0 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11356            0 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11357            0 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11358            0 :                                                                           _o2[0] = _r3;
   11359              :                                                                         }
   11360            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11361            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11362            0 :                                                                         _o1[0] = _r2;
   11363              :                                                                       }
   11364            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11365              :                                                                         {
   11366            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11367              :                                                                         }
   11368              :                                                                       else
   11369              :                                                                         _r1 = _o1[0];
   11370            0 :                                                                       res_op0 = _r1;
   11371              :                                                                     }
   11372            0 :                                                                     tree res_op1;
   11373            0 :                                                                     res_op1 =  rhs_tree;
   11374            0 :                                                                     tree _r;
   11375            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11376            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   11377            0 :                                                                     return _r;
   11378              :                                                                   }
   11379            0 : next_after_fail1798:;
   11380              :                                                                 }
   11381              :                                                           }
   11382              :                                                         }
   11383              :                                                   }
   11384              :                                                 }
   11385              :                                             }
   11386              :                                           }
   11387              :                                       }
   11388              :                                   }
   11389              :                                 break;
   11390              :                               }
   11391              :                             default:;
   11392              :                             }
   11393              :                           break;
   11394              :                         }
   11395            0 :                       case GE_EXPR:
   11396            0 :                         {
   11397            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11398            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11399            0 :                           if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
   11400              :                             {
   11401            0 :                               switch (TREE_CODE (_q71))
   11402              :                                 {
   11403            0 :                                 case POINTER_PLUS_EXPR:
   11404            0 :                                   {
   11405            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   11406            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   11407            0 :                                     if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
   11408              :                                       {
   11409            0 :                                         if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
   11410              :                                           {
   11411            0 :                                             {
   11412            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
   11413            0 :                                               const enum tree_code cmp = LE_EXPR;
   11414            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11415            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11416            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11417              : )
   11418              :                                                 {
   11419            0 :                                                   {
   11420            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11421            0 :  offset_int rhs = off * 2;
   11422            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11423              : )
   11424              :                                                         {
   11425            0 :                                                           {
   11426            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11427            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11428            0 :                                                               if (cmp == LT_EXPR
   11429              : )
   11430              :                                                                 {
   11431              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1799;
   11432              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1799;
   11433              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1799;
   11434              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1799;
   11435              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1799;
   11436              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1799;
   11437              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1799;
   11438              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1799;
   11439              :                                                                   {
   11440              :                                                                     tree res_op0;
   11441              :                                                                     {
   11442              :                                                                       tree _o1[1], _r1;
   11443              :                                                                       {
   11444              :                                                                         tree _o2[2], _r2;
   11445              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11446              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11447              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11448              :                                                                         _o1[0] = _r2;
   11449              :                                                                       }
   11450              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11451              :                                                                         {
   11452              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11453              :                                                                         }
   11454              :                                                                       else
   11455              :                                                                         _r1 = _o1[0];
   11456              :                                                                       res_op0 = _r1;
   11457              :                                                                     }
   11458              :                                                                     tree res_op1;
   11459              :                                                                     res_op1 =  rhs_tree;
   11460              :                                                                     tree _r;
   11461              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11462              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   11463            0 :                                                                     return _r;
   11464              :                                                                   }
   11465              : next_after_fail1799:;
   11466              :                                                                 }
   11467              :                                                               else
   11468              :                                                                 {
   11469            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1800;
   11470            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1800;
   11471            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1800;
   11472            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1800;
   11473            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1800;
   11474            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1800;
   11475            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1800;
   11476            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1800;
   11477            0 :                                                                   {
   11478            0 :                                                                     tree res_op0;
   11479            0 :                                                                     {
   11480            0 :                                                                       tree _o1[1], _r1;
   11481            0 :                                                                       {
   11482            0 :                                                                         tree _o2[2], _r2;
   11483            0 :                                                                         {
   11484            0 :                                                                           tree _o3[2], _r3;
   11485            0 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11486            0 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11487            0 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11488            0 :                                                                           _o2[0] = _r3;
   11489              :                                                                         }
   11490            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11491            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11492            0 :                                                                         _o1[0] = _r2;
   11493              :                                                                       }
   11494            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11495              :                                                                         {
   11496            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11497              :                                                                         }
   11498              :                                                                       else
   11499              :                                                                         _r1 = _o1[0];
   11500            0 :                                                                       res_op0 = _r1;
   11501              :                                                                     }
   11502            0 :                                                                     tree res_op1;
   11503            0 :                                                                     res_op1 =  rhs_tree;
   11504            0 :                                                                     tree _r;
   11505            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11506            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   11507            0 :                                                                     return _r;
   11508              :                                                                   }
   11509            0 : next_after_fail1800:;
   11510              :                                                                 }
   11511              :                                                           }
   11512              :                                                         }
   11513              :                                                   }
   11514              :                                                 }
   11515              :                                             }
   11516              :                                           }
   11517              :                                       }
   11518              :                                     break;
   11519              :                                   }
   11520              :                                 default:;
   11521              :                                 }
   11522              :                             }
   11523              :                           break;
   11524              :                         }
   11525              :                       default:;
   11526              :                       }
   11527              :                     break;
   11528              :                   }
   11529              :                 default:;
   11530              :                 }
   11531              :               break;
   11532              :             }
   11533              :           default:;
   11534              :           }
   11535              :         break;
   11536              :       }
   11537        64435 :     case GT_EXPR:
   11538        64435 :       {
   11539        64435 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11540        64435 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11541        64435 :         switch (TREE_CODE (_q21))
   11542              :           {
   11543            0 :           case POINTER_PLUS_EXPR:
   11544            0 :             {
   11545            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
   11546            0 :               tree _q41 = TREE_OPERAND (_q21, 1);
   11547            0 :               switch (TREE_CODE (_q41))
   11548              :                 {
   11549            0 :                 case INTEGER_CST:
   11550            0 :                   {
   11551            0 :                     switch (TREE_CODE (_p1))
   11552              :                       {
   11553            0 :                       case LT_EXPR:
   11554            0 :                         {
   11555            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11556            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11557            0 :                           switch (TREE_CODE (_q70))
   11558              :                             {
   11559            0 :                             case POINTER_PLUS_EXPR:
   11560            0 :                               {
   11561            0 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   11562            0 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   11563            0 :                                 if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   11564              :                                   {
   11565            0 :                                     if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
   11566              :                                       {
   11567            0 :                                         if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
   11568              :                                           {
   11569            0 :                                             {
   11570            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
   11571            0 :                                               const enum tree_code cmp = LT_EXPR;
   11572            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11573            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11574            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11575              : )
   11576              :                                                 {
   11577            0 :                                                   {
   11578            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11579            0 :  offset_int rhs = off * 2;
   11580            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11581              : )
   11582              :                                                         {
   11583            0 :                                                           {
   11584            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11585            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11586            0 :                                                               if (cmp == LT_EXPR
   11587              : )
   11588              :                                                                 {
   11589            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1801;
   11590            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1801;
   11591            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1801;
   11592            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1801;
   11593            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1801;
   11594            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1801;
   11595            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1801;
   11596            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1801;
   11597            0 :                                                                   {
   11598            0 :                                                                     tree res_op0;
   11599            0 :                                                                     {
   11600            0 :                                                                       tree _o1[1], _r1;
   11601            0 :                                                                       {
   11602            0 :                                                                         tree _o2[2], _r2;
   11603            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11604            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11605            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11606            0 :                                                                         _o1[0] = _r2;
   11607              :                                                                       }
   11608            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11609              :                                                                         {
   11610            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11611              :                                                                         }
   11612              :                                                                       else
   11613              :                                                                         _r1 = _o1[0];
   11614            0 :                                                                       res_op0 = _r1;
   11615              :                                                                     }
   11616            0 :                                                                     tree res_op1;
   11617            0 :                                                                     res_op1 =  rhs_tree;
   11618            0 :                                                                     tree _r;
   11619            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11620            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   11621            0 :                                                                     return _r;
   11622              :                                                                   }
   11623            0 : next_after_fail1801:;
   11624              :                                                                 }
   11625              :                                                               else
   11626              :                                                                 {
   11627              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1802;
   11628              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1802;
   11629              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1802;
   11630              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1802;
   11631              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1802;
   11632              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1802;
   11633              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1802;
   11634              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1802;
   11635              :                                                                   {
   11636              :                                                                     tree res_op0;
   11637              :                                                                     {
   11638              :                                                                       tree _o1[1], _r1;
   11639              :                                                                       {
   11640              :                                                                         tree _o2[2], _r2;
   11641              :                                                                         {
   11642              :                                                                           tree _o3[2], _r3;
   11643              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11644              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11645              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11646              :                                                                           _o2[0] = _r3;
   11647              :                                                                         }
   11648              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11649              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11650              :                                                                         _o1[0] = _r2;
   11651              :                                                                       }
   11652              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11653              :                                                                         {
   11654              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11655              :                                                                         }
   11656              :                                                                       else
   11657              :                                                                         _r1 = _o1[0];
   11658              :                                                                       res_op0 = _r1;
   11659              :                                                                     }
   11660              :                                                                     tree res_op1;
   11661              :                                                                     res_op1 =  rhs_tree;
   11662              :                                                                     tree _r;
   11663              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11664              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   11665              :                                                                     return _r;
   11666              :                                                                   }
   11667              : next_after_fail1802:;
   11668              :                                                                 }
   11669              :                                                           }
   11670              :                                                         }
   11671              :                                                   }
   11672              :                                                 }
   11673              :                                             }
   11674              :                                           }
   11675              :                                       }
   11676              :                                   }
   11677              :                                 break;
   11678              :                               }
   11679              :                             default:;
   11680              :                             }
   11681              :                           break;
   11682              :                         }
   11683            0 :                       case GT_EXPR:
   11684            0 :                         {
   11685            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11686            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11687            0 :                           if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
   11688              :                             {
   11689            0 :                               switch (TREE_CODE (_q71))
   11690              :                                 {
   11691            0 :                                 case POINTER_PLUS_EXPR:
   11692            0 :                                   {
   11693            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   11694            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   11695            0 :                                     if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
   11696              :                                       {
   11697            0 :                                         if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
   11698              :                                           {
   11699            0 :                                             {
   11700            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
   11701            0 :                                               const enum tree_code cmp = LT_EXPR;
   11702            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11703            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11704            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11705              : )
   11706              :                                                 {
   11707            0 :                                                   {
   11708            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11709            0 :  offset_int rhs = off * 2;
   11710            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11711              : )
   11712              :                                                         {
   11713            0 :                                                           {
   11714            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11715            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11716            0 :                                                               if (cmp == LT_EXPR
   11717              : )
   11718              :                                                                 {
   11719            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1803;
   11720            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1803;
   11721            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1803;
   11722            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1803;
   11723            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1803;
   11724            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1803;
   11725            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1803;
   11726            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1803;
   11727            0 :                                                                   {
   11728            0 :                                                                     tree res_op0;
   11729            0 :                                                                     {
   11730            0 :                                                                       tree _o1[1], _r1;
   11731            0 :                                                                       {
   11732            0 :                                                                         tree _o2[2], _r2;
   11733            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11734            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11735            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11736            0 :                                                                         _o1[0] = _r2;
   11737              :                                                                       }
   11738            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11739              :                                                                         {
   11740            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11741              :                                                                         }
   11742              :                                                                       else
   11743              :                                                                         _r1 = _o1[0];
   11744            0 :                                                                       res_op0 = _r1;
   11745              :                                                                     }
   11746            0 :                                                                     tree res_op1;
   11747            0 :                                                                     res_op1 =  rhs_tree;
   11748            0 :                                                                     tree _r;
   11749            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11750            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   11751            0 :                                                                     return _r;
   11752              :                                                                   }
   11753            0 : next_after_fail1803:;
   11754              :                                                                 }
   11755              :                                                               else
   11756              :                                                                 {
   11757              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1804;
   11758              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1804;
   11759              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1804;
   11760              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1804;
   11761              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1804;
   11762              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1804;
   11763              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1804;
   11764              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1804;
   11765              :                                                                   {
   11766              :                                                                     tree res_op0;
   11767              :                                                                     {
   11768              :                                                                       tree _o1[1], _r1;
   11769              :                                                                       {
   11770              :                                                                         tree _o2[2], _r2;
   11771              :                                                                         {
   11772              :                                                                           tree _o3[2], _r3;
   11773              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11774              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11775              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11776              :                                                                           _o2[0] = _r3;
   11777              :                                                                         }
   11778              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11779              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11780              :                                                                         _o1[0] = _r2;
   11781              :                                                                       }
   11782              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11783              :                                                                         {
   11784              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11785              :                                                                         }
   11786              :                                                                       else
   11787              :                                                                         _r1 = _o1[0];
   11788              :                                                                       res_op0 = _r1;
   11789              :                                                                     }
   11790              :                                                                     tree res_op1;
   11791              :                                                                     res_op1 =  rhs_tree;
   11792              :                                                                     tree _r;
   11793              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11794              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   11795              :                                                                     return _r;
   11796              :                                                                   }
   11797              : next_after_fail1804:;
   11798              :                                                                 }
   11799              :                                                           }
   11800              :                                                         }
   11801              :                                                   }
   11802              :                                                 }
   11803              :                                             }
   11804              :                                           }
   11805              :                                       }
   11806              :                                     break;
   11807              :                                   }
   11808              :                                 default:;
   11809              :                                 }
   11810              :                             }
   11811              :                           break;
   11812              :                         }
   11813              :                       default:;
   11814              :                       }
   11815              :                     break;
   11816              :                   }
   11817              :                 default:;
   11818              :                 }
   11819              :               break;
   11820              :             }
   11821              :           default:;
   11822              :           }
   11823              :         break;
   11824              :       }
   11825              :     default:;
   11826              :     }
   11827              :   return NULL_TREE;
   11828              : }
   11829              : #pragma GCC diagnostic pop
        

Generated by: LCOV version 2.4-beta

LCOV profile is generated on x86_64 machine using following configure options: configure --disable-bootstrap --enable-coverage=opt --enable-languages=c,c++,fortran,go,jit,lto,rust,m2 --enable-host-shared. GCC test suite is run with the built compiler.