LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - generic-match-5.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 38.5 % 7023 2701
Test Date: 2026-08-01 15:33:25 Functions: 61.2 % 67 41
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      1946972 : tree_power_of_two_cand (tree t, tree *res_ops)
      11              : {
      12      1946972 :   const tree type = TREE_TYPE (t);
      13      1946972 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14      1946972 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15      1946206 :   switch (TREE_CODE (t))
      16              :     {
      17      1607157 :     case INTEGER_CST:
      18      1607157 :       {
      19      1607157 :         {
      20      1607157 :           tree captures[1] ATTRIBUTE_UNUSED = { t };
      21      1607157 :           {
      22      1607157 :             res_ops[0] = captures[0];
      23      1607157 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 12, __FILE__, __LINE__, false);
      24              :             return true;
      25              :           }
      26              :         }
      27           16 :         break;
      28              :       }
      29           16 :     case LSHIFT_EXPR:
      30           16 :       {
      31           16 :         tree _p0 = TREE_OPERAND (t, 0);
      32           16 :         tree _p1 = TREE_OPERAND (t, 1);
      33           16 :         switch (TREE_CODE (_p0))
      34              :           {
      35           16 :           case INTEGER_CST:
      36           16 :             {
      37           16 :               {
      38           16 :                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      39           16 :                 {
      40           16 :                   res_ops[0] = captures[0];
      41           16 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 13, __FILE__, __LINE__, false);
      42           16 :                   return true;
      43              :                 }
      44              :               }
      45              :               break;
      46              :             }
      47              :           default:;
      48              :           }
      49              :         break;
      50              :       }
      51              :     default:;
      52              :     }
      53              :   return false;
      54              : }
      55              : 
      56              : bool
      57     83919609 : tree_with_possible_nonzero_bits (tree t)
      58              : {
      59     83919609 :   const tree type = TREE_TYPE (t);
      60     83919609 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      61     83919609 :   if (TREE_SIDE_EFFECTS (t)) return false;
      62     78702474 :   switch (TREE_CODE (t))
      63              :     {
      64      2038304 :     case BIT_AND_EXPR:
      65      2038304 :       {
      66      2038304 :         tree _p0 = TREE_OPERAND (t, 0);
      67      2038304 :         tree _p1 = TREE_OPERAND (t, 1);
      68      2038304 :         if (tree_with_possible_nonzero_bits_1 (_p0))
      69              :           {
      70       882061 :             {
      71       882061 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      72       882061 :               {
      73       882061 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 35, __FILE__, __LINE__, false);
      74       882061 :                 return true;
      75              :               }
      76              :             }
      77              :           }
      78      1156243 :         if (tree_with_possible_nonzero_bits_1 (_p1))
      79              :           {
      80       976661 :             {
      81       976661 :               tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
      82       976661 :               {
      83       976661 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 35, __FILE__, __LINE__, false);
      84       976661 :                 return true;
      85              :               }
      86              :             }
      87              :           }
      88              :         break;
      89              :       }
      90     76843752 :     default:;
      91              :     }
      92     76843752 : if (tree_with_possible_nonzero_bits_1 (t))
      93              :   {
      94     41286753 :     {
      95     41286753 :       tree captures[1] ATTRIBUTE_UNUSED = { t };
      96     41286753 :       {
      97     41286753 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 36, __FILE__, __LINE__, false);
      98     41286753 :         return true;
      99              :       }
     100              :     }
     101              :   }
     102              :   return false;
     103              : }
     104              : 
     105              : bool
     106       781283 : tree_vec_same_elem_p (tree t)
     107              : {
     108       781283 :   const tree type = TREE_TYPE (t);
     109       781283 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     110       781283 :   if (TREE_SIDE_EFFECTS (t)) return false;
     111       781283 :   switch (TREE_CODE (t))
     112              :     {
     113            0 :     case VEC_DUPLICATE_EXPR:
     114            0 :       {
     115            0 :         tree _p0 = TREE_OPERAND (t, 0);
     116            0 :         {
     117            0 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
     118            0 :           {
     119            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 46, __FILE__, __LINE__, false);
     120            0 :             return true;
     121              :           }
     122              :         }
     123              :         break;
     124              :       }
     125              :     case CONSTRUCTOR:
     126              :       {
     127              :         {
     128              :           tree captures[1] ATTRIBUTE_UNUSED = { t };
     129              :           if (TREE_CODE (captures[0]) == SSA_NAME
     130              :  && uniform_vector_p (gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])))
     131              : )
     132              :             {
     133              :               {
     134              :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 47, __FILE__, __LINE__, false);
     135              :                 return true;
     136              :               }
     137              :             }
     138              :         }
     139              :         break;
     140              :       }
     141       781283 :     default:;
     142              :     }
     143       781283 :   {
     144       781283 :     tree captures[1] ATTRIBUTE_UNUSED = { t };
     145       781283 :     if (uniform_vector_p (captures[0])
     146              : )
     147              :       {
     148        13981 :         {
     149        13981 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 48, __FILE__, __LINE__, false);
     150        13981 :           return true;
     151              :         }
     152              :       }
     153              :   }
     154              :   return false;
     155              : }
     156              : 
     157              : tree
     158       240341 : generic_simplify_14 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     159              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     160              :  const enum tree_code ARG_UNUSED (op))
     161              : {
     162       240341 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     163       240341 :   {
     164       240341 :  bool wascmp;
     165       240341 :       if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
     166       240341 :  && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
     167              : )
     168              :         {
     169           47 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail88;
     170           47 :           {
     171           47 :             tree res_op0;
     172           47 :             res_op0 =  wascmp
     173           47 :  ? constant_boolean_node (true, type)
     174           40 :  : build_all_ones_cst (TREE_TYPE (captures[0]));
     175           47 :             tree _r;
     176           47 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     177           47 :             if (TREE_SIDE_EFFECTS (captures[0]))
     178            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     179           47 :             if (TREE_SIDE_EFFECTS (captures[1]))
     180            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     181           47 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 63, __FILE__, __LINE__, true);
     182           47 :             return _r;
     183              :           }
     184            0 : next_after_fail88:;
     185              :         }
     186              :   }
     187       240294 :   return NULL_TREE;
     188              : }
     189              : 
     190              : tree
     191           10 : generic_simplify_24 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     192              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     193              : {
     194           10 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     195           10 :   if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
     196           10 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     197              : )
     198              :     {
     199           10 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail98;
     200           10 :       {
     201           10 :         tree res_op0;
     202           10 :         {
     203           10 :           tree _o1[1], _r1;
     204           10 :           _o1[0] = captures[0];
     205           10 :           if (TREE_TYPE (_o1[0]) != type)
     206              :             {
     207            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     208              :             }
     209              :           else
     210              :             _r1 = _o1[0];
     211           10 :           res_op0 = _r1;
     212              :         }
     213           10 :         tree res_op1;
     214           10 :         {
     215           10 :           tree _o1[1], _r1;
     216           10 :           _o1[0] = captures[1];
     217           10 :           if (TREE_TYPE (_o1[0]) != type)
     218              :             {
     219            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     220              :             }
     221              :           else
     222              :             _r1 = _o1[0];
     223           10 :           res_op1 = _r1;
     224              :         }
     225           10 :         tree _r;
     226           10 :         _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
     227           10 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 73, __FILE__, __LINE__, true);
     228           10 :         return _r;
     229              :       }
     230            0 : next_after_fail98:;
     231              :     }
     232              :   return NULL_TREE;
     233              : }
     234              : 
     235              : tree
     236            0 : generic_simplify_34 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     237              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     238              :  const enum tree_code ARG_UNUSED (op),
     239              :  const enum tree_code ARG_UNUSED (cmp),
     240              :  const enum tree_code ARG_UNUSED (icmp))
     241              : {
     242            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     243            0 :   if (INTEGRAL_TYPE_P (type)
     244            0 :  && invert_tree_comparison (cmp, HONOR_NANS (captures[1])) == icmp
     245            0 :  && canonicalize_math_after_vectorization_p ()
     246              : )
     247              :     {
     248              :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail110;
     249              :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail110;
     250              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail110;
     251              :       {
     252              :         tree res_op0;
     253              :         res_op0 = captures[0];
     254              :         tree res_op1;
     255              :         res_op1 = captures[3];
     256              :         tree res_op2;
     257              :         res_op2 = captures[5];
     258              :         tree _r;
     259              :         _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
     260              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 84, __FILE__, __LINE__, true);
     261              :         return _r;
     262              :       }
     263            0 : next_after_fail110:;
     264              :     }
     265            0 :   return NULL_TREE;
     266              : }
     267              : 
     268              : tree
     269           19 : generic_simplify_41 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     270              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     271              :  const enum tree_code ARG_UNUSED (op))
     272              : {
     273           19 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     274           38 :   if (INTEGRAL_TYPE_P (type)
     275           19 :  && operand_equal_p (captures[2], captures[6], 0)
     276           38 :  && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[4])) == 0
     277              : )
     278              :     {
     279            0 :       {
     280            0 :  tree t = type;
     281            0 :  if (!TYPE_OVERFLOW_WRAPS (t))
     282            0 :  t = unsigned_type_for (t);
     283            0 :  wide_int c = wi::add (wi::to_wide (captures[3]), wi::to_wide (captures[7]));
     284            0 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail118;
     285            0 :           if (TREE_SIDE_EFFECTS (captures[7])) goto next_after_fail118;
     286            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail118;
     287            0 :           {
     288            0 :             tree res_op0;
     289            0 :             {
     290            0 :               tree _o1[2], _r1;
     291            0 :               {
     292            0 :                 tree _o2[1], _r2;
     293            0 :                 _o2[0] = captures[2];
     294            0 :                 if (TREE_TYPE (_o2[0]) != t)
     295              :                   {
     296            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
     297              :                   }
     298              :                 else
     299              :                   _r2 = _o2[0];
     300            0 :                 _o1[0] = _r2;
     301              :               }
     302            0 :               _o1[1] =  wide_int_to_tree (t, c);
     303            0 :               _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
     304            0 :               res_op0 = _r1;
     305              :             }
     306            0 :             tree _r;
     307            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     308            0 :             if (TREE_SIDE_EFFECTS (captures[6]))
     309            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), _r);
     310            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 86, __FILE__, __LINE__, true);
     311            0 :             return _r;
     312              :           }
     313            0 : next_after_fail118:;
     314            0 :       }
     315              :     }
     316              :   return NULL_TREE;
     317              : }
     318              : 
     319              : tree
     320         5343 : generic_simplify_53 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     321              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     322              : {
     323         5343 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     324         5343 :   if (fold_real_zero_addition_p (type, captures[0], captures[1], 0)
     325              : )
     326              :     {
     327           95 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail132;
     328           95 :       {
     329           95 :         tree res_op0;
     330           95 :         res_op0 = captures[0];
     331           95 :         tree _r;
     332           95 :         _r = non_lvalue_loc (loc, res_op0);
     333           95 :         if (TREE_SIDE_EFFECTS (captures[1]))
     334            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     335           95 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 101, __FILE__, __LINE__, true);
     336           95 :         return _r;
     337              :       }
     338            0 : next_after_fail132:;
     339              :     }
     340              :   return NULL_TREE;
     341              : }
     342              : 
     343              : tree
     344            2 : generic_simplify_59 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     345              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     346              : {
     347            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     348            2 :   if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
     349            2 :  && !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
     350            2 :  && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[0]))
     351            4 :  && !TYPE_SATURATING (TREE_TYPE (captures[0]))
     352              : )
     353              :     {
     354            2 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail139;
     355            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail139;
     356            2 :       {
     357            2 :         tree res_op0;
     358            2 :         {
     359            2 :           tree _o1[1], _r1;
     360            2 :           {
     361            2 :             tree _o2[2], _r2;
     362            2 :             _o2[0] = captures[1];
     363            2 :             _o2[1] = captures[2];
     364            2 :             _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     365            2 :             _o1[0] = _r2;
     366              :           }
     367            2 :           if (TREE_TYPE (_o1[0]) != type)
     368              :             {
     369            1 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     370              :             }
     371              :           else
     372              :             _r1 = _o1[0];
     373            2 :           res_op0 = _r1;
     374              :         }
     375            2 :         tree _r;
     376            2 :         _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     377            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 108, __FILE__, __LINE__, true);
     378            2 :         return _r;
     379              :       }
     380              : next_after_fail139:;
     381              :     }
     382              :   return NULL_TREE;
     383              : }
     384              : 
     385              : tree
     386       121753 : generic_simplify_69 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     387              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     388              : {
     389       121753 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     390       121753 :   if (!TYPE_SATURATING (type)
     391              : )
     392              :     {
     393       121753 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     394       243506 :  && !FIXED_POINT_TYPE_P (type)
     395              : )
     396              :         {
     397       121753 :           if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
     398              : )
     399              :             {
     400       120890 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail157;
     401       120890 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail157;
     402       120890 :               {
     403       120890 :                 tree res_op0;
     404       120890 :                 {
     405       120890 :                   tree _o1[1], _r1;
     406       120890 :                   _o1[0] = captures[0];
     407       120890 :                   if (TREE_TYPE (_o1[0]) != type)
     408              :                     {
     409       118185 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     410              :                     }
     411              :                   else
     412              :                     _r1 = _o1[0];
     413       120890 :                   res_op0 = _r1;
     414              :                 }
     415       120890 :                 tree _r;
     416       120890 :                 _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     417       120890 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 126, __FILE__, __LINE__, true);
     418       120890 :                 return _r;
     419              :               }
     420              : next_after_fail157:;
     421              :             }
     422              :         }
     423              :     }
     424              :   return NULL_TREE;
     425              : }
     426              : 
     427              : tree
     428            0 : generic_simplify_77 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     429              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     430              : {
     431            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     432            0 :   if (VECTOR_TYPE_P (type)
     433            0 :  && known_eq (TYPE_VECTOR_SUBPARTS (type),
     434              :  TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[3])))
     435            0 :  && (TYPE_MODE (TREE_TYPE (type))
     436            0 :  == TYPE_MODE (TREE_TYPE (TREE_TYPE (captures[3]))))
     437              : )
     438              :     {
     439            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail166;
     440            0 :       {
     441            0 :         tree res_op0;
     442            0 :         res_op0 = captures[0];
     443            0 :         tree res_op1;
     444            0 :         {
     445            0 :           tree _o1[1], _r1;
     446            0 :           {
     447            0 :             tree _o2[3], _r2;
     448            0 :             _o2[0] = captures[2];
     449            0 :             {
     450            0 :               tree _o3[1], _r3;
     451            0 :               _o3[0] = captures[3];
     452            0 :               _r3 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o3[0]), _o3[0]);
     453            0 :               _o2[1] = _r3;
     454              :             }
     455            0 :             _o2[2] = captures[4];
     456            0 :             _r2 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o2[1]), _o2[0], _o2[1], _o2[2]);
     457            0 :             _o1[0] = _r2;
     458              :           }
     459            0 :           if (TREE_TYPE (_o1[0]) != type)
     460              :             {
     461            0 :               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
     462              :             }
     463              :           else
     464              :             _r1 = _o1[0];
     465            0 :           res_op1 = _r1;
     466              :         }
     467            0 :         tree _r;
     468            0 :         _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
     469            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 135, __FILE__, __LINE__, true);
     470            0 :         return _r;
     471              :       }
     472            0 : next_after_fail166:;
     473              :     }
     474              :   return NULL_TREE;
     475              : }
     476              : 
     477              : tree
     478            0 : generic_simplify_85 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     479              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     480              :  const enum tree_code ARG_UNUSED (op))
     481              : {
     482            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     483            0 :   if (VECTOR_FLOAT_TYPE_P (type)
     484            0 :  && TYPE_VECTOR_SUBPARTS (type).is_constant ()
     485              : )
     486              :     {
     487            0 :       {
     488            0 :  tree perm_cst = captures[1];
     489            0 :  vec_perm_builder builder;
     490            0 :  bool full_perm_p = false;
     491            0 :  if (tree_to_vec_perm_builder (&builder, perm_cst))
     492              :  {
     493            0 :  unsigned HOST_WIDE_INT nelts;
     494            0 :  nelts = TYPE_VECTOR_SUBPARTS (type).to_constant ();
     495            0 :  vec_perm_indices sel (builder, 1, nelts);
     496            0 :  if (sel.encoding ().encoded_full_vector_p ())
     497              :  {
     498            0 :  auto_sbitmap seen (nelts);
     499            0 :  bitmap_clear (seen);
     500            0 :  unsigned HOST_WIDE_INT count = 0, i;
     501            0 :  for (i = 0; i < nelts; i++)
     502              :  {
     503            0 :  if (!bitmap_set_bit (seen, sel[i].to_constant ()))
     504              :  break;
     505            0 :  count++;
     506              :  }
     507            0 :  full_perm_p = count == nelts;
     508            0 :  }
     509            0 :  }
     510            0 :           if (full_perm_p
     511              : )
     512              :             {
     513            0 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail175;
     514            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail175;
     515            0 :               {
     516            0 :                 tree res_op0;
     517            0 :                 {
     518            0 :                   tree _o1[2], _r1;
     519            0 :                   _o1[0] = captures[0];
     520            0 :                   _o1[1] = captures[2];
     521            0 :                   _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     522            0 :                   captures[3] = _r1;
     523              :                 }
     524            0 :                 res_op0 = unshare_expr (captures[3]);
     525            0 :                 tree res_op1;
     526            0 :                 res_op1 = captures[3];
     527            0 :                 tree res_op2;
     528            0 :                 res_op2 = captures[1];
     529            0 :                 tree _r;
     530            0 :                 _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
     531            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 144, __FILE__, __LINE__, true);
     532            0 :                 return _r;
     533              :               }
     534            0 : next_after_fail175:;
     535              :             }
     536            0 :       }
     537              :     }
     538              :   return NULL_TREE;
     539              : }
     540              : 
     541              : tree
     542          170 : generic_simplify_99 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     543              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     544              : {
     545          170 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     546          170 :   if (!TYPE_SATURATING (type)
     547              : )
     548              :     {
     549          170 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     550          340 :  && !FIXED_POINT_TYPE_P (type)
     551              : )
     552              :         {
     553            0 :           if (!ANY_INTEGRAL_TYPE_P (type)
     554          170 :  || TYPE_OVERFLOW_WRAPS (type)
     555              : )
     556              :             {
     557          126 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail189;
     558          126 :               {
     559          126 :                 tree res_op0;
     560          126 :                 {
     561          126 :                   tree _o1[1], _r1;
     562          126 :                   _o1[0] = captures[1];
     563          126 :                   if (TREE_TYPE (_o1[0]) != type)
     564              :                     {
     565            0 :                       _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
     566              :                     }
     567              :                   else
     568              :                     _r1 = _o1[0];
     569          126 :                   res_op0 = _r1;
     570              :                 }
     571          126 :                 tree _r;
     572          126 :                 _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     573          126 :                 if (TREE_SIDE_EFFECTS (captures[0]))
     574            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     575          126 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 157, __FILE__, __LINE__, true);
     576          126 :                 return _r;
     577              :               }
     578            0 : next_after_fail189:;
     579              :             }
     580              :           else
     581              :             {
     582           44 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail190;
     583           44 :               {
     584           44 :                 tree res_op0;
     585           44 :                 {
     586           44 :                   tree _o1[1], _r1;
     587           44 :                   _o1[0] = captures[1];
     588           44 :                   _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     589           44 :                   res_op0 = _r1;
     590              :                 }
     591           44 :                 tree _r;
     592           44 :                 _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
     593           44 :                 if (TREE_SIDE_EFFECTS (captures[0]))
     594            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     595           44 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 158, __FILE__, __LINE__, true);
     596           44 :                 return _r;
     597              :               }
     598            0 : next_after_fail190:;
     599              :             }
     600              :         }
     601              :     }
     602              :   return NULL_TREE;
     603              : }
     604              : 
     605              : tree
     606            0 : generic_simplify_112 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     607              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     608              : {
     609            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     610            0 :   if (TREE_CODE (captures[1]) == SSA_NAME && num_imm_uses (captures[1]) == 2
     611              : )
     612              :     {
     613            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail208;
     614            0 :       {
     615            0 :         if (! tree_invariant_p (captures[2])) goto next_after_fail208;
     616            0 :         tree res_op0;
     617            0 :         {
     618            0 :           tree _o1[2], _r1;
     619            0 :           {
     620            0 :             tree _o2[3], _r2;
     621            0 :             _o2[0] = unshare_expr (captures[2]);
     622            0 :             _o2[1] = captures[2];
     623            0 :             _o2[2] = captures[4];
     624            0 :             _r2 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1], _o2[2]);
     625            0 :             _o1[0] = _r2;
     626              :           }
     627            0 :           _o1[1] = captures[3];
     628            0 :           _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     629            0 :           res_op0 = _r1;
     630              :         }
     631            0 :         tree res_op1;
     632            0 :         res_op1 = captures[5];
     633            0 :         tree _r;
     634            0 :         _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
     635            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 176, __FILE__, __LINE__, true);
     636            0 :         return _r;
     637              :       }
     638              : next_after_fail208:;
     639              :     }
     640              :   return NULL_TREE;
     641              : }
     642              : 
     643              : tree
     644            0 : generic_simplify_118 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     645              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     646              : {
     647            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     648            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail216;
     649            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail216;
     650            0 :   {
     651            0 :     tree _r;
     652            0 :     _r = captures[2];
     653            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 182, __FILE__, __LINE__, true);
     654              :     return _r;
     655              :   }
     656              : next_after_fail216:;
     657              :   return NULL_TREE;
     658              : }
     659              : 
     660              : tree
     661            0 : generic_simplify_123 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     662              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     663              :  const enum tree_code ARG_UNUSED (op))
     664              : {
     665            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     666            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail221;
     667            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail221;
     668            0 :   {
     669            0 :     tree _r;
     670            0 :     _r = captures[0];
     671            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 186, __FILE__, __LINE__, true);
     672              :     return _r;
     673              :   }
     674              : next_after_fail221:;
     675              :   return NULL_TREE;
     676              : }
     677              : 
     678              : tree
     679            0 : generic_simplify_129 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     680              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     681              : {
     682            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     683            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail227;
     684            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail227;
     685            0 :   {
     686            0 :     tree res_op0;
     687            0 :     res_op0 = captures[0];
     688            0 :     tree res_op1;
     689            0 :     res_op1 = captures[3];
     690            0 :     tree _r;
     691            0 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     692            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 190, __FILE__, __LINE__, true);
     693              :     return _r;
     694              :   }
     695              : next_after_fail227:;
     696              :   return NULL_TREE;
     697              : }
     698              : 
     699              : tree
     700            0 : generic_simplify_140 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     701              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     702              :  const enum tree_code ARG_UNUSED (op))
     703              : {
     704            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     705            0 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
     706            0 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
     707              : )
     708              :     {
     709            0 :       if (single_use (captures[4]) && single_use (captures[5])
     710              : )
     711              :         {
     712            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail238;
     713            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail238;
     714            0 :           {
     715            0 :             tree res_op0;
     716            0 :             res_op0 = captures[0];
     717            0 :             tree res_op1;
     718            0 :             {
     719            0 :               tree _o1[1], _r1;
     720            0 :               _o1[0] = captures[6];
     721            0 :               if (TREE_TYPE (_o1[0]) != type)
     722              :                 {
     723            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     724              :                 }
     725              :               else
     726              :                 _r1 = _o1[0];
     727            0 :               res_op1 = _r1;
     728              :             }
     729            0 :             tree _r;
     730            0 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     731            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 197, __FILE__, __LINE__, true);
     732            0 :             return _r;
     733              :           }
     734              : next_after_fail238:;
     735              :         }
     736              :       else
     737              :         {
     738              :           if (single_use (captures[0]) && single_use (captures[1])
     739              : )
     740              :             {
     741              :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail239;
     742              :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail239;
     743              :               {
     744              :                 tree res_op0;
     745              :                 {
     746              :                   tree _o1[1], _r1;
     747              :                   _o1[0] = captures[3];
     748              :                   if (TREE_TYPE (_o1[0]) != type)
     749              :                     {
     750              :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     751              :                     }
     752              :                   else
     753              :                     _r1 = _o1[0];
     754              :                   res_op0 = _r1;
     755              :                 }
     756              :                 tree res_op1;
     757              :                 res_op1 = captures[4];
     758              :                 tree _r;
     759              :                 _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     760              :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 198, __FILE__, __LINE__, true);
     761              :                 return _r;
     762              :               }
     763              : next_after_fail239:;
     764              :             }
     765              :         }
     766              :     }
     767              :   return NULL_TREE;
     768              : }
     769              : 
     770              : tree
     771            0 : generic_simplify_155 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     772              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     773              :  const enum tree_code ARG_UNUSED (cmp),
     774              :  const enum tree_code ARG_UNUSED (icmp))
     775              : {
     776            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     777            0 :   if (integer_zerop (captures[5])
     778            0 :  && invert_tree_comparison (cmp, HONOR_NANS (captures[2])) == icmp
     779              : )
     780              :     {
     781            0 :       if (integer_onep (captures[4])
     782              : )
     783              :         {
     784            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail258;
     785            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail258;
     786            0 :           {
     787            0 :             tree res_op0;
     788            0 :             {
     789            0 :               tree _o1[3], _r1;
     790            0 :               _o1[0] = captures[1];
     791            0 :               _o1[1] = captures[6];
     792            0 :               _o1[2] = captures[9];
     793            0 :               _r1 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
     794            0 :               res_op0 = _r1;
     795              :             }
     796            0 :             tree res_op1;
     797            0 :             res_op1 = captures[4];
     798            0 :             tree _r;
     799            0 :             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
     800            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 206, __FILE__, __LINE__, true);
     801            0 :             return _r;
     802              :           }
     803              : next_after_fail258:;
     804              :         }
     805              :       else
     806              :         {
     807            0 :           if (integer_minus_onep (captures[4])
     808              : )
     809              :             {
     810            0 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail259;
     811            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail259;
     812            0 :               {
     813            0 :                 tree res_op0;
     814            0 :                 res_op0 = captures[1];
     815            0 :                 tree res_op1;
     816            0 :                 res_op1 = captures[6];
     817            0 :                 tree res_op2;
     818            0 :                 res_op2 = captures[9];
     819            0 :                 tree _r;
     820            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
     821            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 207, __FILE__, __LINE__, true);
     822            0 :                 return _r;
     823              :               }
     824              : next_after_fail259:;
     825              :             }
     826              :         }
     827              :     }
     828              :   else
     829              :     {
     830            0 :       if (integer_zerop (captures[4])
     831            0 :  && invert_tree_comparison (cmp, HONOR_NANS (captures[2])) == icmp
     832              : )
     833              :         {
     834            0 :           if (integer_onep (captures[5])
     835              : )
     836              :             {
     837            0 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail260;
     838            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail260;
     839            0 :               {
     840            0 :                 tree res_op0;
     841            0 :                 {
     842            0 :                   tree _o1[3], _r1;
     843            0 :                   _o1[0] = captures[1];
     844            0 :                   _o1[1] = captures[9];
     845            0 :                   _o1[2] = captures[6];
     846            0 :                   _r1 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
     847            0 :                   res_op0 = _r1;
     848              :                 }
     849            0 :                 tree res_op1;
     850            0 :                 res_op1 = captures[5];
     851            0 :                 tree _r;
     852            0 :                 _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
     853            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 208, __FILE__, __LINE__, true);
     854            0 :                 return _r;
     855              :               }
     856              : next_after_fail260:;
     857              :             }
     858              :           else
     859              :             {
     860            0 :               if (integer_minus_onep (captures[5])
     861              : )
     862              :                 {
     863            0 :                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail261;
     864            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail261;
     865            0 :                   {
     866            0 :                     tree res_op0;
     867            0 :                     res_op0 = captures[1];
     868            0 :                     tree res_op1;
     869            0 :                     res_op1 = captures[9];
     870            0 :                     tree res_op2;
     871            0 :                     res_op2 = captures[6];
     872            0 :                     tree _r;
     873            0 :                     _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
     874            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 209, __FILE__, __LINE__, true);
     875            0 :                     return _r;
     876              :                   }
     877              : next_after_fail261:;
     878              :                 }
     879              :             }
     880              :         }
     881              :     }
     882              :   return NULL_TREE;
     883              : }
     884              : 
     885              : tree
     886            2 : generic_simplify_177 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     887              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     888              : {
     889            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     890            4 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     891            4 :  && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
     892              : )
     893              :     {
     894            2 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail316;
     895            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail316;
     896            2 :       {
     897            2 :         tree res_op0;
     898            2 :         res_op0 = captures[3];
     899            2 :         tree res_op1;
     900            2 :         {
     901            2 :           tree _o1[2], _r1;
     902            2 :           _o1[0] = captures[1];
     903            2 :           _o1[1] =  build_int_cst (TREE_TYPE (captures[1]), 1);
     904            2 :           _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     905            2 :           res_op1 = _r1;
     906              :         }
     907            2 :         tree _r;
     908            2 :         _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
     909            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 213, __FILE__, __LINE__, true);
     910            2 :         return _r;
     911              :       }
     912              : next_after_fail316:;
     913              :     }
     914              :   return NULL_TREE;
     915              : }
     916              : 
     917              : tree
     918            0 : generic_simplify_183 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     919              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     920              :  const combined_fn ARG_UNUSED (COPYSIGN_ALL))
     921              : {
     922            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     923            0 :   if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
     924              : )
     925              :     {
     926            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail322;
     927            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail322;
     928            0 :       {
     929            0 :         tree res_op0;
     930            0 :         res_op0 = captures[0];
     931            0 :         tree _r;
     932            0 :         _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
     933            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 240, __FILE__, __LINE__, true);
     934            0 :         return _r;
     935              :       }
     936              : next_after_fail322:;
     937              :     }
     938              :   return NULL_TREE;
     939              : }
     940              : 
     941              : tree
     942            0 : generic_simplify_186 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     943              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     944              :  const combined_fn ARG_UNUSED (COPYSIGN_ALL))
     945              : {
     946            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     947            0 :   if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
     948              : )
     949              :     {
     950            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail325;
     951            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail325;
     952            0 :       {
     953            0 :         tree res_op0;
     954            0 :         {
     955            0 :           tree _o1[1], _r1;
     956            0 :           _o1[0] = captures[0];
     957            0 :           _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     958            0 :           res_op0 = _r1;
     959              :         }
     960            0 :         tree _r;
     961            0 :         _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     962            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 241, __FILE__, __LINE__, true);
     963            0 :         return _r;
     964              :       }
     965              : next_after_fail325:;
     966              :     }
     967              :   return NULL_TREE;
     968              : }
     969              : 
     970              : tree
     971        31108 : generic_simplify_193 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     972              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     973              : {
     974        31108 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     975        31108 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
     976        31108 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
     977              : )
     978              :     {
     979        28368 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail334;
     980        28368 :       {
     981        28368 :         tree res_op0;
     982        28368 :         {
     983        28368 :           tree _o1[1], _r1;
     984        28368 :           _o1[0] = captures[0];
     985        28368 :           if (TREE_TYPE (_o1[0]) != type)
     986              :             {
     987         2806 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     988              :             }
     989              :           else
     990              :             _r1 = _o1[0];
     991        28368 :           res_op0 = _r1;
     992              :         }
     993        28368 :         tree res_op1;
     994        28368 :         {
     995        28368 :           tree _o1[1], _r1;
     996        28368 :           {
     997        28368 :             tree _o2[1], _r2;
     998        28368 :             _o2[0] = captures[1];
     999        28368 :             _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    1000        28368 :             _o1[0] = _r2;
    1001              :           }
    1002        28368 :           if (TREE_TYPE (_o1[0]) != type)
    1003              :             {
    1004            7 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    1005              :             }
    1006              :           else
    1007              :             _r1 = _o1[0];
    1008        28368 :           res_op1 = _r1;
    1009              :         }
    1010        28368 :         tree _r;
    1011        28368 :         _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    1012        28368 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 248, __FILE__, __LINE__, true);
    1013        28368 :         return _r;
    1014              :       }
    1015            0 : next_after_fail334:;
    1016              :     }
    1017              :   return NULL_TREE;
    1018              : }
    1019              : 
    1020              : tree
    1021       186207 : generic_simplify_201 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1022              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    1023              : {
    1024       186207 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1025       186207 :   if (TREE_CODE (captures[3]) != INTEGER_CST
    1026              :  && single_use (captures[0])
    1027       186207 :  && !integer_zerop (captures[2]) && !integer_minus_onep (captures[2])
    1028              : )
    1029              :     {
    1030       186177 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail343;
    1031       186177 :       {
    1032       186177 :         tree res_op0;
    1033       186177 :         {
    1034       186177 :           tree _o1[2], _r1;
    1035       186177 :           _o1[0] = captures[1];
    1036       186177 :           _o1[1] = captures[3];
    1037       186177 :           _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1038       186177 :           res_op0 = _r1;
    1039              :         }
    1040       186177 :         tree res_op1;
    1041       186177 :         res_op1 = captures[2];
    1042       186177 :         tree _r;
    1043       186177 :         _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    1044       186177 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 256, __FILE__, __LINE__, true);
    1045       186177 :         return _r;
    1046              :       }
    1047            0 : next_after_fail343:;
    1048              :     }
    1049              :   return NULL_TREE;
    1050              : }
    1051              : 
    1052              : tree
    1053           38 : generic_simplify_207 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1054              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1055              :  const combined_fn ARG_UNUSED (POW))
    1056              : {
    1057           38 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1058           38 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1059              : )
    1060              :     {
    1061           38 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail349;
    1062           38 :       {
    1063           38 :         tree res_op0;
    1064           38 :         res_op0 = captures[1];
    1065           38 :         tree res_op1;
    1066           38 :         {
    1067           38 :           tree _o1[2], _r1;
    1068           38 :           _o1[0] = captures[2];
    1069           38 :           _o1[1] = captures[4];
    1070           38 :           _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1071           38 :           res_op1 = _r1;
    1072              :         }
    1073           38 :         tree _r;
    1074           38 :         _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
    1075           38 :         if (!_r)
    1076            0 :           goto next_after_fail349;
    1077           38 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 262, __FILE__, __LINE__, true);
    1078           38 :         return _r;
    1079              :       }
    1080              : next_after_fail349:;
    1081              :     }
    1082              :   return NULL_TREE;
    1083              : }
    1084              : 
    1085              : tree
    1086            7 : generic_simplify_215 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1087              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1088              :  const enum tree_code ARG_UNUSED (neeq))
    1089              : {
    1090            7 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1091            7 :   if (tree_fits_uhwi_p (captures[1])
    1092            7 :  && tree_to_uhwi (captures[1]) < TYPE_PRECISION (TREE_TYPE (captures[0]))
    1093              : )
    1094              :     {
    1095            7 :       if (neeq == NE_EXPR
    1096              : )
    1097              :         {
    1098            5 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail360;
    1099            5 :           {
    1100            5 :             tree res_op0;
    1101            5 :             res_op0 = captures[0];
    1102            5 :             tree _r;
    1103            5 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1104            5 :             if (TREE_SIDE_EFFECTS (captures[1]))
    1105            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1106            5 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1107            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1108            5 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 272, __FILE__, __LINE__, true);
    1109            5 :             return _r;
    1110              :           }
    1111            0 : next_after_fail360:;
    1112              :         }
    1113              :       else
    1114              :         {
    1115            2 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail361;
    1116            2 :           {
    1117            2 :             tree res_op0;
    1118            2 :             res_op0 = captures[0];
    1119            2 :             tree res_op1;
    1120            2 :             res_op1 = captures[2];
    1121            2 :             tree _r;
    1122            2 :             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    1123            2 :             if (TREE_SIDE_EFFECTS (captures[1]))
    1124            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1125            2 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 273, __FILE__, __LINE__, true);
    1126            2 :             return _r;
    1127              :           }
    1128            0 : next_after_fail361:;
    1129              :         }
    1130              :     }
    1131              :   return NULL_TREE;
    1132              : }
    1133              : 
    1134              : tree
    1135        24376 : generic_simplify_225 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1136              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1137              :  const enum tree_code ARG_UNUSED (op))
    1138              : {
    1139        24376 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1140        48752 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1141        48614 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    1142        21811 :  || ((op == EQ_EXPR || op == NE_EXPR)
    1143         1766 :  && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
    1144        48683 :  && (CONSTANT_CLASS_P (captures[2]) || single_use (captures[1]))
    1145              : )
    1146              :     {
    1147         4262 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail384;
    1148         4262 :       {
    1149         4262 :         tree res_op0;
    1150         4262 :         res_op0 = captures[2];
    1151         4262 :         tree res_op1;
    1152         4262 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[2]));
    1153         4262 :         tree _r;
    1154         4262 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1155         4262 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1156            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1157         4262 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 296, __FILE__, __LINE__, true);
    1158         4262 :         return _r;
    1159              :       }
    1160            0 : next_after_fail384:;
    1161              :     }
    1162              :   return NULL_TREE;
    1163              : }
    1164              : 
    1165              : tree
    1166     40218546 : generic_simplify_233 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1167              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1168              :  const enum tree_code ARG_UNUSED (cmp))
    1169              : {
    1170     40218546 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1171     80437266 :   if (wi::bit_and_not (get_known_nonzero_bits (captures[1]),
    1172    120655638 :  get_nonzero_bits (captures[0])) != 0
    1173              : )
    1174              :     {
    1175        75652 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail392;
    1176        75652 :       {
    1177        75652 :         tree _r;
    1178        75652 :         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1179        75652 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1180            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1181        75652 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1182            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1183        75652 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 303, __FILE__, __LINE__, true);
    1184        75652 :         return _r;
    1185              :       }
    1186            0 : next_after_fail392:;
    1187              :     }
    1188              :   return NULL_TREE;
    1189              : }
    1190              : 
    1191              : tree
    1192            8 : generic_simplify_241 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1193              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1194              :  const enum tree_code ARG_UNUSED (cmp),
    1195              :  const enum tree_code ARG_UNUSED (icmp))
    1196              : {
    1197            8 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1198            8 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1199              : )
    1200              :     {
    1201            8 :       {
    1202            8 :  int c = wi::exact_log2 (wi::to_wide (captures[1]));
    1203            8 :           if (wi::fits_to_tree_p (wi::shwi (c, HOST_BITS_PER_INT), TREE_TYPE (captures[0]))
    1204              : )
    1205              :             {
    1206            0 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail404;
    1207            0 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail404;
    1208            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail404;
    1209            0 :               {
    1210            0 :                 tree res_op0;
    1211            0 :                 res_op0 = captures[0];
    1212            0 :                 tree res_op1;
    1213            0 :                 res_op1 =  wide_int_to_tree (TREE_TYPE (captures[0]), c);
    1214            0 :                 tree _r;
    1215            0 :                 _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1216            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 315, __FILE__, __LINE__, true);
    1217            0 :                 return _r;
    1218              :               }
    1219              : next_after_fail404:;
    1220              :             }
    1221              :       }
    1222              :     }
    1223              :   return NULL_TREE;
    1224              : }
    1225              : 
    1226              : tree
    1227          124 : generic_simplify_246 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1228              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1229              :  const enum tree_code ARG_UNUSED (rotate),
    1230              :  const enum tree_code ARG_UNUSED (invrot),
    1231              :  const enum tree_code ARG_UNUSED (cmp))
    1232              : {
    1233          124 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1234          124 :   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail417;
    1235          124 :   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail417;
    1236          124 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail417;
    1237          124 :   {
    1238          124 :     tree res_op0;
    1239          124 :     res_op0 = captures[0];
    1240          124 :     tree res_op1;
    1241          124 :     res_op1 =  const_binop (invrot, TREE_TYPE (captures[0]), captures[2], captures[1]);
    1242          124 :     tree _r;
    1243          124 :     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1244          124 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 328, __FILE__, __LINE__, true);
    1245              :     return _r;
    1246              :   }
    1247              : next_after_fail417:;
    1248              :   return NULL_TREE;
    1249              : }
    1250              : 
    1251              : tree
    1252        25788 : generic_simplify_252 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1253              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1254              :  const enum tree_code ARG_UNUSED (cmp),
    1255              :  const enum tree_code ARG_UNUSED (icmp),
    1256              :  const enum tree_code ARG_UNUSED (ncmp))
    1257              : {
    1258        25788 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1259        25788 :   if (types_match (type, TREE_TYPE (captures[0]))
    1260              : )
    1261              :     {
    1262        25123 :       {
    1263        25123 :  enum tree_code ic = invert_tree_comparison
    1264        25123 :  (cmp, HONOR_NANS (captures[1]));
    1265        25123 :           if (ic == icmp
    1266              : )
    1267              :             {
    1268        24879 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail423;
    1269        24879 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail423;
    1270        24879 :               {
    1271        24879 :                 tree res_op0;
    1272        24879 :                 res_op0 = captures[1];
    1273        24879 :                 tree res_op1;
    1274        24879 :                 res_op1 = captures[2];
    1275        24879 :                 tree _r;
    1276        24879 :                 _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1277        24879 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 334, __FILE__, __LINE__, true);
    1278        24879 :                 return _r;
    1279              :               }
    1280              : next_after_fail423:;
    1281              :             }
    1282              :           else
    1283              :             {
    1284          244 :               if (ic == ncmp
    1285              : )
    1286              :                 {
    1287            0 :                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail424;
    1288            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail424;
    1289            0 :                   {
    1290            0 :                     tree res_op0;
    1291            0 :                     res_op0 = captures[1];
    1292            0 :                     tree res_op1;
    1293            0 :                     res_op1 = captures[2];
    1294            0 :                     tree _r;
    1295            0 :                     _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    1296            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 335, __FILE__, __LINE__, true);
    1297            0 :                     return _r;
    1298              :                   }
    1299              : next_after_fail424:;
    1300              :                 }
    1301              :             }
    1302              :       }
    1303              :     }
    1304              :   return NULL_TREE;
    1305              : }
    1306              : 
    1307              : tree
    1308      6466255 : generic_simplify_262 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1309              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1310              :  const enum tree_code ARG_UNUSED (cmp))
    1311              : {
    1312      6466255 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1313      6466255 :   if (REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[1]))
    1314              : )
    1315              :     {
    1316         1708 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail439;
    1317         1708 :       {
    1318         1708 :         tree res_op0;
    1319         1708 :         res_op0 = captures[0];
    1320         1708 :         tree res_op1;
    1321         1708 :         res_op1 =  build_real (TREE_TYPE (captures[1]), dconst0);
    1322         1708 :         tree _r;
    1323         1708 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1324         1708 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1325            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1326         1708 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 348, __FILE__, __LINE__, true);
    1327         1708 :         return _r;
    1328              :       }
    1329            0 : next_after_fail439:;
    1330              :     }
    1331              :   else
    1332              :     {
    1333      6464547 :       if (TREE_CODE (captures[0]) == REAL_CST
    1334      6464547 :  && REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[0]))
    1335              : )
    1336              :         {
    1337            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail440;
    1338            0 :           {
    1339            0 :             tree res_op0;
    1340            0 :             res_op0 =  build_real (TREE_TYPE (captures[0]), dconst0);
    1341            0 :             tree res_op1;
    1342            0 :             res_op1 = captures[1];
    1343            0 :             tree _r;
    1344            0 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1345            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
    1346            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1347            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 349, __FILE__, __LINE__, true);
    1348            0 :             return _r;
    1349              :           }
    1350            0 : next_after_fail440:;
    1351              :         }
    1352              :       else
    1353              :         {
    1354      6464547 :           if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1]))
    1355          862 :  && (cmp == EQ_EXPR || cmp == NE_EXPR || !flag_trapping_math)
    1356          286 :  && !tree_expr_signaling_nan_p (captures[1])
    1357      6464803 :  && !tree_expr_maybe_signaling_nan_p (captures[0])
    1358              : )
    1359              :             {
    1360          256 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail441;
    1361          256 :               {
    1362          256 :                 tree _r;
    1363          256 :                 _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1364          256 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    1365            6 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1366          256 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    1367            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1368          256 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 350, __FILE__, __LINE__, true);
    1369          256 :                 return _r;
    1370              :               }
    1371            0 : next_after_fail441:;
    1372              :             }
    1373              :           else
    1374              :             {
    1375      6464291 :               if (TREE_CODE (captures[0]) == REAL_CST
    1376         2043 :  && REAL_VALUE_ISNAN (TREE_REAL_CST (captures[0]))
    1377         1849 :  && (cmp == EQ_EXPR || cmp == NE_EXPR || !flag_trapping_math)
    1378            0 :  && !tree_expr_signaling_nan_p (captures[0])
    1379      6464291 :  && !tree_expr_signaling_nan_p (captures[1])
    1380              : )
    1381              :                 {
    1382            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail442;
    1383            0 :                   {
    1384            0 :                     tree _r;
    1385            0 :                     _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1386            0 :                     if (TREE_SIDE_EFFECTS (captures[0]))
    1387            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1388            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1389            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1390            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 351, __FILE__, __LINE__, true);
    1391            0 :                     return _r;
    1392              :                   }
    1393            0 : next_after_fail442:;
    1394              :                 }
    1395              :               else
    1396              :                 {
    1397      6464291 :                   if (REAL_VALUE_ISINF (TREE_REAL_CST (captures[1]))
    1398      7206081 :  && MODE_HAS_INFINITIES (TYPE_MODE (TREE_TYPE (captures[1])))
    1399              : )
    1400              :                     {
    1401       247291 :                       {
    1402       247291 :  REAL_VALUE_TYPE max;
    1403       247291 :  enum tree_code code = cmp;
    1404       247291 :  bool neg = REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]));
    1405       247291 :  if (neg)
    1406        34005 :  code = swap_tree_comparison (code);
    1407       247291 :                           if (code == GT_EXPR
    1408       247291 :  && !(HONOR_NANS (captures[0]) && flag_trapping_math)
    1409              : )
    1410              :                             {
    1411           21 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail443;
    1412           21 :                               {
    1413           21 :                                 tree _r;
    1414           21 :                                 _r =  constant_boolean_node (false, type);
    1415           21 :                                 if (TREE_SIDE_EFFECTS (captures[0]))
    1416            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1417           21 :                                 if (TREE_SIDE_EFFECTS (captures[1]))
    1418            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1419           21 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 352, __FILE__, __LINE__, true);
    1420        71603 :                                 return _r;
    1421              :                               }
    1422            0 : next_after_fail443:;
    1423              :                             }
    1424              :                           else
    1425              :                             {
    1426       247270 :                               if (code == LE_EXPR
    1427              : )
    1428              :                                 {
    1429        32148 :                                   if (! HONOR_NANS (captures[0])
    1430              : )
    1431              :                                     {
    1432            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail444;
    1433            0 :                                       {
    1434            0 :                                         tree _r;
    1435            0 :                                         _r =  constant_boolean_node (true, type);
    1436            0 :                                         if (TREE_SIDE_EFFECTS (captures[0]))
    1437            0 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1438            0 :                                         if (TREE_SIDE_EFFECTS (captures[1]))
    1439            0 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1440            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 353, __FILE__, __LINE__, true);
    1441            0 :                                         return _r;
    1442              :                                       }
    1443            0 : next_after_fail444:;
    1444              :                                     }
    1445              :                                   else
    1446              :                                     {
    1447        32148 :                                       if (!flag_trapping_math
    1448              : )
    1449              :                                         {
    1450           16 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail445;
    1451           16 :                                           {
    1452           16 :                                             if (! tree_invariant_p (captures[0])) goto next_after_fail445;
    1453            0 :                                             tree res_op0;
    1454            0 :                                             res_op0 = unshare_expr (captures[0]);
    1455            0 :                                             tree res_op1;
    1456            0 :                                             res_op1 = captures[0];
    1457            0 :                                             tree _r;
    1458            0 :                                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    1459            0 :                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1460            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1461            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 354, __FILE__, __LINE__, true);
    1462            0 :                                             return _r;
    1463              :                                           }
    1464       175688 : next_after_fail445:;
    1465              :                                         }
    1466              :                                     }
    1467              :                                 }
    1468              :                               else
    1469              :                                 {
    1470       143325 :                                   if ((code == EQ_EXPR && !(HONOR_NANS (captures[0]) && flag_trapping_math))
    1471       358411 :  || code == GE_EXPR
    1472              : )
    1473              :                                     {
    1474          168 :                                       {
    1475          168 :  real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
    1476          168 :                                           if (neg
    1477              : )
    1478              :                                             {
    1479           69 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail446;
    1480           69 :                                               {
    1481           69 :                                                 tree res_op0;
    1482           69 :                                                 res_op0 = captures[0];
    1483           69 :                                                 tree res_op1;
    1484           69 :                                                 res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1485           69 :                                                 tree _r;
    1486           69 :                                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    1487           69 :                                                 if (TREE_SIDE_EFFECTS (captures[1]))
    1488            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1489           69 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 355, __FILE__, __LINE__, true);
    1490           69 :                                                 return _r;
    1491              :                                               }
    1492            0 : next_after_fail446:;
    1493              :                                             }
    1494              :                                           else
    1495              :                                             {
    1496           99 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail447;
    1497           99 :                                               {
    1498           99 :                                                 tree res_op0;
    1499           99 :                                                 res_op0 = captures[0];
    1500           99 :                                                 tree res_op1;
    1501           99 :                                                 res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1502           99 :                                                 tree _r;
    1503           99 :                                                 _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    1504           99 :                                                 if (TREE_SIDE_EFFECTS (captures[1]))
    1505            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1506           99 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 356, __FILE__, __LINE__, true);
    1507           99 :                                                 return _r;
    1508              :                                               }
    1509            0 : next_after_fail447:;
    1510              :                                             }
    1511              :                                       }
    1512              :                                     }
    1513              :                                   else
    1514              :                                     {
    1515       214954 :                                       if (code == LT_EXPR
    1516              : )
    1517              :                                         {
    1518          118 :                                           {
    1519          118 :  real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
    1520          118 :                                               if (neg
    1521              : )
    1522              :                                                 {
    1523           40 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail448;
    1524           40 :                                                   {
    1525           40 :                                                     tree res_op0;
    1526           40 :                                                     res_op0 = captures[0];
    1527           40 :                                                     tree res_op1;
    1528           40 :                                                     res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1529           40 :                                                     tree _r;
    1530           40 :                                                     _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    1531           40 :                                                     if (TREE_SIDE_EFFECTS (captures[1]))
    1532            0 :                                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1533           40 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 357, __FILE__, __LINE__, true);
    1534           40 :                                                     return _r;
    1535              :                                                   }
    1536            0 : next_after_fail448:;
    1537              :                                                 }
    1538              :                                               else
    1539              :                                                 {
    1540           78 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail449;
    1541           78 :                                                   {
    1542           78 :                                                     tree res_op0;
    1543           78 :                                                     res_op0 = captures[0];
    1544           78 :                                                     tree res_op1;
    1545           78 :                                                     res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1546           78 :                                                     tree _r;
    1547           78 :                                                     _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
    1548           78 :                                                     if (TREE_SIDE_EFFECTS (captures[1]))
    1549            0 :                                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1550           78 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 358, __FILE__, __LINE__, true);
    1551           78 :                                                     return _r;
    1552              :                                                   }
    1553            0 : next_after_fail449:;
    1554              :                                                 }
    1555              :                                           }
    1556              :                                         }
    1557              :                                       else
    1558              :                                         {
    1559       214836 :                                           if (code == NE_EXPR
    1560              : )
    1561              :                                             {
    1562        71296 :                                               {
    1563        71296 :  real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
    1564        71296 :                                                   if (! HONOR_NANS (captures[0])
    1565              : )
    1566              :                                                     {
    1567            0 :                                                       if (neg
    1568              : )
    1569              :                                                         {
    1570            0 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail450;
    1571            0 :                                                           {
    1572            0 :                                                             tree res_op0;
    1573            0 :                                                             res_op0 = captures[0];
    1574            0 :                                                             tree res_op1;
    1575            0 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1576            0 :                                                             tree _r;
    1577            0 :                                                             _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    1578            0 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1579            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1580            0 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 359, __FILE__, __LINE__, true);
    1581            0 :                                                             return _r;
    1582              :                                                           }
    1583            0 : next_after_fail450:;
    1584              :                                                         }
    1585              :                                                       else
    1586              :                                                         {
    1587            0 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail451;
    1588            0 :                                                           {
    1589            0 :                                                             tree res_op0;
    1590            0 :                                                             res_op0 = captures[0];
    1591            0 :                                                             tree res_op1;
    1592            0 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1593            0 :                                                             tree _r;
    1594            0 :                                                             _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
    1595            0 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1596            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1597            0 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 360, __FILE__, __LINE__, true);
    1598            0 :                                                             return _r;
    1599              :                                                           }
    1600            0 : next_after_fail451:;
    1601              :                                                         }
    1602              :                                                     }
    1603              :                                                   else
    1604              :                                                     {
    1605        71296 :                                                       if (neg
    1606              : )
    1607              :                                                         {
    1608          627 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail452;
    1609          627 :                                                           {
    1610          627 :                                                             tree res_op0;
    1611          627 :                                                             res_op0 = captures[0];
    1612          627 :                                                             tree res_op1;
    1613          627 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1614          627 :                                                             tree _r;
    1615          627 :                                                             _r = fold_build2_loc (loc, UNGE_EXPR, type, res_op0, res_op1);
    1616          627 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1617            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1618          627 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 361, __FILE__, __LINE__, true);
    1619          627 :                                                             return _r;
    1620              :                                                           }
    1621            0 : next_after_fail452:;
    1622              :                                                         }
    1623              :                                                       else
    1624              :                                                         {
    1625        70669 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail453;
    1626        70669 :                                                           {
    1627        70669 :                                                             tree res_op0;
    1628        70669 :                                                             res_op0 = captures[0];
    1629        70669 :                                                             tree res_op1;
    1630        70669 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1631        70669 :                                                             tree _r;
    1632        70669 :                                                             _r = fold_build2_loc (loc, UNLE_EXPR, type, res_op0, res_op1);
    1633        70669 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1634            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1635        70669 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 362, __FILE__, __LINE__, true);
    1636        70669 :                                                             return _r;
    1637              :                                                           }
    1638            0 : next_after_fail453:;
    1639              :                                                         }
    1640              :                                                     }
    1641              :                                               }
    1642              :                                             }
    1643              :                                         }
    1644              :                                     }
    1645              :                                 }
    1646              :                             }
    1647              :                       }
    1648              :                     }
    1649              :                 }
    1650              :             }
    1651              :         }
    1652              :     }
    1653              :   return NULL_TREE;
    1654              : }
    1655              : 
    1656              : tree
    1657           17 : generic_simplify_304 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1658              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1659              :  const enum tree_code ARG_UNUSED (cmp),
    1660              :  const combined_fn ARG_UNUSED (ffs))
    1661              : {
    1662           17 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1663           17 :   {
    1664           17 :  int prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
    1665           17 :       if (integer_zerop (captures[2])
    1666              : )
    1667              :         {
    1668            9 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail570;
    1669            9 :           {
    1670            9 :             tree res_op0;
    1671            9 :             res_op0 = captures[1];
    1672            9 :             tree res_op1;
    1673            9 :             res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
    1674            9 :             tree _r;
    1675            9 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1676            9 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1677            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1678            9 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 461, __FILE__, __LINE__, true);
    1679           17 :             return _r;
    1680              :           }
    1681            0 : next_after_fail570:;
    1682              :         }
    1683              :       else
    1684              :         {
    1685            8 :           if (tree_int_cst_sgn (captures[2]) < 0 || wi::to_widest (captures[2]) > prec
    1686              : )
    1687              :             {
    1688            4 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail571;
    1689            4 :               {
    1690            4 :                 tree _r;
    1691            4 :                 _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1692            4 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    1693            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1694            4 :                 if (TREE_SIDE_EFFECTS (captures[2]))
    1695            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1696            4 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 462, __FILE__, __LINE__, true);
    1697            4 :                 return _r;
    1698              :               }
    1699            0 : next_after_fail571:;
    1700              :             }
    1701              :           else
    1702              :             {
    1703            4 :               if (single_use (captures[0])
    1704              : )
    1705              :                 {
    1706            4 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail572;
    1707            4 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail572;
    1708            4 :                   {
    1709            4 :                     tree res_op0;
    1710            4 :                     {
    1711            4 :                       tree _o1[2], _r1;
    1712            4 :                       _o1[0] = captures[1];
    1713            4 :                       _o1[1] =  wide_int_to_tree (TREE_TYPE (captures[1]),
    1714            4 :  wi::mask (tree_to_uhwi (captures[2]),
    1715              :  false, prec));
    1716            4 :                       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1717            4 :                       res_op0 = _r1;
    1718              :                     }
    1719            4 :                     tree res_op1;
    1720            4 :                     res_op1 =  wide_int_to_tree (TREE_TYPE (captures[1]),
    1721            4 :  wi::shifted_mask (tree_to_uhwi (captures[2]) - 1, 1,
    1722              :  false, prec));
    1723            4 :                     tree _r;
    1724            4 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1725            4 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 463, __FILE__, __LINE__, true);
    1726            4 :                     return _r;
    1727              :                   }
    1728            0 : next_after_fail572:;
    1729              :                 }
    1730              :             }
    1731              :         }
    1732              :   }
    1733            0 :   return NULL_TREE;
    1734              : }
    1735              : 
    1736              : tree
    1737            1 : generic_simplify_321 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1738              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1739              :  const enum tree_code ARG_UNUSED (div))
    1740              : {
    1741            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1742            1 :   if (INTEGRAL_TYPE_P (type)
    1743            1 :  && TYPE_OVERFLOW_UNDEFINED (type)
    1744            1 :  && !integer_zerop (captures[0])
    1745            2 :  && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
    1746              : )
    1747              :     {
    1748            1 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail592;
    1749            1 :       {
    1750            1 :         tree res_op0;
    1751            1 :         {
    1752            1 :           tree _o1[2], _r1;
    1753            1 :           _o1[0] = captures[0];
    1754            1 :           _o1[1] =  build_zero_cst (type);
    1755            1 :           _r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
    1756            1 :           res_op0 = _r1;
    1757              :         }
    1758            1 :         tree res_op1;
    1759            1 :         res_op1 =  build_minus_one_cst (type);
    1760            1 :         tree res_op2;
    1761            1 :         res_op2 =  build_one_cst (type);
    1762            1 :         tree _r;
    1763            1 :         _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    1764            1 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 481, __FILE__, __LINE__, true);
    1765            1 :         return _r;
    1766              :       }
    1767            0 : next_after_fail592:;
    1768              :     }
    1769              :   return NULL_TREE;
    1770              : }
    1771              : 
    1772              : tree
    1773      2195714 : generic_simplify_328 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1774              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1775              :  const enum tree_code ARG_UNUSED (floor_divmod),
    1776              :  const enum tree_code ARG_UNUSED (trunc_divmod))
    1777              : {
    1778      2195714 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1779            0 :   if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type))
    1780      2195714 :  && TYPE_UNSIGNED (type)
    1781              : )
    1782              :     {
    1783      2186590 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail600;
    1784      2186590 :       {
    1785      2186590 :         tree res_op0;
    1786      2186590 :         res_op0 = captures[0];
    1787      2186590 :         tree res_op1;
    1788      2186590 :         res_op1 = captures[1];
    1789      2186590 :         tree _r;
    1790      2186590 :         _r = fold_build2_loc (loc, trunc_divmod, type, res_op0, res_op1);
    1791      2186590 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 489, __FILE__, __LINE__, true);
    1792      2186590 :         return _r;
    1793              :       }
    1794            0 : next_after_fail600:;
    1795              :     }
    1796              :   return NULL_TREE;
    1797              : }
    1798              : 
    1799              : tree
    1800         7232 : generic_simplify_334 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1801              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1802              :  const enum tree_code ARG_UNUSED (mod))
    1803              : {
    1804         7232 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1805            0 :   if (ANY_INTEGRAL_TYPE_P (type)
    1806         7232 :  && TYPE_OVERFLOW_UNDEFINED (type)
    1807        14464 :  && wi::multiple_of_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
    1808          195 :  TYPE_SIGN (type))
    1809              : )
    1810              :     {
    1811            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail606;
    1812            0 :       {
    1813            0 :         tree _r;
    1814            0 :         _r =  build_zero_cst (type);
    1815            0 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1816            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1817            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1818            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1819            0 :         if (TREE_SIDE_EFFECTS (captures[2]))
    1820            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1821            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 495, __FILE__, __LINE__, true);
    1822            0 :         return _r;
    1823              :       }
    1824            0 : next_after_fail606:;
    1825              :     }
    1826              :   return NULL_TREE;
    1827              : }
    1828              : 
    1829              : tree
    1830            0 : generic_simplify_347 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1831              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1832              :  const enum tree_code ARG_UNUSED (op),
    1833              :  const combined_fn ARG_UNUSED (bt),
    1834              :  const combined_fn ARG_UNUSED (bf),
    1835              :  const combined_fn ARG_UNUSED (floor),
    1836              :  const combined_fn ARG_UNUSED (ceil))
    1837              : {
    1838            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1839            0 :   if (!HONOR_SIGNED_ZEROS (type) && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
    1840              : )
    1841              :     {
    1842            0 :       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail621;
    1843            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail621;
    1844            0 :       {
    1845            0 :         tree res_op0;
    1846            0 :         {
    1847            0 :           tree _o1[2], _r1;
    1848            0 :           _o1[0] = captures[1];
    1849            0 :           _o1[1] =  build_real (type, dconsthalf);
    1850            0 :           _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1851            0 :           res_op0 = _r1;
    1852              :         }
    1853            0 :         tree _r;
    1854            0 :         _r = maybe_build_call_expr_loc (loc, floor, type, 1, res_op0);
    1855            0 :         if (!_r)
    1856            0 :           goto next_after_fail621;
    1857            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 510, __FILE__, __LINE__, true);
    1858            0 :         return _r;
    1859              :       }
    1860              : next_after_fail621:;
    1861              :     }
    1862              :   return NULL_TREE;
    1863              : }
    1864              : 
    1865              : tree
    1866            3 : generic_simplify_356 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1867              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1868              :  const enum tree_code ARG_UNUSED (op))
    1869              : {
    1870            3 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1871            3 :   if (INTEGRAL_TYPE_P (type)
    1872            3 :  && TYPE_PRECISION (type) > 1
    1873            3 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1874            6 :  && expr_no_side_effects_p (captures[2])
    1875              : )
    1876              :     {
    1877            3 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail636;
    1878            3 :       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail636;
    1879            3 :       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail636;
    1880            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail636;
    1881            3 :       {
    1882            3 :         tree res_op0;
    1883            3 :         {
    1884            3 :           tree _o1[2], _r1;
    1885            3 :           {
    1886            3 :             tree _o2[1], _r2;
    1887            3 :             _o2[0] = captures[0];
    1888            3 :             if (TREE_TYPE (_o2[0]) != type)
    1889              :               {
    1890            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
    1891              :               }
    1892              :             else
    1893              :               _r2 = _o2[0];
    1894            3 :             _o1[0] = _r2;
    1895              :           }
    1896            3 :           _o1[1] = captures[2];
    1897            3 :           _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1898            3 :           res_op0 = _r1;
    1899              :         }
    1900            3 :         tree res_op1;
    1901            3 :         res_op1 = captures[1];
    1902            3 :         tree _r;
    1903            3 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1904            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 525, __FILE__, __LINE__, true);
    1905            3 :         return _r;
    1906              :       }
    1907              : next_after_fail636:;
    1908              :     }
    1909              :   return NULL_TREE;
    1910              : }
    1911              : 
    1912              : tree
    1913          204 : generic_simplify_365 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1914              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1915              :  const enum tree_code ARG_UNUSED (op))
    1916              : {
    1917          204 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1918          204 :   if (bitwise_equal_p (captures[0], captures[3])
    1919          204 :  && expr_no_side_effects_p (captures[2])
    1920              : )
    1921              :     {
    1922            1 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail645;
    1923            1 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail645;
    1924            1 :       if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail645;
    1925            1 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail645;
    1926            1 :       {
    1927            1 :         tree _r;
    1928            1 :         _r = captures[1];
    1929            1 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 534, __FILE__, __LINE__, true);
    1930            1 :         return _r;
    1931              :       }
    1932              : next_after_fail645:;
    1933              :     }
    1934              :   return NULL_TREE;
    1935              : }
    1936              : 
    1937              : tree
    1938            0 : generic_simplify_372 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1939              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1940              :  const enum tree_code ARG_UNUSED (cmp))
    1941              : {
    1942            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1943            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail653;
    1944            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail653;
    1945            0 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail653;
    1946            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail653;
    1947            0 :   {
    1948            0 :     tree _r;
    1949            0 :     _r = captures[0];
    1950            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 542, __FILE__, __LINE__, true);
    1951              :     return _r;
    1952              :   }
    1953              : next_after_fail653:;
    1954              :   return NULL_TREE;
    1955              : }
    1956              : 
    1957              : tree
    1958          444 : generic_simplify_380 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1959              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1960              :  const enum tree_code ARG_UNUSED (op),
    1961              :  const enum tree_code ARG_UNUSED (neg_op))
    1962              : {
    1963          444 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1964          444 :   if (flag_unsafe_math_optimizations
    1965              : )
    1966              :     {
    1967            4 :       if (!HONOR_SIGNED_ZEROS (captures[1]) && !HONOR_INFINITIES (captures[1])
    1968              : )
    1969              :         {
    1970            4 :           if (real_less (&dconst0, TREE_REAL_CST_PTR (captures[0]))
    1971              : )
    1972              :             {
    1973            2 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail663;
    1974            2 :               {
    1975            2 :                 tree res_op0;
    1976            2 :                 res_op0 = captures[1];
    1977            2 :                 tree res_op1;
    1978            2 :                 res_op1 = captures[2];
    1979            2 :                 tree _r;
    1980            2 :                 _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1981            2 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    1982            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1983            2 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 550, __FILE__, __LINE__, true);
    1984            2 :                 return _r;
    1985              :               }
    1986            0 : next_after_fail663:;
    1987              :             }
    1988              :           else
    1989              :             {
    1990            2 :               if (real_less (TREE_REAL_CST_PTR (captures[0]), &dconst0)
    1991              : )
    1992              :                 {
    1993            2 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail664;
    1994            2 :                   {
    1995            2 :                     tree res_op0;
    1996            2 :                     res_op0 = captures[1];
    1997            2 :                     tree res_op1;
    1998            2 :                     res_op1 = captures[2];
    1999            2 :                     tree _r;
    2000            2 :                     _r = fold_build2_loc (loc, neg_op, type, res_op0, res_op1);
    2001            2 :                     if (TREE_SIDE_EFFECTS (captures[0]))
    2002            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2003            2 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 551, __FILE__, __LINE__, true);
    2004            2 :                     return _r;
    2005              :                   }
    2006            0 : next_after_fail664:;
    2007              :                 }
    2008              :             }
    2009              :         }
    2010              :     }
    2011              :   return NULL_TREE;
    2012              : }
    2013              : 
    2014              : tree
    2015            0 : generic_simplify_390 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2016              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2017              :  const enum tree_code ARG_UNUSED (ltge),
    2018              :  const enum tree_code ARG_UNUSED (neeq))
    2019              : {
    2020            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2021            0 :   if (!HONOR_NANS (captures[0])
    2022              : )
    2023              :     {
    2024            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail676;
    2025            0 :       {
    2026            0 :         tree res_op0;
    2027            0 :         res_op0 = captures[0];
    2028            0 :         tree res_op1;
    2029            0 :         res_op1 = captures[1];
    2030            0 :         tree _r;
    2031            0 :         _r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
    2032            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 563, __FILE__, __LINE__, true);
    2033            0 :         return _r;
    2034              :       }
    2035            0 : next_after_fail676:;
    2036              :     }
    2037              :   return NULL_TREE;
    2038              : }
    2039              : 
    2040              : tree
    2041      1233683 : generic_simplify_399 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2042              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2043              :  const enum tree_code ARG_UNUSED (cmp))
    2044              : {
    2045      1233683 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2046      2467366 :   if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2047          548 :  || POINTER_TYPE_P (TREE_TYPE (captures[2]))
    2048          173 :  || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2])))
    2049      2467366 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2050              : )
    2051              :     {
    2052      1053035 :       {
    2053      1053035 :  tree cst = uniform_integer_cst_p (captures[2]);
    2054      1053035 :  tree arg1_type = TREE_TYPE (cst);
    2055      1053035 :  unsigned int prec = TYPE_PRECISION (arg1_type);
    2056      1053035 :  wide_int max = wi::max_value (arg1_type);
    2057      1053035 :  wide_int signed_max = wi::max_value (prec, SIGNED);
    2058      1053035 :  wide_int min = wi::min_value (arg1_type);
    2059      1053035 :           if (wi::to_wide (cst) == max
    2060              : )
    2061              :             {
    2062          709 :               if (cmp == GT_EXPR
    2063              : )
    2064              :                 {
    2065          477 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail687;
    2066          477 :                   {
    2067          477 :                     tree _r;
    2068          477 :                     _r =  constant_boolean_node (false, type);
    2069          477 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    2070            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2071          477 :                     if (TREE_SIDE_EFFECTS (captures[2]))
    2072            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2073          477 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 574, __FILE__, __LINE__, true);
    2074          477 :                     return _r;
    2075              :                   }
    2076            0 : next_after_fail687:;
    2077              :                 }
    2078              :               else
    2079              :                 {
    2080          232 :                   if (cmp == GE_EXPR
    2081              : )
    2082              :                     {
    2083            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail688;
    2084            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail688;
    2085            0 :                       {
    2086            0 :                         tree res_op0;
    2087            0 :                         res_op0 = captures[0];
    2088            0 :                         tree res_op1;
    2089            0 :                         res_op1 = captures[2];
    2090            0 :                         tree _r;
    2091            0 :                         _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2092            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 575, __FILE__, __LINE__, true);
    2093            0 :                         return _r;
    2094              :                       }
    2095       991211 : next_after_fail688:;
    2096              :                     }
    2097              :                   else
    2098              :                     {
    2099          232 :                       if (cmp == LE_EXPR
    2100              : )
    2101              :                         {
    2102          232 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail689;
    2103          232 :                           {
    2104          232 :                             tree _r;
    2105          232 :                             _r =  constant_boolean_node (true, type);
    2106          232 :                             if (TREE_SIDE_EFFECTS (captures[1]))
    2107            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2108          232 :                             if (TREE_SIDE_EFFECTS (captures[2]))
    2109            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2110          232 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 576, __FILE__, __LINE__, true);
    2111          232 :                             return _r;
    2112              :                           }
    2113            0 : next_after_fail689:;
    2114              :                         }
    2115              :                       else
    2116              :                         {
    2117            0 :                           if (cmp == LT_EXPR
    2118              : )
    2119              :                             {
    2120            0 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail690;
    2121            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail690;
    2122            0 :                               {
    2123            0 :                                 tree res_op0;
    2124            0 :                                 res_op0 = captures[0];
    2125            0 :                                 tree res_op1;
    2126            0 :                                 res_op1 = captures[2];
    2127            0 :                                 tree _r;
    2128            0 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2129            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 577, __FILE__, __LINE__, true);
    2130            0 :                                 return _r;
    2131              :                               }
    2132       991211 : next_after_fail690:;
    2133              :                             }
    2134              :                         }
    2135              :                     }
    2136              :                 }
    2137              :             }
    2138              :           else
    2139              :             {
    2140      1052326 :               if (wi::to_wide (cst) == min
    2141              : )
    2142              :                 {
    2143        56523 :                   if (cmp == LT_EXPR
    2144              : )
    2145              :                     {
    2146         2544 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail691;
    2147         2544 :                       {
    2148         2544 :                         tree _r;
    2149         2544 :                         _r =  constant_boolean_node (false, type);
    2150         2544 :                         if (TREE_SIDE_EFFECTS (captures[1]))
    2151            6 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2152         2544 :                         if (TREE_SIDE_EFFECTS (captures[2]))
    2153            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2154         2544 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 578, __FILE__, __LINE__, true);
    2155         2544 :                         return _r;
    2156              :                       }
    2157            0 : next_after_fail691:;
    2158              :                     }
    2159              :                   else
    2160              :                     {
    2161        53979 :                       if (cmp == LE_EXPR
    2162              : )
    2163              :                         {
    2164        14208 :                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail692;
    2165        13090 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail692;
    2166        13090 :                           {
    2167        13090 :                             tree res_op0;
    2168        13090 :                             res_op0 = captures[0];
    2169        13090 :                             tree res_op1;
    2170        13090 :                             res_op1 = captures[2];
    2171        13090 :                             tree _r;
    2172        13090 :                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2173        13090 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 579, __FILE__, __LINE__, true);
    2174        13090 :                             return _r;
    2175              :                           }
    2176       991211 : next_after_fail692:;
    2177              :                         }
    2178              :                       else
    2179              :                         {
    2180        39771 :                           if (cmp == GE_EXPR
    2181              : )
    2182              :                             {
    2183         8605 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail693;
    2184         8605 :                               {
    2185         8605 :                                 tree _r;
    2186         8605 :                                 _r =  constant_boolean_node (true, type);
    2187         8605 :                                 if (TREE_SIDE_EFFECTS (captures[1]))
    2188           51 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2189         8605 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2190            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2191         8605 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 580, __FILE__, __LINE__, true);
    2192         8605 :                                 return _r;
    2193              :                               }
    2194            0 : next_after_fail693:;
    2195              :                             }
    2196              :                           else
    2197              :                             {
    2198        31166 :                               if (cmp == GT_EXPR
    2199              : )
    2200              :                                 {
    2201        31166 :                                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail694;
    2202        25576 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail694;
    2203        25576 :                                   {
    2204        25576 :                                     tree res_op0;
    2205        25576 :                                     res_op0 = captures[0];
    2206        25576 :                                     tree res_op1;
    2207        25576 :                                     res_op1 = captures[2];
    2208        25576 :                                     tree _r;
    2209        25576 :                                     _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2210        25576 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 581, __FILE__, __LINE__, true);
    2211        25576 :                                     return _r;
    2212              :                                   }
    2213       991211 : next_after_fail694:;
    2214              :                                 }
    2215              :                             }
    2216              :                         }
    2217              :                     }
    2218              :                 }
    2219              :               else
    2220              :                 {
    2221       995803 :                   if (wi::to_wide (cst) == max - 1
    2222              : )
    2223              :                     {
    2224         6341 :                       if (cmp == GT_EXPR
    2225              : )
    2226              :                         {
    2227         1415 :                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail695;
    2228         1415 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail695;
    2229         1415 :                           {
    2230         1415 :                             tree res_op0;
    2231         1415 :                             res_op0 = captures[0];
    2232         1415 :                             tree res_op1;
    2233         1415 :                             res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2234         1415 :  wide_int_to_tree (TREE_TYPE (cst),
    2235         1415 :  wi::to_wide (cst)
    2236         2830 :  + 1));
    2237         1415 :                             tree _r;
    2238         1415 :                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2239         1415 :                             if (TREE_SIDE_EFFECTS (captures[2]))
    2240            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2241         1415 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 582, __FILE__, __LINE__, true);
    2242         1415 :                             return _r;
    2243              :                           }
    2244       991211 : next_after_fail695:;
    2245              :                         }
    2246              :                       else
    2247              :                         {
    2248         4926 :                           if (cmp == LE_EXPR
    2249              : )
    2250              :                             {
    2251         4926 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail696;
    2252         4926 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail696;
    2253         4926 :                               {
    2254         4926 :                                 tree res_op0;
    2255         4926 :                                 res_op0 = captures[0];
    2256         4926 :                                 tree res_op1;
    2257         4926 :                                 res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2258         4926 :  wide_int_to_tree (TREE_TYPE (cst),
    2259         4926 :  wi::to_wide (cst)
    2260         9852 :  + 1));
    2261         4926 :                                 tree _r;
    2262         4926 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2263         4926 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2264            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2265         4926 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 583, __FILE__, __LINE__, true);
    2266         4926 :                                 return _r;
    2267              :                               }
    2268       991211 : next_after_fail696:;
    2269              :                             }
    2270              :                         }
    2271              :                     }
    2272              :                   else
    2273              :                     {
    2274       989462 :                       if (wi::to_wide (cst) == min + 1
    2275              : )
    2276              :                         {
    2277        56088 :                           if (cmp == GE_EXPR
    2278              : )
    2279              :                             {
    2280         1741 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail697;
    2281         1741 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail697;
    2282         1741 :                               {
    2283         1741 :                                 tree res_op0;
    2284         1741 :                                 res_op0 = captures[0];
    2285         1741 :                                 tree res_op1;
    2286         1741 :                                 res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2287         1741 :  wide_int_to_tree (TREE_TYPE (cst),
    2288         1741 :  wi::to_wide (cst)
    2289         3482 :  - 1));
    2290         1741 :                                 tree _r;
    2291         1741 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2292         1741 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2293            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2294         1741 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 584, __FILE__, __LINE__, true);
    2295         1741 :                                 return _r;
    2296              :                               }
    2297       991211 : next_after_fail697:;
    2298              :                             }
    2299              :                           else
    2300              :                             {
    2301        54347 :                               if (cmp == LT_EXPR
    2302              : )
    2303              :                                 {
    2304          334 :                                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail698;
    2305          334 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail698;
    2306          334 :                                   {
    2307          334 :                                     tree res_op0;
    2308          334 :                                     res_op0 = captures[0];
    2309          334 :                                     tree res_op1;
    2310          334 :                                     res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2311          334 :  wide_int_to_tree (TREE_TYPE (cst),
    2312          334 :  wi::to_wide (cst)
    2313          668 :  - 1));
    2314          334 :                                     tree _r;
    2315          334 :                                     _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2316          334 :                                     if (TREE_SIDE_EFFECTS (captures[2]))
    2317            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2318          334 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 585, __FILE__, __LINE__, true);
    2319          334 :                                     return _r;
    2320              :                                   }
    2321       991211 : next_after_fail698:;
    2322              :                                 }
    2323              :                             }
    2324              :                         }
    2325              :                       else
    2326              :                         {
    2327       933374 :                           if (wi::to_wide (cst) == signed_max
    2328         2884 :  && TYPE_UNSIGNED (arg1_type)
    2329         2884 :  && TYPE_MODE (arg1_type) != BLKmode
    2330       933374 :  && prec == GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (arg1_type))
    2331       936258 :  && INTEGRAL_TYPE_P (arg1_type)
    2332              : )
    2333              :                             {
    2334         2884 :                               if (cmp == LE_EXPR || cmp == GT_EXPR
    2335              : )
    2336              :                                 {
    2337         2884 :                                   {
    2338         2884 :  tree st = signed_type_for (TREE_TYPE (captures[2]));
    2339         2884 :                                       if (cst == captures[2] && cmp == LE_EXPR
    2340              : )
    2341              :                                         {
    2342         2841 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail699;
    2343         2841 :                                           {
    2344         2841 :                                             tree res_op0;
    2345         2841 :                                             {
    2346         2841 :                                               tree _o1[1], _r1;
    2347         2841 :                                               _o1[0] = captures[1];
    2348         2841 :                                               if (TREE_TYPE (_o1[0]) != st)
    2349              :                                                 {
    2350         2837 :                                                   _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
    2351              :                                                 }
    2352              :                                               else
    2353              :                                                 _r1 = _o1[0];
    2354         2841 :                                               res_op0 = _r1;
    2355              :                                             }
    2356         2841 :                                             tree res_op1;
    2357         2841 :                                             res_op1 =  build_zero_cst (st);
    2358         2841 :                                             tree _r;
    2359         2841 :                                             _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    2360         2841 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    2361            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2362         2841 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 586, __FILE__, __LINE__, true);
    2363         2841 :                                             return _r;
    2364              :                                           }
    2365            0 : next_after_fail699:;
    2366            0 :                                         }
    2367              :                                       else
    2368              :                                         {
    2369           43 :                                           if (cst == captures[2] && cmp == GT_EXPR
    2370              : )
    2371              :                                             {
    2372           43 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail700;
    2373           43 :                                               {
    2374           43 :                                                 tree res_op0;
    2375           43 :                                                 {
    2376           43 :                                                   tree _o1[1], _r1;
    2377           43 :                                                   _o1[0] = captures[1];
    2378           43 :                                                   if (TREE_TYPE (_o1[0]) != st)
    2379              :                                                     {
    2380           43 :                                                       _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
    2381              :                                                     }
    2382              :                                                   else
    2383              :                                                     _r1 = _o1[0];
    2384           43 :                                                   res_op0 = _r1;
    2385              :                                                 }
    2386           43 :                                                 tree res_op1;
    2387           43 :                                                 res_op1 =  build_zero_cst (st);
    2388           43 :                                                 tree _r;
    2389           43 :                                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2390           43 :                                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2391            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2392           43 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 587, __FILE__, __LINE__, true);
    2393           43 :                                                 return _r;
    2394              :                                               }
    2395            0 : next_after_fail700:;
    2396            0 :                                             }
    2397              :                                           else
    2398              :                                             {
    2399            0 :                                               if (cmp == LE_EXPR
    2400              : )
    2401              :                                                 {
    2402            0 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail701;
    2403            0 :                                                   {
    2404            0 :                                                     tree res_op0;
    2405            0 :                                                     {
    2406            0 :                                                       tree _o1[1], _r1;
    2407            0 :                                                       _o1[0] = captures[1];
    2408            0 :                                                       if (TREE_TYPE (_o1[0]) != st)
    2409              :                                                         {
    2410            0 :                                                           _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
    2411              :                                                         }
    2412              :                                                       else
    2413              :                                                         _r1 = _o1[0];
    2414            0 :                                                       res_op0 = _r1;
    2415              :                                                     }
    2416            0 :                                                     tree res_op1;
    2417            0 :                                                     res_op1 =  build_zero_cst (st);
    2418            0 :                                                     tree _r;
    2419            0 :                                                     _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    2420            0 :                                                     if (TREE_SIDE_EFFECTS (captures[2]))
    2421            0 :                                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2422            0 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 588, __FILE__, __LINE__, true);
    2423            0 :                                                     return _r;
    2424              :                                                   }
    2425            0 : next_after_fail701:;
    2426              :                                                 }
    2427              :                                               else
    2428              :                                                 {
    2429            0 :                                                   if (cmp == GT_EXPR
    2430              : )
    2431              :                                                     {
    2432            0 :                                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail702;
    2433            0 :                                                       {
    2434            0 :                                                         tree res_op0;
    2435            0 :                                                         {
    2436            0 :                                                           tree _o1[1], _r1;
    2437            0 :                                                           _o1[0] = captures[1];
    2438            0 :                                                           if (TREE_TYPE (_o1[0]) != st)
    2439              :                                                             {
    2440            0 :                                                               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
    2441              :                                                             }
    2442              :                                                           else
    2443              :                                                             _r1 = _o1[0];
    2444            0 :                                                           res_op0 = _r1;
    2445              :                                                         }
    2446            0 :                                                         tree res_op1;
    2447            0 :                                                         res_op1 =  build_zero_cst (st);
    2448            0 :                                                         tree _r;
    2449            0 :                                                         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2450            0 :                                                         if (TREE_SIDE_EFFECTS (captures[2]))
    2451            0 :                                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2452            0 :                                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 589, __FILE__, __LINE__, true);
    2453            0 :                                                         return _r;
    2454              :                                                       }
    2455            0 : next_after_fail702:;
    2456              :                                                     }
    2457              :                                                 }
    2458              :                                             }
    2459              :                                         }
    2460              :                                   }
    2461              :                                 }
    2462              :                             }
    2463              :                         }
    2464              :                     }
    2465              :                 }
    2466              :             }
    2467      1053035 :       }
    2468              :     }
    2469              :   return NULL_TREE;
    2470              : }
    2471              : 
    2472              : tree
    2473            1 : generic_simplify_461 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2474              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2475              : {
    2476            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2477            1 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail811;
    2478            1 :   {
    2479            1 :     tree res_op0;
    2480            1 :     res_op0 = captures[0];
    2481            1 :     tree res_op1;
    2482            1 :     res_op1 = captures[1];
    2483            1 :     tree _r;
    2484            1 :     _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2485            1 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 663, __FILE__, __LINE__, true);
    2486              :     return _r;
    2487              :   }
    2488            0 : next_after_fail811:;
    2489            0 :   return NULL_TREE;
    2490              : }
    2491              : 
    2492              : tree
    2493       912711 : generic_simplify_467 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2494              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2495              :  const enum tree_code ARG_UNUSED (op))
    2496              : {
    2497       912711 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2498       912711 :   {
    2499       912711 :  tree pmop[2];
    2500       912711 :  tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[3], op, captures[1], ERROR_MARK,
    2501              :  NULL_TREE, NULL_TREE, captures[2], ERROR_MARK,
    2502              :  NULL_TREE, NULL_TREE, pmop);
    2503       912711 :       if (utype
    2504              : )
    2505              :         {
    2506       323888 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail817;
    2507       323888 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail817;
    2508       323888 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail817;
    2509       323888 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail817;
    2510       323888 :           {
    2511       323888 :             tree res_op0;
    2512       323888 :             {
    2513       323888 :               tree _o1[2], _r1;
    2514       323888 :               {
    2515       323888 :                 tree _o2[2], _r2;
    2516       323888 :                 {
    2517       323888 :                   tree _o3[1], _r3;
    2518       323888 :                   _o3[0] =  pmop[0];
    2519       323888 :                   if (TREE_TYPE (_o3[0]) != utype)
    2520              :                     {
    2521          238 :                       _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    2522              :                     }
    2523              :                   else
    2524              :                     _r3 = _o3[0];
    2525       323888 :                   _o2[0] = _r3;
    2526              :                 }
    2527       323888 :                 {
    2528       323888 :                   tree _o3[1], _r3;
    2529       323888 :                   _o3[0] =  pmop[1];
    2530       323888 :                   if (TREE_TYPE (_o3[0]) != utype)
    2531              :                     {
    2532          238 :                       _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    2533              :                     }
    2534              :                   else
    2535              :                     _r3 = _o3[0];
    2536       323888 :                   _o2[1] = _r3;
    2537              :                 }
    2538       323888 :                 _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    2539       323888 :                 _o1[0] = _r2;
    2540              :               }
    2541       323888 :               {
    2542       323888 :                 tree _o2[1], _r2;
    2543       323888 :                 _o2[0] = captures[3];
    2544       323888 :                 if (TREE_TYPE (_o2[0]) != utype)
    2545              :                   {
    2546          238 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2547              :                   }
    2548              :                 else
    2549              :                   _r2 = _o2[0];
    2550       323888 :                 _o1[1] = _r2;
    2551              :               }
    2552       323888 :               _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2553       323888 :               res_op0 = _r1;
    2554              :             }
    2555       323888 :             tree _r;
    2556       323888 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2557       323888 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 668, __FILE__, __LINE__, true);
    2558       323888 :             return _r;
    2559              :           }
    2560       588823 : next_after_fail817:;
    2561              :         }
    2562              :   }
    2563       588823 :   return NULL_TREE;
    2564              : }
    2565              : 
    2566              : tree
    2567            0 : generic_simplify_480 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2568              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2569              :  const enum tree_code ARG_UNUSED (code2),
    2570              :  const enum tree_code ARG_UNUSED (code1))
    2571              : {
    2572            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2573            0 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
    2574            0 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2575            0 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2576            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2]))
    2577            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[2])))
    2578            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
    2579            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
    2580            0 :  && bitwise_equal_p (captures[2], captures[5]))
    2581              : )
    2582              :     {
    2583            0 :       {
    2584            0 :  bool one_before = false;
    2585            0 :  bool one_after = false;
    2586            0 :  int cmp = 0;
    2587            0 :  bool allbits = true;
    2588            0 :  if (TREE_CODE (captures[2]) == INTEGER_CST
    2589            0 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2590              :  {
    2591            0 :  allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
    2592            0 :  auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
    2593            0 :  auto t2 = wi::to_wide (captures[5]);
    2594            0 :  cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
    2595            0 :  if (cmp < 0
    2596            0 :  && t1 == t2 - 1)
    2597              :  one_before = true;
    2598            0 :  if (cmp > 0
    2599            0 :  && t1 == t2 + 1)
    2600              :  one_after = true;
    2601              :  }
    2602            0 :  bool val;
    2603            0 :  switch (code2)
    2604              :  {
    2605            0 :  case EQ_EXPR: val = (cmp == 0); break;
    2606            0 :  case NE_EXPR: val = (cmp != 0); break;
    2607            0 :  case LT_EXPR: val = (cmp < 0); break;
    2608            0 :  case GT_EXPR: val = (cmp > 0); break;
    2609            0 :  case LE_EXPR: val = (cmp <= 0); break;
    2610            0 :  case GE_EXPR: val = (cmp >= 0); break;
    2611            0 :  default: gcc_unreachable ();
    2612              :  }
    2613            0 :           if (code1 == EQ_EXPR && val
    2614              : )
    2615              :             {
    2616            0 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail832;
    2617            0 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail832;
    2618            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail832;
    2619            0 :               {
    2620            0 :                 tree _r;
    2621            0 :                 _r = captures[0];
    2622            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 682, __FILE__, __LINE__, true);
    2623            0 :                 return _r;
    2624              :               }
    2625              : next_after_fail832:;
    2626              :             }
    2627              :           else
    2628              :             {
    2629            0 :               if (code1 == EQ_EXPR && !val
    2630              : )
    2631              :                 {
    2632            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail833;
    2633            0 :                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail833;
    2634            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail833;
    2635            0 :                   {
    2636            0 :                     tree _r;
    2637            0 :                     _r =  constant_boolean_node (false, type);
    2638            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    2639            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2640            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 683, __FILE__, __LINE__, true);
    2641            0 :                     return _r;
    2642              :                   }
    2643              : next_after_fail833:;
    2644              :                 }
    2645              :               else
    2646              :                 {
    2647            0 :                   if (code1 == NE_EXPR && !val && allbits
    2648              : )
    2649              :                     {
    2650            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail834;
    2651            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail834;
    2652            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail834;
    2653            0 :                       {
    2654            0 :                         tree _r;
    2655            0 :                         _r = captures[3];
    2656            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 684, __FILE__, __LINE__, true);
    2657            0 :                         return _r;
    2658              :                       }
    2659              : next_after_fail834:;
    2660              :                     }
    2661              :                   else
    2662              :                     {
    2663            0 :                       if ((code1 == NE_EXPR
    2664            0 :  && code2 == GE_EXPR
    2665            0 :  && cmp == 0
    2666            0 :  && allbits)
    2667            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2668            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2669            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2670              : )
    2671              :                         {
    2672            0 :                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail835;
    2673            0 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail835;
    2674            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail835;
    2675            0 :                           {
    2676            0 :                             tree res_op0;
    2677            0 :                             res_op0 = captures[4];
    2678            0 :                             tree res_op1;
    2679            0 :                             {
    2680            0 :                               tree _o1[1], _r1;
    2681            0 :                               _o1[0] = captures[2];
    2682            0 :                               if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2683              :                                 {
    2684            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2685              :                                 }
    2686              :                               else
    2687              :                                 _r1 = _o1[0];
    2688            0 :                               res_op1 = _r1;
    2689              :                             }
    2690            0 :                             tree _r;
    2691            0 :                             _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2692            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 685, __FILE__, __LINE__, true);
    2693            0 :                             return _r;
    2694              :                           }
    2695              : next_after_fail835:;
    2696              :                         }
    2697              :                       else
    2698              :                         {
    2699            0 :                           if ((code1 == NE_EXPR
    2700            0 :  && code2 == LE_EXPR
    2701            0 :  && cmp == 0
    2702            0 :  && allbits)
    2703            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2704            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2705            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2706              : )
    2707              :                             {
    2708            0 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail836;
    2709            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail836;
    2710            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail836;
    2711            0 :                               {
    2712            0 :                                 tree res_op0;
    2713            0 :                                 res_op0 = captures[4];
    2714            0 :                                 tree res_op1;
    2715            0 :                                 {
    2716            0 :                                   tree _o1[1], _r1;
    2717            0 :                                   _o1[0] = captures[2];
    2718            0 :                                   if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2719              :                                     {
    2720            0 :                                       _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2721              :                                     }
    2722              :                                   else
    2723              :                                     _r1 = _o1[0];
    2724            0 :                                   res_op1 = _r1;
    2725              :                                 }
    2726            0 :                                 tree _r;
    2727            0 :                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2728            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 686, __FILE__, __LINE__, true);
    2729            0 :                                 return _r;
    2730              :                               }
    2731              : next_after_fail836:;
    2732              :                             }
    2733              :                           else
    2734              :                             {
    2735            0 :                               if ((code1 == NE_EXPR
    2736            0 :  && code2 == GT_EXPR
    2737              :  && one_after
    2738            0 :  && allbits)
    2739            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2740            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2741            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2742              : )
    2743              :                                 {
    2744            0 :                                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail837;
    2745            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail837;
    2746            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail837;
    2747            0 :                                   {
    2748            0 :                                     tree res_op0;
    2749            0 :                                     res_op0 = captures[4];
    2750            0 :                                     tree res_op1;
    2751            0 :                                     {
    2752            0 :                                       tree _o1[1], _r1;
    2753            0 :                                       _o1[0] = captures[2];
    2754            0 :                                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2755              :                                         {
    2756            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2757              :                                         }
    2758              :                                       else
    2759              :                                         _r1 = _o1[0];
    2760            0 :                                       res_op1 = _r1;
    2761              :                                     }
    2762            0 :                                     tree _r;
    2763            0 :                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2764            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 687, __FILE__, __LINE__, true);
    2765            0 :                                     return _r;
    2766              :                                   }
    2767              : next_after_fail837:;
    2768              :                                 }
    2769              :                               else
    2770              :                                 {
    2771            0 :                                   if ((code1 == NE_EXPR
    2772            0 :  && code2 == LT_EXPR
    2773              :  && one_before
    2774            0 :  && allbits)
    2775            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2776            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2777            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2778              : )
    2779              :                                     {
    2780            0 :                                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail838;
    2781            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail838;
    2782            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail838;
    2783            0 :                                       {
    2784            0 :                                         tree res_op0;
    2785            0 :                                         res_op0 = captures[4];
    2786            0 :                                         tree res_op1;
    2787            0 :                                         {
    2788            0 :                                           tree _o1[1], _r1;
    2789            0 :                                           _o1[0] = captures[2];
    2790            0 :                                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2791              :                                             {
    2792            0 :                                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2793              :                                             }
    2794              :                                           else
    2795              :                                             _r1 = _o1[0];
    2796            0 :                                           res_op1 = _r1;
    2797              :                                         }
    2798            0 :                                         tree _r;
    2799            0 :                                         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2800            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 688, __FILE__, __LINE__, true);
    2801            0 :                                         return _r;
    2802              :                                       }
    2803              : next_after_fail838:;
    2804              :                                     }
    2805              :                                 }
    2806              :                             }
    2807              :                         }
    2808              :                     }
    2809              :                 }
    2810              :             }
    2811              :       }
    2812              :     }
    2813              :   return NULL_TREE;
    2814              : }
    2815              : 
    2816              : tree
    2817           31 : generic_simplify_510 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2818              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2819              : {
    2820           31 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2821           31 :   if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    2822           54 :  && (element_precision (TREE_TYPE (captures[2]))
    2823           23 :  <= element_precision (TREE_TYPE (captures[3]))
    2824            1 :  || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))
    2825              : )
    2826              :     {
    2827           22 :       {
    2828           22 :  tree shift_type = TREE_TYPE (captures[2]);
    2829           22 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail904;
    2830           22 :           {
    2831           22 :             tree res_op0;
    2832           22 :             {
    2833           22 :               tree _o1[2], _r1;
    2834           22 :               {
    2835           22 :                 tree _o2[1], _r2;
    2836           22 :                 _o2[0] = captures[3];
    2837           22 :                 if (TREE_TYPE (_o2[0]) != shift_type)
    2838              :                   {
    2839            1 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o2[0]);
    2840              :                   }
    2841              :                 else
    2842              :                   _r2 = _o2[0];
    2843           22 :                 _o1[0] = _r2;
    2844              :               }
    2845           22 :               _o1[1] = captures[4];
    2846           22 :               _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2847           22 :               res_op0 = _r1;
    2848              :             }
    2849           22 :             tree _r;
    2850           22 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2851           22 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 716, __FILE__, __LINE__, true);
    2852           22 :             return _r;
    2853              :           }
    2854            0 : next_after_fail904:;
    2855              :       }
    2856              :     }
    2857              :   return NULL_TREE;
    2858              : }
    2859              : 
    2860              : tree
    2861         3814 : generic_simplify_522 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2862              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2863              : {
    2864         3814 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2865         3814 :   if (!TYPE_SATURATING (type)
    2866              : )
    2867              :     {
    2868         3779 :       if (!TYPE_OVERFLOW_SANITIZED (type)
    2869         7580 :  && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
    2870              : )
    2871              :         {
    2872         3801 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail917;
    2873         3801 :           {
    2874         3801 :             tree res_op0;
    2875         3801 :             {
    2876         3801 :               tree _o1[1], _r1;
    2877         3801 :               _o1[0] = captures[0];
    2878         3801 :               if (TREE_TYPE (_o1[0]) != type)
    2879              :                 {
    2880           31 :                   _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    2881              :                 }
    2882              :               else
    2883              :                 _r1 = _o1[0];
    2884         3801 :               res_op0 = _r1;
    2885              :             }
    2886         3801 :             tree _r;
    2887         3801 :             _r = non_lvalue_loc (loc, res_op0);
    2888         3801 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 727, __FILE__, __LINE__, true);
    2889         3801 :             return _r;
    2890              :           }
    2891            0 : next_after_fail917:;
    2892              :         }
    2893              :     }
    2894              :   return NULL_TREE;
    2895              : }
    2896              : 
    2897              : tree
    2898            0 : generic_simplify_529 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2899              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2900              :  const enum tree_code ARG_UNUSED (minmax))
    2901              : {
    2902            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2903            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail925;
    2904            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail925;
    2905            0 :   {
    2906            0 :     tree _r;
    2907            0 :     _r = captures[0];
    2908            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 734, __FILE__, __LINE__, true);
    2909              :     return _r;
    2910              :   }
    2911              : next_after_fail925:;
    2912              :   return NULL_TREE;
    2913              : }
    2914              : 
    2915              : tree
    2916           47 : generic_simplify_536 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2917              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2918              :  const enum tree_code ARG_UNUSED (minmax),
    2919              :  const enum tree_code ARG_UNUSED (cmp))
    2920              : {
    2921           47 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2922           47 :   {
    2923           47 :  poly_int64 off0, off1;
    2924           47 :  tree base0, base1;
    2925           47 :  int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
    2926              :  off0, off1,
    2927              : 1
    2928              : );
    2929           47 :       if (equal == 1
    2930              : )
    2931              :         {
    2932            0 :           if (minmax == MIN_EXPR
    2933              : )
    2934              :             {
    2935            0 :               if (known_le (off0, off1)
    2936              : )
    2937              :                 {
    2938            0 :                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail934;
    2939            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail934;
    2940            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail934;
    2941            0 :                   {
    2942            0 :                     tree _r;
    2943            0 :                     _r = captures[0];
    2944            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 743, __FILE__, __LINE__, true);
    2945            0 :                     return _r;
    2946              :                   }
    2947           47 : next_after_fail934:;
    2948              :                 }
    2949              :               else
    2950              :                 {
    2951            0 :                   if (known_gt (off0, off1)
    2952              : )
    2953              :                     {
    2954            0 :                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail935;
    2955            0 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail935;
    2956            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail935;
    2957            0 :                       {
    2958            0 :                         tree _r;
    2959            0 :                         _r = captures[2];
    2960            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 744, __FILE__, __LINE__, true);
    2961            0 :                         return _r;
    2962              :                       }
    2963           47 : next_after_fail935:;
    2964              :                     }
    2965              :                 }
    2966              :             }
    2967              :           else
    2968              :             {
    2969            0 :               if (known_ge (off0, off1)
    2970              : )
    2971              :                 {
    2972            0 :                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail936;
    2973            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail936;
    2974            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail936;
    2975            0 :                   {
    2976            0 :                     tree _r;
    2977            0 :                     _r = captures[0];
    2978            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 745, __FILE__, __LINE__, true);
    2979            0 :                     return _r;
    2980              :                   }
    2981           47 : next_after_fail936:;
    2982              :                 }
    2983              :               else
    2984              :                 {
    2985            0 :                   if (known_lt (off0, off1)
    2986              : )
    2987              :                     {
    2988            0 :                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail937;
    2989            0 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail937;
    2990            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail937;
    2991            0 :                       {
    2992            0 :                         tree _r;
    2993            0 :                         _r = captures[2];
    2994            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 746, __FILE__, __LINE__, true);
    2995            0 :                         return _r;
    2996              :                       }
    2997           47 : next_after_fail937:;
    2998              :                     }
    2999              :                 }
    3000              :             }
    3001              :         }
    3002              :   }
    3003           47 :   return NULL_TREE;
    3004              : }
    3005              : 
    3006              : tree
    3007            0 : generic_simplify_555 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3008              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3009              :  const combined_fn ARG_UNUSED (cond_op))
    3010              : {
    3011            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3012            0 :   {
    3013            0 :  tree op_type = TREE_TYPE (captures[3]);
    3014            0 :       if (element_precision (type) == element_precision (op_type)
    3015              : )
    3016              :         {
    3017            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail965;
    3018            0 :           {
    3019            0 :             tree res_op0;
    3020            0 :             {
    3021            0 :               tree _o1[4], _r1;
    3022            0 :               _o1[0] = captures[0];
    3023            0 :               _o1[1] = captures[1];
    3024            0 :               _o1[2] = captures[2];
    3025            0 :               {
    3026            0 :                 tree _o2[1], _r2;
    3027            0 :                 _o2[0] = captures[4];
    3028            0 :                 if (TREE_TYPE (_o2[0]) != op_type)
    3029              :                   {
    3030            0 :                     _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
    3031              :                   }
    3032              :                 else
    3033              :                   _r2 = _o2[0];
    3034            0 :                 _o1[3] = _r2;
    3035              :               }
    3036            0 :               _r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 4, _o1[0], _o1[1], _o1[2], _o1[3]);
    3037            0 :               if (!_r1)
    3038            0 :                 goto next_after_fail965;
    3039            0 :               res_op0 = _r1;
    3040              :             }
    3041            0 :             tree _r;
    3042            0 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3043            0 :             if (TREE_SIDE_EFFECTS (captures[3]))
    3044            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    3045            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 757, __FILE__, __LINE__, true);
    3046            0 :             return _r;
    3047              :           }
    3048              : next_after_fail965:;
    3049              :         }
    3050              :   }
    3051              :   return NULL_TREE;
    3052              : }
    3053              : 
    3054              : tree
    3055            0 : generic_simplify_565 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3056              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    3057              :  const enum tree_code ARG_UNUSED (rotate))
    3058              : {
    3059            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3060            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail975;
    3061            0 :   {
    3062            0 :     tree _r;
    3063            0 :     _r = captures[0];
    3064            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    3065            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3066            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 767, __FILE__, __LINE__, true);
    3067              :     return _r;
    3068              :   }
    3069            0 : next_after_fail975:;
    3070            0 :   return NULL_TREE;
    3071              : }
    3072              : 
    3073              : tree
    3074            0 : generic_simplify_575 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3075              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    3076              :  const combined_fn ARG_UNUSED (ovf))
    3077              : {
    3078            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3079            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3080            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3081            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
    3082            0 :  && (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) || TYPE_UNSIGNED (TREE_TYPE (captures[1])))
    3083              : )
    3084              :     {
    3085            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail988;
    3086            0 :       {
    3087            0 :         tree res_op0;
    3088            0 :         res_op0 = captures[1];
    3089            0 :         tree res_op1;
    3090            0 :         res_op1 = captures[2];
    3091            0 :         tree _r;
    3092            0 :         _r = maybe_build_call_expr_loc (loc, ovf, type, 2, res_op0, res_op1);
    3093            0 :         if (!_r)
    3094            0 :           goto next_after_fail988;
    3095            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 780, __FILE__, __LINE__, true);
    3096            0 :         return _r;
    3097              :       }
    3098              : next_after_fail988:;
    3099              :     }
    3100              :   return NULL_TREE;
    3101              : }
    3102              : 
    3103              : tree
    3104            0 : generic_simplify_583 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3105              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3106              :  const combined_fn ARG_UNUSED (fns))
    3107              : {
    3108            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3109            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail996;
    3110            0 :   {
    3111            0 :     tree res_op0;
    3112            0 :     res_op0 = captures[0];
    3113            0 :     tree _r;
    3114            0 :     _r = maybe_build_call_expr_loc (loc, fns, type, 1, res_op0);
    3115            0 :     if (!_r)
    3116            0 :       goto next_after_fail996;
    3117            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 788, __FILE__, __LINE__, true);
    3118              :     return _r;
    3119              :   }
    3120              : next_after_fail996:;
    3121              :   return NULL_TREE;
    3122              : }
    3123              : 
    3124              : tree
    3125            0 : generic_simplify_590 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3126              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3127              :  const combined_fn ARG_UNUSED (froms),
    3128              :  const combined_fn ARG_UNUSED (tos))
    3129              : {
    3130            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3131            0 :   if (optimize && canonicalize_math_p ()
    3132              : )
    3133              :     {
    3134            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1003;
    3135            0 :       {
    3136            0 :         tree res_op0;
    3137            0 :         res_op0 = captures[0];
    3138            0 :         tree _r;
    3139            0 :         _r = maybe_build_call_expr_loc (loc, tos, type, 1, res_op0);
    3140            0 :         if (!_r)
    3141            0 :           goto next_after_fail1003;
    3142            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 795, __FILE__, __LINE__, true);
    3143            0 :         return _r;
    3144              :       }
    3145              : next_after_fail1003:;
    3146              :     }
    3147              :   return NULL_TREE;
    3148              : }
    3149              : 
    3150              : tree
    3151            0 : generic_simplify_598 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3152              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3153              :  const combined_fn ARG_UNUSED (SIGNBIT))
    3154              : {
    3155            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3156            0 :   if (!HONOR_SIGNED_ZEROS (captures[0])
    3157              : )
    3158              :     {
    3159            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1011;
    3160            0 :       {
    3161            0 :         tree res_op0;
    3162            0 :         {
    3163            0 :           tree _o1[2], _r1;
    3164            0 :           _o1[0] = captures[0];
    3165            0 :           _o1[1] =  build_real (TREE_TYPE (captures[0]), dconst0);
    3166            0 :           _r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
    3167            0 :           res_op0 = _r1;
    3168              :         }
    3169            0 :         tree _r;
    3170            0 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3171            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 803, __FILE__, __LINE__, true);
    3172            0 :         return _r;
    3173              :       }
    3174            0 : next_after_fail1011:;
    3175              :     }
    3176              :   return NULL_TREE;
    3177              : }
    3178              : 
    3179              : tree
    3180            0 : generic_simplify_607 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3181              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    3182              : {
    3183            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3184            0 :   if (canonicalize_math_after_vectorization_p ()
    3185              : )
    3186              :     {
    3187              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1020;
    3188              :       {
    3189              :         tree res_op0;
    3190              :         res_op0 = captures[0];
    3191              :         tree res_op1;
    3192              :         res_op1 = captures[1];
    3193              :         tree res_op2;
    3194              :         res_op2 = captures[2];
    3195              :         tree _r;
    3196              :         _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
    3197              :         if (!_r)
    3198              :           goto next_after_fail1020;
    3199              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 812, __FILE__, __LINE__, true);
    3200              :         return _r;
    3201              :       }
    3202            0 : next_after_fail1020:;
    3203              :     }
    3204            0 :   return NULL_TREE;
    3205              : }
    3206              : 
    3207              : tree
    3208            0 : generic_simplify_616 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3209              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
    3210              : {
    3211            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3212            0 :   if (canonicalize_math_after_vectorization_p ()
    3213              : )
    3214              :     {
    3215              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1029;
    3216              :       {
    3217              :         tree res_op0;
    3218              :         res_op0 = captures[0];
    3219              :         tree res_op1;
    3220              :         res_op1 = captures[1];
    3221              :         tree res_op2;
    3222              :         res_op2 = captures[2];
    3223              :         tree res_op3;
    3224              :         res_op3 = captures[3];
    3225              :         tree res_op4;
    3226              :         res_op4 = captures[4];
    3227              :         tree _r;
    3228              :         _r = maybe_build_call_expr_loc (loc, CFN_COND_FMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3229              :         if (!_r)
    3230              :           goto next_after_fail1029;
    3231              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 821, __FILE__, __LINE__, true);
    3232              :         return _r;
    3233              :       }
    3234            0 : next_after_fail1029:;
    3235              :     }
    3236            0 :   return NULL_TREE;
    3237              : }
    3238              : 
    3239              : tree
    3240            0 : generic_simplify_627 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3241              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3242              :  const combined_fn ARG_UNUSED (PARITY))
    3243              : {
    3244            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3245            0 :   if ((element_precision (TREE_TYPE (captures[0])) & 1) == 0
    3246              : )
    3247              :     {
    3248            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1041;
    3249            0 :       {
    3250            0 :         tree res_op0;
    3251            0 :         res_op0 = captures[0];
    3252            0 :         tree _r;
    3253            0 :         _r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
    3254            0 :         if (!_r)
    3255            0 :           goto next_after_fail1041;
    3256            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 828, __FILE__, __LINE__, true);
    3257            0 :         return _r;
    3258              :       }
    3259              : next_after_fail1041:;
    3260              :     }
    3261              :   else
    3262              :     {
    3263            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1042;
    3264            0 :       {
    3265            0 :         tree res_op0;
    3266            0 :         {
    3267            0 :           tree _o1[1], _r1;
    3268            0 :           _o1[0] = captures[0];
    3269            0 :           _r1 = maybe_build_call_expr_loc (loc, PARITY, type, 1, _o1[0]);
    3270            0 :           if (!_r1)
    3271            0 :             goto next_after_fail1042;
    3272            0 :           res_op0 = _r1;
    3273              :         }
    3274            0 :         tree res_op1;
    3275            0 :         res_op1 =  build_one_cst (type);
    3276            0 :         tree _r;
    3277            0 :         _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    3278            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 829, __FILE__, __LINE__, true);
    3279            0 :         return _r;
    3280              :       }
    3281              : next_after_fail1042:;
    3282              :     }
    3283              :   return NULL_TREE;
    3284              : }
    3285              : 
    3286              : tree
    3287            0 : generic_simplify_634 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3288              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3289              :  const enum tree_code ARG_UNUSED (plusminus),
    3290              :  const enum tree_code ARG_UNUSED (minusplus))
    3291              : {
    3292            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3293            0 :   if (!VECTOR_INTEGER_TYPE_P (type)
    3294              :  && !FLOAT_WORDS_BIG_ENDIAN
    3295            0 :  && (operand_equal_p (captures[0], captures[2], 0)
    3296            0 :  ? operand_equal_p (captures[1], captures[3], 0)
    3297            0 :  : operand_equal_p (captures[0], captures[3], 0) && operand_equal_p (captures[1], captures[2], 0))
    3298              : )
    3299              :     {
    3300            0 :       {
    3301            0 :  vec_perm_builder builder;
    3302            0 :           if (tree_to_vec_perm_builder (&builder, captures[4])
    3303              : )
    3304              :             {
    3305            0 :               {
    3306            0 :  poly_uint64 nelts = TYPE_VECTOR_SUBPARTS (type);
    3307            0 :  vec_perm_indices sel (builder, 2, nelts);
    3308            0 :  machine_mode vec_mode = TYPE_MODE (type);
    3309            0 :  machine_mode wide_mode;
    3310            0 :  scalar_mode wide_elt_mode;
    3311            0 :  poly_uint64 wide_nunits;
    3312            0 :  scalar_mode inner_mode = GET_MODE_INNER (vec_mode);
    3313            0 :                   if (VECTOR_MODE_P (vec_mode)
    3314            0 :  && sel.series_p (0, 2, 0, 2)
    3315            0 :  && sel.series_p (1, 2, nelts + 1, 2)
    3316            0 :  && GET_MODE_2XWIDER_MODE (inner_mode).exists (&wide_elt_mode)
    3317            0 :  && multiple_p (GET_MODE_NUNITS (vec_mode), 2, &wide_nunits)
    3318            0 :  && related_vector_mode (vec_mode, wide_elt_mode,
    3319            0 :  wide_nunits).exists (&wide_mode)
    3320              : )
    3321              :                     {
    3322            0 :                       {
    3323            0 :  tree stype
    3324            0 :  = lang_hooks.types.type_for_mode (GET_MODE_INNER (wide_mode),
    3325            0 :  TYPE_UNSIGNED (type));
    3326            0 :  tree ntype = build_vector_type_for_mode (stype, wide_mode);
    3327            0 :  const struct real_format *fmt_old = FLOAT_MODE_FORMAT (vec_mode);
    3328            0 :  const struct real_format *fmt_new = FLOAT_MODE_FORMAT (wide_mode);
    3329            0 :                           if (TYPE_MODE (stype) != BLKmode
    3330            0 :  && VECTOR_TYPE_P (ntype)
    3331            0 :  && fmt_old != NULL
    3332            0 :  && fmt_new != NULL
    3333              : )
    3334              :                             {
    3335            0 :                               {
    3336            0 :  if (known_eq (GET_MODE_NUNITS (wide_mode), 1)
    3337            0 :  && !target_supports_op_p (ntype, NEGATE_EXPR, optab_vector))
    3338              :  ntype = stype;
    3339            0 :                                   if (fmt_new->signbit_rw
    3340            0 :  == fmt_old->signbit_rw + GET_MODE_UNIT_BITSIZE (vec_mode)
    3341            0 :  && fmt_new->signbit_rw == fmt_new->signbit_ro
    3342            0 :  && targetm.can_change_mode_class (TYPE_MODE (ntype),
    3343            0 :  TYPE_MODE (type), ALL_REGS)
    3344            0 :  && ((optimize_vectors_before_lowering_p ()
    3345            0 :  && VECTOR_TYPE_P (ntype))
    3346            0 :  || target_supports_op_p (ntype, NEGATE_EXPR, optab_vector))
    3347              : )
    3348              :                                     {
    3349            0 :                                       if (plusminus == PLUS_EXPR
    3350              : )
    3351              :                                         {
    3352            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1049;
    3353            0 :                                           {
    3354            0 :                                             tree res_op0;
    3355            0 :                                             {
    3356            0 :                                               tree _o1[1], _r1;
    3357            0 :                                               {
    3358            0 :                                                 tree _o2[1], _r2;
    3359            0 :                                                 {
    3360            0 :                                                   tree _o3[1], _r3;
    3361            0 :                                                   _o3[0] = captures[3];
    3362            0 :                                                   if (TREE_TYPE (_o3[0]) != ntype)
    3363              :                                                     {
    3364            0 :                                                       _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o3[0]);
    3365              :                                                     }
    3366              :                                                   else
    3367              :                                                     _r3 = _o3[0];
    3368            0 :                                                   _o2[0] = _r3;
    3369              :                                                 }
    3370            0 :                                                 _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    3371            0 :                                                 _o1[0] = _r2;
    3372              :                                               }
    3373            0 :                                               if (TREE_TYPE (_o1[0]) != type)
    3374              :                                                 {
    3375            0 :                                                   _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    3376              :                                                 }
    3377              :                                               else
    3378              :                                                 _r1 = _o1[0];
    3379            0 :                                               res_op0 = _r1;
    3380              :                                             }
    3381            0 :                                             tree res_op1;
    3382            0 :                                             res_op1 = captures[2];
    3383            0 :                                             tree _r;
    3384            0 :                                             _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    3385            0 :                                             if (TREE_SIDE_EFFECTS (captures[0]))
    3386            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3387            0 :                                             if (TREE_SIDE_EFFECTS (captures[1]))
    3388            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3389            0 :                                             if (TREE_SIDE_EFFECTS (captures[4]))
    3390            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    3391            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 834, __FILE__, __LINE__, true);
    3392            0 :                                             return _r;
    3393              :                                           }
    3394            0 : next_after_fail1049:;
    3395              :                                         }
    3396              :                                       else
    3397              :                                         {
    3398            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1050;
    3399            0 :                                           {
    3400            0 :                                             tree res_op0;
    3401            0 :                                             res_op0 = captures[0];
    3402            0 :                                             tree res_op1;
    3403            0 :                                             {
    3404            0 :                                               tree _o1[1], _r1;
    3405            0 :                                               {
    3406            0 :                                                 tree _o2[1], _r2;
    3407            0 :                                                 {
    3408            0 :                                                   tree _o3[1], _r3;
    3409            0 :                                                   _o3[0] = captures[1];
    3410            0 :                                                   if (TREE_TYPE (_o3[0]) != ntype)
    3411              :                                                     {
    3412            0 :                                                       _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o3[0]);
    3413              :                                                     }
    3414              :                                                   else
    3415              :                                                     _r3 = _o3[0];
    3416            0 :                                                   _o2[0] = _r3;
    3417              :                                                 }
    3418            0 :                                                 _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    3419            0 :                                                 _o1[0] = _r2;
    3420              :                                               }
    3421            0 :                                               if (TREE_TYPE (_o1[0]) != type)
    3422              :                                                 {
    3423            0 :                                                   _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    3424              :                                                 }
    3425              :                                               else
    3426              :                                                 _r1 = _o1[0];
    3427            0 :                                               res_op1 = _r1;
    3428              :                                             }
    3429            0 :                                             tree _r;
    3430            0 :                                             _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    3431            0 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    3432            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    3433            0 :                                             if (TREE_SIDE_EFFECTS (captures[3]))
    3434            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    3435            0 :                                             if (TREE_SIDE_EFFECTS (captures[4]))
    3436            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    3437            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 835, __FILE__, __LINE__, true);
    3438            0 :                                             return _r;
    3439              :                                           }
    3440            0 : next_after_fail1050:;
    3441              :                                         }
    3442              :                                     }
    3443              :                               }
    3444              :                             }
    3445              :                       }
    3446              :                     }
    3447            0 :               }
    3448              :             }
    3449            0 :       }
    3450              :     }
    3451              :   return NULL_TREE;
    3452              : }
    3453              : 
    3454              : tree
    3455         1330 : generic_simplify_CONJ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3456              : {
    3457         1330 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3458         1330 :   switch (TREE_CODE (_p0))
    3459              :     {
    3460            0 :     CASE_CONVERT:
    3461            0 :       {
    3462            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3463            0 :         switch (TREE_CODE (_q20))
    3464              :           {
    3465            0 :           case CONJ_EXPR:
    3466            0 :             {
    3467            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3468            0 :               {
    3469            0 :                 tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    3470            0 :                 tree res = generic_simplify_568 (loc, type, _p0, captures);
    3471            0 :                 if (res) return res;
    3472              :               }
    3473            0 :               break;
    3474              :             }
    3475            0 :           case COMPLEX_EXPR:
    3476            0 :             {
    3477            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3478            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3479            0 :               {
    3480            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3481            0 :                 {
    3482            0 :  tree itype = TREE_TYPE (type);
    3483            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1173;
    3484            0 :                     {
    3485            0 :                       tree res_op0;
    3486            0 :                       {
    3487            0 :                         tree _o1[1], _r1;
    3488            0 :                         _o1[0] = captures[2];
    3489            0 :                         if (TREE_TYPE (_o1[0]) != itype)
    3490              :                           {
    3491            0 :                             _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
    3492              :                           }
    3493              :                         else
    3494              :                           _r1 = _o1[0];
    3495            0 :                         res_op0 = _r1;
    3496              :                       }
    3497            0 :                       tree res_op1;
    3498            0 :                       {
    3499            0 :                         tree _o1[1], _r1;
    3500            0 :                         {
    3501            0 :                           tree _o2[1], _r2;
    3502            0 :                           _o2[0] = captures[3];
    3503            0 :                           if (TREE_TYPE (_o2[0]) != itype)
    3504              :                             {
    3505            0 :                               _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
    3506              :                             }
    3507              :                           else
    3508              :                             _r2 = _o2[0];
    3509            0 :                           _o1[0] = _r2;
    3510              :                         }
    3511            0 :                         _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3512            0 :                         res_op1 = _r1;
    3513              :                       }
    3514            0 :                       tree _r;
    3515            0 :                       _r = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
    3516            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
    3517            0 :                       return _r;
    3518              :                     }
    3519            0 : next_after_fail1173:;
    3520              :                 }
    3521              :               }
    3522            0 :               break;
    3523              :             }
    3524              :           default:;
    3525              :           }
    3526              :         break;
    3527              :       }
    3528            1 :     case CONJ_EXPR:
    3529            1 :       {
    3530            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3531            1 :         {
    3532            1 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3533            1 :           tree res = generic_simplify_568 (loc, type, _p0, captures);
    3534            1 :           if (res) return res;
    3535              :         }
    3536            0 :         break;
    3537              :       }
    3538           12 :     case COMPLEX_EXPR:
    3539           12 :       {
    3540           12 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3541           12 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3542           12 :         {
    3543           12 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    3544           12 :           {
    3545           12 :  tree itype = TREE_TYPE (type);
    3546           12 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1174;
    3547           12 :               {
    3548           12 :                 tree res_op0;
    3549           12 :                 {
    3550           12 :                   tree _o1[1], _r1;
    3551           12 :                   _o1[0] = captures[2];
    3552           12 :                   if (TREE_TYPE (_o1[0]) != itype)
    3553              :                     {
    3554            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
    3555              :                     }
    3556              :                   else
    3557              :                     _r1 = _o1[0];
    3558           12 :                   res_op0 = _r1;
    3559              :                 }
    3560           12 :                 tree res_op1;
    3561           12 :                 {
    3562           12 :                   tree _o1[1], _r1;
    3563           12 :                   {
    3564           12 :                     tree _o2[1], _r2;
    3565           12 :                     _o2[0] = captures[3];
    3566           12 :                     if (TREE_TYPE (_o2[0]) != itype)
    3567              :                       {
    3568            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
    3569              :                       }
    3570              :                     else
    3571              :                       _r2 = _o2[0];
    3572           12 :                     _o1[0] = _r2;
    3573              :                   }
    3574           12 :                   _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3575           12 :                   res_op1 = _r1;
    3576              :                 }
    3577           12 :                 tree _r;
    3578           12 :                 _r = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
    3579           12 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
    3580           12 :                 return _r;
    3581              :               }
    3582            0 : next_after_fail1174:;
    3583              :           }
    3584              :         }
    3585            0 :         break;
    3586              :       }
    3587              :     default:;
    3588              :     }
    3589              :   return NULL_TREE;
    3590              : }
    3591              : 
    3592              : tree
    3593     98658411 : generic_simplify_PLUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    3594              : {
    3595     98658411 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3596     98658411 :   switch (TREE_CODE (_p0))
    3597              :     {
    3598         1533 :     case BIT_XOR_EXPR:
    3599         1533 :       {
    3600         1533 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3601         1533 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3602         1533 :         switch (TREE_CODE (_q21))
    3603              :           {
    3604            8 :           case NEGATE_EXPR:
    3605            8 :             {
    3606            8 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3607            8 :               switch (TREE_CODE (_q40))
    3608              :                 {
    3609            0 :                 CASE_CONVERT:
    3610            0 :                   {
    3611            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3612            0 :                     switch (TREE_CODE (_q50))
    3613              :                       {
    3614            0 :                       case LT_EXPR:
    3615            0 :                         {
    3616            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    3617            0 :                           tree _q61 = TREE_OPERAND (_q50, 1);
    3618            0 :                           if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    3619              :                             {
    3620            0 :                               if (integer_zerop (_q61))
    3621              :                                 {
    3622            0 :                                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    3623              :                                     {
    3624            0 :                                       {
    3625            0 :                                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    3626            0 :                                         tree res = generic_simplify_51 (loc, type, _p0, _p1, captures);
    3627            0 :                                         if (res) return res;
    3628              :                                       }
    3629              :                                     }
    3630              :                                 }
    3631              :                             }
    3632              :                           break;
    3633              :                         }
    3634              :                       default:;
    3635              :                       }
    3636              :                     break;
    3637              :                   }
    3638              :                 default:;
    3639              :                 }
    3640              :               break;
    3641              :             }
    3642         1533 :           default:;
    3643              :           }
    3644         1533 :         switch (TREE_CODE (_q20))
    3645              :           {
    3646            9 :           case NEGATE_EXPR:
    3647            9 :             {
    3648            9 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3649            9 :               switch (TREE_CODE (_q30))
    3650              :                 {
    3651            0 :                 CASE_CONVERT:
    3652            0 :                   {
    3653            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    3654            0 :                     switch (TREE_CODE (_q40))
    3655              :                       {
    3656            0 :                       case LT_EXPR:
    3657            0 :                         {
    3658            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    3659            0 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    3660            0 :                           if (integer_zerop (_q51))
    3661              :                             {
    3662            0 :                               if ((_q21 == _q50 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q50, 0) && types_match (_q21, _q50)))
    3663              :                                 {
    3664            0 :                                   if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    3665              :                                     {
    3666            0 :                                       {
    3667            0 :                                         tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    3668            0 :                                         tree res = generic_simplify_51 (loc, type, _p0, _p1, captures);
    3669            0 :                                         if (res) return res;
    3670              :                                       }
    3671              :                                     }
    3672              :                                 }
    3673              :                             }
    3674              :                           break;
    3675              :                         }
    3676              :                       default:;
    3677              :                       }
    3678              :                     break;
    3679              :                   }
    3680              :                 default:;
    3681              :                 }
    3682              :               break;
    3683              :             }
    3684              :           default:;
    3685              :           }
    3686              :         break;
    3687              :       }
    3688     98658411 :     default:;
    3689              :     }
    3690     98658411 :   switch (TREE_CODE (_p1))
    3691              :     {
    3692          165 :     case BIT_XOR_EXPR:
    3693          165 :       {
    3694          165 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3695          165 :         tree _q31 = TREE_OPERAND (_p1, 1);
    3696          165 :         switch (TREE_CODE (_q31))
    3697              :           {
    3698            0 :           case NEGATE_EXPR:
    3699            0 :             {
    3700            0 :               tree _q50 = TREE_OPERAND (_q31, 0);
    3701            0 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    3702              :                 {
    3703            0 :                   switch (TREE_CODE (_q50))
    3704              :                     {
    3705            0 :                     CASE_CONVERT:
    3706            0 :                       {
    3707            0 :                         tree _q70 = TREE_OPERAND (_q50, 0);
    3708            0 :                         switch (TREE_CODE (_q70))
    3709              :                           {
    3710            0 :                           case LT_EXPR:
    3711            0 :                             {
    3712            0 :                               tree _q80 = TREE_OPERAND (_q70, 0);
    3713            0 :                               tree _q81 = TREE_OPERAND (_q70, 1);
    3714            0 :                               if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    3715              :                                 {
    3716            0 :                                   if (integer_zerop (_q81))
    3717              :                                     {
    3718            0 :                                       {
    3719            0 :                                         tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    3720            0 :                                         tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
    3721            0 :                                         if (res) return res;
    3722              :                                       }
    3723              :                                     }
    3724              :                                 }
    3725              :                               break;
    3726              :                             }
    3727              :                           default:;
    3728              :                           }
    3729              :                         break;
    3730              :                       }
    3731              :                     default:;
    3732              :                     }
    3733              :                 }
    3734              :               break;
    3735              :             }
    3736          165 :           default:;
    3737              :           }
    3738          165 :         switch (TREE_CODE (_q30))
    3739              :           {
    3740            0 :           case NEGATE_EXPR:
    3741            0 :             {
    3742            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3743            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    3744              :                 {
    3745            0 :                   switch (TREE_CODE (_q40))
    3746              :                     {
    3747            0 :                     CASE_CONVERT:
    3748            0 :                       {
    3749            0 :                         tree _q60 = TREE_OPERAND (_q40, 0);
    3750            0 :                         switch (TREE_CODE (_q60))
    3751              :                           {
    3752            0 :                           case LT_EXPR:
    3753            0 :                             {
    3754            0 :                               tree _q70 = TREE_OPERAND (_q60, 0);
    3755            0 :                               tree _q71 = TREE_OPERAND (_q60, 1);
    3756            0 :                               if (integer_zerop (_q71))
    3757              :                                 {
    3758            0 :                                   if ((_q31 == _q70 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q70, 0) && types_match (_q31, _q70)))
    3759              :                                     {
    3760            0 :                                       {
    3761            0 :                                         tree captures[2] ATTRIBUTE_UNUSED = { _q70, _p0 };
    3762            0 :                                         tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
    3763            0 :                                         if (res) return res;
    3764              :                                       }
    3765              :                                     }
    3766              :                                 }
    3767              :                               break;
    3768              :                             }
    3769              :                           default:;
    3770              :                           }
    3771              :                         break;
    3772              :                       }
    3773              :                     default:;
    3774              :                     }
    3775              :                 }
    3776              :               break;
    3777              :             }
    3778              :           default:;
    3779              :           }
    3780              :         break;
    3781              :       }
    3782     98658411 :     default:;
    3783              :     }
    3784     98658411 : if (integer_zerop (_p1))
    3785              :   {
    3786     27829322 :     {
    3787     27829322 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3788     27829322 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1260;
    3789     27829322 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1260;
    3790     27829322 :       {
    3791     27829322 :         tree res_op0;
    3792     27829322 :         res_op0 = captures[0];
    3793     27829322 :         tree _r;
    3794     27829322 :         _r = non_lvalue_loc (loc, res_op0);
    3795     27829322 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    3796     27829322 :         return _r;
    3797              :       }
    3798              : next_after_fail1260:;
    3799              :     }
    3800              :   }
    3801     70829089 : if (real_zerop (_p1))
    3802              :   {
    3803         5343 :     {
    3804         5343 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    3805         5343 :       tree res = generic_simplify_53 (loc, type, _p0, _p1, captures);
    3806         5343 :       if (res) return res;
    3807              :     }
    3808              :   }
    3809     70828994 :   switch (TREE_CODE (_p0))
    3810              :     {
    3811      6507403 :     case PLUS_EXPR:
    3812      6507403 :       {
    3813      6507403 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3814      6507403 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3815      6507403 :         switch (TREE_CODE (_q21))
    3816              :           {
    3817       119073 :           case REAL_CST:
    3818       119073 :             {
    3819       119073 :               switch (TREE_CODE (_p1))
    3820              :                 {
    3821           70 :                 case REAL_CST:
    3822           70 :                   {
    3823           70 :                     {
    3824           70 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    3825           70 :                       tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, PLUS_EXPR, PLUS_EXPR);
    3826           70 :                       if (res) return res;
    3827              :                     }
    3828           67 :                     break;
    3829              :                   }
    3830              :                 default:;
    3831              :                 }
    3832              :               break;
    3833              :             }
    3834              :           default:;
    3835              :           }
    3836              :         break;
    3837              :       }
    3838      2057304 :     case MINUS_EXPR:
    3839      2057304 :       {
    3840      2057304 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3841      2057304 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3842      2057304 :         switch (TREE_CODE (_q21))
    3843              :           {
    3844        22450 :           case REAL_CST:
    3845        22450 :             {
    3846        22450 :               switch (TREE_CODE (_p1))
    3847              :                 {
    3848          190 :                 case REAL_CST:
    3849          190 :                   {
    3850          190 :                     {
    3851          190 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    3852          190 :                       tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR);
    3853          190 :                       if (res) return res;
    3854              :                     }
    3855          188 :                     break;
    3856              :                   }
    3857              :                 default:;
    3858              :                 }
    3859              :               break;
    3860              :             }
    3861              :           default:;
    3862              :           }
    3863              :         break;
    3864              :       }
    3865        12216 :     case MAX_EXPR:
    3866        12216 :       {
    3867        12216 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3868        12216 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3869        12216 :         if (integer_zerop (_q21))
    3870              :           {
    3871         4609 :             switch (TREE_CODE (_p1))
    3872              :               {
    3873          114 :               case MAX_EXPR:
    3874          114 :                 {
    3875          114 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    3876          114 :                   tree _q51 = TREE_OPERAND (_p1, 1);
    3877          114 :                   switch (TREE_CODE (_q50))
    3878              :                     {
    3879           48 :                     case NEGATE_EXPR:
    3880           48 :                       {
    3881           48 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    3882           48 :                         if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    3883              :                           {
    3884           48 :                             if (integer_zerop (_q51))
    3885              :                               {
    3886           48 :                                 {
    3887           48 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3888           48 :                                   tree res = generic_simplify_55 (loc, type, _p0, _p1, captures);
    3889           48 :                                   if (res) return res;
    3890              :                                 }
    3891              :                               }
    3892              :                           }
    3893              :                         break;
    3894              :                       }
    3895              :                     default:;
    3896              :                     }
    3897              :                   break;
    3898              :                 }
    3899              :               default:;
    3900              :               }
    3901              :           }
    3902        12168 :         switch (TREE_CODE (_q20))
    3903              :           {
    3904           18 :           case NEGATE_EXPR:
    3905           18 :             {
    3906           18 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3907           18 :               if (integer_zerop (_q21))
    3908              :                 {
    3909           18 :                   switch (TREE_CODE (_p1))
    3910              :                     {
    3911           18 :                     case MAX_EXPR:
    3912           18 :                       {
    3913           18 :                         tree _q60 = TREE_OPERAND (_p1, 0);
    3914           18 :                         tree _q61 = TREE_OPERAND (_p1, 1);
    3915           18 :                         if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    3916              :                           {
    3917           18 :                             if (integer_zerop (_q61))
    3918              :                               {
    3919           18 :                                 {
    3920           18 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    3921           18 :                                   tree res = generic_simplify_55 (loc, type, _p0, _p1, captures);
    3922           18 :                                   if (res) return res;
    3923              :                                 }
    3924              :                               }
    3925              :                           }
    3926              :                         break;
    3927              :                       }
    3928              :                     default:;
    3929              :                     }
    3930              :                 }
    3931              :               break;
    3932              :             }
    3933              :           default:;
    3934              :           }
    3935              :         break;
    3936              :       }
    3937     13407355 :     case MULT_EXPR:
    3938     13407355 :       {
    3939     13407355 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3940     13407355 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3941     13407355 :         switch (TREE_CODE (_q20))
    3942              :           {
    3943      1935557 :           case PLUS_EXPR:
    3944      1935557 :             {
    3945      1935557 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3946      1935557 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3947      1935557 :               switch (TREE_CODE (_q31))
    3948              :                 {
    3949       524902 :                 case INTEGER_CST:
    3950       524902 :                   {
    3951       524902 :                     switch (TREE_CODE (_q21))
    3952              :                       {
    3953       192130 :                       case INTEGER_CST:
    3954       192130 :                         {
    3955       192130 :                           switch (TREE_CODE (_p1))
    3956              :                             {
    3957       126806 :                             case INTEGER_CST:
    3958       126806 :                               {
    3959       126806 :                                 {
    3960       126806 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    3961       126806 :                                   {
    3962       126806 :  bool overflowed = true;
    3963       126806 :  wi::overflow_type ovf1;
    3964       126806 :  wi::overflow_type ovf2;
    3965       126806 :  wide_int mul = wi::mul (wi::to_wide (captures[3]), wi::to_wide (captures[4]),
    3966       253612 :  TYPE_SIGN (type), &ovf1);
    3967       380418 :  wide_int add = wi::add (mul, wi::to_wide (captures[5]),
    3968       126806 :  TYPE_SIGN (type), &ovf2);
    3969       126806 :  if (TYPE_OVERFLOW_UNDEFINED (type))
    3970              :  {
    3971              :  }
    3972              :  else
    3973        65981 :  overflowed = false;
    3974        65981 :                                       if (!overflowed
    3975              : )
    3976              :                                         {
    3977        65981 :                                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1261;
    3978        65981 :                                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1261;
    3979        65981 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1261;
    3980        65981 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1261;
    3981        65981 :                                           {
    3982        65981 :                                             tree res_op0;
    3983        65981 :                                             {
    3984        65981 :                                               tree _o1[2], _r1;
    3985        65981 :                                               _o1[0] = captures[2];
    3986        65981 :                                               _o1[1] = captures[4];
    3987        65981 :                                               _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3988        65981 :                                               res_op0 = _r1;
    3989              :                                             }
    3990        65981 :                                             tree res_op1;
    3991        65981 :                                             res_op1 =  wide_int_to_tree (type, add);
    3992        65981 :                                             tree _r;
    3993        65981 :                                             _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    3994        65981 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 913, __FILE__, __LINE__, true);
    3995        65981 :                                             return _r;
    3996              :                                           }
    3997        60825 : next_after_fail1261:;
    3998              :                                         }
    3999       126806 :                                   }
    4000              :                                 }
    4001        60825 :                                 break;
    4002              :                               }
    4003              :                             default:;
    4004              :                             }
    4005              :                           break;
    4006              :                         }
    4007              :                       default:;
    4008              :                       }
    4009              :                     break;
    4010              :                   }
    4011              :                 default:;
    4012              :                 }
    4013              :               break;
    4014              :             }
    4015              :           default:;
    4016              :           }
    4017              :         break;
    4018              :       }
    4019        26155 :     case LSHIFT_EXPR:
    4020        26155 :       {
    4021        26155 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4022        26155 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4023        26155 :         switch (TREE_CODE (_p1))
    4024              :           {
    4025          688 :           case LSHIFT_EXPR:
    4026          688 :             {
    4027          688 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4028          688 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4029          688 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4030              :                 {
    4031            7 :                   {
    4032            7 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    4033            7 :                     tree res = generic_simplify_56 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4034            7 :                     if (res) return res;
    4035              :                   }
    4036              :                 }
    4037              :               break;
    4038              :             }
    4039              :           default:;
    4040              :           }
    4041              :         break;
    4042              :       }
    4043       216681 :     case BIT_AND_EXPR:
    4044       216681 :       {
    4045       216681 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4046       216681 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4047       216681 :         switch (TREE_CODE (_p1))
    4048              :           {
    4049          300 :           case BIT_AND_EXPR:
    4050          300 :             {
    4051          300 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4052          300 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4053          300 :               {
    4054          300 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
    4055          300 :                 tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4056          300 :                 if (res) return res;
    4057              :               }
    4058          300 :               {
    4059          300 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q50 };
    4060          300 :                 tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4061          300 :                 if (res) return res;
    4062              :               }
    4063          300 :               {
    4064          300 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q51 };
    4065          300 :                 tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4066          300 :                 if (res) return res;
    4067              :               }
    4068          300 :               {
    4069          300 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q50 };
    4070          300 :                 tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4071          300 :                 if (res) return res;
    4072              :               }
    4073          300 :               break;
    4074              :             }
    4075       216681 :           default:;
    4076              :           }
    4077       216681 :         if (integer_onep (_q21))
    4078              :           {
    4079       129566 :             if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4080              :               {
    4081           29 :                 {
    4082           29 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    4083           29 :                   tree res = generic_simplify_57 (loc, type, _p0, _p1, captures);
    4084           29 :                   if (res) return res;
    4085              :                 }
    4086              :               }
    4087              :           }
    4088              :         break;
    4089              :       }
    4090     70762906 :     default:;
    4091              :     }
    4092     70762906 : if (real_zerop (_p0))
    4093              :   {
    4094            0 :     {
    4095            0 :       tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
    4096            0 :       tree res = generic_simplify_53 (loc, type, _p0, _p1, captures);
    4097            0 :       if (res) return res;
    4098              :     }
    4099              :   }
    4100     70762906 :   switch (TREE_CODE (_p1))
    4101              :     {
    4102         5559 :     case BIT_AND_EXPR:
    4103         5559 :       {
    4104         5559 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4105         5559 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4106         5559 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    4107              :           {
    4108           16 :             if (integer_onep (_q31))
    4109              :               {
    4110           16 :                 {
    4111           16 :                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    4112           16 :                   tree res = generic_simplify_57 (loc, type, _p0, _p1, captures);
    4113           16 :                   if (res) return res;
    4114              :                 }
    4115              :               }
    4116              :           }
    4117              :         break;
    4118              :       }
    4119     70762890 :     default:;
    4120              :     }
    4121     70762890 :   switch (TREE_CODE (_p0))
    4122              :     {
    4123       216652 :     case BIT_AND_EXPR:
    4124       216652 :       {
    4125       216652 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4126       216652 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4127       216652 :         switch (TREE_CODE (_p1))
    4128              :           {
    4129            9 :           case BIT_XOR_EXPR:
    4130            9 :             {
    4131            9 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4132            9 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4133            9 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4134              :                 {
    4135            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4136              :                     {
    4137            0 :                       {
    4138            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4139            0 :                         tree res = generic_simplify_21 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4140            0 :                         if (res) return res;
    4141              :                       }
    4142              :                     }
    4143              :                 }
    4144              :               break;
    4145              :             }
    4146            1 :           case BIT_IOR_EXPR:
    4147            1 :             {
    4148            1 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4149            1 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4150            1 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4151              :                 {
    4152            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4153              :                     {
    4154            0 :                       {
    4155            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4156            0 :                         tree res = generic_simplify_58 (loc, type, _p0, _p1, captures);
    4157            0 :                         if (res) return res;
    4158              :                       }
    4159              :                     }
    4160              :                 }
    4161              :               break;
    4162              :             }
    4163       216652 :           default:;
    4164              :           }
    4165       216652 :         switch (TREE_CODE (_q21))
    4166              :           {
    4167       216348 :           case INTEGER_CST:
    4168       216348 :             {
    4169       216348 :               switch (TREE_CODE (_p1))
    4170              :                 {
    4171        14695 :                 CASE_CONVERT:
    4172        14695 :                   {
    4173        14695 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4174        14695 :                     switch (TREE_CODE (_q50))
    4175              :                       {
    4176            0 :                       case BIT_AND_EXPR:
    4177            0 :                         {
    4178            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    4179            0 :                           tree _q61 = TREE_OPERAND (_q50, 1);
    4180            0 :                           switch (TREE_CODE (_q61))
    4181              :                             {
    4182            0 :                             case INTEGER_CST:
    4183            0 :                               {
    4184            0 :                                 {
    4185            0 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q60, _q61 };
    4186            0 :                                   tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4187            0 :                                   if (res) return res;
    4188              :                                 }
    4189            0 :                                 break;
    4190              :                               }
    4191              :                             default:;
    4192              :                             }
    4193              :                           break;
    4194              :                         }
    4195              :                       default:;
    4196              :                       }
    4197              :                     break;
    4198              :                   }
    4199          300 :                 case BIT_AND_EXPR:
    4200          300 :                   {
    4201          300 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4202          300 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    4203          300 :                     switch (TREE_CODE (_q51))
    4204              :                       {
    4205          300 :                       case INTEGER_CST:
    4206          300 :                         {
    4207          300 :                           {
    4208          300 :                             tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
    4209          300 :                             tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4210          300 :                             if (res) return res;
    4211              :                           }
    4212          200 :                           break;
    4213              :                         }
    4214              :                       default:;
    4215              :                       }
    4216              :                     break;
    4217              :                   }
    4218              :                 default:;
    4219              :                 }
    4220              :               break;
    4221              :             }
    4222              :           default:;
    4223              :           }
    4224              :         break;
    4225              :       }
    4226         1533 :     case BIT_XOR_EXPR:
    4227         1533 :       {
    4228         1533 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4229         1533 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4230         1533 :         switch (TREE_CODE (_p1))
    4231              :           {
    4232            0 :           case BIT_AND_EXPR:
    4233            0 :             {
    4234            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4235            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4236            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4237              :                 {
    4238            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4239              :                     {
    4240            0 :                       {
    4241            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4242            0 :                         tree res = generic_simplify_21 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4243            0 :                         if (res) return res;
    4244              :                       }
    4245              :                     }
    4246              :                 }
    4247              :               break;
    4248              :             }
    4249              :           default:;
    4250              :           }
    4251              :         break;
    4252              :       }
    4253          558 :     case BIT_IOR_EXPR:
    4254          558 :       {
    4255          558 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4256          558 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4257          558 :         switch (TREE_CODE (_p1))
    4258              :           {
    4259            0 :           case BIT_AND_EXPR:
    4260            0 :             {
    4261            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4262            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4263            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4264              :                 {
    4265            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4266              :                     {
    4267            0 :                       {
    4268            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4269            0 :                         tree res = generic_simplify_58 (loc, type, _p0, _p1, captures);
    4270            0 :                         if (res) return res;
    4271              :                       }
    4272              :                     }
    4273              :                 }
    4274              :               break;
    4275              :             }
    4276              :           default:;
    4277              :           }
    4278              :         break;
    4279              :       }
    4280      2057302 :     case MINUS_EXPR:
    4281      2057302 :       {
    4282      2057302 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4283      2057302 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4284      2057302 :         switch (TREE_CODE (_q20))
    4285              :           {
    4286            2 :           case BIT_AND_EXPR:
    4287            2 :             {
    4288            2 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4289            2 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4290            2 :               switch (TREE_CODE (_q21))
    4291              :                 {
    4292            1 :                 case BIT_IOR_EXPR:
    4293            1 :                   {
    4294            1 :                     tree _q60 = TREE_OPERAND (_q21, 0);
    4295            1 :                     tree _q61 = TREE_OPERAND (_q21, 1);
    4296            1 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    4297              :                       {
    4298            1 :                         if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
    4299              :                           {
    4300            1 :                             if (integer_all_onesp (_p1))
    4301              :                               {
    4302            1 :                                 {
    4303            1 :                                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    4304            1 :                                   tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    4305            1 :                                   if (res) return res;
    4306              :                                 }
    4307              :                               }
    4308              :                           }
    4309              :                       }
    4310            0 :                     if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    4311              :                       {
    4312            0 :                         if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    4313              :                           {
    4314            0 :                             if (integer_all_onesp (_p1))
    4315              :                               {
    4316            0 :                                 {
    4317            0 :                                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
    4318            0 :                                   tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    4319            0 :                                   if (res) return res;
    4320              :                                 }
    4321              :                               }
    4322              :                           }
    4323              :                       }
    4324              :                     break;
    4325              :                   }
    4326              :                 default:;
    4327              :                 }
    4328              :               break;
    4329              :             }
    4330      2057301 :           default:;
    4331              :           }
    4332      2057301 :       {
    4333      2057301 :         tree _q20_pops[1];
    4334      2057301 :         if (tree_nop_convert (_q20, _q20_pops))
    4335              :           {
    4336       918154 :             tree _q30 = _q20_pops[0];
    4337       918154 :             switch (TREE_CODE (_q30))
    4338              :               {
    4339            0 :               case BIT_AND_EXPR:
    4340            0 :                 {
    4341            0 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    4342            0 :                   tree _q41 = TREE_OPERAND (_q30, 1);
    4343            0 :                   {
    4344            0 :                     tree _q21_pops[1];
    4345            0 :                     if (tree_nop_convert (_q21, _q21_pops))
    4346              :                       {
    4347            0 :                         tree _q70 = _q21_pops[0];
    4348            0 :                         switch (TREE_CODE (_q70))
    4349              :                           {
    4350            0 :                           case BIT_IOR_EXPR:
    4351            0 :                             {
    4352            0 :                               tree _q80 = TREE_OPERAND (_q70, 0);
    4353            0 :                               tree _q81 = TREE_OPERAND (_q70, 1);
    4354            0 :                               if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
    4355              :                                 {
    4356            0 :                                   if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
    4357              :                                     {
    4358            0 :                                       if (integer_all_onesp (_p1))
    4359              :                                         {
    4360            0 :                                           {
    4361            0 :                                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
    4362            0 :                                             tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    4363            0 :                                             if (res) return res;
    4364              :                                           }
    4365              :                                         }
    4366              :                                     }
    4367              :                                 }
    4368            0 :                               if ((_q80 == _q41 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q41, 0) && types_match (_q80, _q41)))
    4369              :                                 {
    4370            0 :                                   if ((_q81 == _q40 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q40, 0) && types_match (_q81, _q40)))
    4371              :                                     {
    4372            0 :                                       if (integer_all_onesp (_p1))
    4373              :                                         {
    4374            0 :                                           {
    4375            0 :                                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q40 };
    4376            0 :                                             tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    4377            0 :                                             if (res) return res;
    4378              :                                           }
    4379              :                                         }
    4380              :                                     }
    4381              :                                 }
    4382              :                               break;
    4383              :                             }
    4384              :                           default:;
    4385              :                           }
    4386              :                       }
    4387              :                   }
    4388            0 :                   break;
    4389              :                 }
    4390              :               default:;
    4391              :               }
    4392              :           }
    4393              :       }
    4394      2057301 :         {
    4395      2057301 :           tree _q21_pops[1];
    4396      2057301 :           if (tree_nop_convert (_q21, _q21_pops))
    4397              :             {
    4398      1154958 :               tree _q40 = _q21_pops[0];
    4399      1154958 :               if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    4400              :                 {
    4401           34 :                   {
    4402           34 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    4403           34 :                     tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    4404           34 :                     if (res) return res;
    4405              :                   }
    4406              :                 }
    4407              :             }
    4408              :         }
    4409      2057271 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4410              :           {
    4411        45411 :             {
    4412        45411 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4413        45411 :               tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    4414        45411 :               if (res) return res;
    4415              :             }
    4416              :           }
    4417              :         break;
    4418              :       }
    4419     19142120 :     CASE_CONVERT:
    4420     19142120 :       {
    4421     19142120 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4422     19142120 :         switch (TREE_CODE (_q20))
    4423              :           {
    4424           72 :           case BIT_AND_EXPR:
    4425           72 :             {
    4426           72 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4427           72 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4428           72 :               switch (TREE_CODE (_q31))
    4429              :                 {
    4430            8 :                 case INTEGER_CST:
    4431            8 :                   {
    4432            8 :                     switch (TREE_CODE (_p1))
    4433              :                       {
    4434            0 :                       CASE_CONVERT:
    4435            0 :                         {
    4436            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    4437            0 :                           switch (TREE_CODE (_q60))
    4438              :                             {
    4439            0 :                             case BIT_AND_EXPR:
    4440            0 :                               {
    4441            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    4442            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    4443            0 :                                 switch (TREE_CODE (_q71))
    4444              :                                   {
    4445            0 :                                   case INTEGER_CST:
    4446            0 :                                     {
    4447            0 :                                       {
    4448            0 :                                         tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q60, _q70, _q71 };
    4449            0 :                                         tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4450            0 :                                         if (res) return res;
    4451              :                                       }
    4452            0 :                                       break;
    4453              :                                     }
    4454              :                                   default:;
    4455              :                                   }
    4456              :                                 break;
    4457              :                               }
    4458              :                             default:;
    4459              :                             }
    4460              :                           break;
    4461              :                         }
    4462            0 :                       case BIT_AND_EXPR:
    4463            0 :                         {
    4464            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    4465            0 :                           tree _q61 = TREE_OPERAND (_p1, 1);
    4466            0 :                           switch (TREE_CODE (_q61))
    4467              :                             {
    4468            0 :                             case INTEGER_CST:
    4469            0 :                               {
    4470            0 :                                 {
    4471            0 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1, _q60, _q61 };
    4472            0 :                                   tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    4473            0 :                                   if (res) return res;
    4474              :                                 }
    4475            0 :                                 break;
    4476              :                               }
    4477              :                             default:;
    4478              :                             }
    4479              :                           break;
    4480              :                         }
    4481              :                       default:;
    4482              :                       }
    4483              :                     break;
    4484              :                   }
    4485              :                 default:;
    4486              :                 }
    4487              :               break;
    4488              :             }
    4489         4433 :           case NEGATE_EXPR:
    4490         4433 :             {
    4491         4433 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4492         4433 :               {
    4493         4433 :                 tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q30 };
    4494         4433 :                 tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    4495         4433 :                 if (res) return res;
    4496              :               }
    4497         1825 :               break;
    4498              :             }
    4499              :           default:;
    4500              :           }
    4501              :         break;
    4502              :       }
    4503       121209 :     case COND_EXPR:
    4504       121209 :       {
    4505       121209 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4506       121209 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4507       121209 :         tree _q22 = TREE_OPERAND (_p0, 2);
    4508       121209 :         if (integer_zerop (_q22))
    4509              :           {
    4510       110199 :             switch (TREE_CODE (_p1))
    4511              :               {
    4512           44 :               case COND_EXPR:
    4513           44 :                 {
    4514           44 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    4515           44 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    4516           44 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    4517           44 :                   if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4518              :                     {
    4519            6 :                       if (integer_zerop (_q61))
    4520              :                         {
    4521            0 :                           {
    4522            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
    4523            0 :                             const enum tree_code op = PLUS_EXPR;
    4524            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1262;
    4525            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1262;
    4526            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1262;
    4527            0 :                             {
    4528            0 :                               tree res_op0;
    4529            0 :                               res_op0 = captures[1];
    4530            0 :                               tree res_op1;
    4531            0 :                               res_op1 = captures[2];
    4532            0 :                               tree res_op2;
    4533            0 :                               res_op2 = captures[4];
    4534            0 :                               tree _r;
    4535            0 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    4536            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
    4537            0 :                               return _r;
    4538              :                             }
    4539            0 : next_after_fail1262:;
    4540              :                           }
    4541              :                         }
    4542              :                     }
    4543              :                   break;
    4544              :                 }
    4545              :               default:;
    4546              :               }
    4547              :           }
    4548       121209 :         if (integer_zerop (_q21))
    4549              :           {
    4550         1035 :             switch (TREE_CODE (_p1))
    4551              :               {
    4552            0 :               case COND_EXPR:
    4553            0 :                 {
    4554            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    4555            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    4556            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    4557            0 :                   if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4558              :                     {
    4559            0 :                       if (integer_zerop (_q62))
    4560              :                         {
    4561            0 :                           {
    4562            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
    4563            0 :                             const enum tree_code op = PLUS_EXPR;
    4564            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1263;
    4565            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1263;
    4566            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1263;
    4567            0 :                             {
    4568            0 :                               tree res_op0;
    4569            0 :                               res_op0 = captures[1];
    4570            0 :                               tree res_op1;
    4571            0 :                               res_op1 = captures[2];
    4572            0 :                               tree res_op2;
    4573            0 :                               res_op2 = captures[4];
    4574            0 :                               tree _r;
    4575            0 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    4576            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
    4577            0 :                               return _r;
    4578              :                             }
    4579            0 : next_after_fail1263:;
    4580              :                           }
    4581              :                         }
    4582              :                     }
    4583              :                   break;
    4584              :                 }
    4585              :               default:;
    4586              :               }
    4587              :           }
    4588       121209 :         switch (TREE_CODE (_q20))
    4589              :           {
    4590        29444 :           case LT_EXPR:
    4591        29444 :             {
    4592        29444 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4593        29444 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4594        29444 :               if (zerop (_q22))
    4595              :                 {
    4596        29378 :                   switch (TREE_CODE (_p1))
    4597              :                     {
    4598            0 :                     case COND_EXPR:
    4599            0 :                       {
    4600            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4601            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4602            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4603            0 :                         switch (TREE_CODE (_q80))
    4604              :                           {
    4605            0 :                           case GE_EXPR:
    4606            0 :                             {
    4607            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4608            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4609            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4610              :                                 {
    4611            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4612              :                                     {
    4613            0 :                                       if (zerop (_q82))
    4614              :                                         {
    4615            0 :                                           {
    4616            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4617            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR, GE_EXPR);
    4618            0 :                                             if (res) return res;
    4619              :                                           }
    4620              :                                         }
    4621              :                                     }
    4622              :                                 }
    4623              :                               break;
    4624              :                             }
    4625              :                           default:;
    4626              :                           }
    4627              :                         break;
    4628              :                       }
    4629              :                     default:;
    4630              :                     }
    4631              :                 }
    4632              :               break;
    4633              :             }
    4634        26668 :           case LE_EXPR:
    4635        26668 :             {
    4636        26668 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4637        26668 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4638        26668 :               if (zerop (_q22))
    4639              :                 {
    4640        26530 :                   switch (TREE_CODE (_p1))
    4641              :                     {
    4642            5 :                     case COND_EXPR:
    4643            5 :                       {
    4644            5 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4645            5 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4646            5 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4647            5 :                         switch (TREE_CODE (_q80))
    4648              :                           {
    4649            0 :                           case GT_EXPR:
    4650            0 :                             {
    4651            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4652            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4653            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4654              :                                 {
    4655            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4656              :                                     {
    4657            0 :                                       if (zerop (_q82))
    4658              :                                         {
    4659            0 :                                           {
    4660            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4661            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR, GT_EXPR);
    4662            0 :                                             if (res) return res;
    4663              :                                           }
    4664              :                                         }
    4665              :                                     }
    4666              :                                 }
    4667              :                               break;
    4668              :                             }
    4669              :                           default:;
    4670              :                           }
    4671              :                         break;
    4672              :                       }
    4673              :                     default:;
    4674              :                     }
    4675              :                 }
    4676              :               break;
    4677              :             }
    4678         1051 :           case EQ_EXPR:
    4679         1051 :             {
    4680         1051 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4681         1051 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4682         1051 :               if (zerop (_q22))
    4683              :                 {
    4684          570 :                   switch (TREE_CODE (_p1))
    4685              :                     {
    4686           32 :                     case COND_EXPR:
    4687           32 :                       {
    4688           32 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4689           32 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4690           32 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4691           32 :                         switch (TREE_CODE (_q80))
    4692              :                           {
    4693            0 :                           case NE_EXPR:
    4694            0 :                             {
    4695            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4696            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4697            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4698              :                                 {
    4699            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4700              :                                     {
    4701            0 :                                       if (zerop (_q82))
    4702              :                                         {
    4703            0 :                                           {
    4704            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4705            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR, NE_EXPR);
    4706            0 :                                             if (res) return res;
    4707              :                                           }
    4708              :                                         }
    4709              :                                     }
    4710              :                                 }
    4711              :                               break;
    4712              :                             }
    4713              :                           default:;
    4714              :                           }
    4715              :                         break;
    4716              :                       }
    4717              :                     default:;
    4718              :                     }
    4719              :                 }
    4720              :               break;
    4721              :             }
    4722         8068 :           case NE_EXPR:
    4723         8068 :             {
    4724         8068 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4725         8068 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4726         8068 :               if (zerop (_q22))
    4727              :                 {
    4728         5463 :                   switch (TREE_CODE (_p1))
    4729              :                     {
    4730            7 :                     case COND_EXPR:
    4731            7 :                       {
    4732            7 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4733            7 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4734            7 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4735            7 :                         switch (TREE_CODE (_q80))
    4736              :                           {
    4737            0 :                           case EQ_EXPR:
    4738            0 :                             {
    4739            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4740            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4741            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4742              :                                 {
    4743            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4744              :                                     {
    4745            0 :                                       if (zerop (_q82))
    4746              :                                         {
    4747            0 :                                           {
    4748            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4749            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR, EQ_EXPR);
    4750            0 :                                             if (res) return res;
    4751              :                                           }
    4752              :                                         }
    4753              :                                     }
    4754              :                                 }
    4755              :                               break;
    4756              :                             }
    4757              :                           default:;
    4758              :                           }
    4759              :                         break;
    4760              :                       }
    4761              :                     default:;
    4762              :                     }
    4763              :                 }
    4764              :               break;
    4765              :             }
    4766        18247 :           case GE_EXPR:
    4767        18247 :             {
    4768        18247 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4769        18247 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4770        18247 :               if (zerop (_q22))
    4771              :                 {
    4772        16915 :                   switch (TREE_CODE (_p1))
    4773              :                     {
    4774            0 :                     case COND_EXPR:
    4775            0 :                       {
    4776            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4777            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4778            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4779            0 :                         switch (TREE_CODE (_q80))
    4780              :                           {
    4781            0 :                           case LT_EXPR:
    4782            0 :                             {
    4783            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4784            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4785            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4786              :                                 {
    4787            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4788              :                                     {
    4789            0 :                                       if (zerop (_q82))
    4790              :                                         {
    4791            0 :                                           {
    4792            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4793            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR, LT_EXPR);
    4794            0 :                                             if (res) return res;
    4795              :                                           }
    4796              :                                         }
    4797              :                                     }
    4798              :                                 }
    4799              :                               break;
    4800              :                             }
    4801              :                           default:;
    4802              :                           }
    4803              :                         break;
    4804              :                       }
    4805              :                     default:;
    4806              :                     }
    4807              :                 }
    4808              :               break;
    4809              :             }
    4810        30878 :           case GT_EXPR:
    4811        30878 :             {
    4812        30878 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4813        30878 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4814        30878 :               if (zerop (_q22))
    4815              :                 {
    4816        28561 :                   switch (TREE_CODE (_p1))
    4817              :                     {
    4818            0 :                     case COND_EXPR:
    4819            0 :                       {
    4820            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4821            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4822            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4823            0 :                         switch (TREE_CODE (_q80))
    4824              :                           {
    4825            0 :                           case LE_EXPR:
    4826            0 :                             {
    4827            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4828            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4829            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4830              :                                 {
    4831            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4832              :                                     {
    4833            0 :                                       if (zerop (_q82))
    4834              :                                         {
    4835            0 :                                           {
    4836            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4837            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR, LE_EXPR);
    4838            0 :                                             if (res) return res;
    4839              :                                           }
    4840              :                                         }
    4841              :                                     }
    4842              :                                 }
    4843              :                               break;
    4844              :                             }
    4845              :                           default:;
    4846              :                           }
    4847              :                         break;
    4848              :                       }
    4849              :                     default:;
    4850              :                     }
    4851              :                 }
    4852              :               break;
    4853              :             }
    4854            0 :           case UNORDERED_EXPR:
    4855            0 :             {
    4856            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4857            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4858            0 :               if (zerop (_q22))
    4859              :                 {
    4860            0 :                   switch (TREE_CODE (_p1))
    4861              :                     {
    4862            0 :                     case COND_EXPR:
    4863            0 :                       {
    4864            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4865            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4866            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4867            0 :                         switch (TREE_CODE (_q80))
    4868              :                           {
    4869            0 :                           case ORDERED_EXPR:
    4870            0 :                             {
    4871            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4872            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4873            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4874              :                                 {
    4875            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4876              :                                     {
    4877            0 :                                       if (zerop (_q82))
    4878              :                                         {
    4879            0 :                                           {
    4880            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4881            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
    4882            0 :                                             if (res) return res;
    4883              :                                           }
    4884              :                                         }
    4885              :                                     }
    4886              :                                 }
    4887              :                               break;
    4888              :                             }
    4889              :                           default:;
    4890              :                           }
    4891              :                         break;
    4892              :                       }
    4893              :                     default:;
    4894              :                     }
    4895              :                 }
    4896              :               break;
    4897              :             }
    4898            0 :           case ORDERED_EXPR:
    4899            0 :             {
    4900            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4901            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4902            0 :               if (zerop (_q22))
    4903              :                 {
    4904            0 :                   switch (TREE_CODE (_p1))
    4905              :                     {
    4906            0 :                     case COND_EXPR:
    4907            0 :                       {
    4908            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4909            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4910            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4911            0 :                         switch (TREE_CODE (_q80))
    4912              :                           {
    4913            0 :                           case UNORDERED_EXPR:
    4914            0 :                             {
    4915            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4916            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4917            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4918              :                                 {
    4919            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4920              :                                     {
    4921            0 :                                       if (zerop (_q82))
    4922              :                                         {
    4923            0 :                                           {
    4924            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4925            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
    4926            0 :                                             if (res) return res;
    4927              :                                           }
    4928              :                                         }
    4929              :                                     }
    4930              :                                 }
    4931              :                               break;
    4932              :                             }
    4933              :                           default:;
    4934              :                           }
    4935              :                         break;
    4936              :                       }
    4937              :                     default:;
    4938              :                     }
    4939              :                 }
    4940              :               break;
    4941              :             }
    4942            0 :           case UNLT_EXPR:
    4943            0 :             {
    4944            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4945            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4946            0 :               if (zerop (_q22))
    4947              :                 {
    4948            0 :                   switch (TREE_CODE (_p1))
    4949              :                     {
    4950            0 :                     case COND_EXPR:
    4951            0 :                       {
    4952            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4953            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4954            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4955            0 :                         switch (TREE_CODE (_q80))
    4956              :                           {
    4957            0 :                           case GE_EXPR:
    4958            0 :                             {
    4959            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    4960            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    4961            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    4962              :                                 {
    4963            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    4964              :                                     {
    4965            0 :                                       if (zerop (_q82))
    4966              :                                         {
    4967            0 :                                           {
    4968            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    4969            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLT_EXPR, GE_EXPR);
    4970            0 :                                             if (res) return res;
    4971              :                                           }
    4972              :                                         }
    4973              :                                     }
    4974              :                                 }
    4975              :                               break;
    4976              :                             }
    4977              :                           default:;
    4978              :                           }
    4979              :                         break;
    4980              :                       }
    4981              :                     default:;
    4982              :                     }
    4983              :                 }
    4984              :               break;
    4985              :             }
    4986            0 :           case UNLE_EXPR:
    4987            0 :             {
    4988            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4989            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4990            0 :               if (zerop (_q22))
    4991              :                 {
    4992            0 :                   switch (TREE_CODE (_p1))
    4993              :                     {
    4994            0 :                     case COND_EXPR:
    4995            0 :                       {
    4996            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    4997            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    4998            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    4999            0 :                         switch (TREE_CODE (_q80))
    5000              :                           {
    5001            0 :                           case GT_EXPR:
    5002            0 :                             {
    5003            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5004            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5005            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5006              :                                 {
    5007            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5008              :                                     {
    5009            0 :                                       if (zerop (_q82))
    5010              :                                         {
    5011            0 :                                           {
    5012            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    5013            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLE_EXPR, GT_EXPR);
    5014            0 :                                             if (res) return res;
    5015              :                                           }
    5016              :                                         }
    5017              :                                     }
    5018              :                                 }
    5019              :                               break;
    5020              :                             }
    5021              :                           default:;
    5022              :                           }
    5023              :                         break;
    5024              :                       }
    5025              :                     default:;
    5026              :                     }
    5027              :                 }
    5028              :               break;
    5029              :             }
    5030            0 :           case UNGT_EXPR:
    5031            0 :             {
    5032            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5033            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5034            0 :               if (zerop (_q22))
    5035              :                 {
    5036            0 :                   switch (TREE_CODE (_p1))
    5037              :                     {
    5038            0 :                     case COND_EXPR:
    5039            0 :                       {
    5040            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5041            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5042            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5043            0 :                         switch (TREE_CODE (_q80))
    5044              :                           {
    5045            0 :                           case LE_EXPR:
    5046            0 :                             {
    5047            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5048            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5049            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5050              :                                 {
    5051            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5052              :                                     {
    5053            0 :                                       if (zerop (_q82))
    5054              :                                         {
    5055            0 :                                           {
    5056            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    5057            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGT_EXPR, LE_EXPR);
    5058            0 :                                             if (res) return res;
    5059              :                                           }
    5060              :                                         }
    5061              :                                     }
    5062              :                                 }
    5063              :                               break;
    5064              :                             }
    5065              :                           default:;
    5066              :                           }
    5067              :                         break;
    5068              :                       }
    5069              :                     default:;
    5070              :                     }
    5071              :                 }
    5072              :               break;
    5073              :             }
    5074            0 :           case UNGE_EXPR:
    5075            0 :             {
    5076            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5077            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5078            0 :               if (zerop (_q22))
    5079              :                 {
    5080            0 :                   switch (TREE_CODE (_p1))
    5081              :                     {
    5082            0 :                     case COND_EXPR:
    5083            0 :                       {
    5084            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5085            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5086            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5087            0 :                         switch (TREE_CODE (_q80))
    5088              :                           {
    5089            0 :                           case LT_EXPR:
    5090            0 :                             {
    5091            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5092            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5093            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5094              :                                 {
    5095            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5096              :                                     {
    5097            0 :                                       if (zerop (_q82))
    5098              :                                         {
    5099            0 :                                           {
    5100            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    5101            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGE_EXPR, LT_EXPR);
    5102            0 :                                             if (res) return res;
    5103              :                                           }
    5104              :                                         }
    5105              :                                     }
    5106              :                                 }
    5107              :                               break;
    5108              :                             }
    5109              :                           default:;
    5110              :                           }
    5111              :                         break;
    5112              :                       }
    5113              :                     default:;
    5114              :                     }
    5115              :                 }
    5116              :               break;
    5117              :             }
    5118            0 :           case UNEQ_EXPR:
    5119            0 :             {
    5120            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5121            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5122            0 :               if (zerop (_q22))
    5123              :                 {
    5124            0 :                   switch (TREE_CODE (_p1))
    5125              :                     {
    5126            0 :                     case COND_EXPR:
    5127            0 :                       {
    5128            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5129            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5130            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5131            0 :                         switch (TREE_CODE (_q80))
    5132              :                           {
    5133            0 :                           case LTGT_EXPR:
    5134            0 :                             {
    5135            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5136            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5137            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5138              :                                 {
    5139            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5140              :                                     {
    5141            0 :                                       if (zerop (_q82))
    5142              :                                         {
    5143            0 :                                           {
    5144            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    5145            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNEQ_EXPR, LTGT_EXPR);
    5146            0 :                                             if (res) return res;
    5147              :                                           }
    5148              :                                         }
    5149              :                                     }
    5150              :                                 }
    5151              :                               break;
    5152              :                             }
    5153              :                           default:;
    5154              :                           }
    5155              :                         break;
    5156              :                       }
    5157              :                     default:;
    5158              :                     }
    5159              :                 }
    5160              :               break;
    5161              :             }
    5162            0 :           case LTGT_EXPR:
    5163            0 :             {
    5164            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5165            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5166            0 :               if (zerop (_q22))
    5167              :                 {
    5168            0 :                   switch (TREE_CODE (_p1))
    5169              :                     {
    5170            0 :                     case COND_EXPR:
    5171            0 :                       {
    5172            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5173            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5174            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5175            0 :                         switch (TREE_CODE (_q80))
    5176              :                           {
    5177            0 :                           case UNEQ_EXPR:
    5178            0 :                             {
    5179            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5180            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5181            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5182              :                                 {
    5183            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5184              :                                     {
    5185            0 :                                       if (zerop (_q82))
    5186              :                                         {
    5187            0 :                                           {
    5188            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    5189            0 :                                             tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, PLUS_EXPR, LTGT_EXPR, UNEQ_EXPR);
    5190            0 :                                             if (res) return res;
    5191              :                                           }
    5192              :                                         }
    5193              :                                     }
    5194              :                                 }
    5195              :                               break;
    5196              :                             }
    5197              :                           default:;
    5198              :                           }
    5199              :                         break;
    5200              :                       }
    5201              :                     default:;
    5202              :                     }
    5203              :                 }
    5204              :               break;
    5205              :             }
    5206              :           default:;
    5207              :           }
    5208              :         break;
    5209              :       }
    5210          168 :     case VEC_COND_EXPR:
    5211          168 :       {
    5212          168 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5213          168 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5214          168 :         tree _q22 = TREE_OPERAND (_p0, 2);
    5215          168 :         if (integer_zerop (_q22))
    5216              :           {
    5217          106 :             switch (TREE_CODE (_p1))
    5218              :               {
    5219           24 :               case VEC_COND_EXPR:
    5220           24 :                 {
    5221           24 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    5222           24 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    5223           24 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    5224           24 :                   if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    5225              :                     {
    5226            0 :                       if (integer_zerop (_q61))
    5227              :                         {
    5228            0 :                           {
    5229            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
    5230            0 :                             const enum tree_code op = PLUS_EXPR;
    5231            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1264;
    5232            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1264;
    5233            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1264;
    5234            0 :                             {
    5235            0 :                               tree res_op0;
    5236            0 :                               res_op0 = captures[1];
    5237            0 :                               tree res_op1;
    5238            0 :                               res_op1 = captures[2];
    5239            0 :                               tree res_op2;
    5240            0 :                               res_op2 = captures[4];
    5241            0 :                               tree _r;
    5242            0 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5243            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
    5244            0 :                               return _r;
    5245              :                             }
    5246            0 : next_after_fail1264:;
    5247              :                           }
    5248              :                         }
    5249              :                     }
    5250              :                   break;
    5251              :                 }
    5252              :               default:;
    5253              :               }
    5254              :           }
    5255          168 :         if (integer_zerop (_q21))
    5256              :           {
    5257            0 :             switch (TREE_CODE (_p1))
    5258              :               {
    5259            0 :               case VEC_COND_EXPR:
    5260            0 :                 {
    5261            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    5262            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    5263            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    5264            0 :                   if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    5265              :                     {
    5266            0 :                       if (integer_zerop (_q62))
    5267              :                         {
    5268            0 :                           {
    5269            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
    5270            0 :                             const enum tree_code op = PLUS_EXPR;
    5271            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1265;
    5272            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1265;
    5273            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1265;
    5274            0 :                             {
    5275            0 :                               tree res_op0;
    5276            0 :                               res_op0 = captures[1];
    5277            0 :                               tree res_op1;
    5278            0 :                               res_op1 = captures[2];
    5279            0 :                               tree res_op2;
    5280            0 :                               res_op2 = captures[4];
    5281            0 :                               tree _r;
    5282            0 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5283            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
    5284            0 :                               return _r;
    5285              :                             }
    5286            0 : next_after_fail1265:;
    5287              :                           }
    5288              :                         }
    5289              :                     }
    5290              :                   break;
    5291              :                 }
    5292              :               default:;
    5293              :               }
    5294              :           }
    5295          168 :         switch (TREE_CODE (_q20))
    5296              :           {
    5297            8 :           case LT_EXPR:
    5298            8 :             {
    5299            8 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5300            8 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5301            8 :               if (integer_zerop (_q22))
    5302              :                 {
    5303            8 :                   switch (TREE_CODE (_p1))
    5304              :                     {
    5305            0 :                     case VEC_COND_EXPR:
    5306            0 :                       {
    5307            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5308            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5309            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5310            0 :                         switch (TREE_CODE (_q80))
    5311              :                           {
    5312            0 :                           case GE_EXPR:
    5313            0 :                             {
    5314            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5315            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5316            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5317              :                                 {
    5318            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5319              :                                     {
    5320            0 :                                       if (integer_zerop (_q82))
    5321              :                                         {
    5322            0 :                                           {
    5323            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5324            0 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR, GE_EXPR);
    5325            0 :                                             if (res) return res;
    5326              :                                           }
    5327              :                                         }
    5328              :                                     }
    5329              :                                 }
    5330              :                               break;
    5331              :                             }
    5332              :                           default:;
    5333              :                           }
    5334              :                         break;
    5335              :                       }
    5336              :                     default:;
    5337              :                     }
    5338              :                 }
    5339              :               break;
    5340              :             }
    5341            8 :           case LE_EXPR:
    5342            8 :             {
    5343            8 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5344            8 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5345            8 :               if (integer_zerop (_q22))
    5346              :                 {
    5347            8 :                   switch (TREE_CODE (_p1))
    5348              :                     {
    5349            0 :                     case VEC_COND_EXPR:
    5350            0 :                       {
    5351            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5352            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5353            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5354            0 :                         switch (TREE_CODE (_q80))
    5355              :                           {
    5356            0 :                           case GT_EXPR:
    5357            0 :                             {
    5358            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5359            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5360            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5361              :                                 {
    5362            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5363              :                                     {
    5364            0 :                                       if (integer_zerop (_q82))
    5365              :                                         {
    5366            0 :                                           {
    5367            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5368            0 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR, GT_EXPR);
    5369            0 :                                             if (res) return res;
    5370              :                                           }
    5371              :                                         }
    5372              :                                     }
    5373              :                                 }
    5374              :                               break;
    5375              :                             }
    5376              :                           default:;
    5377              :                           }
    5378              :                         break;
    5379              :                       }
    5380              :                     default:;
    5381              :                     }
    5382              :                 }
    5383              :               break;
    5384              :             }
    5385           34 :           case EQ_EXPR:
    5386           34 :             {
    5387           34 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5388           34 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5389           34 :               if (integer_zerop (_q22))
    5390              :                 {
    5391           34 :                   switch (TREE_CODE (_p1))
    5392              :                     {
    5393           24 :                     case VEC_COND_EXPR:
    5394           24 :                       {
    5395           24 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5396           24 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5397           24 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5398           24 :                         switch (TREE_CODE (_q80))
    5399              :                           {
    5400           24 :                           case NE_EXPR:
    5401           24 :                             {
    5402           24 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5403           24 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5404           24 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5405              :                                 {
    5406           24 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5407              :                                     {
    5408           24 :                                       if (integer_zerop (_q82))
    5409              :                                         {
    5410           24 :                                           {
    5411           24 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5412           24 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR, NE_EXPR);
    5413           24 :                                             if (res) return res;
    5414              :                                           }
    5415              :                                         }
    5416              :                                     }
    5417              :                                 }
    5418              :                               break;
    5419              :                             }
    5420              :                           default:;
    5421              :                           }
    5422              :                         break;
    5423              :                       }
    5424              :                     default:;
    5425              :                     }
    5426              :                 }
    5427              :               break;
    5428              :             }
    5429           22 :           case NE_EXPR:
    5430           22 :             {
    5431           22 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5432           22 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5433           22 :               if (integer_zerop (_q22))
    5434              :                 {
    5435            8 :                   switch (TREE_CODE (_p1))
    5436              :                     {
    5437            0 :                     case VEC_COND_EXPR:
    5438            0 :                       {
    5439            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5440            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5441            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5442            0 :                         switch (TREE_CODE (_q80))
    5443              :                           {
    5444            0 :                           case EQ_EXPR:
    5445            0 :                             {
    5446            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5447            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5448            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5449              :                                 {
    5450            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5451              :                                     {
    5452            0 :                                       if (integer_zerop (_q82))
    5453              :                                         {
    5454            0 :                                           {
    5455            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5456            0 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR, EQ_EXPR);
    5457            0 :                                             if (res) return res;
    5458              :                                           }
    5459              :                                         }
    5460              :                                     }
    5461              :                                 }
    5462              :                               break;
    5463              :                             }
    5464              :                           default:;
    5465              :                           }
    5466              :                         break;
    5467              :                       }
    5468              :                     default:;
    5469              :                     }
    5470              :                 }
    5471              :               break;
    5472              :             }
    5473           15 :           case GE_EXPR:
    5474           15 :             {
    5475           15 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5476           15 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5477           15 :               if (integer_zerop (_q22))
    5478              :                 {
    5479           15 :                   switch (TREE_CODE (_p1))
    5480              :                     {
    5481            0 :                     case VEC_COND_EXPR:
    5482            0 :                       {
    5483            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5484            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5485            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5486            0 :                         switch (TREE_CODE (_q80))
    5487              :                           {
    5488            0 :                           case LT_EXPR:
    5489            0 :                             {
    5490            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5491            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5492            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5493              :                                 {
    5494            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5495              :                                     {
    5496            0 :                                       if (integer_zerop (_q82))
    5497              :                                         {
    5498            0 :                                           {
    5499            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5500            0 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR, LT_EXPR);
    5501            0 :                                             if (res) return res;
    5502              :                                           }
    5503              :                                         }
    5504              :                                     }
    5505              :                                 }
    5506              :                               break;
    5507              :                             }
    5508              :                           default:;
    5509              :                           }
    5510              :                         break;
    5511              :                       }
    5512              :                     default:;
    5513              :                     }
    5514              :                 }
    5515              :               break;
    5516              :             }
    5517           81 :           case GT_EXPR:
    5518           81 :             {
    5519           81 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5520           81 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5521           81 :               if (integer_zerop (_q22))
    5522              :                 {
    5523           33 :                   switch (TREE_CODE (_p1))
    5524              :                     {
    5525            0 :                     case VEC_COND_EXPR:
    5526            0 :                       {
    5527            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5528            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5529            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5530            0 :                         switch (TREE_CODE (_q80))
    5531              :                           {
    5532            0 :                           case LE_EXPR:
    5533            0 :                             {
    5534            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5535            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5536            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5537              :                                 {
    5538            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5539              :                                     {
    5540            0 :                                       if (integer_zerop (_q82))
    5541              :                                         {
    5542            0 :                                           {
    5543            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5544            0 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR, LE_EXPR);
    5545            0 :                                             if (res) return res;
    5546              :                                           }
    5547              :                                         }
    5548              :                                     }
    5549              :                                 }
    5550              :                               break;
    5551              :                             }
    5552              :                           default:;
    5553              :                           }
    5554              :                         break;
    5555              :                       }
    5556              :                     default:;
    5557              :                     }
    5558              :                 }
    5559              :               break;
    5560              :             }
    5561            0 :           case UNORDERED_EXPR:
    5562            0 :             {
    5563            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5564            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5565            0 :               if (integer_zerop (_q22))
    5566              :                 {
    5567            0 :                   switch (TREE_CODE (_p1))
    5568              :                     {
    5569            0 :                     case VEC_COND_EXPR:
    5570            0 :                       {
    5571            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5572            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5573            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5574            0 :                         switch (TREE_CODE (_q80))
    5575              :                           {
    5576            0 :                           case ORDERED_EXPR:
    5577            0 :                             {
    5578            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5579            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5580            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5581              :                                 {
    5582            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5583              :                                     {
    5584            0 :                                       if (integer_zerop (_q82))
    5585              :                                         {
    5586            0 :                                           {
    5587            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5588            0 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
    5589            0 :                                             if (res) return res;
    5590              :                                           }
    5591              :                                         }
    5592              :                                     }
    5593              :                                 }
    5594              :                               break;
    5595              :                             }
    5596              :                           default:;
    5597              :                           }
    5598              :                         break;
    5599              :                       }
    5600              :                     default:;
    5601              :                     }
    5602              :                 }
    5603              :               break;
    5604              :             }
    5605            0 :           case ORDERED_EXPR:
    5606            0 :             {
    5607            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5608            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5609            0 :               if (integer_zerop (_q22))
    5610              :                 {
    5611            0 :                   switch (TREE_CODE (_p1))
    5612              :                     {
    5613            0 :                     case VEC_COND_EXPR:
    5614            0 :                       {
    5615            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5616            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5617            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5618            0 :                         switch (TREE_CODE (_q80))
    5619              :                           {
    5620            0 :                           case UNORDERED_EXPR:
    5621            0 :                             {
    5622            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5623            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5624            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5625              :                                 {
    5626            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5627              :                                     {
    5628            0 :                                       if (integer_zerop (_q82))
    5629              :                                         {
    5630            0 :                                           {
    5631            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5632            0 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
    5633            0 :                                             if (res) return res;
    5634              :                                           }
    5635              :                                         }
    5636              :                                     }
    5637              :                                 }
    5638              :                               break;
    5639              :                             }
    5640              :                           default:;
    5641              :                           }
    5642              :                         break;
    5643              :                       }
    5644              :                     default:;
    5645              :                     }
    5646              :                 }
    5647              :               break;
    5648              :             }
    5649            0 :           case UNLT_EXPR:
    5650            0 :             {
    5651            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5652            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5653            0 :               if (integer_zerop (_q22))
    5654              :                 {
    5655            0 :                   switch (TREE_CODE (_p1))
    5656              :                     {
    5657            0 :                     case VEC_COND_EXPR:
    5658            0 :                       {
    5659            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5660            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5661            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5662            0 :                         switch (TREE_CODE (_q80))
    5663              :                           {
    5664            0 :                           case GE_EXPR:
    5665            0 :                             {
    5666            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5667            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5668            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5669              :                                 {
    5670            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5671              :                                     {
    5672            0 :                                       if (integer_zerop (_q82))
    5673              :                                         {
    5674            0 :                                           {
    5675            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5676            0 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLT_EXPR, GE_EXPR);
    5677            0 :                                             if (res) return res;
    5678              :                                           }
    5679              :                                         }
    5680              :                                     }
    5681              :                                 }
    5682              :                               break;
    5683              :                             }
    5684              :                           default:;
    5685              :                           }
    5686              :                         break;
    5687              :                       }
    5688              :                     default:;
    5689              :                     }
    5690              :                 }
    5691              :               break;
    5692              :             }
    5693            0 :           case UNLE_EXPR:
    5694            0 :             {
    5695            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5696            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5697            0 :               if (integer_zerop (_q22))
    5698              :                 {
    5699            0 :                   switch (TREE_CODE (_p1))
    5700              :                     {
    5701            0 :                     case VEC_COND_EXPR:
    5702            0 :                       {
    5703            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5704            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5705            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5706            0 :                         switch (TREE_CODE (_q80))
    5707              :                           {
    5708            0 :                           case GT_EXPR:
    5709            0 :                             {
    5710            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5711            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5712            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5713              :                                 {
    5714            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5715              :                                     {
    5716            0 :                                       if (integer_zerop (_q82))
    5717              :                                         {
    5718            0 :                                           {
    5719            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5720            0 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNLE_EXPR, GT_EXPR);
    5721            0 :                                             if (res) return res;
    5722              :                                           }
    5723              :                                         }
    5724              :                                     }
    5725              :                                 }
    5726              :                               break;
    5727              :                             }
    5728              :                           default:;
    5729              :                           }
    5730              :                         break;
    5731              :                       }
    5732              :                     default:;
    5733              :                     }
    5734              :                 }
    5735              :               break;
    5736              :             }
    5737            0 :           case UNGT_EXPR:
    5738            0 :             {
    5739            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5740            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5741            0 :               if (integer_zerop (_q22))
    5742              :                 {
    5743            0 :                   switch (TREE_CODE (_p1))
    5744              :                     {
    5745            0 :                     case VEC_COND_EXPR:
    5746            0 :                       {
    5747            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5748            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5749            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5750            0 :                         switch (TREE_CODE (_q80))
    5751              :                           {
    5752            0 :                           case LE_EXPR:
    5753            0 :                             {
    5754            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5755            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5756            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5757              :                                 {
    5758            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5759              :                                     {
    5760            0 :                                       if (integer_zerop (_q82))
    5761              :                                         {
    5762            0 :                                           {
    5763            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5764            0 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGT_EXPR, LE_EXPR);
    5765            0 :                                             if (res) return res;
    5766              :                                           }
    5767              :                                         }
    5768              :                                     }
    5769              :                                 }
    5770              :                               break;
    5771              :                             }
    5772              :                           default:;
    5773              :                           }
    5774              :                         break;
    5775              :                       }
    5776              :                     default:;
    5777              :                     }
    5778              :                 }
    5779              :               break;
    5780              :             }
    5781            0 :           case UNGE_EXPR:
    5782            0 :             {
    5783            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5784            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5785            0 :               if (integer_zerop (_q22))
    5786              :                 {
    5787            0 :                   switch (TREE_CODE (_p1))
    5788              :                     {
    5789            0 :                     case VEC_COND_EXPR:
    5790            0 :                       {
    5791            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5792            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5793            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5794            0 :                         switch (TREE_CODE (_q80))
    5795              :                           {
    5796            0 :                           case LT_EXPR:
    5797            0 :                             {
    5798            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5799            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5800            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5801              :                                 {
    5802            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5803              :                                     {
    5804            0 :                                       if (integer_zerop (_q82))
    5805              :                                         {
    5806            0 :                                           {
    5807            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5808            0 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNGE_EXPR, LT_EXPR);
    5809            0 :                                             if (res) return res;
    5810              :                                           }
    5811              :                                         }
    5812              :                                     }
    5813              :                                 }
    5814              :                               break;
    5815              :                             }
    5816              :                           default:;
    5817              :                           }
    5818              :                         break;
    5819              :                       }
    5820              :                     default:;
    5821              :                     }
    5822              :                 }
    5823              :               break;
    5824              :             }
    5825            0 :           case UNEQ_EXPR:
    5826            0 :             {
    5827            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5828            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5829            0 :               if (integer_zerop (_q22))
    5830              :                 {
    5831            0 :                   switch (TREE_CODE (_p1))
    5832              :                     {
    5833            0 :                     case VEC_COND_EXPR:
    5834            0 :                       {
    5835            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5836            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5837            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5838            0 :                         switch (TREE_CODE (_q80))
    5839              :                           {
    5840            0 :                           case LTGT_EXPR:
    5841            0 :                             {
    5842            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5843            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5844            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5845              :                                 {
    5846            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5847              :                                     {
    5848            0 :                                       if (integer_zerop (_q82))
    5849              :                                         {
    5850            0 :                                           {
    5851            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5852            0 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, UNEQ_EXPR, LTGT_EXPR);
    5853            0 :                                             if (res) return res;
    5854              :                                           }
    5855              :                                         }
    5856              :                                     }
    5857              :                                 }
    5858              :                               break;
    5859              :                             }
    5860              :                           default:;
    5861              :                           }
    5862              :                         break;
    5863              :                       }
    5864              :                     default:;
    5865              :                     }
    5866              :                 }
    5867              :               break;
    5868              :             }
    5869            0 :           case LTGT_EXPR:
    5870            0 :             {
    5871            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5872            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5873            0 :               if (integer_zerop (_q22))
    5874              :                 {
    5875            0 :                   switch (TREE_CODE (_p1))
    5876              :                     {
    5877            0 :                     case VEC_COND_EXPR:
    5878            0 :                       {
    5879            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    5880            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    5881            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    5882            0 :                         switch (TREE_CODE (_q80))
    5883              :                           {
    5884            0 :                           case UNEQ_EXPR:
    5885            0 :                             {
    5886            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    5887            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    5888            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5889              :                                 {
    5890            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5891              :                                     {
    5892            0 :                                       if (integer_zerop (_q82))
    5893              :                                         {
    5894            0 :                                           {
    5895            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    5896            0 :                                             tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, PLUS_EXPR, LTGT_EXPR, UNEQ_EXPR);
    5897            0 :                                             if (res) return res;
    5898              :                                           }
    5899              :                                         }
    5900              :                                     }
    5901              :                                 }
    5902              :                               break;
    5903              :                             }
    5904              :                           default:;
    5905              :                           }
    5906              :                         break;
    5907              :                       }
    5908              :                     default:;
    5909              :                     }
    5910              :                 }
    5911              :               break;
    5912              :             }
    5913              :           default:;
    5914              :           }
    5915              :         break;
    5916              :       }
    5917     70714781 :     default:;
    5918              :     }
    5919     70714781 : {
    5920     70714781 :   tree _p0_pops[1];
    5921     70714781 :   if (tree_nop_convert (_p0, _p0_pops))
    5922              :     {
    5923     14116405 :       tree _q20 = _p0_pops[0];
    5924     14116405 :       switch (TREE_CODE (_q20))
    5925              :         {
    5926        98308 :         case MINUS_EXPR:
    5927        98308 :           {
    5928        98308 :             tree _q30 = TREE_OPERAND (_q20, 0);
    5929        98308 :             tree _q31 = TREE_OPERAND (_q20, 1);
    5930        98308 :             switch (TREE_CODE (_q30))
    5931              :               {
    5932            2 :               case BIT_AND_EXPR:
    5933            2 :                 {
    5934            2 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    5935            2 :                   tree _q41 = TREE_OPERAND (_q30, 1);
    5936            2 :                   switch (TREE_CODE (_q31))
    5937              :                     {
    5938            1 :                     case BIT_IOR_EXPR:
    5939            1 :                       {
    5940            1 :                         tree _q70 = TREE_OPERAND (_q31, 0);
    5941            1 :                         tree _q71 = TREE_OPERAND (_q31, 1);
    5942            1 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    5943              :                           {
    5944            1 :                             if ((_q71 == _q41 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q41, 0) && types_match (_q71, _q41)))
    5945              :                               {
    5946            1 :                                 if (integer_all_onesp (_p1))
    5947              :                                   {
    5948            1 :                                     {
    5949            1 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
    5950            1 :                                       tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    5951            1 :                                       if (res) return res;
    5952              :                                     }
    5953              :                                   }
    5954              :                               }
    5955              :                           }
    5956            0 :                         if ((_q70 == _q41 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q41, 0) && types_match (_q70, _q41)))
    5957              :                           {
    5958            0 :                             if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
    5959              :                               {
    5960            0 :                                 if (integer_all_onesp (_p1))
    5961              :                                   {
    5962            0 :                                     {
    5963            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _q40 };
    5964            0 :                                       tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    5965            0 :                                       if (res) return res;
    5966              :                                     }
    5967              :                                   }
    5968              :                               }
    5969              :                           }
    5970              :                         break;
    5971              :                       }
    5972              :                     default:;
    5973              :                     }
    5974              :                   break;
    5975              :                 }
    5976        98307 :               default:;
    5977              :               }
    5978        98307 :           {
    5979        98307 :             tree _q30_pops[1];
    5980        98307 :             if (tree_nop_convert (_q30, _q30_pops))
    5981              :               {
    5982        50974 :                 tree _q40 = _q30_pops[0];
    5983        50974 :                 switch (TREE_CODE (_q40))
    5984              :                   {
    5985            0 :                   case BIT_AND_EXPR:
    5986            0 :                     {
    5987            0 :                       tree _q50 = TREE_OPERAND (_q40, 0);
    5988            0 :                       tree _q51 = TREE_OPERAND (_q40, 1);
    5989            0 :                       {
    5990            0 :                         tree _q31_pops[1];
    5991            0 :                         if (tree_nop_convert (_q31, _q31_pops))
    5992              :                           {
    5993            0 :                             tree _q80 = _q31_pops[0];
    5994            0 :                             switch (TREE_CODE (_q80))
    5995              :                               {
    5996            0 :                               case BIT_IOR_EXPR:
    5997            0 :                                 {
    5998            0 :                                   tree _q90 = TREE_OPERAND (_q80, 0);
    5999            0 :                                   tree _q91 = TREE_OPERAND (_q80, 1);
    6000            0 :                                   if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
    6001              :                                     {
    6002            0 :                                       if ((_q91 == _q51 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q51, 0) && types_match (_q91, _q51)))
    6003              :                                         {
    6004            0 :                                           if (integer_all_onesp (_p1))
    6005              :                                             {
    6006            0 :                                               {
    6007            0 :                                                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
    6008            0 :                                                 tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    6009            0 :                                                 if (res) return res;
    6010              :                                               }
    6011              :                                             }
    6012              :                                         }
    6013              :                                     }
    6014            0 :                                   if ((_q90 == _q51 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q51, 0) && types_match (_q90, _q51)))
    6015              :                                     {
    6016            0 :                                       if ((_q91 == _q50 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q50, 0) && types_match (_q91, _q50)))
    6017              :                                         {
    6018            0 :                                           if (integer_all_onesp (_p1))
    6019              :                                             {
    6020            0 :                                               {
    6021            0 :                                                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
    6022            0 :                                                 tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    6023            0 :                                                 if (res) return res;
    6024              :                                               }
    6025              :                                             }
    6026              :                                         }
    6027              :                                     }
    6028              :                                   break;
    6029              :                                 }
    6030              :                               default:;
    6031              :                               }
    6032              :                           }
    6033              :                       }
    6034            0 :                       break;
    6035              :                     }
    6036              :                   default:;
    6037              :                   }
    6038              :               }
    6039              :           }
    6040        98307 :             break;
    6041              :           }
    6042              :         default:;
    6043              :         }
    6044              :     }
    6045              : }
    6046     70714780 :   switch (TREE_CODE (_p1))
    6047              :     {
    6048      8335646 :     CASE_CONVERT:
    6049      8335646 :       {
    6050      8335646 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6051      8335646 :         switch (TREE_CODE (_q30))
    6052              :           {
    6053          346 :           case NEGATE_EXPR:
    6054          346 :             {
    6055          346 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6056          346 :               {
    6057          346 :                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    6058          346 :                 tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    6059          346 :                 if (res) return res;
    6060              :               }
    6061          295 :               break;
    6062              :             }
    6063              :           default:;
    6064              :           }
    6065              :         break;
    6066              :       }
    6067         8173 :     case NEGATE_EXPR:
    6068         8173 :       {
    6069         8173 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6070         8173 :         {
    6071         8173 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6072         8173 :           tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    6073         8173 :           if (res) return res;
    6074              :         }
    6075            0 :         break;
    6076              :       }
    6077     70706556 :     default:;
    6078              :     }
    6079     70706556 :   switch (TREE_CODE (_p0))
    6080              :     {
    6081       232943 :     case NEGATE_EXPR:
    6082       232943 :       {
    6083       232943 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6084       232943 :         {
    6085       232943 :           tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
    6086       232943 :           tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    6087       232943 :           if (res) return res;
    6088              :         }
    6089          134 :         break;
    6090              :       }
    6091     70473747 :     default:;
    6092              :     }
    6093     70473747 : {
    6094     70473747 :   tree _p0_pops[1];
    6095     70473747 :   if (tree_nop_convert (_p0, _p0_pops))
    6096              :     {
    6097     14111779 :       tree _q20 = _p0_pops[0];
    6098     14111779 :       switch (TREE_CODE (_q20))
    6099              :         {
    6100        98287 :         case MINUS_EXPR:
    6101        98287 :           {
    6102        98287 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6103        98287 :             tree _q31 = TREE_OPERAND (_q20, 1);
    6104        98287 :             {
    6105        98287 :               tree _q31_pops[1];
    6106        98287 :               if (tree_nop_convert (_q31, _q31_pops))
    6107              :                 {
    6108        61838 :                   tree _q50 = _q31_pops[0];
    6109        61838 :                   if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    6110              :                     {
    6111           28 :                       {
    6112           28 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
    6113           28 :                         tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    6114           28 :                         if (res) return res;
    6115              :                       }
    6116              :                     }
    6117              :                 }
    6118              :             }
    6119        98259 :             if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    6120              :               {
    6121            6 :                 {
    6122            6 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    6123            6 :                   tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    6124            6 :                   if (res) return res;
    6125              :                 }
    6126              :               }
    6127        98253 :             if (CONSTANT_CLASS_P (_q31))
    6128              :               {
    6129        17086 :                 if (CONSTANT_CLASS_P (_p1))
    6130              :                   {
    6131        16964 :                     {
    6132        16964 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    6133        16964 :                       tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR);
    6134        16964 :                       if (res) return res;
    6135              :                     }
    6136              :                   }
    6137              :               }
    6138        81289 :             if (CONSTANT_CLASS_P (_q30))
    6139              :               {
    6140        14847 :                 if (CONSTANT_CLASS_P (_p1))
    6141              :                   {
    6142         5607 :                     {
    6143         5607 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    6144         5607 :                       tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6145         5607 :                       if (res) return res;
    6146              :                     }
    6147              :                   }
    6148              :               }
    6149              :             break;
    6150              :           }
    6151      1320513 :         case PLUS_EXPR:
    6152      1320513 :           {
    6153      1320513 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6154      1320513 :             tree _q31 = TREE_OPERAND (_q20, 1);
    6155      1320513 :             if (CONSTANT_CLASS_P (_q31))
    6156              :               {
    6157      1109896 :                 if (CONSTANT_CLASS_P (_p1))
    6158              :                   {
    6159      1021118 :                     {
    6160      1021118 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    6161      1021118 :                       tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR);
    6162      1021118 :                       if (res) return res;
    6163              :                     }
    6164              :                   }
    6165              :               }
    6166              :             break;
    6167              :           }
    6168              :         default:;
    6169              :         }
    6170              :     }
    6171              : }
    6172     69430988 :   switch (TREE_CODE (_p1))
    6173              :     {
    6174       175380 :     case MINUS_EXPR:
    6175       175380 :       {
    6176       175380 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6177       175380 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6178       175380 :         {
    6179       175380 :           tree _q31_pops[1];
    6180       175380 :           if (tree_nop_convert (_q31, _q31_pops))
    6181              :             {
    6182        61468 :               tree _q50 = _q31_pops[0];
    6183        61468 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    6184              :                 {
    6185            0 :                   {
    6186            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    6187            0 :                     tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    6188            0 :                     if (res) return res;
    6189              :                   }
    6190              :                 }
    6191              :             }
    6192              :         }
    6193       175380 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6194              :           {
    6195          308 :             {
    6196          308 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    6197          308 :               tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    6198          308 :               if (res) return res;
    6199              :             }
    6200              :           }
    6201              :         break;
    6202              :       }
    6203     69430680 :     default:;
    6204              :     }
    6205     69430680 : {
    6206     69430680 :   tree _p1_pops[1];
    6207     69430680 :   if (tree_nop_convert (_p1, _p1_pops))
    6208              :     {
    6209      8030265 :       tree _q30 = _p1_pops[0];
    6210      8030265 :       switch (TREE_CODE (_q30))
    6211              :         {
    6212         3612 :         case MINUS_EXPR:
    6213         3612 :           {
    6214         3612 :             tree _q40 = TREE_OPERAND (_q30, 0);
    6215         3612 :             tree _q41 = TREE_OPERAND (_q30, 1);
    6216         3612 :             {
    6217         3612 :               tree _q41_pops[1];
    6218         3612 :               if (tree_nop_convert (_q41, _q41_pops))
    6219              :                 {
    6220          571 :                   tree _q60 = _q41_pops[0];
    6221          571 :                   if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    6222              :                     {
    6223            0 :                       {
    6224            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
    6225            0 :                         tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    6226            0 :                         if (res) return res;
    6227              :                       }
    6228              :                     }
    6229              :                 }
    6230              :             }
    6231         3612 :             if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    6232              :               {
    6233            0 :                 {
    6234            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
    6235            0 :                   tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    6236            0 :                   if (res) return res;
    6237              :                 }
    6238              :               }
    6239              :             break;
    6240              :           }
    6241              :         default:;
    6242              :         }
    6243              :     }
    6244              : }
    6245     69430680 :   switch (TREE_CODE (_p0))
    6246              :     {
    6247      6506748 :     case PLUS_EXPR:
    6248      6506748 :       {
    6249      6506748 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6250      6506748 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6251      6506748 :         switch (TREE_CODE (_p1))
    6252              :           {
    6253        46520 :           case MINUS_EXPR:
    6254        46520 :             {
    6255        46520 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6256        46520 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6257        46520 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6258              :                 {
    6259          140 :                   {
    6260          140 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    6261          140 :                     tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
    6262          140 :                     if (res) return res;
    6263              :                   }
    6264              :                 }
    6265        46380 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6266              :                 {
    6267          329 :                   {
    6268          329 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    6269          329 :                     tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
    6270          329 :                     if (res) return res;
    6271              :                   }
    6272              :                 }
    6273              :               break;
    6274              :             }
    6275      6506279 :           default:;
    6276              :           }
    6277      6506279 :         if (CONSTANT_CLASS_P (_q21))
    6278              :           {
    6279      2564841 :             if (CONSTANT_CLASS_P (_p1))
    6280              :               {
    6281      1885244 :                 {
    6282      1885244 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6283      1885244 :                   tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR);
    6284      1885244 :                   if (res) return res;
    6285              :                 }
    6286              :               }
    6287              :           }
    6288              :         break;
    6289              :       }
    6290      2010886 :     case MINUS_EXPR:
    6291      2010886 :       {
    6292      2010886 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6293      2010886 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6294      2010886 :         switch (TREE_CODE (_p1))
    6295              :           {
    6296         4862 :           case PLUS_EXPR:
    6297         4862 :             {
    6298         4862 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6299         4862 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6300         4862 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6301              :                 {
    6302          368 :                   {
    6303          368 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
    6304          368 :                     tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
    6305          368 :                     if (res) return res;
    6306              :                   }
    6307              :                 }
    6308         4494 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6309              :                 {
    6310         3705 :                   {
    6311         3705 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q50, _q20 };
    6312         3705 :                     tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
    6313         3705 :                     if (res) return res;
    6314              :                   }
    6315              :                 }
    6316              :               break;
    6317              :             }
    6318          741 :           case MINUS_EXPR:
    6319          741 :             {
    6320          741 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6321          741 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6322          741 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6323              :                 {
    6324            1 :                   {
    6325            1 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    6326            1 :                     tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
    6327            1 :                     if (res) return res;
    6328              :                   }
    6329              :                 }
    6330          740 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6331              :                 {
    6332          153 :                   {
    6333          153 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
    6334          153 :                     tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
    6335          153 :                     if (res) return res;
    6336              :                   }
    6337              :                 }
    6338              :               break;
    6339              :             }
    6340      2006659 :           default:;
    6341              :           }
    6342      2006659 :         if (CONSTANT_CLASS_P (_q21))
    6343              :           {
    6344       125826 :             if (CONSTANT_CLASS_P (_p1))
    6345              :               {
    6346        86318 :                 {
    6347        86318 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6348        86318 :                   tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR);
    6349        86318 :                   if (res) return res;
    6350              :                 }
    6351              :               }
    6352              :           }
    6353      1920533 :         if (CONSTANT_CLASS_P (_q20))
    6354              :           {
    6355       404259 :             if (CONSTANT_CLASS_P (_p1))
    6356              :               {
    6357       235715 :                 {
    6358       235715 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6359       235715 :                   tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6360       235715 :                   if (res) return res;
    6361              :                 }
    6362              :               }
    6363              :           }
    6364              :         break;
    6365              :       }
    6366          478 :     case POINTER_DIFF_EXPR:
    6367          478 :       {
    6368          478 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6369          478 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6370          478 :         switch (TREE_CODE (_p1))
    6371              :           {
    6372            7 :           case POINTER_DIFF_EXPR:
    6373            7 :             {
    6374            7 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6375            7 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6376            7 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6377              :                 {
    6378            7 :                   {
    6379            7 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    6380            7 :                     tree res = generic_simplify_66 (loc, type, _p0, _p1, captures);
    6381            7 :                     if (res) return res;
    6382              :                   }
    6383              :                 }
    6384            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6385              :                 {
    6386            0 :                   {
    6387            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
    6388            0 :                     tree res = generic_simplify_66 (loc, type, _p0, _p1, captures);
    6389            0 :                     if (res) return res;
    6390              :                   }
    6391              :                 }
    6392              :               break;
    6393              :             }
    6394              :           default:;
    6395              :           }
    6396              :         break;
    6397              :       }
    6398     18091489 :     CASE_CONVERT:
    6399     18091489 :       {
    6400     18091489 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6401     18091489 :         switch (TREE_CODE (_p1))
    6402              :           {
    6403      2925117 :           CASE_CONVERT:
    6404      2925117 :             {
    6405      2925117 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6406      2925117 :               {
    6407      2925117 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6408      2925117 :                 tree res = generic_simplify_67 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6409      2925117 :                 if (res) return res;
    6410              :               }
    6411      2924972 :               break;
    6412              :             }
    6413     18091344 :           default:;
    6414              :           }
    6415     18091344 :         switch (TREE_CODE (_q20))
    6416              :           {
    6417       122573 :           case BIT_NOT_EXPR:
    6418       122573 :             {
    6419       122573 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6420       122573 :               switch (TREE_CODE (_p1))
    6421              :                 {
    6422          193 :                 CASE_CONVERT:
    6423          193 :                   {
    6424          193 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    6425          193 :                     if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
    6426              :                       {
    6427            0 :                         {
    6428            0 :                           tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    6429            0 :                           tree res = generic_simplify_68 (loc, type, _p0, _p1, captures);
    6430            0 :                           if (res) return res;
    6431              :                         }
    6432              :                       }
    6433              :                     break;
    6434              :                   }
    6435              :                 default:;
    6436              :                 }
    6437              :               break;
    6438              :             }
    6439     18091344 :           default:;
    6440              :           }
    6441     18091344 :         switch (TREE_CODE (_p1))
    6442              :           {
    6443      2924972 :           CASE_CONVERT:
    6444      2924972 :             {
    6445      2924972 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6446      2924972 :               switch (TREE_CODE (_q40))
    6447              :                 {
    6448          503 :                 case BIT_NOT_EXPR:
    6449          503 :                   {
    6450          503 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    6451          503 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6452              :                       {
    6453            0 :                         {
    6454            0 :                           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6455            0 :                           tree res = generic_simplify_68 (loc, type, _p0, _p1, captures);
    6456            0 :                           if (res) return res;
    6457              :                         }
    6458              :                       }
    6459              :                     break;
    6460              :                   }
    6461              :                 default:;
    6462              :                 }
    6463              :               break;
    6464              :             }
    6465              :           default:;
    6466              :           }
    6467              :         break;
    6468              :       }
    6469       322763 :     case BIT_NOT_EXPR:
    6470       322763 :       {
    6471       322763 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6472       322763 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6473              :           {
    6474          540 :             {
    6475          540 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6476          540 :               tree res = generic_simplify_68 (loc, type, _p0, _p1, captures);
    6477          540 :               if (res) return res;
    6478              :             }
    6479              :           }
    6480       322223 :         if (integer_each_onep (_p1))
    6481              :           {
    6482         2705 :             {
    6483         2705 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6484         2705 :               tree res = generic_simplify_69 (loc, type, _p0, _p1, captures);
    6485         2705 :               if (res) return res;
    6486              :             }
    6487              :           }
    6488              :         break;
    6489              :       }
    6490     67215858 :     default:;
    6491              :     }
    6492     67215858 :   switch (TREE_CODE (_p1))
    6493              :     {
    6494        40414 :     case BIT_NOT_EXPR:
    6495        40414 :       {
    6496        40414 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6497        40414 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6498              :           {
    6499            0 :             {
    6500            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    6501            0 :               tree res = generic_simplify_68 (loc, type, _p0, _p1, captures);
    6502            0 :               if (res) return res;
    6503              :             }
    6504              :           }
    6505              :         break;
    6506              :       }
    6507     67215858 :     default:;
    6508              :     }
    6509     67215858 :   switch (TREE_CODE (_p0))
    6510              :     {
    6511     18091344 :     CASE_CONVERT:
    6512     18091344 :       {
    6513     18091344 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6514     18091344 :         switch (TREE_CODE (_q20))
    6515              :           {
    6516       122573 :           case BIT_NOT_EXPR:
    6517       122573 :             {
    6518       122573 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6519       122573 :               if (integer_each_onep (_p1))
    6520              :                 {
    6521       119048 :                   {
    6522       119048 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    6523       119048 :                     tree res = generic_simplify_69 (loc, type, _p0, _p1, captures);
    6524       119048 :                     if (res) return res;
    6525              :                   }
    6526              :                 }
    6527              :               break;
    6528              :             }
    6529              :           default:;
    6530              :           }
    6531              :         break;
    6532              :       }
    6533     13340908 :     case MULT_EXPR:
    6534     13340908 :       {
    6535     13340908 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6536     13340908 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6537     13340908 :         switch (TREE_CODE (_p1))
    6538              :           {
    6539      3346280 :           case MULT_EXPR:
    6540      3346280 :             {
    6541      3346280 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6542      3346280 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6543      3346280 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6544              :                 {
    6545       791730 :                   {
    6546       791730 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
    6547       791730 :                     tree res = generic_simplify_70 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6548       791730 :                     if (res) return res;
    6549              :                   }
    6550              :                 }
    6551      3341887 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6552              :                 {
    6553           22 :                   {
    6554           22 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    6555           22 :                     tree res = generic_simplify_70 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6556           22 :                     if (res) return res;
    6557              :                   }
    6558              :                 }
    6559      3341881 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6560              :                 {
    6561          242 :                   {
    6562          242 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
    6563          242 :                     tree res = generic_simplify_70 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6564          242 :                     if (res) return res;
    6565              :                   }
    6566              :                 }
    6567      3341709 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6568              :                 {
    6569      1270726 :                   {
    6570      1270726 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
    6571      1270726 :                     tree res = generic_simplify_70 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6572      1270726 :                     if (res) return res;
    6573              :                   }
    6574              :                 }
    6575              :               break;
    6576              :             }
    6577              :           default:;
    6578              :           }
    6579              :         break;
    6580              :       }
    6581     65822618 :     default:;
    6582              :     }
    6583     65822618 :   switch (TREE_CODE (_p1))
    6584              :     {
    6585      3491369 :     case MULT_EXPR:
    6586      3491369 :       {
    6587      3491369 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6588      3491369 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6589      3491369 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6590              :           {
    6591         3905 :             {
    6592         3905 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    6593         3905 :               tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6594         3905 :               if (res) return res;
    6595              :             }
    6596              :           }
    6597      3487511 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6598              :           {
    6599            0 :             {
    6600            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6601            0 :               tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6602            0 :               if (res) return res;
    6603              :             }
    6604              :           }
    6605              :         break;
    6606              :       }
    6607     65818760 :     default:;
    6608              :     }
    6609     65818760 :   switch (TREE_CODE (_p0))
    6610              :     {
    6611     12065853 :     case MULT_EXPR:
    6612     12065853 :       {
    6613     12065853 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6614     12065853 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6615     12065853 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6616              :           {
    6617        33273 :             {
    6618        33273 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6619        33273 :               tree res = generic_simplify_72 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6620        33273 :               if (res) return res;
    6621              :             }
    6622              :           }
    6623     12033231 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    6624              :           {
    6625       324608 :             {
    6626       324608 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    6627       324608 :               tree res = generic_simplify_72 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    6628       324608 :               if (res) return res;
    6629              :             }
    6630              :           }
    6631     11709241 :         if (integer_nonzerop (_q20))
    6632              :           {
    6633          102 :             switch (TREE_CODE (_p1))
    6634              :               {
    6635           50 :               case INTEGER_CST:
    6636           50 :                 {
    6637           50 :                   {
    6638           50 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    6639           50 :                     tree res = generic_simplify_73 (loc, type, _p0, _p1, captures);
    6640           50 :                     if (res) return res;
    6641              :                   }
    6642           50 :                   break;
    6643              :                 }
    6644              :               default:;
    6645              :               }
    6646              :           }
    6647     11709241 :         if (integer_nonzerop (_q21))
    6648              :           {
    6649      7800659 :             switch (TREE_CODE (_p1))
    6650              :               {
    6651      3829328 :               case INTEGER_CST:
    6652      3829328 :                 {
    6653      3829328 :                   {
    6654      3829328 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
    6655      3829328 :                     tree res = generic_simplify_73 (loc, type, _p0, _p1, captures);
    6656      3829328 :                     if (res) return res;
    6657              :                   }
    6658      3370318 :                   break;
    6659              :                 }
    6660              :               default:;
    6661              :               }
    6662              :           }
    6663     11250231 :         switch (TREE_CODE (_q20))
    6664              :           {
    6665       209072 :           case MINUS_EXPR:
    6666       209072 :             {
    6667       209072 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6668       209072 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6669       209072 :               if (tree_zero_one_valued_p (_q21))
    6670              :                 {
    6671            0 :                   if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    6672              :                     {
    6673            0 :                       {
    6674            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q21 };
    6675            0 :                         tree res = generic_simplify_74 (loc, type, _p0, _p1, captures);
    6676            0 :                         if (res) return res;
    6677              :                       }
    6678              :                     }
    6679              :                 }
    6680              :               break;
    6681              :             }
    6682     11250231 :           default:;
    6683              :           }
    6684     11250231 :       if (tree_zero_one_valued_p (_q20))
    6685              :         {
    6686        41034 :           switch (TREE_CODE (_q21))
    6687              :             {
    6688            9 :             case MINUS_EXPR:
    6689            9 :               {
    6690            9 :                 tree _q40 = TREE_OPERAND (_q21, 0);
    6691            9 :                 tree _q41 = TREE_OPERAND (_q21, 1);
    6692            9 :                 if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q41, 0) && types_match (_p1, _q41)))
    6693              :                   {
    6694            9 :                     {
    6695            9 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
    6696            9 :                       tree res = generic_simplify_74 (loc, type, _p0, _p1, captures);
    6697            9 :                       if (res) return res;
    6698              :                     }
    6699              :                   }
    6700              :                 break;
    6701              :               }
    6702              :             default:;
    6703              :             }
    6704              :         }
    6705              :         break;
    6706              :       }
    6707         3104 :     case MIN_EXPR:
    6708         3104 :       {
    6709         3104 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6710         3104 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6711         3104 :         switch (TREE_CODE (_p1))
    6712              :           {
    6713            0 :           case MAX_EXPR:
    6714            0 :             {
    6715            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6716            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6717            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6718              :                 {
    6719            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6720              :                     {
    6721            0 :                       {
    6722            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6723            0 :                         if (!HONOR_NANS (captures[0])
    6724              : )
    6725              :                           {
    6726            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1266;
    6727            0 :                             {
    6728            0 :                               tree res_op0;
    6729            0 :                               res_op0 = captures[0];
    6730            0 :                               tree res_op1;
    6731            0 :                               res_op1 = captures[1];
    6732            0 :                               tree _r;
    6733            0 :                               _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    6734            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
    6735            0 :                               return _r;
    6736              :                             }
    6737            0 : next_after_fail1266:;
    6738              :                           }
    6739              :                       }
    6740              :                     }
    6741              :                 }
    6742            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6743              :                 {
    6744            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6745              :                     {
    6746            0 :                       {
    6747            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6748            0 :                         if (!HONOR_NANS (captures[0])
    6749              : )
    6750              :                           {
    6751            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1267;
    6752            0 :                             {
    6753            0 :                               tree res_op0;
    6754            0 :                               res_op0 = captures[0];
    6755            0 :                               tree res_op1;
    6756            0 :                               res_op1 = captures[1];
    6757            0 :                               tree _r;
    6758            0 :                               _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    6759            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
    6760            0 :                               return _r;
    6761              :                             }
    6762            0 : next_after_fail1267:;
    6763              :                           }
    6764              :                       }
    6765              :                     }
    6766              :                 }
    6767              :               break;
    6768              :             }
    6769              :           default:;
    6770              :           }
    6771              :         break;
    6772              :       }
    6773        12150 :     case MAX_EXPR:
    6774        12150 :       {
    6775        12150 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6776        12150 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6777        12150 :         switch (TREE_CODE (_p1))
    6778              :           {
    6779            0 :           case MIN_EXPR:
    6780            0 :             {
    6781            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6782            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6783            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6784              :                 {
    6785            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6786              :                     {
    6787            0 :                       {
    6788            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6789            0 :                         if (!HONOR_NANS (captures[0])
    6790              : )
    6791              :                           {
    6792            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1268;
    6793            0 :                             {
    6794            0 :                               tree res_op0;
    6795            0 :                               res_op0 = captures[0];
    6796            0 :                               tree res_op1;
    6797            0 :                               res_op1 = captures[1];
    6798            0 :                               tree _r;
    6799            0 :                               _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    6800            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
    6801            0 :                               return _r;
    6802              :                             }
    6803            0 : next_after_fail1268:;
    6804              :                           }
    6805              :                       }
    6806              :                     }
    6807              :                 }
    6808            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6809              :                 {
    6810            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6811              :                     {
    6812            0 :                       {
    6813            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6814            0 :                         if (!HONOR_NANS (captures[0])
    6815              : )
    6816              :                           {
    6817            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1269;
    6818            0 :                             {
    6819            0 :                               tree res_op0;
    6820            0 :                               res_op0 = captures[0];
    6821            0 :                               tree res_op1;
    6822            0 :                               res_op1 = captures[1];
    6823            0 :                               tree _r;
    6824            0 :                               _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    6825            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
    6826            0 :                               return _r;
    6827              :                             }
    6828            0 : next_after_fail1269:;
    6829              :                           }
    6830              :                       }
    6831              :                     }
    6832              :                 }
    6833              :               break;
    6834              :             }
    6835              :           default:;
    6836              :           }
    6837              :         break;
    6838              :       }
    6839     65003136 :     default:;
    6840              :     }
    6841     65003136 :   switch (TREE_CODE (_p1))
    6842              :     {
    6843      3487447 :     case MULT_EXPR:
    6844      3487447 :       {
    6845      3487447 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6846      3487447 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6847      3487447 :         switch (TREE_CODE (_q30))
    6848              :           {
    6849       151121 :           case MINUS_EXPR:
    6850       151121 :             {
    6851       151121 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6852       151121 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6853       151121 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    6854              :                 {
    6855           16 :                   if (tree_zero_one_valued_p (_q31))
    6856              :                     {
    6857            0 :                       {
    6858            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q31 };
    6859            0 :                         tree res = generic_simplify_74 (loc, type, _p0, _p1, captures);
    6860            0 :                         if (res) return res;
    6861              :                       }
    6862              :                     }
    6863              :                 }
    6864              :               break;
    6865              :             }
    6866      3487447 :           default:;
    6867              :           }
    6868      3487447 :       if (tree_zero_one_valued_p (_q30))
    6869              :         {
    6870        13778 :           switch (TREE_CODE (_q31))
    6871              :             {
    6872            0 :             case MINUS_EXPR:
    6873            0 :               {
    6874            0 :                 tree _q50 = TREE_OPERAND (_q31, 0);
    6875            0 :                 tree _q51 = TREE_OPERAND (_q31, 1);
    6876            0 :                 if ((_q51 == _p0 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _p0, 0) && types_match (_q51, _p0)))
    6877              :                   {
    6878            0 :                     {
    6879            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q50, _q30 };
    6880            0 :                       tree res = generic_simplify_74 (loc, type, _p0, _p1, captures);
    6881            0 :                       if (res) return res;
    6882              :                     }
    6883              :                   }
    6884              :                 break;
    6885              :               }
    6886              :             default:;
    6887              :             }
    6888              :         }
    6889              :         break;
    6890              :       }
    6891     65003136 :     default:;
    6892              :     }
    6893     65003136 :   switch (TREE_CODE (_p0))
    6894              :     {
    6895         1533 :     case BIT_XOR_EXPR:
    6896         1533 :       {
    6897         1533 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6898         1533 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6899         1533 :         switch (TREE_CODE (_q21))
    6900              :           {
    6901            8 :           case NEGATE_EXPR:
    6902            8 :             {
    6903            8 :               tree _q40 = TREE_OPERAND (_q21, 0);
    6904            8 :               if (tree_zero_one_valued_p (_q40))
    6905              :                 {
    6906            0 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    6907              :                     {
    6908            0 :                       {
    6909            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6910            0 :                         tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
    6911            0 :                         if (res) return res;
    6912              :                       }
    6913              :                     }
    6914              :                 }
    6915              :               break;
    6916              :             }
    6917         1533 :           default:;
    6918              :           }
    6919         1533 :         switch (TREE_CODE (_q20))
    6920              :           {
    6921            9 :           case NEGATE_EXPR:
    6922            9 :             {
    6923            9 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6924            9 :               if (tree_zero_one_valued_p (_q30))
    6925              :                 {
    6926            0 :                   if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6927              :                     {
    6928            0 :                       {
    6929            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
    6930            0 :                         tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
    6931            0 :                         if (res) return res;
    6932              :                       }
    6933              :                     }
    6934              :                 }
    6935              :               break;
    6936              :             }
    6937              :           default:;
    6938              :           }
    6939              :         break;
    6940              :       }
    6941     65003136 :     default:;
    6942              :     }
    6943     65003136 :   switch (TREE_CODE (_p1))
    6944              :     {
    6945          165 :     case BIT_XOR_EXPR:
    6946          165 :       {
    6947          165 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6948          165 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6949          165 :         switch (TREE_CODE (_q31))
    6950              :           {
    6951            0 :           case NEGATE_EXPR:
    6952            0 :             {
    6953            0 :               tree _q50 = TREE_OPERAND (_q31, 0);
    6954            0 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    6955              :                 {
    6956            0 :                   if (tree_zero_one_valued_p (_q50))
    6957              :                     {
    6958            0 :                       {
    6959            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    6960            0 :                         tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
    6961            0 :                         if (res) return res;
    6962              :                       }
    6963              :                     }
    6964              :                 }
    6965              :               break;
    6966              :             }
    6967          165 :           default:;
    6968              :           }
    6969          165 :         switch (TREE_CODE (_q30))
    6970              :           {
    6971            0 :           case NEGATE_EXPR:
    6972            0 :             {
    6973            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6974            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6975              :                 {
    6976            0 :                   if (tree_zero_one_valued_p (_q40))
    6977              :                     {
    6978            0 :                       {
    6979            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
    6980            0 :                         tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
    6981            0 :                         if (res) return res;
    6982              :                       }
    6983              :                     }
    6984              :                 }
    6985              :               break;
    6986              :             }
    6987              :           default:;
    6988              :           }
    6989              :         break;
    6990              :       }
    6991     65003136 :     default:;
    6992              :     }
    6993     65003136 :   switch (TREE_CODE (_p0))
    6994              :     {
    6995     11250229 :     case MULT_EXPR:
    6996     11250229 :       {
    6997     11250229 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6998     11250229 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6999     11250229 :         switch (TREE_CODE (_q20))
    7000              :           {
    7001        16109 :           case TRUNC_DIV_EXPR:
    7002        16109 :             {
    7003        16109 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7004        16109 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7005        16109 :               if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
    7006              :                 {
    7007         2338 :                   switch (TREE_CODE (_p1))
    7008              :                     {
    7009            2 :                     case TRUNC_MOD_EXPR:
    7010            2 :                       {
    7011            2 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    7012            2 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    7013            2 :                         if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    7014              :                           {
    7015            2 :                             if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    7016              :                               {
    7017            2 :                                 {
    7018            2 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    7019            2 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
    7020            2 :                                   if (res) return res;
    7021              :                                 }
    7022              :                               }
    7023              :                           }
    7024              :                         break;
    7025              :                       }
    7026              :                     default:;
    7027              :                     }
    7028              :                 }
    7029              :               break;
    7030              :             }
    7031            0 :           case CEIL_DIV_EXPR:
    7032            0 :             {
    7033            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7034            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7035            0 :               if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
    7036              :                 {
    7037            0 :                   switch (TREE_CODE (_p1))
    7038              :                     {
    7039            0 :                     case CEIL_MOD_EXPR:
    7040            0 :                       {
    7041            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    7042            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    7043            0 :                         if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    7044              :                           {
    7045            0 :                             if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    7046              :                               {
    7047            0 :                                 {
    7048            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    7049            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
    7050            0 :                                   if (res) return res;
    7051              :                                 }
    7052              :                               }
    7053              :                           }
    7054              :                         break;
    7055              :                       }
    7056              :                     default:;
    7057              :                     }
    7058              :                 }
    7059              :               break;
    7060              :             }
    7061            0 :           case FLOOR_DIV_EXPR:
    7062            0 :             {
    7063            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7064            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7065            0 :               if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
    7066              :                 {
    7067            0 :                   switch (TREE_CODE (_p1))
    7068              :                     {
    7069            0 :                     case FLOOR_MOD_EXPR:
    7070            0 :                       {
    7071            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    7072            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    7073            0 :                         if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    7074              :                           {
    7075            0 :                             if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    7076              :                               {
    7077            0 :                                 {
    7078            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    7079            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
    7080            0 :                                   if (res) return res;
    7081              :                                 }
    7082              :                               }
    7083              :                           }
    7084              :                         break;
    7085              :                       }
    7086              :                     default:;
    7087              :                     }
    7088              :                 }
    7089              :               break;
    7090              :             }
    7091            0 :           case ROUND_DIV_EXPR:
    7092            0 :             {
    7093            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7094            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7095            0 :               if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
    7096              :                 {
    7097            0 :                   switch (TREE_CODE (_p1))
    7098              :                     {
    7099            0 :                     case ROUND_MOD_EXPR:
    7100            0 :                       {
    7101            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    7102            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    7103            0 :                         if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    7104              :                           {
    7105            0 :                             if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    7106              :                               {
    7107            0 :                                 {
    7108            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    7109            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
    7110            0 :                                   if (res) return res;
    7111              :                                 }
    7112              :                               }
    7113              :                           }
    7114              :                         break;
    7115              :                       }
    7116              :                     default:;
    7117              :                     }
    7118              :                 }
    7119              :               break;
    7120              :             }
    7121     11250227 :           default:;
    7122              :           }
    7123     11250227 :         switch (TREE_CODE (_q21))
    7124              :           {
    7125            6 :           case TRUNC_DIV_EXPR:
    7126            6 :             {
    7127            6 :               tree _q40 = TREE_OPERAND (_q21, 0);
    7128            6 :               tree _q41 = TREE_OPERAND (_q21, 1);
    7129            6 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    7130              :                 {
    7131            0 :                   switch (TREE_CODE (_p1))
    7132              :                     {
    7133            0 :                     case TRUNC_MOD_EXPR:
    7134            0 :                       {
    7135            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    7136            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    7137            0 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    7138              :                           {
    7139            0 :                             if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
    7140              :                               {
    7141            0 :                                 {
    7142            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    7143            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
    7144            0 :                                   if (res) return res;
    7145              :                                 }
    7146              :                               }
    7147              :                           }
    7148              :                         break;
    7149              :                       }
    7150              :                     default:;
    7151              :                     }
    7152              :                 }
    7153              :               break;
    7154              :             }
    7155            4 :           case CEIL_DIV_EXPR:
    7156            4 :             {
    7157            4 :               tree _q40 = TREE_OPERAND (_q21, 0);
    7158            4 :               tree _q41 = TREE_OPERAND (_q21, 1);
    7159            4 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    7160              :                 {
    7161            0 :                   switch (TREE_CODE (_p1))
    7162              :                     {
    7163            0 :                     case CEIL_MOD_EXPR:
    7164            0 :                       {
    7165            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    7166            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    7167            0 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    7168              :                           {
    7169            0 :                             if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
    7170              :                               {
    7171            0 :                                 {
    7172            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    7173            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
    7174            0 :                                   if (res) return res;
    7175              :                                 }
    7176              :                               }
    7177              :                           }
    7178              :                         break;
    7179              :                       }
    7180              :                     default:;
    7181              :                     }
    7182              :                 }
    7183              :               break;
    7184              :             }
    7185            0 :           case FLOOR_DIV_EXPR:
    7186            0 :             {
    7187            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
    7188            0 :               tree _q41 = TREE_OPERAND (_q21, 1);
    7189            0 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    7190              :                 {
    7191            0 :                   switch (TREE_CODE (_p1))
    7192              :                     {
    7193            0 :                     case FLOOR_MOD_EXPR:
    7194            0 :                       {
    7195            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    7196            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    7197            0 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    7198              :                           {
    7199            0 :                             if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
    7200              :                               {
    7201            0 :                                 {
    7202            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    7203            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
    7204            0 :                                   if (res) return res;
    7205              :                                 }
    7206              :                               }
    7207              :                           }
    7208              :                         break;
    7209              :                       }
    7210              :                     default:;
    7211              :                     }
    7212              :                 }
    7213              :               break;
    7214              :             }
    7215            0 :           case ROUND_DIV_EXPR:
    7216            0 :             {
    7217            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
    7218            0 :               tree _q41 = TREE_OPERAND (_q21, 1);
    7219            0 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    7220              :                 {
    7221            0 :                   switch (TREE_CODE (_p1))
    7222              :                     {
    7223            0 :                     case ROUND_MOD_EXPR:
    7224            0 :                       {
    7225            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    7226            0 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    7227            0 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    7228              :                           {
    7229            0 :                             if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
    7230              :                               {
    7231            0 :                                 {
    7232            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    7233            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
    7234            0 :                                   if (res) return res;
    7235              :                                 }
    7236              :                               }
    7237              :                           }
    7238              :                         break;
    7239              :                       }
    7240              :                     default:;
    7241              :                     }
    7242              :                 }
    7243              :               break;
    7244              :             }
    7245              :           default:;
    7246              :           }
    7247              :         break;
    7248              :       }
    7249        30984 :     case TRUNC_MOD_EXPR:
    7250        30984 :       {
    7251        30984 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7252        30984 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7253        30984 :         switch (TREE_CODE (_p1))
    7254              :           {
    7255          119 :           case MULT_EXPR:
    7256          119 :             {
    7257          119 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7258          119 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7259          119 :               switch (TREE_CODE (_q50))
    7260              :                 {
    7261          106 :                 case TRUNC_DIV_EXPR:
    7262          106 :                   {
    7263          106 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    7264          106 :                     tree _q61 = TREE_OPERAND (_q50, 1);
    7265          106 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7266              :                       {
    7267          106 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    7268              :                           {
    7269           94 :                             if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7270              :                               {
    7271            0 :                                 {
    7272            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7273            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
    7274            0 :                                   if (res) return res;
    7275              :                                 }
    7276              :                               }
    7277              :                           }
    7278              :                       }
    7279              :                     break;
    7280              :                   }
    7281          119 :                 default:;
    7282              :                 }
    7283          119 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7284              :                 {
    7285            0 :                   switch (TREE_CODE (_q51))
    7286              :                     {
    7287            0 :                     case TRUNC_DIV_EXPR:
    7288            0 :                       {
    7289            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    7290            0 :                         tree _q71 = TREE_OPERAND (_q51, 1);
    7291            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    7292              :                           {
    7293            0 :                             if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    7294              :                               {
    7295            0 :                                 {
    7296            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7297            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
    7298            0 :                                   if (res) return res;
    7299              :                                 }
    7300              :                               }
    7301              :                           }
    7302              :                         break;
    7303              :                       }
    7304              :                     default:;
    7305              :                     }
    7306              :                 }
    7307              :               break;
    7308              :             }
    7309              :           default:;
    7310              :           }
    7311              :         break;
    7312              :       }
    7313            0 :     case CEIL_MOD_EXPR:
    7314            0 :       {
    7315            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7316            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7317            0 :         switch (TREE_CODE (_p1))
    7318              :           {
    7319            0 :           case MULT_EXPR:
    7320            0 :             {
    7321            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7322            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7323            0 :               switch (TREE_CODE (_q50))
    7324              :                 {
    7325            0 :                 case CEIL_DIV_EXPR:
    7326            0 :                   {
    7327            0 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    7328            0 :                     tree _q61 = TREE_OPERAND (_q50, 1);
    7329            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7330              :                       {
    7331            0 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    7332              :                           {
    7333            0 :                             if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7334              :                               {
    7335            0 :                                 {
    7336            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7337            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
    7338            0 :                                   if (res) return res;
    7339              :                                 }
    7340              :                               }
    7341              :                           }
    7342              :                       }
    7343              :                     break;
    7344              :                   }
    7345            0 :                 default:;
    7346              :                 }
    7347            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7348              :                 {
    7349            0 :                   switch (TREE_CODE (_q51))
    7350              :                     {
    7351            0 :                     case CEIL_DIV_EXPR:
    7352            0 :                       {
    7353            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    7354            0 :                         tree _q71 = TREE_OPERAND (_q51, 1);
    7355            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    7356              :                           {
    7357            0 :                             if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    7358              :                               {
    7359            0 :                                 {
    7360            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7361            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
    7362            0 :                                   if (res) return res;
    7363              :                                 }
    7364              :                               }
    7365              :                           }
    7366              :                         break;
    7367              :                       }
    7368              :                     default:;
    7369              :                     }
    7370              :                 }
    7371              :               break;
    7372              :             }
    7373              :           default:;
    7374              :           }
    7375              :         break;
    7376              :       }
    7377          126 :     case FLOOR_MOD_EXPR:
    7378          126 :       {
    7379          126 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7380          126 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7381          126 :         switch (TREE_CODE (_p1))
    7382              :           {
    7383            0 :           case MULT_EXPR:
    7384            0 :             {
    7385            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7386            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7387            0 :               switch (TREE_CODE (_q50))
    7388              :                 {
    7389            0 :                 case FLOOR_DIV_EXPR:
    7390            0 :                   {
    7391            0 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    7392            0 :                     tree _q61 = TREE_OPERAND (_q50, 1);
    7393            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7394              :                       {
    7395            0 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    7396              :                           {
    7397            0 :                             if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7398              :                               {
    7399            0 :                                 {
    7400            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7401            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
    7402            0 :                                   if (res) return res;
    7403              :                                 }
    7404              :                               }
    7405              :                           }
    7406              :                       }
    7407              :                     break;
    7408              :                   }
    7409            0 :                 default:;
    7410              :                 }
    7411            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7412              :                 {
    7413            0 :                   switch (TREE_CODE (_q51))
    7414              :                     {
    7415            0 :                     case FLOOR_DIV_EXPR:
    7416            0 :                       {
    7417            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    7418            0 :                         tree _q71 = TREE_OPERAND (_q51, 1);
    7419            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    7420              :                           {
    7421            0 :                             if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    7422              :                               {
    7423            0 :                                 {
    7424            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7425            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
    7426            0 :                                   if (res) return res;
    7427              :                                 }
    7428              :                               }
    7429              :                           }
    7430              :                         break;
    7431              :                       }
    7432              :                     default:;
    7433              :                     }
    7434              :                 }
    7435              :               break;
    7436              :             }
    7437              :           default:;
    7438              :           }
    7439              :         break;
    7440              :       }
    7441            0 :     case ROUND_MOD_EXPR:
    7442            0 :       {
    7443            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7444            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7445            0 :         switch (TREE_CODE (_p1))
    7446              :           {
    7447            0 :           case MULT_EXPR:
    7448            0 :             {
    7449            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7450            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7451            0 :               switch (TREE_CODE (_q50))
    7452              :                 {
    7453            0 :                 case ROUND_DIV_EXPR:
    7454            0 :                   {
    7455            0 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    7456            0 :                     tree _q61 = TREE_OPERAND (_q50, 1);
    7457            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7458              :                       {
    7459            0 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    7460              :                           {
    7461            0 :                             if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7462              :                               {
    7463            0 :                                 {
    7464            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7465            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
    7466            0 :                                   if (res) return res;
    7467              :                                 }
    7468              :                               }
    7469              :                           }
    7470              :                       }
    7471              :                     break;
    7472              :                   }
    7473            0 :                 default:;
    7474              :                 }
    7475            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7476              :                 {
    7477            0 :                   switch (TREE_CODE (_q51))
    7478              :                     {
    7479            0 :                     case ROUND_DIV_EXPR:
    7480            0 :                       {
    7481            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    7482            0 :                         tree _q71 = TREE_OPERAND (_q51, 1);
    7483            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    7484              :                           {
    7485            0 :                             if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    7486              :                               {
    7487            0 :                                 {
    7488            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7489            0 :                                   tree res = generic_simplify_76 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
    7490            0 :                                   if (res) return res;
    7491              :                                 }
    7492              :                               }
    7493              :                           }
    7494              :                         break;
    7495              :                       }
    7496              :                     default:;
    7497              :                     }
    7498              :                 }
    7499              :               break;
    7500              :             }
    7501              :           default:;
    7502              :           }
    7503              :         break;
    7504              :       }
    7505     65003134 :     default:;
    7506              :     }
    7507     65003134 :   switch (TREE_CODE (_p1))
    7508              :     {
    7509      3166902 :     case REAL_CST:
    7510      3166902 :       {
    7511      3166902 :         {
    7512      3166902 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    7513      3166902 :           if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
    7514              : )
    7515              :             {
    7516       117338 :               {
    7517       117338 :  tree tem = const_unop (NEGATE_EXPR, type, captures[1]);
    7518       117338 :                   if (!TREE_OVERFLOW (tem) || !flag_trapping_math
    7519              : )
    7520              :                     {
    7521       117338 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1270;
    7522       117338 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1270;
    7523       117338 :                       {
    7524       117338 :                         tree res_op0;
    7525       117338 :                         res_op0 = captures[0];
    7526       117338 :                         tree res_op1;
    7527       117338 :                         res_op1 =  tem;
    7528       117338 :                         tree _r;
    7529       117338 :                         _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    7530       117338 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 914, __FILE__, __LINE__, true);
    7531       117338 :                         return _r;
    7532              :                       }
    7533      3049564 : next_after_fail1270:;
    7534              :                     }
    7535              :               }
    7536              :             }
    7537              :         }
    7538      3049564 :         break;
    7539              :       }
    7540     64885796 :     default:;
    7541              :     }
    7542     64885796 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    7543              :     {
    7544      1585690 :       {
    7545      1585690 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7546      1585690 :         if (SCALAR_FLOAT_TYPE_P (type)
    7547              : )
    7548              :           {
    7549          729 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1271;
    7550          729 :             {
    7551          729 :               tree res_op0;
    7552          729 :               res_op0 = captures[0];
    7553          729 :               tree res_op1;
    7554          729 :               res_op1 =  build_real (type, dconst2);
    7555          729 :               tree _r;
    7556          729 :               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    7557          729 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 915, __FILE__, __LINE__, true);
    7558          729 :               return _r;
    7559              :             }
    7560            0 : next_after_fail1271:;
    7561              :           }
    7562              :         else
    7563              :           {
    7564      1584961 :             if (INTEGRAL_TYPE_P (type)
    7565      1584961 :  && TYPE_PRECISION (type) > (2 - TYPE_UNSIGNED (type))
    7566              : )
    7567              :               {
    7568      1584836 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1272;
    7569      1584836 :                 {
    7570      1584836 :                   tree res_op0;
    7571      1584836 :                   res_op0 = captures[0];
    7572      1584836 :                   tree res_op1;
    7573      1584836 :                   res_op1 =  build_int_cst (type, 2);
    7574      1584836 :                   tree _r;
    7575      1584836 :                   _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    7576      1584836 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 916, __FILE__, __LINE__, true);
    7577      1584836 :                   return _r;
    7578              :                 }
    7579            0 : next_after_fail1272:;
    7580              :               }
    7581              :           }
    7582              :       }
    7583              :     }
    7584     63300231 :   switch (TREE_CODE (_p0))
    7585              :     {
    7586          144 :     case VEC_COND_EXPR:
    7587          144 :       {
    7588          144 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7589          144 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7590          144 :         tree _q22 = TREE_OPERAND (_p0, 2);
    7591          144 :         switch (TREE_CODE (_p1))
    7592              :           {
    7593           48 :           case VEC_COND_EXPR:
    7594           48 :             {
    7595           48 :               tree _q60 = TREE_OPERAND (_p1, 0);
    7596           48 :               tree _q61 = TREE_OPERAND (_p1, 1);
    7597           48 :               tree _q62 = TREE_OPERAND (_p1, 2);
    7598           48 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7599              :                 {
    7600           24 :                   {
    7601           24 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    7602           24 :                     if (VECTOR_TYPE_P (type)
    7603           24 :  && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
    7604              :  || types_match (type, TREE_TYPE (captures[2]))
    7605              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7606              :  || (optimize_vectors_before_lowering_p ()
    7607              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7608              : )
    7609              :                       {
    7610           24 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1273;
    7611           24 :                         {
    7612           24 :                           tree res_op0;
    7613           24 :                           res_op0 = captures[1];
    7614           24 :                           tree res_op1;
    7615           24 :                           {
    7616           24 :                             tree _o1[2], _r1;
    7617           24 :                             _o1[0] = captures[2];
    7618           24 :                             _o1[1] = captures[5];
    7619           24 :                             _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
    7620           24 :                             if (EXPR_P (_r1))
    7621            0 :                               goto next_after_fail1273;
    7622           24 :                             res_op1 = _r1;
    7623              :                           }
    7624           24 :                           tree res_op2;
    7625           24 :                           {
    7626           24 :                             tree _o1[2], _r1;
    7627           24 :                             _o1[0] = captures[3];
    7628           24 :                             _o1[1] = captures[6];
    7629           24 :                             _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
    7630           24 :                             if (EXPR_P (_r1))
    7631            0 :                               goto next_after_fail1273;
    7632           24 :                             res_op2 = _r1;
    7633              :                           }
    7634           24 :                           tree _r;
    7635           24 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7636           24 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
    7637           24 :                           return _r;
    7638              :                         }
    7639            0 : next_after_fail1273:;
    7640              :                       }
    7641              :                   }
    7642              :                 }
    7643              :               break;
    7644              :             }
    7645          120 :           default:;
    7646              :           }
    7647          120 :         {
    7648          120 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    7649          120 :           if (VECTOR_TYPE_P (type)
    7650          120 :  && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
    7651              :  || types_match (type, TREE_TYPE (captures[2]))
    7652              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7653              :  || (optimize_vectors_before_lowering_p ()
    7654              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7655              : )
    7656              :             {
    7657          120 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1274;
    7658          120 :               {
    7659          120 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1274;
    7660           26 :                 tree res_op0;
    7661           26 :                 res_op0 = captures[1];
    7662           26 :                 tree res_op1;
    7663           26 :                 {
    7664           26 :                   tree _o1[2], _r1;
    7665           26 :                   _o1[0] = captures[2];
    7666           26 :                   _o1[1] = unshare_expr (captures[4]);
    7667           26 :                   _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
    7668           26 :                   if (EXPR_P (_r1))
    7669            0 :                     goto next_after_fail1274;
    7670           26 :                   res_op1 = _r1;
    7671              :                 }
    7672           26 :                 tree res_op2;
    7673           26 :                 {
    7674           26 :                   tree _o1[2], _r1;
    7675           26 :                   _o1[0] = captures[3];
    7676           26 :                   _o1[1] = captures[4];
    7677           26 :                   _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
    7678           26 :                   if (EXPR_P (_r1))
    7679            0 :                     goto next_after_fail1274;
    7680           26 :                   res_op2 = _r1;
    7681              :                 }
    7682           26 :                 tree _r;
    7683           26 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7684           26 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
    7685           26 :                 return _r;
    7686              :               }
    7687           94 : next_after_fail1274:;
    7688              :             }
    7689              :         }
    7690           94 :         if (integer_each_onep (_q21))
    7691              :           {
    7692            0 :             if (integer_zerop (_q22))
    7693              :               {
    7694            0 :                 {
    7695            0 :                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p0, _q20, _q21, _q22 };
    7696            0 :                   tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
    7697            0 :                   if (res) return res;
    7698              :                 }
    7699              :               }
    7700              :           }
    7701              :         break;
    7702              :       }
    7703     63300181 :     default:;
    7704              :     }
    7705     63300181 :   switch (TREE_CODE (_p1))
    7706              :     {
    7707           40 :     case VEC_COND_EXPR:
    7708           40 :       {
    7709           40 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7710           40 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7711           40 :         tree _q32 = TREE_OPERAND (_p1, 2);
    7712           40 :         {
    7713           40 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    7714           40 :           if (VECTOR_TYPE_P (type)
    7715           40 :  && (TREE_CODE_CLASS (PLUS_EXPR) != tcc_comparison
    7716              :  || types_match (type, TREE_TYPE (captures[3]))
    7717              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    7718              :  || (optimize_vectors_before_lowering_p ()
    7719              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    7720              : )
    7721              :             {
    7722           40 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1275;
    7723           40 :               {
    7724           40 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1275;
    7725            0 :                 tree res_op0;
    7726            0 :                 res_op0 = captures[2];
    7727            0 :                 tree res_op1;
    7728            0 :                 {
    7729            0 :                   tree _o1[2], _r1;
    7730            0 :                   _o1[0] = unshare_expr (captures[0]);
    7731            0 :                   _o1[1] = captures[3];
    7732            0 :                   _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
    7733            0 :                   if (EXPR_P (_r1))
    7734            0 :                     goto next_after_fail1275;
    7735            0 :                   res_op1 = _r1;
    7736              :                 }
    7737            0 :                 tree res_op2;
    7738            0 :                 {
    7739            0 :                   tree _o1[2], _r1;
    7740            0 :                   _o1[0] = captures[0];
    7741            0 :                   _o1[1] = captures[4];
    7742            0 :                   _r1 = fold_build2_loc (loc, PLUS_EXPR, type, _o1[0], _o1[1]);
    7743            0 :                   if (EXPR_P (_r1))
    7744            0 :                     goto next_after_fail1275;
    7745            0 :                   res_op2 = _r1;
    7746              :                 }
    7747            0 :                 tree _r;
    7748            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7749            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
    7750            0 :                 return _r;
    7751              :               }
    7752           40 : next_after_fail1275:;
    7753              :             }
    7754              :         }
    7755           40 :         break;
    7756              :       }
    7757       331835 :     case VIEW_CONVERT_EXPR:
    7758       331835 :       {
    7759       331835 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7760       331835 :         switch (TREE_CODE (_q30))
    7761              :           {
    7762            0 :           case VEC_COND_EXPR:
    7763            0 :             {
    7764            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7765            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7766            0 :               tree _q42 = TREE_OPERAND (_q30, 2);
    7767            0 :               if (integer_each_onep (_q41))
    7768              :                 {
    7769            0 :                   if (integer_zerop (_q42))
    7770              :                     {
    7771            0 :                       {
    7772            0 :                         tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _q42 };
    7773            0 :                         tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
    7774            0 :                         if (res) return res;
    7775              :                       }
    7776              :                     }
    7777              :                 }
    7778              :               break;
    7779              :             }
    7780              :           default:;
    7781              :           }
    7782              :         break;
    7783              :       }
    7784     63300181 :     default:;
    7785              :     }
    7786     63300181 :   switch (TREE_CODE (_p0))
    7787              :     {
    7788       320653 :     case VIEW_CONVERT_EXPR:
    7789       320653 :       {
    7790       320653 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7791       320653 :         switch (TREE_CODE (_q20))
    7792              :           {
    7793            0 :           case VEC_COND_EXPR:
    7794            0 :             {
    7795            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7796            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7797            0 :               tree _q32 = TREE_OPERAND (_q20, 2);
    7798            0 :               if (integer_each_onep (_q31))
    7799              :                 {
    7800            0 :                   if (integer_zerop (_q32))
    7801              :                     {
    7802            0 :                       {
    7803            0 :                         tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q30, _q31, _q32 };
    7804            0 :                         tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
    7805            0 :                         if (res) return res;
    7806              :                       }
    7807              :                     }
    7808              :                 }
    7809              :               break;
    7810              :             }
    7811              :           default:;
    7812              :           }
    7813              :         break;
    7814              :       }
    7815     63300181 :     default:;
    7816              :     }
    7817     63300181 :   switch (TREE_CODE (_p1))
    7818              :     {
    7819           40 :     case VEC_COND_EXPR:
    7820           40 :       {
    7821           40 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7822           40 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7823           40 :         tree _q32 = TREE_OPERAND (_p1, 2);
    7824           40 :         if (integer_each_onep (_q31))
    7825              :           {
    7826            0 :             if (integer_zerop (_q32))
    7827              :               {
    7828            0 :                 {
    7829            0 :                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    7830            0 :                   tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
    7831            0 :                   if (res) return res;
    7832              :                 }
    7833              :               }
    7834              :           }
    7835              :         break;
    7836              :       }
    7837     63300181 :     default:;
    7838              :     }
    7839     63300181 :   switch (TREE_CODE (_p0))
    7840              :     {
    7841     17966500 :     CASE_CONVERT:
    7842     17966500 :       {
    7843     17966500 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7844     17966500 :         switch (TREE_CODE (_q20))
    7845              :           {
    7846            0 :           case LT_EXPR:
    7847            0 :             {
    7848            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7849            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7850            0 :               if (integer_minus_onep (_p1))
    7851              :                 {
    7852            0 :                   {
    7853            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7854            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
    7855            0 :                     if (res) return res;
    7856              :                   }
    7857              :                 }
    7858              :               break;
    7859              :             }
    7860            0 :           case LE_EXPR:
    7861            0 :             {
    7862            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7863            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7864            0 :               if (integer_minus_onep (_p1))
    7865              :                 {
    7866            0 :                   {
    7867            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7868            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
    7869            0 :                     if (res) return res;
    7870              :                   }
    7871              :                 }
    7872              :               break;
    7873              :             }
    7874           78 :           case EQ_EXPR:
    7875           78 :             {
    7876           78 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7877           78 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7878           78 :               if (integer_minus_onep (_p1))
    7879              :                 {
    7880            0 :                   {
    7881            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7882            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
    7883            0 :                     if (res) return res;
    7884              :                   }
    7885              :                 }
    7886              :               break;
    7887              :             }
    7888          224 :           case NE_EXPR:
    7889          224 :             {
    7890          224 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7891          224 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7892          224 :               if (integer_minus_onep (_p1))
    7893              :                 {
    7894            0 :                   {
    7895            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7896            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
    7897            0 :                     if (res) return res;
    7898              :                   }
    7899              :                 }
    7900              :               break;
    7901              :             }
    7902           12 :           case GE_EXPR:
    7903           12 :             {
    7904           12 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7905           12 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7906           12 :               if (integer_minus_onep (_p1))
    7907              :                 {
    7908            0 :                   {
    7909            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7910            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
    7911            0 :                     if (res) return res;
    7912              :                   }
    7913              :                 }
    7914              :               break;
    7915              :             }
    7916            1 :           case GT_EXPR:
    7917            1 :             {
    7918            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7919            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7920            1 :               if (integer_minus_onep (_p1))
    7921              :                 {
    7922            0 :                   {
    7923            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7924            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
    7925            0 :                     if (res) return res;
    7926              :                   }
    7927              :                 }
    7928              :               break;
    7929              :             }
    7930            0 :           case UNORDERED_EXPR:
    7931            0 :             {
    7932            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7933            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7934            0 :               if (integer_minus_onep (_p1))
    7935              :                 {
    7936            0 :                   {
    7937            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7938            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
    7939            0 :                     if (res) return res;
    7940              :                   }
    7941              :                 }
    7942              :               break;
    7943              :             }
    7944            0 :           case ORDERED_EXPR:
    7945            0 :             {
    7946            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7947            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7948            0 :               if (integer_minus_onep (_p1))
    7949              :                 {
    7950            0 :                   {
    7951            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7952            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
    7953            0 :                     if (res) return res;
    7954              :                   }
    7955              :                 }
    7956              :               break;
    7957              :             }
    7958            0 :           case UNLT_EXPR:
    7959            0 :             {
    7960            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7961            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7962            0 :               if (integer_minus_onep (_p1))
    7963              :                 {
    7964            0 :                   {
    7965            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7966            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
    7967            0 :                     if (res) return res;
    7968              :                   }
    7969              :                 }
    7970              :               break;
    7971              :             }
    7972            0 :           case UNLE_EXPR:
    7973            0 :             {
    7974            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7975            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7976            0 :               if (integer_minus_onep (_p1))
    7977              :                 {
    7978            0 :                   {
    7979            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7980            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
    7981            0 :                     if (res) return res;
    7982              :                   }
    7983              :                 }
    7984              :               break;
    7985              :             }
    7986            0 :           case UNGT_EXPR:
    7987            0 :             {
    7988            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7989            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7990            0 :               if (integer_minus_onep (_p1))
    7991              :                 {
    7992            0 :                   {
    7993            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7994            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
    7995            0 :                     if (res) return res;
    7996              :                   }
    7997              :                 }
    7998              :               break;
    7999              :             }
    8000            0 :           case UNGE_EXPR:
    8001            0 :             {
    8002            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8003            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8004            0 :               if (integer_minus_onep (_p1))
    8005              :                 {
    8006            0 :                   {
    8007            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    8008            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
    8009            0 :                     if (res) return res;
    8010              :                   }
    8011              :                 }
    8012              :               break;
    8013              :             }
    8014            0 :           case UNEQ_EXPR:
    8015            0 :             {
    8016            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8017            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8018            0 :               if (integer_minus_onep (_p1))
    8019              :                 {
    8020            0 :                   {
    8021            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    8022            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
    8023            0 :                     if (res) return res;
    8024              :                   }
    8025              :                 }
    8026              :               break;
    8027              :             }
    8028            0 :           case LTGT_EXPR:
    8029            0 :             {
    8030            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8031            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8032            0 :               if (integer_minus_onep (_p1))
    8033              :                 {
    8034            0 :                   {
    8035            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    8036            0 :                     tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
    8037            0 :                     if (res) return res;
    8038              :                   }
    8039              :                 }
    8040              :               break;
    8041              :             }
    8042              :           default:;
    8043              :           }
    8044              :         break;
    8045              :       }
    8046          155 :     case LT_EXPR:
    8047          155 :       {
    8048          155 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8049          155 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8050          155 :         if (integer_minus_onep (_p1))
    8051              :           {
    8052            0 :             {
    8053            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8054            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
    8055            0 :               if (res) return res;
    8056              :             }
    8057              :           }
    8058              :         break;
    8059              :       }
    8060           64 :     case LE_EXPR:
    8061           64 :       {
    8062           64 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8063           64 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8064           64 :         if (integer_minus_onep (_p1))
    8065              :           {
    8066            0 :             {
    8067            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8068            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
    8069            0 :               if (res) return res;
    8070              :             }
    8071              :           }
    8072              :         break;
    8073              :       }
    8074        19445 :     case EQ_EXPR:
    8075        19445 :       {
    8076        19445 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8077        19445 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8078        19445 :         if (integer_minus_onep (_p1))
    8079              :           {
    8080           23 :             {
    8081           23 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8082           23 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
    8083           23 :               if (res) return res;
    8084              :             }
    8085              :           }
    8086              :         break;
    8087              :       }
    8088         1677 :     case NE_EXPR:
    8089         1677 :       {
    8090         1677 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8091         1677 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8092         1677 :         if (integer_minus_onep (_p1))
    8093              :           {
    8094           33 :             {
    8095           33 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8096           33 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
    8097           33 :               if (res) return res;
    8098              :             }
    8099              :           }
    8100              :         break;
    8101              :       }
    8102           35 :     case GE_EXPR:
    8103           35 :       {
    8104           35 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8105           35 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8106           35 :         if (integer_minus_onep (_p1))
    8107              :           {
    8108            0 :             {
    8109            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8110            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
    8111            0 :               if (res) return res;
    8112              :             }
    8113              :           }
    8114              :         break;
    8115              :       }
    8116          103 :     case GT_EXPR:
    8117          103 :       {
    8118          103 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8119          103 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8120          103 :         if (integer_minus_onep (_p1))
    8121              :           {
    8122            0 :             {
    8123            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8124            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
    8125            0 :               if (res) return res;
    8126              :             }
    8127              :           }
    8128              :         break;
    8129              :       }
    8130            0 :     case UNORDERED_EXPR:
    8131            0 :       {
    8132            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8133            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8134            0 :         if (integer_minus_onep (_p1))
    8135              :           {
    8136            0 :             {
    8137            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8138            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
    8139            0 :               if (res) return res;
    8140              :             }
    8141              :           }
    8142              :         break;
    8143              :       }
    8144            0 :     case ORDERED_EXPR:
    8145            0 :       {
    8146            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8147            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8148            0 :         if (integer_minus_onep (_p1))
    8149              :           {
    8150            0 :             {
    8151            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8152            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
    8153            0 :               if (res) return res;
    8154              :             }
    8155              :           }
    8156              :         break;
    8157              :       }
    8158            0 :     case UNLT_EXPR:
    8159            0 :       {
    8160            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8161            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8162            0 :         if (integer_minus_onep (_p1))
    8163              :           {
    8164            0 :             {
    8165            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8166            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
    8167            0 :               if (res) return res;
    8168              :             }
    8169              :           }
    8170              :         break;
    8171              :       }
    8172            0 :     case UNLE_EXPR:
    8173            0 :       {
    8174            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8175            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8176            0 :         if (integer_minus_onep (_p1))
    8177              :           {
    8178            0 :             {
    8179            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8180            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
    8181            0 :               if (res) return res;
    8182              :             }
    8183              :           }
    8184              :         break;
    8185              :       }
    8186            0 :     case UNGT_EXPR:
    8187            0 :       {
    8188            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8189            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8190            0 :         if (integer_minus_onep (_p1))
    8191              :           {
    8192            0 :             {
    8193            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8194            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
    8195            0 :               if (res) return res;
    8196              :             }
    8197              :           }
    8198              :         break;
    8199              :       }
    8200            0 :     case UNGE_EXPR:
    8201            0 :       {
    8202            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8203            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8204            0 :         if (integer_minus_onep (_p1))
    8205              :           {
    8206            0 :             {
    8207            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8208            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
    8209            0 :               if (res) return res;
    8210              :             }
    8211              :           }
    8212              :         break;
    8213              :       }
    8214            0 :     case UNEQ_EXPR:
    8215            0 :       {
    8216            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8217            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8218            0 :         if (integer_minus_onep (_p1))
    8219              :           {
    8220            0 :             {
    8221            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8222            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
    8223            0 :               if (res) return res;
    8224              :             }
    8225              :           }
    8226              :         break;
    8227              :       }
    8228            0 :     case LTGT_EXPR:
    8229            0 :       {
    8230            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8231            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8232            0 :         if (integer_minus_onep (_p1))
    8233              :           {
    8234            0 :             {
    8235            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8236            0 :               tree res = generic_simplify_78 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
    8237            0 :               if (res) return res;
    8238              :             }
    8239              :           }
    8240              :         break;
    8241              :       }
    8242       538292 :     case RDIV_EXPR:
    8243       538292 :       {
    8244       538292 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8245       538292 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8246       538292 :         switch (TREE_CODE (_p1))
    8247              :           {
    8248       114607 :           case RDIV_EXPR:
    8249       114607 :             {
    8250       114607 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8251       114607 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8252       114607 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8253              :                 {
    8254            2 :                   {
    8255            2 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    8256            2 :                     tree res = generic_simplify_79 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8257            2 :                     if (res) return res;
    8258              :                   }
    8259              :                 }
    8260              :               break;
    8261              :             }
    8262              :           default:;
    8263              :           }
    8264              :         break;
    8265              :       }
    8266      1684796 :     case MINUS_EXPR:
    8267      1684796 :       {
    8268      1684796 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8269      1684796 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8270      1684796 :         switch (TREE_CODE (_q20))
    8271              :           {
    8272           41 :           case CALL_EXPR:
    8273           41 :             switch (get_call_combined_fn (_q20))
    8274              :               {
    8275            4 :               case CFN_BUILT_IN_POPCOUNT:
    8276            4 :                 if (call_expr_nargs (_q20) == 1)
    8277              :     {
    8278            4 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    8279            4 :                     switch (TREE_CODE (_q21))
    8280              :                       {
    8281            4 :                       case CALL_EXPR:
    8282            4 :                         switch (get_call_combined_fn (_q21))
    8283              :                           {
    8284            4 :                           case CFN_BUILT_IN_POPCOUNT:
    8285            4 :                             if (call_expr_nargs (_q21) == 1)
    8286              :     {
    8287            4 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    8288            4 :                                 switch (TREE_CODE (_q50))
    8289              :                                   {
    8290            2 :                                   case BIT_AND_EXPR:
    8291            2 :                                     {
    8292            2 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8293            2 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8294            2 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8295              :                                         {
    8296            1 :                                           switch (TREE_CODE (_p1))
    8297              :                                             {
    8298            1 :                                             case CALL_EXPR:
    8299            1 :                                               switch (get_call_combined_fn (_p1))
    8300              :                                                 {
    8301            1 :                                                 case CFN_BUILT_IN_POPCOUNT:
    8302            1 :                                                   if (call_expr_nargs (_p1) == 1)
    8303              :     {
    8304            1 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8305            1 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8306              :                                                         {
    8307            1 :                                                           {
    8308            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8309            1 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
    8310            1 :                                                             if (res) return res;
    8311              :                                                           }
    8312              :                                                         }
    8313              :                                                     }
    8314              :                                                   break;
    8315              :                                                 default:;
    8316              :                                                 }
    8317              :                                               break;
    8318              :                                             default:;
    8319              :                                             }
    8320              :                                         }
    8321            1 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8322              :                                         {
    8323            1 :                                           switch (TREE_CODE (_p1))
    8324              :                                             {
    8325            1 :                                             case CALL_EXPR:
    8326            1 :                                               switch (get_call_combined_fn (_p1))
    8327              :                                                 {
    8328            1 :                                                 case CFN_BUILT_IN_POPCOUNT:
    8329            1 :                                                   if (call_expr_nargs (_p1) == 1)
    8330              :     {
    8331            1 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8332            1 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8333              :                                                         {
    8334            1 :                                                           {
    8335            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8336            1 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
    8337            1 :                                                             if (res) return res;
    8338              :                                                           }
    8339              :                                                         }
    8340              :                                                     }
    8341              :                                                   break;
    8342              :                                                 default:;
    8343              :                                                 }
    8344              :                                               break;
    8345              :                                             default:;
    8346              :                                             }
    8347              :                                         }
    8348              :                                       break;
    8349              :                                     }
    8350            2 :                                   case BIT_IOR_EXPR:
    8351            2 :                                     {
    8352            2 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8353            2 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8354            2 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8355              :                                         {
    8356            1 :                                           switch (TREE_CODE (_p1))
    8357              :                                             {
    8358            1 :                                             case CALL_EXPR:
    8359            1 :                                               switch (get_call_combined_fn (_p1))
    8360              :                                                 {
    8361            1 :                                                 case CFN_BUILT_IN_POPCOUNT:
    8362            1 :                                                   if (call_expr_nargs (_p1) == 1)
    8363              :     {
    8364            1 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8365            1 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8366              :                                                         {
    8367            1 :                                                           {
    8368            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8369            1 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
    8370            1 :                                                             if (res) return res;
    8371              :                                                           }
    8372              :                                                         }
    8373              :                                                     }
    8374              :                                                   break;
    8375              :                                                 default:;
    8376              :                                                 }
    8377              :                                               break;
    8378              :                                             default:;
    8379              :                                             }
    8380              :                                         }
    8381            1 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8382              :                                         {
    8383            1 :                                           switch (TREE_CODE (_p1))
    8384              :                                             {
    8385            1 :                                             case CALL_EXPR:
    8386            1 :                                               switch (get_call_combined_fn (_p1))
    8387              :                                                 {
    8388            1 :                                                 case CFN_BUILT_IN_POPCOUNT:
    8389            1 :                                                   if (call_expr_nargs (_p1) == 1)
    8390              :     {
    8391            1 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8392            1 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8393              :                                                         {
    8394            1 :                                                           {
    8395            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8396            1 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
    8397            1 :                                                             if (res) return res;
    8398              :                                                           }
    8399              :                                                         }
    8400              :                                                     }
    8401              :                                                   break;
    8402              :                                                 default:;
    8403              :                                                 }
    8404              :                                               break;
    8405              :                                             default:;
    8406              :                                             }
    8407              :                                         }
    8408              :                                       break;
    8409              :                                     }
    8410              :                                   default:;
    8411              :                                   }
    8412              :                               }
    8413              :                             break;
    8414              :                           default:;
    8415              :                           }
    8416              :                         break;
    8417              :                       default:;
    8418              :                       }
    8419              :                   }
    8420              :                 break;
    8421            0 :               case CFN_BUILT_IN_POPCOUNTLL:
    8422            0 :                 if (call_expr_nargs (_q20) == 1)
    8423              :     {
    8424            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    8425            0 :                     switch (TREE_CODE (_q21))
    8426              :                       {
    8427            0 :                       case CALL_EXPR:
    8428            0 :                         switch (get_call_combined_fn (_q21))
    8429              :                           {
    8430            0 :                           case CFN_BUILT_IN_POPCOUNTLL:
    8431            0 :                             if (call_expr_nargs (_q21) == 1)
    8432              :     {
    8433            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    8434            0 :                                 switch (TREE_CODE (_q50))
    8435              :                                   {
    8436            0 :                                   case BIT_AND_EXPR:
    8437            0 :                                     {
    8438            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8439            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8440            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8441              :                                         {
    8442            0 :                                           switch (TREE_CODE (_p1))
    8443              :                                             {
    8444            0 :                                             case CALL_EXPR:
    8445            0 :                                               switch (get_call_combined_fn (_p1))
    8446              :                                                 {
    8447            0 :                                                 case CFN_BUILT_IN_POPCOUNTLL:
    8448            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8449              :     {
    8450            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8451            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8452              :                                                         {
    8453            0 :                                                           {
    8454            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8455            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    8456            0 :                                                             if (res) return res;
    8457              :                                                           }
    8458              :                                                         }
    8459              :                                                     }
    8460              :                                                   break;
    8461              :                                                 default:;
    8462              :                                                 }
    8463              :                                               break;
    8464              :                                             default:;
    8465              :                                             }
    8466              :                                         }
    8467            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8468              :                                         {
    8469            0 :                                           switch (TREE_CODE (_p1))
    8470              :                                             {
    8471            0 :                                             case CALL_EXPR:
    8472            0 :                                               switch (get_call_combined_fn (_p1))
    8473              :                                                 {
    8474            0 :                                                 case CFN_BUILT_IN_POPCOUNTLL:
    8475            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8476              :     {
    8477            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8478            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8479              :                                                         {
    8480            0 :                                                           {
    8481            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8482            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    8483            0 :                                                             if (res) return res;
    8484              :                                                           }
    8485              :                                                         }
    8486              :                                                     }
    8487              :                                                   break;
    8488              :                                                 default:;
    8489              :                                                 }
    8490              :                                               break;
    8491              :                                             default:;
    8492              :                                             }
    8493              :                                         }
    8494              :                                       break;
    8495              :                                     }
    8496            0 :                                   case BIT_IOR_EXPR:
    8497            0 :                                     {
    8498            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8499            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8500            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8501              :                                         {
    8502            0 :                                           switch (TREE_CODE (_p1))
    8503              :                                             {
    8504            0 :                                             case CALL_EXPR:
    8505            0 :                                               switch (get_call_combined_fn (_p1))
    8506              :                                                 {
    8507            0 :                                                 case CFN_BUILT_IN_POPCOUNTLL:
    8508            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8509              :     {
    8510            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8511            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8512              :                                                         {
    8513            0 :                                                           {
    8514            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8515            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    8516            0 :                                                             if (res) return res;
    8517              :                                                           }
    8518              :                                                         }
    8519              :                                                     }
    8520              :                                                   break;
    8521              :                                                 default:;
    8522              :                                                 }
    8523              :                                               break;
    8524              :                                             default:;
    8525              :                                             }
    8526              :                                         }
    8527            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8528              :                                         {
    8529            0 :                                           switch (TREE_CODE (_p1))
    8530              :                                             {
    8531            0 :                                             case CALL_EXPR:
    8532            0 :                                               switch (get_call_combined_fn (_p1))
    8533              :                                                 {
    8534            0 :                                                 case CFN_BUILT_IN_POPCOUNTLL:
    8535            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8536              :     {
    8537            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8538            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8539              :                                                         {
    8540            0 :                                                           {
    8541            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8542            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    8543            0 :                                                             if (res) return res;
    8544              :                                                           }
    8545              :                                                         }
    8546              :                                                     }
    8547              :                                                   break;
    8548              :                                                 default:;
    8549              :                                                 }
    8550              :                                               break;
    8551              :                                             default:;
    8552              :                                             }
    8553              :                                         }
    8554              :                                       break;
    8555              :                                     }
    8556              :                                   default:;
    8557              :                                   }
    8558              :                               }
    8559              :                             break;
    8560              :                           default:;
    8561              :                           }
    8562              :                         break;
    8563              :                       default:;
    8564              :                       }
    8565              :                   }
    8566              :                 break;
    8567            0 :               case CFN_POPCOUNT:
    8568            0 :                 if (call_expr_nargs (_q20) == 1)
    8569              :     {
    8570            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    8571            0 :                     switch (TREE_CODE (_q21))
    8572              :                       {
    8573            0 :                       case CALL_EXPR:
    8574            0 :                         switch (get_call_combined_fn (_q21))
    8575              :                           {
    8576            0 :                           case CFN_POPCOUNT:
    8577            0 :                             if (call_expr_nargs (_q21) == 1)
    8578              :     {
    8579            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    8580            0 :                                 switch (TREE_CODE (_q50))
    8581              :                                   {
    8582            0 :                                   case BIT_AND_EXPR:
    8583            0 :                                     {
    8584            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8585            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8586            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8587              :                                         {
    8588            0 :                                           switch (TREE_CODE (_p1))
    8589              :                                             {
    8590            0 :                                             case CALL_EXPR:
    8591            0 :                                               switch (get_call_combined_fn (_p1))
    8592              :                                                 {
    8593            0 :                                                 case CFN_POPCOUNT:
    8594            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8595              :     {
    8596            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8597            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8598              :                                                         {
    8599            0 :                                                           {
    8600            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8601            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
    8602            0 :                                                             if (res) return res;
    8603              :                                                           }
    8604              :                                                         }
    8605              :                                                     }
    8606              :                                                   break;
    8607              :                                                 default:;
    8608              :                                                 }
    8609              :                                               break;
    8610              :                                             default:;
    8611              :                                             }
    8612              :                                         }
    8613            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8614              :                                         {
    8615            0 :                                           switch (TREE_CODE (_p1))
    8616              :                                             {
    8617            0 :                                             case CALL_EXPR:
    8618            0 :                                               switch (get_call_combined_fn (_p1))
    8619              :                                                 {
    8620            0 :                                                 case CFN_POPCOUNT:
    8621            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8622              :     {
    8623            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8624            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8625              :                                                         {
    8626            0 :                                                           {
    8627            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8628            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
    8629            0 :                                                             if (res) return res;
    8630              :                                                           }
    8631              :                                                         }
    8632              :                                                     }
    8633              :                                                   break;
    8634              :                                                 default:;
    8635              :                                                 }
    8636              :                                               break;
    8637              :                                             default:;
    8638              :                                             }
    8639              :                                         }
    8640              :                                       break;
    8641              :                                     }
    8642            0 :                                   case BIT_IOR_EXPR:
    8643            0 :                                     {
    8644            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8645            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8646            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8647              :                                         {
    8648            0 :                                           switch (TREE_CODE (_p1))
    8649              :                                             {
    8650            0 :                                             case CALL_EXPR:
    8651            0 :                                               switch (get_call_combined_fn (_p1))
    8652              :                                                 {
    8653            0 :                                                 case CFN_POPCOUNT:
    8654            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8655              :     {
    8656            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8657            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8658              :                                                         {
    8659            0 :                                                           {
    8660            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8661            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
    8662            0 :                                                             if (res) return res;
    8663              :                                                           }
    8664              :                                                         }
    8665              :                                                     }
    8666              :                                                   break;
    8667              :                                                 default:;
    8668              :                                                 }
    8669              :                                               break;
    8670              :                                             default:;
    8671              :                                             }
    8672              :                                         }
    8673            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8674              :                                         {
    8675            0 :                                           switch (TREE_CODE (_p1))
    8676              :                                             {
    8677            0 :                                             case CALL_EXPR:
    8678            0 :                                               switch (get_call_combined_fn (_p1))
    8679              :                                                 {
    8680            0 :                                                 case CFN_POPCOUNT:
    8681            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8682              :     {
    8683            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8684            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8685              :                                                         {
    8686            0 :                                                           {
    8687            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8688            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
    8689            0 :                                                             if (res) return res;
    8690              :                                                           }
    8691              :                                                         }
    8692              :                                                     }
    8693              :                                                   break;
    8694              :                                                 default:;
    8695              :                                                 }
    8696              :                                               break;
    8697              :                                             default:;
    8698              :                                             }
    8699              :                                         }
    8700              :                                       break;
    8701              :                                     }
    8702              :                                   default:;
    8703              :                                   }
    8704              :                               }
    8705              :                             break;
    8706              :                           default:;
    8707              :                           }
    8708              :                         break;
    8709              :                       default:;
    8710              :                       }
    8711              :                   }
    8712              :                 break;
    8713            0 :               case CFN_BUILT_IN_POPCOUNTIMAX:
    8714            0 :                 if (call_expr_nargs (_q20) == 1)
    8715              :     {
    8716            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    8717            0 :                     switch (TREE_CODE (_q21))
    8718              :                       {
    8719            0 :                       case CALL_EXPR:
    8720            0 :                         switch (get_call_combined_fn (_q21))
    8721              :                           {
    8722            0 :                           case CFN_BUILT_IN_POPCOUNTIMAX:
    8723            0 :                             if (call_expr_nargs (_q21) == 1)
    8724              :     {
    8725            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    8726            0 :                                 switch (TREE_CODE (_q50))
    8727              :                                   {
    8728            0 :                                   case BIT_AND_EXPR:
    8729            0 :                                     {
    8730            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8731            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8732            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8733              :                                         {
    8734            0 :                                           switch (TREE_CODE (_p1))
    8735              :                                             {
    8736            0 :                                             case CALL_EXPR:
    8737            0 :                                               switch (get_call_combined_fn (_p1))
    8738              :                                                 {
    8739            0 :                                                 case CFN_BUILT_IN_POPCOUNTIMAX:
    8740            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8741              :     {
    8742            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8743            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8744              :                                                         {
    8745            0 :                                                           {
    8746            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8747            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    8748            0 :                                                             if (res) return res;
    8749              :                                                           }
    8750              :                                                         }
    8751              :                                                     }
    8752              :                                                   break;
    8753              :                                                 default:;
    8754              :                                                 }
    8755              :                                               break;
    8756              :                                             default:;
    8757              :                                             }
    8758              :                                         }
    8759            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8760              :                                         {
    8761            0 :                                           switch (TREE_CODE (_p1))
    8762              :                                             {
    8763            0 :                                             case CALL_EXPR:
    8764            0 :                                               switch (get_call_combined_fn (_p1))
    8765              :                                                 {
    8766            0 :                                                 case CFN_BUILT_IN_POPCOUNTIMAX:
    8767            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8768              :     {
    8769            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8770            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8771              :                                                         {
    8772            0 :                                                           {
    8773            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8774            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    8775            0 :                                                             if (res) return res;
    8776              :                                                           }
    8777              :                                                         }
    8778              :                                                     }
    8779              :                                                   break;
    8780              :                                                 default:;
    8781              :                                                 }
    8782              :                                               break;
    8783              :                                             default:;
    8784              :                                             }
    8785              :                                         }
    8786              :                                       break;
    8787              :                                     }
    8788            0 :                                   case BIT_IOR_EXPR:
    8789            0 :                                     {
    8790            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8791            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8792            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8793              :                                         {
    8794            0 :                                           switch (TREE_CODE (_p1))
    8795              :                                             {
    8796            0 :                                             case CALL_EXPR:
    8797            0 :                                               switch (get_call_combined_fn (_p1))
    8798              :                                                 {
    8799            0 :                                                 case CFN_BUILT_IN_POPCOUNTIMAX:
    8800            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8801              :     {
    8802            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8803            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8804              :                                                         {
    8805            0 :                                                           {
    8806            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8807            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    8808            0 :                                                             if (res) return res;
    8809              :                                                           }
    8810              :                                                         }
    8811              :                                                     }
    8812              :                                                   break;
    8813              :                                                 default:;
    8814              :                                                 }
    8815              :                                               break;
    8816              :                                             default:;
    8817              :                                             }
    8818              :                                         }
    8819            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8820              :                                         {
    8821            0 :                                           switch (TREE_CODE (_p1))
    8822              :                                             {
    8823            0 :                                             case CALL_EXPR:
    8824            0 :                                               switch (get_call_combined_fn (_p1))
    8825              :                                                 {
    8826            0 :                                                 case CFN_BUILT_IN_POPCOUNTIMAX:
    8827            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8828              :     {
    8829            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8830            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8831              :                                                         {
    8832            0 :                                                           {
    8833            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8834            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    8835            0 :                                                             if (res) return res;
    8836              :                                                           }
    8837              :                                                         }
    8838              :                                                     }
    8839              :                                                   break;
    8840              :                                                 default:;
    8841              :                                                 }
    8842              :                                               break;
    8843              :                                             default:;
    8844              :                                             }
    8845              :                                         }
    8846              :                                       break;
    8847              :                                     }
    8848              :                                   default:;
    8849              :                                   }
    8850              :                               }
    8851              :                             break;
    8852              :                           default:;
    8853              :                           }
    8854              :                         break;
    8855              :                       default:;
    8856              :                       }
    8857              :                   }
    8858              :                 break;
    8859            0 :               case CFN_BUILT_IN_POPCOUNTL:
    8860            0 :                 if (call_expr_nargs (_q20) == 1)
    8861              :     {
    8862            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    8863            0 :                     switch (TREE_CODE (_q21))
    8864              :                       {
    8865            0 :                       case CALL_EXPR:
    8866            0 :                         switch (get_call_combined_fn (_q21))
    8867              :                           {
    8868            0 :                           case CFN_BUILT_IN_POPCOUNTL:
    8869            0 :                             if (call_expr_nargs (_q21) == 1)
    8870              :     {
    8871            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    8872            0 :                                 switch (TREE_CODE (_q50))
    8873              :                                   {
    8874            0 :                                   case BIT_AND_EXPR:
    8875            0 :                                     {
    8876            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8877            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8878            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8879              :                                         {
    8880            0 :                                           switch (TREE_CODE (_p1))
    8881              :                                             {
    8882            0 :                                             case CALL_EXPR:
    8883            0 :                                               switch (get_call_combined_fn (_p1))
    8884              :                                                 {
    8885            0 :                                                 case CFN_BUILT_IN_POPCOUNTL:
    8886            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8887              :     {
    8888            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8889            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8890              :                                                         {
    8891            0 :                                                           {
    8892            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8893            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
    8894            0 :                                                             if (res) return res;
    8895              :                                                           }
    8896              :                                                         }
    8897              :                                                     }
    8898              :                                                   break;
    8899              :                                                 default:;
    8900              :                                                 }
    8901              :                                               break;
    8902              :                                             default:;
    8903              :                                             }
    8904              :                                         }
    8905            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8906              :                                         {
    8907            0 :                                           switch (TREE_CODE (_p1))
    8908              :                                             {
    8909            0 :                                             case CALL_EXPR:
    8910            0 :                                               switch (get_call_combined_fn (_p1))
    8911              :                                                 {
    8912            0 :                                                 case CFN_BUILT_IN_POPCOUNTL:
    8913            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8914              :     {
    8915            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8916            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8917              :                                                         {
    8918            0 :                                                           {
    8919            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8920            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
    8921            0 :                                                             if (res) return res;
    8922              :                                                           }
    8923              :                                                         }
    8924              :                                                     }
    8925              :                                                   break;
    8926              :                                                 default:;
    8927              :                                                 }
    8928              :                                               break;
    8929              :                                             default:;
    8930              :                                             }
    8931              :                                         }
    8932              :                                       break;
    8933              :                                     }
    8934            0 :                                   case BIT_IOR_EXPR:
    8935            0 :                                     {
    8936            0 :                                       tree _q60 = TREE_OPERAND (_q50, 0);
    8937            0 :                                       tree _q61 = TREE_OPERAND (_q50, 1);
    8938            0 :                                       if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    8939              :                                         {
    8940            0 :                                           switch (TREE_CODE (_p1))
    8941              :                                             {
    8942            0 :                                             case CALL_EXPR:
    8943            0 :                                               switch (get_call_combined_fn (_p1))
    8944              :                                                 {
    8945            0 :                                                 case CFN_BUILT_IN_POPCOUNTL:
    8946            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8947              :     {
    8948            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8949            0 :                                                       if ((_q90 == _q61 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q61, 0) && types_match (_q90, _q61)))
    8950              :                                                         {
    8951            0 :                                                           {
    8952            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q61, _p1 };
    8953            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
    8954            0 :                                                             if (res) return res;
    8955              :                                                           }
    8956              :                                                         }
    8957              :                                                     }
    8958              :                                                   break;
    8959              :                                                 default:;
    8960              :                                                 }
    8961              :                                               break;
    8962              :                                             default:;
    8963              :                                             }
    8964              :                                         }
    8965            0 :                                       if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    8966              :                                         {
    8967            0 :                                           switch (TREE_CODE (_p1))
    8968              :                                             {
    8969            0 :                                             case CALL_EXPR:
    8970            0 :                                               switch (get_call_combined_fn (_p1))
    8971              :                                                 {
    8972            0 :                                                 case CFN_BUILT_IN_POPCOUNTL:
    8973            0 :                                                   if (call_expr_nargs (_p1) == 1)
    8974              :     {
    8975            0 :                                                       tree _q90 = CALL_EXPR_ARG (_p1, 0);
    8976            0 :                                                       if ((_q90 == _q60 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q60, 0) && types_match (_q90, _q60)))
    8977              :                                                         {
    8978            0 :                                                           {
    8979            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _q60, _p1 };
    8980            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
    8981            0 :                                                             if (res) return res;
    8982              :                                                           }
    8983              :                                                         }
    8984              :                                                     }
    8985              :                                                   break;
    8986              :                                                 default:;
    8987              :                                                 }
    8988              :                                               break;
    8989              :                                             default:;
    8990              :                                             }
    8991              :                                         }
    8992              :                                       break;
    8993              :                                     }
    8994              :                                   default:;
    8995              :                                   }
    8996              :                               }
    8997              :                             break;
    8998              :                           default:;
    8999              :                           }
    9000              :                         break;
    9001              :                       default:;
    9002              :                       }
    9003              :                   }
    9004              :                 break;
    9005              :               default:;
    9006              :               }
    9007              :             break;
    9008              :           default:;
    9009              :           }
    9010              :         break;
    9011              :       }
    9012            1 :     case VEC_PERM_EXPR:
    9013            1 :       {
    9014            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9015            1 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9016            1 :         tree _q22 = TREE_OPERAND (_p0, 2);
    9017            1 :         switch (TREE_CODE (_q20))
    9018              :           {
    9019            0 :           case MULT_EXPR:
    9020            0 :             {
    9021            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9022            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9023            0 :               if (tree_vec_same_elem_p (_q31))
    9024              :                 {
    9025            0 :                   if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    9026              :                     {
    9027            0 :                       {
    9028            0 :                         tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q22, _p1 };
    9029            0 :                         tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
    9030            0 :                         if (res) return res;
    9031              :                       }
    9032              :                     }
    9033              :                 }
    9034            0 :               if (tree_vec_same_elem_p (_q30))
    9035              :                 {
    9036            0 :                   if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    9037              :                     {
    9038            0 :                       {
    9039            0 :                         tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _q22, _p1 };
    9040            0 :                         tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
    9041            0 :                         if (res) return res;
    9042              :                       }
    9043              :                     }
    9044              :                 }
    9045              :               break;
    9046              :             }
    9047            1 :           default:;
    9048              :           }
    9049            1 :         if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    9050              :           {
    9051            0 :             switch (TREE_CODE (_p1))
    9052              :               {
    9053            0 :               case VEC_PERM_EXPR:
    9054            0 :                 {
    9055            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    9056            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    9057            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    9058            0 :                   if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
    9059              :                     {
    9060            0 :                       if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    9061              :                         {
    9062            0 :                           {
    9063            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
    9064            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
    9065              : )
    9066              :                               {
    9067            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1276;
    9068            0 :                                 {
    9069            0 :                                   tree res_op0;
    9070            0 :                                   {
    9071            0 :                                     tree _o1[2], _r1;
    9072            0 :                                     _o1[0] = captures[0];
    9073            0 :                                     _o1[1] = captures[2];
    9074            0 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9075            0 :                                     captures[3] = _r1;
    9076              :                                   }
    9077            0 :                                   res_op0 = unshare_expr (captures[3]);
    9078            0 :                                   tree res_op1;
    9079            0 :                                   res_op1 = captures[3];
    9080            0 :                                   tree res_op2;
    9081            0 :                                   res_op2 = captures[1];
    9082            0 :                                   tree _r;
    9083            0 :                                   _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
    9084            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 912, __FILE__, __LINE__, true);
    9085            0 :                                   return _r;
    9086              :                                 }
    9087            0 : next_after_fail1276:;
    9088              :                               }
    9089              :                           }
    9090              :                         }
    9091              :                     }
    9092              :                   break;
    9093              :                 }
    9094            0 :               default:;
    9095              :               }
    9096            0 :             switch (TREE_CODE (_q22))
    9097              :               {
    9098            0 :               case VECTOR_CST:
    9099            0 :                 {
    9100            0 :                   switch (TREE_CODE (_p1))
    9101              :                     {
    9102            0 :                     case VEC_PERM_EXPR:
    9103            0 :                       {
    9104            0 :                         tree _q60 = TREE_OPERAND (_p1, 0);
    9105            0 :                         tree _q61 = TREE_OPERAND (_p1, 1);
    9106            0 :                         tree _q62 = TREE_OPERAND (_p1, 2);
    9107            0 :                         if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
    9108              :                           {
    9109            0 :                             if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    9110              :                               {
    9111            0 :                                 switch (TREE_CODE (_q62))
    9112              :                                   {
    9113            0 :                                   case VECTOR_CST:
    9114            0 :                                     {
    9115            0 :                                       {
    9116            0 :                                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
    9117            0 :                                         tree res = generic_simplify_85 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    9118            0 :                                         if (res) return res;
    9119              :                                       }
    9120            0 :                                       break;
    9121              :                                     }
    9122              :                                   default:;
    9123              :                                   }
    9124              :                               }
    9125              :                           }
    9126              :                         break;
    9127              :                       }
    9128              :                     default:;
    9129              :                     }
    9130              :                   break;
    9131              :                 }
    9132              :               default:;
    9133              :               }
    9134              :           }
    9135              :         break;
    9136              :       }
    9137      1433333 :     case CALL_EXPR:
    9138      1433333 :       switch (get_call_combined_fn (_p0))
    9139              :         {
    9140            9 :         case CFN_BUILT_IN_LOG:
    9141            9 :           if (call_expr_nargs (_p0) == 1)
    9142              :     {
    9143            9 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9144            9 :               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_LOG:
    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_LOG);
    9156            0 :                             if (res) return res;
    9157              :                           }
    9158              :                         }
    9159              :                       break;
    9160              :                     default:;
    9161              :                     }
    9162              :                   break;
    9163              :                 default:;
    9164              :                 }
    9165              :             }
    9166              :           break;
    9167         2360 :         case CFN_BUILT_IN_POPCOUNT:
    9168         2360 :           if (call_expr_nargs (_p0) == 1)
    9169              :     {
    9170         2360 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9171         2360 :               switch (TREE_CODE (_p1))
    9172              :                 {
    9173           22 :                 case CALL_EXPR:
    9174           22 :                   switch (get_call_combined_fn (_p1))
    9175              :                     {
    9176           22 :                     case CFN_BUILT_IN_POPCOUNT:
    9177           22 :                       if (call_expr_nargs (_p1) == 1)
    9178              :     {
    9179           22 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9180           22 :                           {
    9181           22 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9182           22 :                             tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
    9183           22 :                             if (res) return res;
    9184              :                           }
    9185              :                         }
    9186              :                       break;
    9187              :                     default:;
    9188              :                     }
    9189              :                   break;
    9190         2359 :                 default:;
    9191              :                 }
    9192         2359 :               switch (TREE_CODE (_q20))
    9193              :                 {
    9194            9 :                 case BIT_AND_EXPR:
    9195            9 :                   {
    9196            9 :                     tree _q30 = TREE_OPERAND (_q20, 0);
    9197            9 :                     tree _q31 = TREE_OPERAND (_q20, 1);
    9198            9 :                     switch (TREE_CODE (_p1))
    9199              :                       {
    9200            9 :                       case CALL_EXPR:
    9201            9 :                         switch (get_call_combined_fn (_p1))
    9202              :                           {
    9203            9 :                           case CFN_BUILT_IN_POPCOUNT:
    9204            9 :                             if (call_expr_nargs (_p1) == 1)
    9205              :     {
    9206            9 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
    9207            9 :                                 switch (TREE_CODE (_q60))
    9208              :                                   {
    9209            9 :                                   case BIT_IOR_EXPR:
    9210            9 :                                     {
    9211            9 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
    9212            9 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
    9213            9 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    9214              :                                         {
    9215            1 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    9216              :                                             {
    9217            1 :                                               {
    9218            1 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
    9219            1 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
    9220            1 :                                                 if (res) return res;
    9221              :                                               }
    9222              :                                             }
    9223              :                                         }
    9224            8 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    9225              :                                         {
    9226            1 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    9227              :                                             {
    9228            1 :                                               {
    9229            1 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
    9230            1 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
    9231            1 :                                                 if (res) return res;
    9232              :                                               }
    9233              :                                             }
    9234              :                                         }
    9235              :                                       break;
    9236              :                                     }
    9237              :                                   default:;
    9238              :                                   }
    9239              :                               }
    9240              :                             break;
    9241              :                           default:;
    9242              :                           }
    9243              :                         break;
    9244              :                       default:;
    9245              :                       }
    9246              :                     break;
    9247              :                   }
    9248            2 :                 case BIT_IOR_EXPR:
    9249            2 :                   {
    9250            2 :                     tree _q30 = TREE_OPERAND (_q20, 0);
    9251            2 :                     tree _q31 = TREE_OPERAND (_q20, 1);
    9252            2 :                     switch (TREE_CODE (_p1))
    9253              :                       {
    9254            2 :                       case CALL_EXPR:
    9255            2 :                         switch (get_call_combined_fn (_p1))
    9256              :                           {
    9257            2 :                           case CFN_BUILT_IN_POPCOUNT:
    9258            2 :                             if (call_expr_nargs (_p1) == 1)
    9259              :     {
    9260            2 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
    9261            2 :                                 switch (TREE_CODE (_q60))
    9262              :                                   {
    9263            2 :                                   case BIT_AND_EXPR:
    9264            2 :                                     {
    9265            2 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
    9266            2 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
    9267            2 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    9268              :                                         {
    9269            1 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    9270              :                                             {
    9271            1 :                                               {
    9272            1 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
    9273            1 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
    9274            1 :                                                 if (res) return res;
    9275              :                                               }
    9276              :                                             }
    9277              :                                         }
    9278            1 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    9279              :                                         {
    9280            1 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    9281              :                                             {
    9282            1 :                                               {
    9283            1 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
    9284            1 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
    9285            1 :                                                 if (res) return res;
    9286              :                                               }
    9287              :                                             }
    9288              :                                         }
    9289              :                                       break;
    9290              :                                     }
    9291              :                                   default:;
    9292              :                                   }
    9293              :                               }
    9294              :                             break;
    9295              :                           default:;
    9296              :                           }
    9297              :                         break;
    9298              :                       default:;
    9299              :                       }
    9300              :                     break;
    9301              :                   }
    9302         2355 :                 default:;
    9303              :                 }
    9304         2355 :               switch (TREE_CODE (_p1))
    9305              :                 {
    9306            0 :                 case MINUS_EXPR:
    9307            0 :                   {
    9308            0 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    9309            0 :                     tree _q41 = TREE_OPERAND (_p1, 1);
    9310            0 :                     switch (TREE_CODE (_q40))
    9311              :                       {
    9312            0 :                       case CALL_EXPR:
    9313            0 :                         switch (get_call_combined_fn (_q40))
    9314              :                           {
    9315            0 :                           case CFN_BUILT_IN_POPCOUNT:
    9316            0 :                             if (call_expr_nargs (_q40) == 1)
    9317              :     {
    9318            0 :                                 tree _q50 = CALL_EXPR_ARG (_q40, 0);
    9319            0 :                                 switch (TREE_CODE (_q41))
    9320              :                                   {
    9321            0 :                                   case CALL_EXPR:
    9322            0 :                                     switch (get_call_combined_fn (_q41))
    9323              :                                       {
    9324            0 :                                       case CFN_BUILT_IN_POPCOUNT:
    9325            0 :                                         if (call_expr_nargs (_q41) == 1)
    9326              :     {
    9327            0 :                                             tree _q70 = CALL_EXPR_ARG (_q41, 0);
    9328            0 :                                             switch (TREE_CODE (_q70))
    9329              :                                               {
    9330            0 :                                               case BIT_AND_EXPR:
    9331            0 :                                                 {
    9332            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    9333            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    9334            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    9335              :                                                     {
    9336            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    9337              :                                                         {
    9338            0 :                                                           {
    9339            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9340            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
    9341            0 :                                                             if (res) return res;
    9342              :                                                           }
    9343              :                                                         }
    9344              :                                                     }
    9345            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    9346              :                                                     {
    9347            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    9348              :                                                         {
    9349            0 :                                                           {
    9350            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9351            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
    9352            0 :                                                             if (res) return res;
    9353              :                                                           }
    9354              :                                                         }
    9355              :                                                     }
    9356              :                                                   break;
    9357              :                                                 }
    9358            0 :                                               case BIT_IOR_EXPR:
    9359            0 :                                                 {
    9360            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    9361            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    9362            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    9363              :                                                     {
    9364            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    9365              :                                                         {
    9366            0 :                                                           {
    9367            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9368            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
    9369            0 :                                                             if (res) return res;
    9370              :                                                           }
    9371              :                                                         }
    9372              :                                                     }
    9373            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    9374              :                                                     {
    9375            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    9376              :                                                         {
    9377            0 :                                                           {
    9378            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9379            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
    9380            0 :                                                             if (res) return res;
    9381              :                                                           }
    9382              :                                                         }
    9383              :                                                     }
    9384              :                                                   break;
    9385              :                                                 }
    9386              :                                               default:;
    9387              :                                               }
    9388              :                                           }
    9389              :                                         break;
    9390              :                                       default:;
    9391              :                                       }
    9392              :                                     break;
    9393              :                                   default:;
    9394              :                                   }
    9395              :                               }
    9396              :                             break;
    9397              :                           default:;
    9398              :                           }
    9399              :                         break;
    9400              :                       default:;
    9401              :                       }
    9402              :                     break;
    9403              :                   }
    9404              :                 default:;
    9405              :                 }
    9406              :             }
    9407              :           break;
    9408            1 :         case CFN_BUILT_IN_LOG2:
    9409            1 :           if (call_expr_nargs (_p0) == 1)
    9410              :     {
    9411            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9412            1 :               switch (TREE_CODE (_p1))
    9413              :                 {
    9414            1 :                 case CALL_EXPR:
    9415            1 :                   switch (get_call_combined_fn (_p1))
    9416              :                     {
    9417            1 :                     case CFN_BUILT_IN_LOG2:
    9418            1 :                       if (call_expr_nargs (_p1) == 1)
    9419              :     {
    9420            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9421            1 :                           {
    9422            1 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9423            1 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2);
    9424            1 :                             if (res) return res;
    9425              :                           }
    9426              :                         }
    9427              :                       break;
    9428              :                     default:;
    9429              :                     }
    9430              :                   break;
    9431              :                 default:;
    9432              :                 }
    9433              :             }
    9434              :           break;
    9435            0 :         case CFN_BUILT_IN_LOGF:
    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_LOGF:
    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_LOGF);
    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_LOGL:
    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_LOGL:
    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_LOGL);
    9478            0 :                             if (res) return res;
    9479              :                           }
    9480              :                         }
    9481              :                       break;
    9482              :                     default:;
    9483              :                     }
    9484              :                   break;
    9485              :                 default:;
    9486              :                 }
    9487              :             }
    9488              :           break;
    9489           27 :         case CFN_BUILT_IN_POPCOUNTLL:
    9490           27 :           if (call_expr_nargs (_p0) == 1)
    9491              :     {
    9492           27 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9493           27 :               switch (TREE_CODE (_p1))
    9494              :                 {
    9495           25 :                 case CALL_EXPR:
    9496           25 :                   switch (get_call_combined_fn (_p1))
    9497              :                     {
    9498           25 :                     case CFN_BUILT_IN_POPCOUNTLL:
    9499           25 :                       if (call_expr_nargs (_p1) == 1)
    9500              :     {
    9501           25 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9502           25 :                           {
    9503           25 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9504           25 :                             tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
    9505           25 :                             if (res) return res;
    9506              :                           }
    9507              :                         }
    9508              :                       break;
    9509              :                     default:;
    9510              :                     }
    9511              :                   break;
    9512           27 :                 default:;
    9513              :                 }
    9514           27 :               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_BUILT_IN_POPCOUNTLL:
    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_BUILT_IN_POPCOUNTLL);
    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_BUILT_IN_POPCOUNTLL);
    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_BUILT_IN_POPCOUNTLL:
    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_BUILT_IN_POPCOUNTLL);
    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_BUILT_IN_POPCOUNTLL);
    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           27 :                 default:;
    9625              :                 }
    9626           27 :               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_BUILT_IN_POPCOUNTLL:
    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_BUILT_IN_POPCOUNTLL:
    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_BUILT_IN_POPCOUNTLL);
    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_BUILT_IN_POPCOUNTLL);
    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_BUILT_IN_POPCOUNTLL);
    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_BUILT_IN_POPCOUNTLL);
    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_BUILT_IN_LOG10F:
    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_BUILT_IN_LOG10F:
    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_BUILT_IN_LOG10F);
    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_LOG10L:
    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_LOG10L:
    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_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L);
    9773            0 :                             if (res) return res;
    9774              :                           }
    9775              :                         }
    9776              :                       break;
    9777              :                     default:;
    9778              :                     }
    9779              :                   break;
    9780              :                 default:;
    9781              :                 }
    9782              :             }
    9783              :           break;
    9784            7 :         case CFN_POPCOUNT:
    9785            7 :           if (call_expr_nargs (_p0) == 1)
    9786              :     {
    9787            7 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9788            7 :               switch (TREE_CODE (_p1))
    9789              :                 {
    9790            1 :                 case CALL_EXPR:
    9791            1 :                   switch (get_call_combined_fn (_p1))
    9792              :                     {
    9793            1 :                     case CFN_POPCOUNT:
    9794            1 :                       if (call_expr_nargs (_p1) == 1)
    9795              :     {
    9796            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9797            1 :                           {
    9798            1 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9799            1 :                             tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
    9800            1 :                             if (res) return res;
    9801              :                           }
    9802              :                         }
    9803              :                       break;
    9804              :                     default:;
    9805              :                     }
    9806              :                   break;
    9807            7 :                 default:;
    9808              :                 }
    9809            7 :               switch (TREE_CODE (_q20))
    9810              :                 {
    9811            0 :                 case BIT_AND_EXPR:
    9812            0 :                   {
    9813            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
    9814            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
    9815            0 :                     switch (TREE_CODE (_p1))
    9816              :                       {
    9817            0 :                       case CALL_EXPR:
    9818            0 :                         switch (get_call_combined_fn (_p1))
    9819              :                           {
    9820            0 :                           case CFN_POPCOUNT:
    9821            0 :                             if (call_expr_nargs (_p1) == 1)
    9822              :     {
    9823            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
    9824            0 :                                 switch (TREE_CODE (_q60))
    9825              :                                   {
    9826            0 :                                   case BIT_IOR_EXPR:
    9827            0 :                                     {
    9828            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
    9829            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
    9830            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    9831              :                                         {
    9832            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    9833              :                                             {
    9834            0 :                                               {
    9835            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
    9836            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
    9837            0 :                                                 if (res) return res;
    9838              :                                               }
    9839              :                                             }
    9840              :                                         }
    9841            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    9842              :                                         {
    9843            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    9844              :                                             {
    9845            0 :                                               {
    9846            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
    9847            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
    9848            0 :                                                 if (res) return res;
    9849              :                                               }
    9850              :                                             }
    9851              :                                         }
    9852              :                                       break;
    9853              :                                     }
    9854              :                                   default:;
    9855              :                                   }
    9856              :                               }
    9857              :                             break;
    9858              :                           default:;
    9859              :                           }
    9860              :                         break;
    9861              :                       default:;
    9862              :                       }
    9863              :                     break;
    9864              :                   }
    9865            0 :                 case BIT_IOR_EXPR:
    9866            0 :                   {
    9867            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
    9868            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
    9869            0 :                     switch (TREE_CODE (_p1))
    9870              :                       {
    9871            0 :                       case CALL_EXPR:
    9872            0 :                         switch (get_call_combined_fn (_p1))
    9873              :                           {
    9874            0 :                           case CFN_POPCOUNT:
    9875            0 :                             if (call_expr_nargs (_p1) == 1)
    9876              :     {
    9877            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
    9878            0 :                                 switch (TREE_CODE (_q60))
    9879              :                                   {
    9880            0 :                                   case BIT_AND_EXPR:
    9881            0 :                                     {
    9882            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
    9883            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
    9884            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    9885              :                                         {
    9886            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    9887              :                                             {
    9888            0 :                                               {
    9889            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
    9890            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
    9891            0 :                                                 if (res) return res;
    9892              :                                               }
    9893              :                                             }
    9894              :                                         }
    9895            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    9896              :                                         {
    9897            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    9898              :                                             {
    9899            0 :                                               {
    9900            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
    9901            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
    9902            0 :                                                 if (res) return res;
    9903              :                                               }
    9904              :                                             }
    9905              :                                         }
    9906              :                                       break;
    9907              :                                     }
    9908              :                                   default:;
    9909              :                                   }
    9910              :                               }
    9911              :                             break;
    9912              :                           default:;
    9913              :                           }
    9914              :                         break;
    9915              :                       default:;
    9916              :                       }
    9917              :                     break;
    9918              :                   }
    9919            7 :                 default:;
    9920              :                 }
    9921            7 :               switch (TREE_CODE (_p1))
    9922              :                 {
    9923            0 :                 case MINUS_EXPR:
    9924            0 :                   {
    9925            0 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    9926            0 :                     tree _q41 = TREE_OPERAND (_p1, 1);
    9927            0 :                     switch (TREE_CODE (_q40))
    9928              :                       {
    9929            0 :                       case CALL_EXPR:
    9930            0 :                         switch (get_call_combined_fn (_q40))
    9931              :                           {
    9932            0 :                           case CFN_POPCOUNT:
    9933            0 :                             if (call_expr_nargs (_q40) == 1)
    9934              :     {
    9935            0 :                                 tree _q50 = CALL_EXPR_ARG (_q40, 0);
    9936            0 :                                 switch (TREE_CODE (_q41))
    9937              :                                   {
    9938            0 :                                   case CALL_EXPR:
    9939            0 :                                     switch (get_call_combined_fn (_q41))
    9940              :                                       {
    9941            0 :                                       case CFN_POPCOUNT:
    9942            0 :                                         if (call_expr_nargs (_q41) == 1)
    9943              :     {
    9944            0 :                                             tree _q70 = CALL_EXPR_ARG (_q41, 0);
    9945            0 :                                             switch (TREE_CODE (_q70))
    9946              :                                               {
    9947            0 :                                               case BIT_AND_EXPR:
    9948            0 :                                                 {
    9949            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    9950            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    9951            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    9952              :                                                     {
    9953            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    9954              :                                                         {
    9955            0 :                                                           {
    9956            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9957            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
    9958            0 :                                                             if (res) return res;
    9959              :                                                           }
    9960              :                                                         }
    9961              :                                                     }
    9962            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    9963              :                                                     {
    9964            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    9965              :                                                         {
    9966            0 :                                                           {
    9967            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9968            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
    9969            0 :                                                             if (res) return res;
    9970              :                                                           }
    9971              :                                                         }
    9972              :                                                     }
    9973              :                                                   break;
    9974              :                                                 }
    9975            0 :                                               case BIT_IOR_EXPR:
    9976            0 :                                                 {
    9977            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    9978            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    9979            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    9980              :                                                     {
    9981            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    9982              :                                                         {
    9983            0 :                                                           {
    9984            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9985            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
    9986            0 :                                                             if (res) return res;
    9987              :                                                           }
    9988              :                                                         }
    9989              :                                                     }
    9990            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    9991              :                                                     {
    9992            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    9993              :                                                         {
    9994            0 :                                                           {
    9995            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
    9996            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
    9997            0 :                                                             if (res) return res;
    9998              :                                                           }
    9999              :                                                         }
   10000              :                                                     }
   10001              :                                                   break;
   10002              :                                                 }
   10003              :                                               default:;
   10004              :                                               }
   10005              :                                           }
   10006              :                                         break;
   10007              :                                       default:;
   10008              :                                       }
   10009              :                                     break;
   10010              :                                   default:;
   10011              :                                   }
   10012              :                               }
   10013              :                             break;
   10014              :                           default:;
   10015              :                           }
   10016              :                         break;
   10017              :                       default:;
   10018              :                       }
   10019              :                     break;
   10020              :                   }
   10021              :                 default:;
   10022              :                 }
   10023              :             }
   10024              :           break;
   10025            0 :         case CFN_LOG:
   10026            0 :           if (call_expr_nargs (_p0) == 1)
   10027              :     {
   10028            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10029            0 :               switch (TREE_CODE (_p1))
   10030              :                 {
   10031            0 :                 case CALL_EXPR:
   10032            0 :                   switch (get_call_combined_fn (_p1))
   10033              :                     {
   10034            0 :                     case CFN_LOG:
   10035            0 :                       if (call_expr_nargs (_p1) == 1)
   10036              :     {
   10037            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10038            0 :                           {
   10039            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10040            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_LOG);
   10041            0 :                             if (res) return res;
   10042              :                           }
   10043              :                         }
   10044              :                       break;
   10045              :                     default:;
   10046              :                     }
   10047              :                   break;
   10048              :                 default:;
   10049              :                 }
   10050              :             }
   10051              :           break;
   10052            0 :         case CFN_BUILT_IN_POPCOUNTIMAX:
   10053            0 :           if (call_expr_nargs (_p0) == 1)
   10054              :     {
   10055            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   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_POPCOUNTIMAX:
   10062            0 :                       if (call_expr_nargs (_p1) == 1)
   10063              :     {
   10064            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10065            0 :                           {
   10066            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10067            0 :                             tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
   10068            0 :                             if (res) return res;
   10069              :                           }
   10070              :                         }
   10071              :                       break;
   10072              :                     default:;
   10073              :                     }
   10074              :                   break;
   10075            0 :                 default:;
   10076              :                 }
   10077            0 :               switch (TREE_CODE (_q20))
   10078              :                 {
   10079            0 :                 case BIT_AND_EXPR:
   10080            0 :                   {
   10081            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
   10082            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
   10083            0 :                     switch (TREE_CODE (_p1))
   10084              :                       {
   10085            0 :                       case CALL_EXPR:
   10086            0 :                         switch (get_call_combined_fn (_p1))
   10087              :                           {
   10088            0 :                           case CFN_BUILT_IN_POPCOUNTIMAX:
   10089            0 :                             if (call_expr_nargs (_p1) == 1)
   10090              :     {
   10091            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
   10092            0 :                                 switch (TREE_CODE (_q60))
   10093              :                                   {
   10094            0 :                                   case BIT_IOR_EXPR:
   10095            0 :                                     {
   10096            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
   10097            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
   10098            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   10099              :                                         {
   10100            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
   10101              :                                             {
   10102            0 :                                               {
   10103            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
   10104            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
   10105            0 :                                                 if (res) return res;
   10106              :                                               }
   10107              :                                             }
   10108              :                                         }
   10109            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
   10110              :                                         {
   10111            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   10112              :                                             {
   10113            0 :                                               {
   10114            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
   10115            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
   10116            0 :                                                 if (res) return res;
   10117              :                                               }
   10118              :                                             }
   10119              :                                         }
   10120              :                                       break;
   10121              :                                     }
   10122              :                                   default:;
   10123              :                                   }
   10124              :                               }
   10125              :                             break;
   10126              :                           default:;
   10127              :                           }
   10128              :                         break;
   10129              :                       default:;
   10130              :                       }
   10131              :                     break;
   10132              :                   }
   10133            0 :                 case BIT_IOR_EXPR:
   10134            0 :                   {
   10135            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
   10136            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
   10137            0 :                     switch (TREE_CODE (_p1))
   10138              :                       {
   10139            0 :                       case CALL_EXPR:
   10140            0 :                         switch (get_call_combined_fn (_p1))
   10141              :                           {
   10142            0 :                           case CFN_BUILT_IN_POPCOUNTIMAX:
   10143            0 :                             if (call_expr_nargs (_p1) == 1)
   10144              :     {
   10145            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
   10146            0 :                                 switch (TREE_CODE (_q60))
   10147              :                                   {
   10148            0 :                                   case BIT_AND_EXPR:
   10149            0 :                                     {
   10150            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
   10151            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
   10152            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   10153              :                                         {
   10154            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
   10155              :                                             {
   10156            0 :                                               {
   10157            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
   10158            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
   10159            0 :                                                 if (res) return res;
   10160              :                                               }
   10161              :                                             }
   10162              :                                         }
   10163            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
   10164              :                                         {
   10165            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   10166              :                                             {
   10167            0 :                                               {
   10168            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
   10169            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
   10170            0 :                                                 if (res) return res;
   10171              :                                               }
   10172              :                                             }
   10173              :                                         }
   10174              :                                       break;
   10175              :                                     }
   10176              :                                   default:;
   10177              :                                   }
   10178              :                               }
   10179              :                             break;
   10180              :                           default:;
   10181              :                           }
   10182              :                         break;
   10183              :                       default:;
   10184              :                       }
   10185              :                     break;
   10186              :                   }
   10187            0 :                 default:;
   10188              :                 }
   10189            0 :               switch (TREE_CODE (_p1))
   10190              :                 {
   10191            0 :                 case MINUS_EXPR:
   10192            0 :                   {
   10193            0 :                     tree _q40 = TREE_OPERAND (_p1, 0);
   10194            0 :                     tree _q41 = TREE_OPERAND (_p1, 1);
   10195            0 :                     switch (TREE_CODE (_q40))
   10196              :                       {
   10197            0 :                       case CALL_EXPR:
   10198            0 :                         switch (get_call_combined_fn (_q40))
   10199              :                           {
   10200            0 :                           case CFN_BUILT_IN_POPCOUNTIMAX:
   10201            0 :                             if (call_expr_nargs (_q40) == 1)
   10202              :     {
   10203            0 :                                 tree _q50 = CALL_EXPR_ARG (_q40, 0);
   10204            0 :                                 switch (TREE_CODE (_q41))
   10205              :                                   {
   10206            0 :                                   case CALL_EXPR:
   10207            0 :                                     switch (get_call_combined_fn (_q41))
   10208              :                                       {
   10209            0 :                                       case CFN_BUILT_IN_POPCOUNTIMAX:
   10210            0 :                                         if (call_expr_nargs (_q41) == 1)
   10211              :     {
   10212            0 :                                             tree _q70 = CALL_EXPR_ARG (_q41, 0);
   10213            0 :                                             switch (TREE_CODE (_q70))
   10214              :                                               {
   10215            0 :                                               case BIT_AND_EXPR:
   10216            0 :                                                 {
   10217            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
   10218            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
   10219            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
   10220              :                                                     {
   10221            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
   10222              :                                                         {
   10223            0 :                                                           {
   10224            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
   10225            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
   10226            0 :                                                             if (res) return res;
   10227              :                                                           }
   10228              :                                                         }
   10229              :                                                     }
   10230            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   10231              :                                                     {
   10232            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
   10233              :                                                         {
   10234            0 :                                                           {
   10235            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
   10236            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
   10237            0 :                                                             if (res) return res;
   10238              :                                                           }
   10239              :                                                         }
   10240              :                                                     }
   10241              :                                                   break;
   10242              :                                                 }
   10243            0 :                                               case BIT_IOR_EXPR:
   10244            0 :                                                 {
   10245            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
   10246            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
   10247            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
   10248              :                                                     {
   10249            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
   10250              :                                                         {
   10251            0 :                                                           {
   10252            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
   10253            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
   10254            0 :                                                             if (res) return res;
   10255              :                                                           }
   10256              :                                                         }
   10257              :                                                     }
   10258            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   10259              :                                                     {
   10260            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
   10261              :                                                         {
   10262            0 :                                                           {
   10263            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
   10264            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
   10265            0 :                                                             if (res) return res;
   10266              :                                                           }
   10267              :                                                         }
   10268              :                                                     }
   10269              :                                                   break;
   10270              :                                                 }
   10271              :                                               default:;
   10272              :                                               }
   10273              :                                           }
   10274              :                                         break;
   10275              :                                       default:;
   10276              :                                       }
   10277              :                                     break;
   10278              :                                   default:;
   10279              :                                   }
   10280              :                               }
   10281              :                             break;
   10282              :                           default:;
   10283              :                           }
   10284              :                         break;
   10285              :                       default:;
   10286              :                       }
   10287              :                     break;
   10288              :                   }
   10289              :                 default:;
   10290              :                 }
   10291              :             }
   10292              :           break;
   10293            0 :         case CFN_LOG2:
   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_LOG2:
   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_LOG2);
   10309            0 :                             if (res) return res;
   10310              :                           }
   10311              :                         }
   10312              :                       break;
   10313              :                     default:;
   10314              :                     }
   10315              :                   break;
   10316              :                 default:;
   10317              :                 }
   10318              :             }
   10319              :           break;
   10320          136 :         case CFN_BUILT_IN_POPCOUNTL:
   10321          136 :           if (call_expr_nargs (_p0) == 1)
   10322              :     {
   10323          136 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10324          136 :               switch (TREE_CODE (_p1))
   10325              :                 {
   10326           69 :                 case CALL_EXPR:
   10327           69 :                   switch (get_call_combined_fn (_p1))
   10328              :                     {
   10329           69 :                     case CFN_BUILT_IN_POPCOUNTL:
   10330           69 :                       if (call_expr_nargs (_p1) == 1)
   10331              :     {
   10332           69 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10333           69 :                           {
   10334           69 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10335           69 :                             tree res = generic_simplify_81 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
   10336           69 :                             if (res) return res;
   10337              :                           }
   10338              :                         }
   10339              :                       break;
   10340              :                     default:;
   10341              :                     }
   10342              :                   break;
   10343          136 :                 default:;
   10344              :                 }
   10345          136 :               switch (TREE_CODE (_q20))
   10346              :                 {
   10347            0 :                 case BIT_AND_EXPR:
   10348            0 :                   {
   10349            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
   10350            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
   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_POPCOUNTL:
   10357            0 :                             if (call_expr_nargs (_p1) == 1)
   10358              :     {
   10359            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
   10360            0 :                                 switch (TREE_CODE (_q60))
   10361              :                                   {
   10362            0 :                                   case BIT_IOR_EXPR:
   10363            0 :                                     {
   10364            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
   10365            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
   10366            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   10367              :                                         {
   10368            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
   10369              :                                             {
   10370            0 :                                               {
   10371            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
   10372            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
   10373            0 :                                                 if (res) return res;
   10374              :                                               }
   10375              :                                             }
   10376              :                                         }
   10377            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
   10378              :                                         {
   10379            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   10380              :                                             {
   10381            0 :                                               {
   10382            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60 };
   10383            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
   10384            0 :                                                 if (res) return res;
   10385              :                                               }
   10386              :                                             }
   10387              :                                         }
   10388              :                                       break;
   10389              :                                     }
   10390              :                                   default:;
   10391              :                                   }
   10392              :                               }
   10393              :                             break;
   10394              :                           default:;
   10395              :                           }
   10396              :                         break;
   10397              :                       default:;
   10398              :                       }
   10399              :                     break;
   10400              :                   }
   10401            0 :                 case BIT_IOR_EXPR:
   10402            0 :                   {
   10403            0 :                     tree _q30 = TREE_OPERAND (_q20, 0);
   10404            0 :                     tree _q31 = TREE_OPERAND (_q20, 1);
   10405            0 :                     switch (TREE_CODE (_p1))
   10406              :                       {
   10407            0 :                       case CALL_EXPR:
   10408            0 :                         switch (get_call_combined_fn (_p1))
   10409              :                           {
   10410            0 :                           case CFN_BUILT_IN_POPCOUNTL:
   10411            0 :                             if (call_expr_nargs (_p1) == 1)
   10412              :     {
   10413            0 :                                 tree _q60 = CALL_EXPR_ARG (_p1, 0);
   10414            0 :                                 switch (TREE_CODE (_q60))
   10415              :                                   {
   10416            0 :                                   case BIT_AND_EXPR:
   10417            0 :                                     {
   10418            0 :                                       tree _q70 = TREE_OPERAND (_q60, 0);
   10419            0 :                                       tree _q71 = TREE_OPERAND (_q60, 1);
   10420            0 :                                       if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   10421              :                                         {
   10422            0 :                                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
   10423              :                                             {
   10424            0 :                                               {
   10425            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q30, _q31, _p0, _q20 };
   10426            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
   10427            0 :                                                 if (res) return res;
   10428              :                                               }
   10429              :                                             }
   10430              :                                         }
   10431            0 :                                       if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
   10432              :                                         {
   10433            0 :                                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   10434              :                                             {
   10435            0 :                                               {
   10436            0 :                                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q60, _q31, _q30, _p0, _q20 };
   10437            0 :                                                 tree res = generic_simplify_82 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
   10438            0 :                                                 if (res) return res;
   10439              :                                               }
   10440              :                                             }
   10441              :                                         }
   10442              :                                       break;
   10443              :                                     }
   10444              :                                   default:;
   10445              :                                   }
   10446              :                               }
   10447              :                             break;
   10448              :                           default:;
   10449              :                           }
   10450              :                         break;
   10451              :                       default:;
   10452              :                       }
   10453              :                     break;
   10454              :                   }
   10455          136 :                 default:;
   10456              :                 }
   10457          136 :               switch (TREE_CODE (_p1))
   10458              :                 {
   10459            0 :                 case MINUS_EXPR:
   10460            0 :                   {
   10461            0 :                     tree _q40 = TREE_OPERAND (_p1, 0);
   10462            0 :                     tree _q41 = TREE_OPERAND (_p1, 1);
   10463            0 :                     switch (TREE_CODE (_q40))
   10464              :                       {
   10465            0 :                       case CALL_EXPR:
   10466            0 :                         switch (get_call_combined_fn (_q40))
   10467              :                           {
   10468            0 :                           case CFN_BUILT_IN_POPCOUNTL:
   10469            0 :                             if (call_expr_nargs (_q40) == 1)
   10470              :     {
   10471            0 :                                 tree _q50 = CALL_EXPR_ARG (_q40, 0);
   10472            0 :                                 switch (TREE_CODE (_q41))
   10473              :                                   {
   10474            0 :                                   case CALL_EXPR:
   10475            0 :                                     switch (get_call_combined_fn (_q41))
   10476              :                                       {
   10477            0 :                                       case CFN_BUILT_IN_POPCOUNTL:
   10478            0 :                                         if (call_expr_nargs (_q41) == 1)
   10479              :     {
   10480            0 :                                             tree _q70 = CALL_EXPR_ARG (_q41, 0);
   10481            0 :                                             switch (TREE_CODE (_q70))
   10482              :                                               {
   10483            0 :                                               case BIT_AND_EXPR:
   10484            0 :                                                 {
   10485            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
   10486            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
   10487            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
   10488              :                                                     {
   10489            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
   10490              :                                                         {
   10491            0 :                                                           {
   10492            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
   10493            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
   10494            0 :                                                             if (res) return res;
   10495              :                                                           }
   10496              :                                                         }
   10497              :                                                     }
   10498            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   10499              :                                                     {
   10500            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
   10501              :                                                         {
   10502            0 :                                                           {
   10503            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
   10504            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
   10505            0 :                                                             if (res) return res;
   10506              :                                                           }
   10507              :                                                         }
   10508              :                                                     }
   10509              :                                                   break;
   10510              :                                                 }
   10511            0 :                                               case BIT_IOR_EXPR:
   10512            0 :                                                 {
   10513            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
   10514            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
   10515            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
   10516              :                                                     {
   10517            0 :                                                       if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
   10518              :                                                         {
   10519            0 :                                                           {
   10520            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
   10521            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
   10522            0 :                                                             if (res) return res;
   10523              :                                                           }
   10524              :                                                         }
   10525              :                                                     }
   10526            0 :                                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   10527              :                                                     {
   10528            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
   10529              :                                                         {
   10530            0 :                                                           {
   10531            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q41, _q70, _q20, _p0 };
   10532            0 :                                                             tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
   10533            0 :                                                             if (res) return res;
   10534              :                                                           }
   10535              :                                                         }
   10536              :                                                     }
   10537              :                                                   break;
   10538              :                                                 }
   10539              :                                               default:;
   10540              :                                               }
   10541              :                                           }
   10542              :                                         break;
   10543              :                                       default:;
   10544              :                                       }
   10545              :                                     break;
   10546              :                                   default:;
   10547              :                                   }
   10548              :                               }
   10549              :                             break;
   10550              :                           default:;
   10551              :                           }
   10552              :                         break;
   10553              :                       default:;
   10554              :                       }
   10555              :                     break;
   10556              :                   }
   10557              :                 default:;
   10558              :                 }
   10559              :             }
   10560              :           break;
   10561            0 :         case CFN_LOG10:
   10562            0 :           if (call_expr_nargs (_p0) == 1)
   10563              :     {
   10564            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10565            0 :               switch (TREE_CODE (_p1))
   10566              :                 {
   10567            0 :                 case CALL_EXPR:
   10568            0 :                   switch (get_call_combined_fn (_p1))
   10569              :                     {
   10570            0 :                     case CFN_LOG10:
   10571            0 :                       if (call_expr_nargs (_p1) == 1)
   10572              :     {
   10573            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10574            0 :                           {
   10575            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10576            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_LOG10);
   10577            0 :                             if (res) return res;
   10578              :                           }
   10579              :                         }
   10580              :                       break;
   10581              :                     default:;
   10582              :                     }
   10583              :                   break;
   10584              :                 default:;
   10585              :                 }
   10586              :             }
   10587              :           break;
   10588            0 :         case CFN_BUILT_IN_LOG10:
   10589            0 :           if (call_expr_nargs (_p0) == 1)
   10590              :     {
   10591            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10592            0 :               switch (TREE_CODE (_p1))
   10593              :                 {
   10594            0 :                 case CALL_EXPR:
   10595            0 :                   switch (get_call_combined_fn (_p1))
   10596              :                     {
   10597            0 :                     case CFN_BUILT_IN_LOG10:
   10598            0 :                       if (call_expr_nargs (_p1) == 1)
   10599              :     {
   10600            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10601            0 :                           {
   10602            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10603            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10);
   10604            0 :                             if (res) return res;
   10605              :                           }
   10606              :                         }
   10607              :                       break;
   10608              :                     default:;
   10609              :                     }
   10610              :                   break;
   10611              :                 default:;
   10612              :                 }
   10613              :             }
   10614              :           break;
   10615            0 :         case CFN_BUILT_IN_LOG2F:
   10616            0 :           if (call_expr_nargs (_p0) == 1)
   10617              :     {
   10618            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10619            0 :               switch (TREE_CODE (_p1))
   10620              :                 {
   10621            0 :                 case CALL_EXPR:
   10622            0 :                   switch (get_call_combined_fn (_p1))
   10623              :                     {
   10624            0 :                     case CFN_BUILT_IN_LOG2F:
   10625            0 :                       if (call_expr_nargs (_p1) == 1)
   10626              :     {
   10627            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10628            0 :                           {
   10629            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10630            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F);
   10631            0 :                             if (res) return res;
   10632              :                           }
   10633              :                         }
   10634              :                       break;
   10635              :                     default:;
   10636              :                     }
   10637              :                   break;
   10638              :                 default:;
   10639              :                 }
   10640              :             }
   10641              :           break;
   10642            0 :         case CFN_BUILT_IN_LOG2L:
   10643            0 :           if (call_expr_nargs (_p0) == 1)
   10644              :     {
   10645            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10646            0 :               switch (TREE_CODE (_p1))
   10647              :                 {
   10648            0 :                 case CALL_EXPR:
   10649            0 :                   switch (get_call_combined_fn (_p1))
   10650              :                     {
   10651            0 :                     case CFN_BUILT_IN_LOG2L:
   10652            0 :                       if (call_expr_nargs (_p1) == 1)
   10653              :     {
   10654            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10655            0 :                           {
   10656            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10657            0 :                             tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L);
   10658            0 :                             if (res) return res;
   10659              :                           }
   10660              :                         }
   10661              :                       break;
   10662              :                     default:;
   10663              :                     }
   10664              :                   break;
   10665              :                 default:;
   10666              :                 }
   10667              :             }
   10668              :           break;
   10669              :         default:;
   10670              :         }
   10671              :       break;
   10672     63300170 :     default:;
   10673              :     }
   10674     63300170 :   switch (TREE_CODE (_p1))
   10675              :     {
   10676            0 :     case VEC_PERM_EXPR:
   10677            0 :       {
   10678            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10679            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10680            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10681            0 :         switch (TREE_CODE (_q30))
   10682              :           {
   10683            0 :           case MULT_EXPR:
   10684            0 :             {
   10685            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
   10686            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
   10687            0 :               if (tree_vec_same_elem_p (_q41))
   10688              :                 {
   10689            0 :                   if ((_q31 == _q30 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q30, 0) && types_match (_q31, _q30)))
   10690              :                     {
   10691            0 :                       {
   10692            0 :                         tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q41, _q32, _p0 };
   10693            0 :                         tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
   10694            0 :                         if (res) return res;
   10695              :                       }
   10696              :                     }
   10697              :                 }
   10698            0 :               if (tree_vec_same_elem_p (_q40))
   10699              :                 {
   10700            0 :                   if ((_q31 == _q30 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q30, 0) && types_match (_q31, _q30)))
   10701              :                     {
   10702            0 :                       {
   10703            0 :                         tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _q40, _q32, _p0 };
   10704            0 :                         tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
   10705            0 :                         if (res) return res;
   10706              :                       }
   10707              :                     }
   10708              :                 }
   10709              :               break;
   10710              :             }
   10711              :           default:;
   10712              :           }
   10713              :         break;
   10714              :       }
   10715              :     default:;
   10716              :     }
   10717              :   return NULL_TREE;
   10718              : }
   10719              : 
   10720              : tree
   10721         1946 : generic_simplify_LROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10722              : {
   10723         1946 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10724         1946 :   if (integer_all_onesp (_p0))
   10725              :     {
   10726            0 :       {
   10727            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10728            0 :         tree res = generic_simplify_565 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
   10729            0 :         if (res) return res;
   10730              :       }
   10731              :     }
   10732         1946 :   if (integer_zerop (_p1))
   10733              :     {
   10734            0 :       {
   10735            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10736            0 :         tree res = generic_simplify_426 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
   10737            0 :         if (res) return res;
   10738              :       }
   10739              :     }
   10740         1946 :   if (integer_zerop (_p0))
   10741              :     {
   10742            0 :       {
   10743            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10744            0 :         tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
   10745            0 :         if (res) return res;
   10746              :       }
   10747              :     }
   10748         1946 :   switch (TREE_CODE (_p1))
   10749              :     {
   10750            0 :     case VECTOR_CST:
   10751            0 :       {
   10752            0 :         {
   10753            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10754            0 :           tree res = generic_simplify_428 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
   10755            0 :           if (res) return res;
   10756              :         }
   10757            0 :         break;
   10758              :       }
   10759            0 :     case CONSTRUCTOR:
   10760            0 :       {
   10761            0 :         {
   10762            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10763            0 :           tree res = generic_simplify_429 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
   10764            0 :           if (res) return res;
   10765              :         }
   10766            0 :         break;
   10767              :       }
   10768         1295 :     case INTEGER_CST:
   10769         1295 :       {
   10770         1295 :         {
   10771         1295 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10772         1295 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1812;
   10773         1295 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1812;
   10774         1295 :           {
   10775         1295 :             tree res_op0;
   10776         1295 :             res_op0 = captures[0];
   10777         1295 :             tree res_op1;
   10778         1295 :             res_op1 =  const_binop (MINUS_EXPR, TREE_TYPE (captures[1]),
   10779         1295 :  build_int_cst (TREE_TYPE (captures[1]),
   10780         1295 :  element_precision (type)), captures[1]);
   10781         1295 :             tree _r;
   10782         1295 :             _r = fold_build2_loc (loc, RROTATE_EXPR, type, res_op0, res_op1);
   10783         1295 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1042, __FILE__, __LINE__, true);
   10784         1295 :             return _r;
   10785              :           }
   10786            0 : next_after_fail1812:;
   10787              :         }
   10788            0 :         break;
   10789              :       }
   10790            0 :     case MINUS_EXPR:
   10791            0 :       {
   10792            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10793            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10794            0 :         switch (TREE_CODE (_q30))
   10795              :           {
   10796            0 :           case INTEGER_CST:
   10797            0 :             {
   10798            0 :               {
   10799            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
   10800            0 :                 tree res = generic_simplify_566 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR);
   10801            0 :                 if (res) return res;
   10802              :               }
   10803            0 :               break;
   10804              :             }
   10805              :           default:;
   10806              :           }
   10807              :         break;
   10808              :       }
   10809          651 :     default:;
   10810              :     }
   10811          651 :   switch (TREE_CODE (_p0))
   10812              :     {
   10813            0 :     case LROTATE_EXPR:
   10814            0 :       {
   10815            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10816            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10817            0 :         switch (TREE_CODE (_q21))
   10818              :           {
   10819            0 :           case INTEGER_CST:
   10820            0 :             {
   10821            0 :               switch (TREE_CODE (_p1))
   10822              :                 {
   10823            0 :                 case INTEGER_CST:
   10824            0 :                   {
   10825            0 :                     {
   10826            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
   10827            0 :                       tree res = generic_simplify_430 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
   10828            0 :                       if (res) return res;
   10829              :                     }
   10830            0 :                     break;
   10831              :                   }
   10832              :                 default:;
   10833              :                 }
   10834              :               break;
   10835              :             }
   10836              :           default:;
   10837              :           }
   10838              :         break;
   10839              :       }
   10840              :     default:;
   10841              :     }
   10842              :   return NULL_TREE;
   10843              : }
   10844              : 
   10845              : tree
   10846       664452 : generic_simplify_COMPLEX_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10847              : {
   10848       664452 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10849       664452 :   switch (TREE_CODE (_p0))
   10850              :     {
   10851           40 :     case REALPART_EXPR:
   10852           40 :       {
   10853           40 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10854           40 :         switch (TREE_CODE (_p1))
   10855              :           {
   10856           30 :           case IMAGPART_EXPR:
   10857           30 :             {
   10858           30 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10859           30 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   10860              :                 {
   10861           30 :                   {
   10862           30 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10863           30 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1813;
   10864           30 :                     {
   10865           30 :                       tree _r;
   10866           30 :                       _r = captures[0];
   10867           30 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1043, __FILE__, __LINE__, true);
   10868           30 :                       return _r;
   10869              :                     }
   10870            0 : next_after_fail1813:;
   10871              :                   }
   10872              :                 }
   10873              :               break;
   10874              :             }
   10875              :           default:;
   10876              :           }
   10877              :         break;
   10878              :       }
   10879              :     default:;
   10880              :     }
   10881              :   return NULL_TREE;
   10882              : }
   10883              : 
   10884              : tree
   10885       203332 : generic_simplify_ORDERED_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10886              : {
   10887       203332 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10888       203332 :   switch (TREE_CODE (_p0))
   10889              :     {
   10890            0 :     case VEC_COND_EXPR:
   10891            0 :       {
   10892            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10893            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10894            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10895            0 :         switch (TREE_CODE (_p1))
   10896              :           {
   10897            0 :           case VEC_COND_EXPR:
   10898            0 :             {
   10899            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   10900            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   10901            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   10902            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   10903              :                 {
   10904            0 :                   {
   10905            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   10906            0 :                     if (VECTOR_TYPE_P (type)
   10907            0 :  && (TREE_CODE_CLASS (ORDERED_EXPR) != tcc_comparison
   10908            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10909            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10910              :  || (optimize_vectors_before_lowering_p ()
   10911            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10912              : )
   10913              :                       {
   10914            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1819;
   10915            0 :                         {
   10916            0 :                           tree res_op0;
   10917            0 :                           res_op0 = captures[1];
   10918            0 :                           tree res_op1;
   10919            0 :                           {
   10920            0 :                             tree _o1[2], _r1;
   10921            0 :                             _o1[0] = captures[2];
   10922            0 :                             _o1[1] = captures[5];
   10923            0 :                             _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10924            0 :                             if (EXPR_P (_r1))
   10925            0 :                               goto next_after_fail1819;
   10926            0 :                             res_op1 = _r1;
   10927              :                           }
   10928            0 :                           tree res_op2;
   10929            0 :                           {
   10930            0 :                             tree _o1[2], _r1;
   10931            0 :                             _o1[0] = captures[3];
   10932            0 :                             _o1[1] = captures[6];
   10933            0 :                             _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10934            0 :                             if (EXPR_P (_r1))
   10935            0 :                               goto next_after_fail1819;
   10936            0 :                             res_op2 = _r1;
   10937              :                           }
   10938            0 :                           tree _r;
   10939            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10940            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
   10941            0 :                           return _r;
   10942              :                         }
   10943            0 : next_after_fail1819:;
   10944              :                       }
   10945              :                   }
   10946              :                 }
   10947              :               break;
   10948              :             }
   10949            0 :           default:;
   10950              :           }
   10951            0 :         {
   10952            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   10953            0 :           if (VECTOR_TYPE_P (type)
   10954            0 :  && (TREE_CODE_CLASS (ORDERED_EXPR) != tcc_comparison
   10955            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10956            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10957              :  || (optimize_vectors_before_lowering_p ()
   10958            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10959              : )
   10960              :             {
   10961            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1820;
   10962            0 :               {
   10963            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1820;
   10964            0 :                 tree res_op0;
   10965            0 :                 res_op0 = captures[1];
   10966            0 :                 tree res_op1;
   10967            0 :                 {
   10968            0 :                   tree _o1[2], _r1;
   10969            0 :                   _o1[0] = captures[2];
   10970            0 :                   _o1[1] = unshare_expr (captures[4]);
   10971            0 :                   _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10972            0 :                   if (EXPR_P (_r1))
   10973            0 :                     goto next_after_fail1820;
   10974            0 :                   res_op1 = _r1;
   10975              :                 }
   10976            0 :                 tree res_op2;
   10977            0 :                 {
   10978            0 :                   tree _o1[2], _r1;
   10979            0 :                   _o1[0] = captures[3];
   10980            0 :                   _o1[1] = captures[4];
   10981            0 :                   _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10982            0 :                   if (EXPR_P (_r1))
   10983            0 :                     goto next_after_fail1820;
   10984            0 :                   res_op2 = _r1;
   10985              :                 }
   10986            0 :                 tree _r;
   10987            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10988            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
   10989            0 :                 return _r;
   10990              :               }
   10991            0 : next_after_fail1820:;
   10992              :             }
   10993              :         }
   10994            0 :         break;
   10995              :       }
   10996       203332 :     default:;
   10997              :     }
   10998       203332 :   switch (TREE_CODE (_p1))
   10999              :     {
   11000            0 :     case VEC_COND_EXPR:
   11001            0 :       {
   11002            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   11003            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   11004            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   11005            0 :         {
   11006            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   11007            0 :           if (VECTOR_TYPE_P (type)
   11008            0 :  && (TREE_CODE_CLASS (ORDERED_EXPR) != tcc_comparison
   11009            0 :  || types_match (type, TREE_TYPE (captures[3]))
   11010            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   11011              :  || (optimize_vectors_before_lowering_p ()
   11012            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   11013              : )
   11014              :             {
   11015            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1821;
   11016            0 :               {
   11017            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1821;
   11018            0 :                 tree res_op0;
   11019            0 :                 res_op0 = captures[2];
   11020            0 :                 tree res_op1;
   11021            0 :                 {
   11022            0 :                   tree _o1[2], _r1;
   11023            0 :                   _o1[0] = unshare_expr (captures[0]);
   11024            0 :                   _o1[1] = captures[3];
   11025            0 :                   _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   11026            0 :                   if (EXPR_P (_r1))
   11027            0 :                     goto next_after_fail1821;
   11028            0 :                   res_op1 = _r1;
   11029              :                 }
   11030            0 :                 tree res_op2;
   11031            0 :                 {
   11032            0 :                   tree _o1[2], _r1;
   11033            0 :                   _o1[0] = captures[0];
   11034            0 :                   _o1[1] = captures[4];
   11035            0 :                   _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   11036            0 :                   if (EXPR_P (_r1))
   11037            0 :                     goto next_after_fail1821;
   11038            0 :                   res_op2 = _r1;
   11039              :                 }
   11040            0 :                 tree _r;
   11041            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11042            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
   11043            0 :                 return _r;
   11044              :               }
   11045            0 : next_after_fail1821:;
   11046              :             }
   11047              :         }
   11048            0 :         break;
   11049              :       }
   11050       203332 :     default:;
   11051              :     }
   11052       203332 :   switch (TREE_CODE (_p0))
   11053              :     {
   11054            0 :     case FLOAT_EXPR:
   11055            0 :       {
   11056            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11057            0 :         switch (TREE_CODE (_p1))
   11058              :           {
   11059            0 :           case FLOAT_EXPR:
   11060            0 :             {
   11061            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11062            0 :               {
   11063            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11064            0 :                 tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
   11065            0 :                 if (res) return res;
   11066              :               }
   11067            0 :               break;
   11068              :             }
   11069              :           default:;
   11070              :           }
   11071              :         break;
   11072              :       }
   11073            0 :     case NEGATE_EXPR:
   11074            0 :       {
   11075            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11076            0 :         switch (TREE_CODE (_p1))
   11077              :           {
   11078            0 :           case NEGATE_EXPR:
   11079            0 :             {
   11080            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11081            0 :               {
   11082            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   11083            0 :                 tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
   11084            0 :                 if (res) return res;
   11085              :               }
   11086            0 :               break;
   11087              :             }
   11088            0 :           default:;
   11089              :           }
   11090            0 :       if (CONSTANT_CLASS_P (_p1))
   11091              :         {
   11092            0 :           {
   11093            0 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   11094            0 :             tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
   11095            0 :             if (res) return res;
   11096              :           }
   11097              :         }
   11098              :         break;
   11099              :       }
   11100       203332 :     default:;
   11101              :     }
   11102       203332 :   switch (TREE_CODE (_p1))
   11103              :     {
   11104          102 :     case REAL_CST:
   11105          102 :       {
   11106          102 :         {
   11107          102 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11108          102 :           tree res = generic_simplify_572 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
   11109          102 :           if (res) return res;
   11110              :         }
   11111          102 :         break;
   11112              :       }
   11113       203332 :     default:;
   11114              :     }
   11115       203332 :   {
   11116       203332 :     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11117       203332 :     if (tree_expr_nan_p (captures[0]) || tree_expr_nan_p (captures[1])
   11118              : )
   11119              :       {
   11120            0 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1822;
   11121            0 :         {
   11122            0 :           tree _r;
   11123            0 :           _r =  constant_boolean_node (false, type);
   11124            0 :           if (TREE_SIDE_EFFECTS (captures[0]))
   11125            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11126            0 :           if (TREE_SIDE_EFFECTS (captures[1]))
   11127            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11128            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1046, __FILE__, __LINE__, true);
   11129            0 :           return _r;
   11130              :         }
   11131            0 : next_after_fail1822:;
   11132              :       }
   11133              :     else
   11134              :       {
   11135       203332 :         if (!tree_expr_maybe_nan_p (captures[0]) && !tree_expr_maybe_nan_p (captures[1])
   11136              : )
   11137              :           {
   11138           10 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1823;
   11139           10 :             {
   11140           10 :               tree _r;
   11141           10 :               _r =  constant_boolean_node (true, type);
   11142           10 :               if (TREE_SIDE_EFFECTS (captures[0]))
   11143            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11144           10 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11145            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11146           10 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1047, __FILE__, __LINE__, true);
   11147           10 :               return _r;
   11148              :             }
   11149            0 : next_after_fail1823:;
   11150              :           }
   11151              :       }
   11152              :   }
   11153       203322 :   return NULL_TREE;
   11154              : }
   11155              : 
   11156              : tree
   11157           79 : generic_simplify_LTGT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   11158              : {
   11159           79 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   11160           79 :   switch (TREE_CODE (_p0))
   11161              :     {
   11162            0 :     case VEC_COND_EXPR:
   11163            0 :       {
   11164            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11165            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11166            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11167            0 :         switch (TREE_CODE (_p1))
   11168              :           {
   11169            0 :           case VEC_COND_EXPR:
   11170            0 :             {
   11171            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   11172            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   11173            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   11174            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   11175              :                 {
   11176            0 :                   {
   11177            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   11178            0 :                     if (VECTOR_TYPE_P (type)
   11179            0 :  && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
   11180            0 :  || types_match (type, TREE_TYPE (captures[2]))
   11181            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   11182              :  || (optimize_vectors_before_lowering_p ()
   11183            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   11184              : )
   11185              :                       {
   11186            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1839;
   11187            0 :                         {
   11188            0 :                           tree res_op0;
   11189            0 :                           res_op0 = captures[1];
   11190            0 :                           tree res_op1;
   11191            0 :                           {
   11192            0 :                             tree _o1[2], _r1;
   11193            0 :                             _o1[0] = captures[2];
   11194            0 :                             _o1[1] = captures[5];
   11195            0 :                             _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
   11196            0 :                             if (EXPR_P (_r1))
   11197            0 :                               goto next_after_fail1839;
   11198            0 :                             res_op1 = _r1;
   11199              :                           }
   11200            0 :                           tree res_op2;
   11201            0 :                           {
   11202            0 :                             tree _o1[2], _r1;
   11203            0 :                             _o1[0] = captures[3];
   11204            0 :                             _o1[1] = captures[6];
   11205            0 :                             _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
   11206            0 :                             if (EXPR_P (_r1))
   11207            0 :                               goto next_after_fail1839;
   11208            0 :                             res_op2 = _r1;
   11209              :                           }
   11210            0 :                           tree _r;
   11211            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11212            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
   11213            0 :                           return _r;
   11214              :                         }
   11215            0 : next_after_fail1839:;
   11216              :                       }
   11217              :                   }
   11218              :                 }
   11219              :               break;
   11220              :             }
   11221            0 :           default:;
   11222              :           }
   11223            0 :         {
   11224            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   11225            0 :           if (VECTOR_TYPE_P (type)
   11226            0 :  && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
   11227            0 :  || types_match (type, TREE_TYPE (captures[2]))
   11228            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   11229              :  || (optimize_vectors_before_lowering_p ()
   11230            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   11231              : )
   11232              :             {
   11233            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1840;
   11234            0 :               {
   11235            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1840;
   11236            0 :                 tree res_op0;
   11237            0 :                 res_op0 = captures[1];
   11238            0 :                 tree res_op1;
   11239            0 :                 {
   11240            0 :                   tree _o1[2], _r1;
   11241            0 :                   _o1[0] = captures[2];
   11242            0 :                   _o1[1] = unshare_expr (captures[4]);
   11243            0 :                   _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
   11244            0 :                   if (EXPR_P (_r1))
   11245            0 :                     goto next_after_fail1840;
   11246            0 :                   res_op1 = _r1;
   11247              :                 }
   11248            0 :                 tree res_op2;
   11249            0 :                 {
   11250            0 :                   tree _o1[2], _r1;
   11251            0 :                   _o1[0] = captures[3];
   11252            0 :                   _o1[1] = captures[4];
   11253            0 :                   _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
   11254            0 :                   if (EXPR_P (_r1))
   11255            0 :                     goto next_after_fail1840;
   11256            0 :                   res_op2 = _r1;
   11257              :                 }
   11258            0 :                 tree _r;
   11259            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11260            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
   11261            0 :                 return _r;
   11262              :               }
   11263            0 : next_after_fail1840:;
   11264              :             }
   11265              :         }
   11266            0 :         break;
   11267              :       }
   11268           79 :     default:;
   11269              :     }
   11270           79 :   switch (TREE_CODE (_p1))
   11271              :     {
   11272            0 :     case VEC_COND_EXPR:
   11273            0 :       {
   11274            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   11275            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   11276            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   11277            0 :         {
   11278            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   11279            0 :           if (VECTOR_TYPE_P (type)
   11280            0 :  && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
   11281            0 :  || types_match (type, TREE_TYPE (captures[3]))
   11282            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   11283              :  || (optimize_vectors_before_lowering_p ()
   11284            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   11285              : )
   11286              :             {
   11287            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1841;
   11288            0 :               {
   11289            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1841;
   11290            0 :                 tree res_op0;
   11291            0 :                 res_op0 = captures[2];
   11292            0 :                 tree res_op1;
   11293            0 :                 {
   11294            0 :                   tree _o1[2], _r1;
   11295            0 :                   _o1[0] = unshare_expr (captures[0]);
   11296            0 :                   _o1[1] = captures[3];
   11297            0 :                   _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
   11298            0 :                   if (EXPR_P (_r1))
   11299            0 :                     goto next_after_fail1841;
   11300            0 :                   res_op1 = _r1;
   11301              :                 }
   11302            0 :                 tree res_op2;
   11303            0 :                 {
   11304            0 :                   tree _o1[2], _r1;
   11305            0 :                   _o1[0] = captures[0];
   11306            0 :                   _o1[1] = captures[4];
   11307            0 :                   _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
   11308            0 :                   if (EXPR_P (_r1))
   11309            0 :                     goto next_after_fail1841;
   11310            0 :                   res_op2 = _r1;
   11311              :                 }
   11312            0 :                 tree _r;
   11313            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11314            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
   11315            0 :                 return _r;
   11316              :               }
   11317            0 : next_after_fail1841:;
   11318              :             }
   11319              :         }
   11320            0 :         break;
   11321              :       }
   11322           79 :     default:;
   11323              :     }
   11324           79 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11325              :     {
   11326            2 :       {
   11327            2 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   11328            2 :         if (!flag_trapping_math || !tree_expr_maybe_nan_p (captures[0])
   11329              : )
   11330              :           {
   11331            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1842;
   11332            0 :             {
   11333            0 :               tree _r;
   11334            0 :               _r =  constant_boolean_node (false, type);
   11335            0 :               if (TREE_SIDE_EFFECTS (captures[0]))
   11336            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11337            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1048, __FILE__, __LINE__, true);
   11338            0 :               return _r;
   11339              :             }
   11340            0 : next_after_fail1842:;
   11341              :           }
   11342              :       }
   11343              :     }
   11344           79 :   switch (TREE_CODE (_p0))
   11345              :     {
   11346            0 :     case FLOAT_EXPR:
   11347            0 :       {
   11348            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11349            0 :         switch (TREE_CODE (_p1))
   11350              :           {
   11351            0 :           case FLOAT_EXPR:
   11352            0 :             {
   11353            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11354            0 :               {
   11355            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11356            0 :                 tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, LTGT_EXPR, NE_EXPR);
   11357            0 :                 if (res) return res;
   11358              :               }
   11359            0 :               break;
   11360              :             }
   11361              :           default:;
   11362              :           }
   11363              :         break;
   11364              :       }
   11365            0 :     case NEGATE_EXPR:
   11366            0 :       {
   11367            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11368            0 :         switch (TREE_CODE (_p1))
   11369              :           {
   11370            0 :           case NEGATE_EXPR:
   11371            0 :             {
   11372            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11373            0 :               {
   11374            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   11375            0 :                 tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
   11376            0 :                 if (res) return res;
   11377              :               }
   11378            0 :               break;
   11379              :             }
   11380            0 :           default:;
   11381              :           }
   11382            0 :       if (CONSTANT_CLASS_P (_p1))
   11383              :         {
   11384            0 :           {
   11385            0 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   11386            0 :             tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
   11387            0 :             if (res) return res;
   11388              :           }
   11389              :         }
   11390              :         break;
   11391              :       }
   11392           79 :     default:;
   11393              :     }
   11394           79 :   switch (TREE_CODE (_p1))
   11395              :     {
   11396            2 :     case REAL_CST:
   11397            2 :       {
   11398            2 :         {
   11399            2 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11400            2 :           tree res = generic_simplify_572 (loc, type, _p0, _p1, captures, LTGT_EXPR);
   11401            2 :           if (res) return res;
   11402              :         }
   11403            2 :         break;
   11404              :       }
   11405              :     default:;
   11406              :     }
   11407              :   return NULL_TREE;
   11408              : }
   11409              : 
   11410              : tree
   11411       834667 : generic_simplify_VEC_PERM_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1, tree _p2)
   11412              : {
   11413       834667 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   11414       834667 :   switch (TREE_CODE (_p0))
   11415              :     {
   11416            0 :     case PLUS_EXPR:
   11417            0 :       {
   11418            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11419            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11420            0 :         switch (TREE_CODE (_p1))
   11421              :           {
   11422            0 :           case MINUS_EXPR:
   11423            0 :             {
   11424            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
   11425            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
   11426            0 :               switch (TREE_CODE (_p2))
   11427              :                 {
   11428            0 :                 case VECTOR_CST:
   11429            0 :                   {
   11430            0 :                     {
   11431            0 :                       tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51, _p2 };
   11432            0 :                       tree res = generic_simplify_634 (loc, type, _p0, _p1, _p2, captures, PLUS_EXPR, MINUS_EXPR);
   11433            0 :                       if (res) return res;
   11434              :                     }
   11435            0 :                     break;
   11436              :                   }
   11437              :                 default:;
   11438              :                 }
   11439              :               break;
   11440              :             }
   11441              :           default:;
   11442              :           }
   11443              :         break;
   11444              :       }
   11445            0 :     case MINUS_EXPR:
   11446            0 :       {
   11447            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11448            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11449            0 :         switch (TREE_CODE (_p1))
   11450              :           {
   11451            0 :           case PLUS_EXPR:
   11452            0 :             {
   11453            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
   11454            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
   11455            0 :               switch (TREE_CODE (_p2))
   11456              :                 {
   11457            0 :                 case VECTOR_CST:
   11458            0 :                   {
   11459            0 :                     {
   11460            0 :                       tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51, _p2 };
   11461            0 :                       tree res = generic_simplify_634 (loc, type, _p0, _p1, _p2, captures, MINUS_EXPR, PLUS_EXPR);
   11462            0 :                       if (res) return res;
   11463              :                     }
   11464            0 :                     break;
   11465              :                   }
   11466              :                 default:;
   11467              :                 }
   11468              :               break;
   11469              :             }
   11470              :           default:;
   11471              :           }
   11472              :         break;
   11473              :       }
   11474       834667 :     default:;
   11475              :     }
   11476       834667 :   switch (TREE_CODE (_p2))
   11477              :     {
   11478       823193 :     case VECTOR_CST:
   11479       823193 :       {
   11480       823193 :         {
   11481       823193 :           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
   11482       823193 :           {
   11483       823193 :  tree op0 = captures[0], op1 = captures[1], op2 = captures[2];
   11484       823193 :  machine_mode result_mode = TYPE_MODE (type);
   11485       823193 :  machine_mode op_mode = TYPE_MODE (TREE_TYPE (op0));
   11486       823193 :  vec_perm_builder builder;
   11487       823193 :               if (tree_to_vec_perm_builder (&builder, op2)
   11488              : )
   11489              :                 {
   11490       823181 :                   {
   11491       823181 :  poly_uint64 nelts = TYPE_VECTOR_SUBPARTS (type);
   11492       823181 :  poly_uint64 nelts_in = TYPE_VECTOR_SUBPARTS (TREE_TYPE (op0));
   11493       823181 :  bool single_arg = (op0 == op1);
   11494      1437257 :  vec_perm_indices sel (builder, single_arg ? 1 : 2, nelts_in);
   11495       823181 :                       if (known_eq (nelts, nelts_in) && sel.series_p (0, 1, 0, 1)
   11496              : )
   11497              :                         {
   11498        21766 :                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2022;
   11499        21766 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2022;
   11500        21766 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2022;
   11501        21766 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2022;
   11502        21766 :                           {
   11503        21766 :                             tree res_op0;
   11504        21766 :                             res_op0 = captures[0];
   11505        21766 :                             tree _r;
   11506        21766 :                             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11507        21766 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1114, __FILE__, __LINE__, true);
   11508        21766 :                             return _r;
   11509              :                           }
   11510       769797 : next_after_fail2022:;
   11511              :                         }
   11512              :                       else
   11513              :                         {
   11514       801415 :                           if (known_eq (nelts, nelts_in) && sel.series_p (0, 1, nelts_in, 1)
   11515              : )
   11516              :                             {
   11517           13 :                               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2023;
   11518           13 :                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2023;
   11519           13 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2023;
   11520           13 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2023;
   11521           13 :                               {
   11522           13 :                                 tree res_op0;
   11523           13 :                                 res_op0 = captures[1];
   11524           13 :                                 tree _r;
   11525           13 :                                 _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11526           13 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1115, __FILE__, __LINE__, true);
   11527           13 :                                 return _r;
   11528              :                               }
   11529       769797 : next_after_fail2023:;
   11530              :                             }
   11531              :                           else
   11532              :                             {
   11533       801402 :                               {
   11534       801402 :  if (!single_arg)
   11535              :  {
   11536       592973 :  if (sel.all_from_input_p (0))
   11537              :  op1 = op0;
   11538       572765 :  else if (sel.all_from_input_p (1))
   11539              :  {
   11540           33 :  op0 = op1;
   11541           33 :  sel.rotate_inputs (1);
   11542              :  }
   11543       572732 :  else if (known_ge (poly_uint64 (sel[0]), nelts_in))
   11544              :  {
   11545          169 :  std::swap (op0, op1);
   11546          169 :  sel.rotate_inputs (1);
   11547              :  }
   11548              :  }
   11549       801402 :  gassign *def;
   11550       801402 :  tree cop0 = op0, cop1 = op1;
   11551       801402 :  if (TREE_CODE (op0) == SSA_NAME
   11552       753203 :  && (def = dyn_cast <gassign *> (SSA_NAME_DEF_STMT (op0)))
   11553      1518677 :  && gimple_assign_rhs_code (def) == CONSTRUCTOR)
   11554        14240 :  cop0 = gimple_assign_rhs1 (def);
   11555       801402 :  if (TREE_CODE (op1) == SSA_NAME
   11556       732297 :  && (def = dyn_cast <gassign *> (SSA_NAME_DEF_STMT (op1)))
   11557      1499700 :  && gimple_assign_rhs_code (def) == CONSTRUCTOR)
   11558        21151 :  cop1 = gimple_assign_rhs1 (def);
   11559       801402 :  tree t;
   11560       801402 :                                   if ((TREE_CODE (cop0) == VECTOR_CST
   11561       757747 :  || TREE_CODE (cop0) == CONSTRUCTOR)
   11562        59727 :  && (TREE_CODE (cop1) == VECTOR_CST
   11563        25897 :  || TREE_CODE (cop1) == CONSTRUCTOR)
   11564       848310 :  && (t = fold_vec_perm (type, cop0, cop1, sel))
   11565              : )
   11566              :                                     {
   11567        29140 :                                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2024;
   11568        29140 :                                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2024;
   11569        29140 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2024;
   11570        29140 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2024;
   11571        29140 :                                       {
   11572        29140 :                                         tree _r;
   11573        29140 :                                         _r =  t;
   11574        29140 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1116, __FILE__, __LINE__, true);
   11575        29140 :                                         return _r;
   11576              :                                       }
   11577       769797 : next_after_fail2024:;
   11578              :                                     }
   11579              :                                   else
   11580              :                                     {
   11581       772262 :                                       {
   11582       772262 :  bool changed = (op0 == op1 && !single_arg);
   11583       772262 :  tree ins = NULL_TREE;
   11584       772262 :  unsigned at = 0;
   11585       772262 :  if (op_mode != BLKmode
   11586       760021 :  && known_eq (nelts, nelts_in)
   11587      1532130 :  && (TREE_CODE (cop0) == VECTOR_CST
   11588       744379 :  || TREE_CODE (cop0) == CONSTRUCTOR
   11589       734693 :  || TREE_CODE (cop1) == VECTOR_CST
   11590       703752 :  || TREE_CODE (cop1) == CONSTRUCTOR))
   11591              :  {
   11592        65219 :  bool insert_first_p = sel.series_p (1, 1, nelts + 1, 1);
   11593        65219 :  if (insert_first_p)
   11594              :  {
   11595          777 :  at = 0;
   11596          777 :  if ((ins = fold_read_from_vector (cop0, sel[0])))
   11597          115 :  op0 = op1;
   11598              :  }
   11599          777 :  if (!insert_first_p || (!ins && maybe_eq (nelts, 2u)))
   11600              :  {
   11601        64904 :  unsigned int encoded_nelts = sel.encoding ().encoded_nelts ();
   11602       140685 :  for (at = 0; at < encoded_nelts; ++at)
   11603       140538 :  if (maybe_ne (sel[at], at))
   11604              :  break;
   11605        64904 :  if (at < encoded_nelts
   11606        64904 :  && (known_eq (at + 1, nelts)
   11607        63407 :  || sel.series_p (at + 1, 1, at + 1, 1)))
   11608              :  {
   11609         2078 :  if (known_lt (poly_uint64 (sel[at]), nelts))
   11610            0 :  ins = fold_read_from_vector (cop0, sel[at]);
   11611              :  else
   11612         2078 :  ins = fold_read_from_vector (cop1, sel[at] - nelts);
   11613              :  }
   11614              :  }
   11615              :  }
   11616       772262 :  if (!ins && sel.encoding () != builder)
   11617              :  {
   11618         1048 :  tree oldop2 = op2;
   11619         1048 :  if (sel.ninputs () == 2
   11620         1048 :  || can_vec_perm_const_p (result_mode, op_mode, sel, false))
   11621          713 :  op2 = vec_perm_indices_to_tree (TREE_TYPE (op2), sel);
   11622              :  else
   11623              :  {
   11624          335 :  vec_perm_indices sel2 (builder, 2, nelts);
   11625          335 :  if (can_vec_perm_const_p (result_mode, op_mode, sel2, false))
   11626           60 :  op2 = vec_perm_indices_to_tree (TREE_TYPE (op2), sel2);
   11627              :  else
   11628          275 :  op2 = vec_perm_indices_to_tree (TREE_TYPE (op2), sel);
   11629          335 :  }
   11630         1048 :  if (!operand_equal_p (op2, oldop2, 0))
   11631          988 :  changed = true;
   11632              :  }
   11633       772262 :                                           if (ins
   11634              : )
   11635              :                                             {
   11636         1476 :                                               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2025;
   11637         1476 :                                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2025;
   11638         1476 :                                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2025;
   11639         1476 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2025;
   11640         1476 :                                               {
   11641         1476 :                                                 tree res_op0;
   11642         1476 :                                                 res_op0 =  op0;
   11643         1476 :                                                 tree res_op1;
   11644         1476 :                                                 res_op1 =  ins;
   11645         1476 :                                                 tree res_op2;
   11646         1476 :                                                 res_op2 =  bitsize_int (at * vector_element_bits (type));
   11647         1476 :                                                 tree _r;
   11648         1476 :                                                 _r = fold_build3_loc (loc, BIT_INSERT_EXPR, type, res_op0, res_op1, res_op2);
   11649         1476 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1117, __FILE__, __LINE__, true);
   11650        53384 :                                                 return _r;
   11651              :                                               }
   11652              : next_after_fail2025:;
   11653              :                                             }
   11654              :                                           else
   11655              :                                             {
   11656       770786 :                                               if (changed
   11657              : )
   11658              :                                                 {
   11659          989 :                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2026;
   11660          989 :                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2026;
   11661          989 :                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2026;
   11662          989 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2026;
   11663          989 :                                                   {
   11664          989 :                                                     tree res_op0;
   11665          989 :                                                     res_op0 =  op0;
   11666          989 :                                                     tree res_op1;
   11667          989 :                                                     res_op1 =  op1;
   11668          989 :                                                     tree res_op2;
   11669          989 :                                                     res_op2 =  op2;
   11670          989 :                                                     tree _r;
   11671          989 :                                                     _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
   11672          989 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1118, __FILE__, __LINE__, true);
   11673          989 :                                                     return _r;
   11674              :                                                   }
   11675              : next_after_fail2026:;
   11676              :                                                 }
   11677              :                                             }
   11678              :                                       }
   11679              :                                     }
   11680              :                               }
   11681              :                             }
   11682              :                         }
   11683       823181 :                   }
   11684              :                 }
   11685        53384 :           }
   11686              :         }
   11687       769809 :         break;
   11688              :       }
   11689       781283 :     default:;
   11690              :     }
   11691       781283 :   switch (TREE_CODE (_p0))
   11692              :     {
   11693            0 :     case VIEW_CONVERT_EXPR:
   11694            0 :       {
   11695            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11696            0 :         switch (TREE_CODE (_q20))
   11697              :           {
   11698            0 :           case VEC_PERM_EXPR:
   11699            0 :             {
   11700            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
   11701            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
   11702            0 :               tree _q32 = TREE_OPERAND (_q20, 2);
   11703            0 :               switch (TREE_CODE (_q32))
   11704              :                 {
   11705            0 :                 case VECTOR_CST:
   11706            0 :                   {
   11707            0 :                     if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11708              :                       {
   11709            0 :                         switch (TREE_CODE (_p2))
   11710              :                           {
   11711            0 :                           case VECTOR_CST:
   11712            0 :                             {
   11713            0 :                               {
   11714            0 :                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q32, _p2 };
   11715            0 :                                 if (TYPE_VECTOR_SUBPARTS (type).is_constant ()
   11716              : )
   11717              :                                   {
   11718            0 :                                     {
   11719            0 :  machine_mode result_mode = TYPE_MODE (type);
   11720            0 :  machine_mode op_mode = TYPE_MODE (TREE_TYPE (captures[2]));
   11721            0 :  int nelts = TYPE_VECTOR_SUBPARTS (type).to_constant ();
   11722            0 :  vec_perm_indices sel0, sel1;
   11723            0 :                                         if (tree_to_vec_perm_indices (&sel0, captures[2], captures[3], captures[4])
   11724            0 :  && tree_to_vec_perm_indices (&sel1, captures[0], captures[0], captures[5])
   11725            0 :  && TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))
   11726            0 :  == TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[1])))
   11727              : )
   11728              :                                           {
   11729            0 :                                             {
   11730            0 :  vec_perm_builder builder2 (nelts, nelts, 1);
   11731            0 :  for (int i = 0; i < nelts; i++)
   11732            0 :  builder2.quick_push (sel0[sel1[i].to_constant ()]);
   11733            0 :  vec_perm_indices sel2 (builder2, 2, nelts);
   11734            0 :  tree op0 = NULL_TREE;
   11735            0 :  if (can_vec_perm_const_p (result_mode, op_mode, sel2, false)
   11736            0 :  || (single_use (captures[0])
   11737            0 :  ? (!can_vec_perm_const_p (result_mode, op_mode, sel0, true)
   11738            0 :  || !can_vec_perm_const_p (result_mode, op_mode, sel1, true))
   11739              :  : !can_vec_perm_const_p (result_mode, op_mode, sel1, true)))
   11740            0 :  op0 = vec_perm_indices_to_tree (TREE_TYPE (captures[5]), sel2);
   11741            0 :                                                 if (op0
   11742              : )
   11743              :                                                   {
   11744            0 :                                                     if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2027;
   11745            0 :                                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2027;
   11746            0 :                                                     {
   11747            0 :                                                       tree res_op0;
   11748            0 :                                                       {
   11749            0 :                                                         tree _o1[3], _r1;
   11750            0 :                                                         _o1[0] = captures[2];
   11751            0 :                                                         _o1[1] = captures[3];
   11752            0 :                                                         _o1[2] =  op0;
   11753            0 :                                                         _r1 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1], _o1[2]);
   11754            0 :                                                         res_op0 = _r1;
   11755              :                                                       }
   11756            0 :                                                       tree _r;
   11757            0 :                                                       _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11758            0 :                                                       if (TREE_SIDE_EFFECTS (captures[4]))
   11759            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
   11760            0 :                                                       if (TREE_SIDE_EFFECTS (captures[5]))
   11761            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   11762            0 :                                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1119, __FILE__, __LINE__, true);
   11763            0 :                                                       return _r;
   11764              :                                                     }
   11765            0 : next_after_fail2027:;
   11766              :                                                   }
   11767            0 :                                             }
   11768              :                                           }
   11769            0 :                                     }
   11770              :                                   }
   11771              :                               }
   11772            0 :                               break;
   11773              :                             }
   11774              :                           default:;
   11775              :                           }
   11776              :                       }
   11777              :                     break;
   11778              :                   }
   11779              :                 default:;
   11780              :                 }
   11781              :               break;
   11782              :             }
   11783              :           default:;
   11784              :           }
   11785              :         break;
   11786              :       }
   11787            0 :     case VEC_PERM_EXPR:
   11788            0 :       {
   11789            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11790            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11791            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11792            0 :         switch (TREE_CODE (_q22))
   11793              :           {
   11794            0 :           case VECTOR_CST:
   11795            0 :             {
   11796            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11797              :                 {
   11798            0 :                   switch (TREE_CODE (_p2))
   11799              :                     {
   11800            0 :                     case VECTOR_CST:
   11801            0 :                       {
   11802            0 :                         {
   11803            0 :                           tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _q22, _p2 };
   11804            0 :                           if (TYPE_VECTOR_SUBPARTS (type).is_constant ()
   11805              : )
   11806              :                             {
   11807            0 :                               {
   11808            0 :  machine_mode result_mode = TYPE_MODE (type);
   11809            0 :  machine_mode op_mode = TYPE_MODE (TREE_TYPE (captures[2]));
   11810            0 :  int nelts = TYPE_VECTOR_SUBPARTS (type).to_constant ();
   11811            0 :  vec_perm_indices sel0, sel1;
   11812            0 :                                   if (tree_to_vec_perm_indices (&sel0, captures[2], captures[3], captures[4])
   11813            0 :  && tree_to_vec_perm_indices (&sel1, captures[0], captures[0], captures[5])
   11814            0 :  && TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))
   11815            0 :  == TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[1])))
   11816              : )
   11817              :                                     {
   11818            0 :                                       {
   11819            0 :  vec_perm_builder builder2 (nelts, nelts, 1);
   11820            0 :  for (int i = 0; i < nelts; i++)
   11821            0 :  builder2.quick_push (sel0[sel1[i].to_constant ()]);
   11822            0 :  vec_perm_indices sel2 (builder2, 2, nelts);
   11823            0 :  tree op0 = NULL_TREE;
   11824            0 :  if (can_vec_perm_const_p (result_mode, op_mode, sel2, false)
   11825            0 :  || (single_use (captures[0])
   11826            0 :  ? (!can_vec_perm_const_p (result_mode, op_mode, sel0, true)
   11827            0 :  || !can_vec_perm_const_p (result_mode, op_mode, sel1, true))
   11828              :  : !can_vec_perm_const_p (result_mode, op_mode, sel1, true)))
   11829            0 :  op0 = vec_perm_indices_to_tree (TREE_TYPE (captures[5]), sel2);
   11830            0 :                                           if (op0
   11831              : )
   11832              :                                             {
   11833            0 :                                               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2028;
   11834            0 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2028;
   11835            0 :                                               {
   11836            0 :                                                 tree res_op0;
   11837            0 :                                                 {
   11838            0 :                                                   tree _o1[3], _r1;
   11839            0 :                                                   _o1[0] = captures[2];
   11840            0 :                                                   _o1[1] = captures[3];
   11841            0 :                                                   _o1[2] =  op0;
   11842            0 :                                                   _r1 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1], _o1[2]);
   11843            0 :                                                   res_op0 = _r1;
   11844              :                                                 }
   11845            0 :                                                 tree _r;
   11846            0 :                                                 _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11847            0 :                                                 if (TREE_SIDE_EFFECTS (captures[4]))
   11848            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
   11849            0 :                                                 if (TREE_SIDE_EFFECTS (captures[5]))
   11850            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   11851            0 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1119, __FILE__, __LINE__, true);
   11852            0 :                                                 return _r;
   11853              :                                               }
   11854            0 : next_after_fail2028:;
   11855              :                                             }
   11856            0 :                                       }
   11857              :                                     }
   11858            0 :                               }
   11859              :                             }
   11860              :                         }
   11861            0 :                         break;
   11862              :                       }
   11863              :                     default:;
   11864              :                     }
   11865              :                 }
   11866              :               break;
   11867              :             }
   11868              :           default:;
   11869              :           }
   11870              :         break;
   11871              :       }
   11872       781283 :     default:;
   11873              :     }
   11874       781283 : if (tree_vec_same_elem_p (_p0))
   11875              :   {
   11876        13981 :     if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11877              :       {
   11878            0 :         {
   11879            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p2 };
   11880            0 :           if (types_match (type, TREE_TYPE (captures[0]))
   11881              : )
   11882              :             {
   11883            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2029;
   11884            0 :               {
   11885            0 :                 tree _r;
   11886            0 :                 _r = captures[0];
   11887            0 :                 if (TREE_SIDE_EFFECTS (captures[1]))
   11888            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11889            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1120, __FILE__, __LINE__, true);
   11890            0 :                 return _r;
   11891              :               }
   11892            0 : next_after_fail2029:;
   11893              :             }
   11894              :           else
   11895              :             {
   11896            0 :               {
   11897            0 :  tree elem = uniform_vector_p (captures[0]);
   11898            0 :                   if (elem
   11899              : )
   11900              :                     {
   11901            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2030;
   11902            0 :                       {
   11903            0 :                         tree _r;
   11904            0 :                         _r =  build_vector_from_val (type, elem);
   11905            0 :                         if (TREE_SIDE_EFFECTS (captures[0]))
   11906            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11907            0 :                         if (TREE_SIDE_EFFECTS (captures[1]))
   11908            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11909            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1121, __FILE__, __LINE__, true);
   11910            0 :                         return _r;
   11911              :                       }
   11912            0 : next_after_fail2030:;
   11913              :                     }
   11914              :               }
   11915              :             }
   11916              :         }
   11917              :       }
   11918              :   }
   11919       781283 :   switch (TREE_CODE (_p1))
   11920              :     {
   11921            0 :     case VEC_PERM_EXPR:
   11922            0 :       {
   11923            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   11924            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   11925            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   11926            0 :         switch (TREE_CODE (_q32))
   11927              :           {
   11928            0 :           case VECTOR_CST:
   11929            0 :             {
   11930            0 :               switch (TREE_CODE (_p2))
   11931              :                 {
   11932            0 :                 case VECTOR_CST:
   11933            0 :                   {
   11934            0 :                     {
   11935            0 :                       tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _p2 };
   11936            0 :                       if (TYPE_VECTOR_SUBPARTS (type).is_constant ()
   11937              : )
   11938              :                         {
   11939            0 :                           {
   11940            0 :  machine_mode result_mode = TYPE_MODE (type);
   11941            0 :  machine_mode op_mode = TYPE_MODE (TREE_TYPE (captures[2]));
   11942            0 :  int nelts = TYPE_VECTOR_SUBPARTS (type).to_constant ();
   11943            0 :  vec_perm_indices sel0, sel1;
   11944            0 :                               if (tree_to_vec_perm_indices (&sel0, captures[2], captures[3], captures[4])
   11945            0 :  && tree_to_vec_perm_indices (&sel1, captures[0], captures[1], captures[5])
   11946              : )
   11947              :                                 {
   11948            0 :                                   {
   11949            0 :  bool use_1 = false, use_2 = false;
   11950            0 :  vec_perm_builder builder2 (nelts, nelts, 2);
   11951            0 :  for (int i = 0; i < nelts; i++)
   11952              :  {
   11953            0 :  if (known_lt ((poly_uint64)sel1[i], sel1.nelts_per_input ()))
   11954            0 :  builder2.quick_push (sel1[i]);
   11955              :  else
   11956              :  {
   11957            0 :  poly_uint64 j = sel0[(sel1[i] - sel1.nelts_per_input ())
   11958            0 :  .to_constant ()];
   11959            0 :  if (known_lt (j, sel0.nelts_per_input ()))
   11960              :  use_1 = true;
   11961              :  else
   11962              :  {
   11963            0 :  use_2 = true;
   11964            0 :  j -= sel0.nelts_per_input ();
   11965              :  }
   11966            0 :  builder2.quick_push (j + sel1.nelts_per_input ());
   11967              :  }
   11968              :  }
   11969            0 :                                       if (use_1 ^ use_2
   11970              : )
   11971              :                                         {
   11972            0 :                                           {
   11973            0 :  vec_perm_indices sel2 (builder2, 2, nelts);
   11974            0 :  tree op0 = NULL_TREE;
   11975            0 :  if (can_vec_perm_const_p (result_mode, op_mode, sel2, false)
   11976            0 :  || (single_use (captures[1])
   11977            0 :  ? (!can_vec_perm_const_p (result_mode, op_mode, sel0, true)
   11978            0 :  || !can_vec_perm_const_p (result_mode, op_mode, sel1, true))
   11979              :  : !can_vec_perm_const_p (result_mode, op_mode, sel1, true)))
   11980            0 :  op0 = vec_perm_indices_to_tree (TREE_TYPE (captures[5]), sel2);
   11981            0 :                                               if (op0
   11982              : )
   11983              :                                                 {
   11984            0 :                                                   if (use_1
   11985              : )
   11986              :                                                     {
   11987            0 :                                                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2031;
   11988            0 :                                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2031;
   11989            0 :                                                       {
   11990            0 :                                                         tree res_op0;
   11991            0 :                                                         res_op0 = captures[0];
   11992            0 :                                                         tree res_op1;
   11993            0 :                                                         res_op1 = captures[2];
   11994            0 :                                                         tree res_op2;
   11995            0 :                                                         res_op2 =  op0;
   11996            0 :                                                         tree _r;
   11997            0 :                                                         _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
   11998            0 :                                                         if (TREE_SIDE_EFFECTS (captures[3]))
   11999            0 :                                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
   12000            0 :                                                         if (TREE_SIDE_EFFECTS (captures[4]))
   12001            0 :                                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
   12002            0 :                                                         if (TREE_SIDE_EFFECTS (captures[5]))
   12003            0 :                                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   12004            0 :                                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1122, __FILE__, __LINE__, true);
   12005            0 :                                                         return _r;
   12006              :                                                       }
   12007            0 : next_after_fail2031:;
   12008              :                                                     }
   12009              :                                                   else
   12010              :                                                     {
   12011            0 :                                                       if (use_2
   12012              : )
   12013              :                                                         {
   12014            0 :                                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2032;
   12015            0 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2032;
   12016            0 :                                                           {
   12017            0 :                                                             tree res_op0;
   12018            0 :                                                             res_op0 = captures[0];
   12019            0 :                                                             tree res_op1;
   12020            0 :                                                             res_op1 = captures[3];
   12021            0 :                                                             tree res_op2;
   12022            0 :                                                             res_op2 =  op0;
   12023            0 :                                                             tree _r;
   12024            0 :                                                             _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
   12025            0 :                                                             if (TREE_SIDE_EFFECTS (captures[2]))
   12026            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   12027            0 :                                                             if (TREE_SIDE_EFFECTS (captures[4]))
   12028            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
   12029            0 :                                                             if (TREE_SIDE_EFFECTS (captures[5]))
   12030            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   12031            0 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1123, __FILE__, __LINE__, true);
   12032            0 :                                                             return _r;
   12033              :                                                           }
   12034            0 : next_after_fail2032:;
   12035              :                                                         }
   12036              :                                                     }
   12037              :                                                 }
   12038            0 :                                           }
   12039              :                                         }
   12040            0 :                                   }
   12041              :                                 }
   12042            0 :                           }
   12043              :                         }
   12044              :                     }
   12045            0 :                     break;
   12046              :                   }
   12047              :                 default:;
   12048              :                 }
   12049              :               break;
   12050              :             }
   12051              :           default:;
   12052              :           }
   12053              :         break;
   12054              :       }
   12055       781283 :     default:;
   12056              :     }
   12057       781283 :   switch (TREE_CODE (_p0))
   12058              :     {
   12059            0 :     case VEC_PERM_EXPR:
   12060            0 :       {
   12061            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   12062            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   12063            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   12064            0 :         switch (TREE_CODE (_q22))
   12065              :           {
   12066            0 :           case VECTOR_CST:
   12067            0 :             {
   12068            0 :               switch (TREE_CODE (_p2))
   12069              :                 {
   12070            0 :                 case VECTOR_CST:
   12071            0 :                   {
   12072            0 :                     {
   12073            0 :                       tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _p2 };
   12074            0 :                       if (TYPE_VECTOR_SUBPARTS (type).is_constant ()
   12075              : )
   12076              :                         {
   12077            0 :                           {
   12078            0 :  machine_mode result_mode = TYPE_MODE (type);
   12079            0 :  machine_mode op_mode = TYPE_MODE (TREE_TYPE (captures[1]));
   12080            0 :  int nelts = TYPE_VECTOR_SUBPARTS (type).to_constant ();
   12081            0 :  vec_perm_indices sel0, sel1;
   12082            0 :                               if (tree_to_vec_perm_indices (&sel0, captures[1], captures[2], captures[3])
   12083            0 :  && tree_to_vec_perm_indices (&sel1, captures[0], captures[4], captures[5])
   12084              : )
   12085              :                                 {
   12086            0 :                                   {
   12087            0 :  bool use_1 = false, use_2 = false;
   12088            0 :  vec_perm_builder builder2 (nelts, nelts, 2);
   12089            0 :  for (int i = 0; i < nelts; i++)
   12090              :  {
   12091            0 :  if (known_ge ((poly_uint64)sel1[i], sel1.nelts_per_input ()))
   12092            0 :  builder2.quick_push (sel1[i]);
   12093              :  else
   12094              :  {
   12095            0 :  poly_uint64 j = sel0[sel1[i].to_constant ()];
   12096            0 :  if (known_lt (j, sel0.nelts_per_input ()))
   12097              :  use_1 = true;
   12098              :  else
   12099              :  {
   12100            0 :  use_2 = true;
   12101            0 :  j -= sel0.nelts_per_input ();
   12102              :  }
   12103            0 :  builder2.quick_push (j);
   12104              :  }
   12105              :  }
   12106            0 :                                       if (use_1 ^ use_2
   12107              : )
   12108              :                                         {
   12109            0 :                                           {
   12110            0 :  vec_perm_indices sel2 (builder2, 2, nelts);
   12111            0 :  tree op0 = NULL_TREE;
   12112            0 :  if (can_vec_perm_const_p (result_mode, op_mode, sel2, false)
   12113            0 :  || (single_use (captures[0])
   12114            0 :  ? (!can_vec_perm_const_p (result_mode, op_mode, sel0, true)
   12115            0 :  || !can_vec_perm_const_p (result_mode, op_mode, sel1, true))
   12116              :  : !can_vec_perm_const_p (result_mode, op_mode, sel1, true)))
   12117            0 :  op0 = vec_perm_indices_to_tree (TREE_TYPE (captures[5]), sel2);
   12118            0 :                                               if (op0
   12119              : )
   12120              :                                                 {
   12121            0 :                                                   if (use_1
   12122              : )
   12123              :                                                     {
   12124            0 :                                                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2033;
   12125            0 :                                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2033;
   12126            0 :                                                       {
   12127            0 :                                                         tree res_op0;
   12128            0 :                                                         res_op0 = captures[1];
   12129            0 :                                                         tree res_op1;
   12130            0 :                                                         res_op1 = captures[4];
   12131            0 :                                                         tree res_op2;
   12132            0 :                                                         res_op2 =  op0;
   12133            0 :                                                         tree _r;
   12134            0 :                                                         _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
   12135            0 :                                                         if (TREE_SIDE_EFFECTS (captures[2]))
   12136            0 :                                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   12137            0 :                                                         if (TREE_SIDE_EFFECTS (captures[3]))
   12138            0 :                                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
   12139            0 :                                                         if (TREE_SIDE_EFFECTS (captures[5]))
   12140            0 :                                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   12141            0 :                                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1124, __FILE__, __LINE__, true);
   12142            0 :                                                         return _r;
   12143              :                                                       }
   12144            0 : next_after_fail2033:;
   12145              :                                                     }
   12146              :                                                   else
   12147              :                                                     {
   12148            0 :                                                       if (use_2
   12149              : )
   12150              :                                                         {
   12151            0 :                                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2034;
   12152            0 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2034;
   12153            0 :                                                           {
   12154            0 :                                                             tree res_op0;
   12155            0 :                                                             res_op0 = captures[2];
   12156            0 :                                                             tree res_op1;
   12157            0 :                                                             res_op1 = captures[4];
   12158            0 :                                                             tree res_op2;
   12159            0 :                                                             res_op2 =  op0;
   12160            0 :                                                             tree _r;
   12161            0 :                                                             _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
   12162            0 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
   12163            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   12164            0 :                                                             if (TREE_SIDE_EFFECTS (captures[3]))
   12165            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
   12166            0 :                                                             if (TREE_SIDE_EFFECTS (captures[5]))
   12167            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   12168            0 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1125, __FILE__, __LINE__, true);
   12169            0 :                                                             return _r;
   12170              :                                                           }
   12171            0 : next_after_fail2034:;
   12172              :                                                         }
   12173              :                                                     }
   12174              :                                                 }
   12175            0 :                                           }
   12176              :                                         }
   12177            0 :                                   }
   12178              :                                 }
   12179            0 :                           }
   12180              :                         }
   12181              :                     }
   12182            0 :                     break;
   12183              :                   }
   12184            0 :                 default:;
   12185              :                 }
   12186            0 :               switch (TREE_CODE (_p1))
   12187              :                 {
   12188            0 :                 case VEC_PERM_EXPR:
   12189            0 :                   {
   12190            0 :                     tree _q60 = TREE_OPERAND (_p1, 0);
   12191            0 :                     tree _q61 = TREE_OPERAND (_p1, 1);
   12192            0 :                     tree _q62 = TREE_OPERAND (_p1, 2);
   12193            0 :                     if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
   12194              :                       {
   12195            0 :                         switch (TREE_CODE (_q62))
   12196              :                           {
   12197            0 :                           case VECTOR_CST:
   12198            0 :                             {
   12199            0 :                               switch (TREE_CODE (_p2))
   12200              :                                 {
   12201            0 :                                 case VECTOR_CST:
   12202            0 :                                   {
   12203            0 :                                     {
   12204            0 :                                       tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60, _q61, _p2 };
   12205            0 :                                       tree res = generic_simplify_635 (loc, type, _p0, _p1, _p2, captures);
   12206            0 :                                       if (res) return res;
   12207              :                                     }
   12208            0 :                                     break;
   12209              :                                   }
   12210              :                                 default:;
   12211              :                                 }
   12212              :                               break;
   12213              :                             }
   12214              :                           default:;
   12215              :                           }
   12216              :                       }
   12217              :                     break;
   12218              :                   }
   12219              :                 default:;
   12220              :                 }
   12221              :               break;
   12222              :             }
   12223              :           default:;
   12224              :           }
   12225              :         break;
   12226              :       }
   12227            0 :     case VIEW_CONVERT_EXPR:
   12228            0 :       {
   12229            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   12230            0 :         switch (TREE_CODE (_q20))
   12231              :           {
   12232            0 :           case VEC_PERM_EXPR:
   12233            0 :             {
   12234            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
   12235            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
   12236            0 :               tree _q32 = TREE_OPERAND (_q20, 2);
   12237            0 :               switch (TREE_CODE (_q32))
   12238              :                 {
   12239            0 :                 case VECTOR_CST:
   12240            0 :                   {
   12241            0 :                     switch (TREE_CODE (_p1))
   12242              :                       {
   12243            0 :                       case VIEW_CONVERT_EXPR:
   12244            0 :                         {
   12245            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   12246            0 :                           switch (TREE_CODE (_q70))
   12247              :                             {
   12248            0 :                             case VEC_PERM_EXPR:
   12249            0 :                               {
   12250            0 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   12251            0 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   12252            0 :                                 tree _q82 = TREE_OPERAND (_q70, 2);
   12253            0 :                                 if ((_q82 == _q32 && ! TREE_SIDE_EFFECTS (_q82)) || (operand_equal_p (_q82, _q32, 0) && types_match (_q82, _q32)))
   12254              :                                   {
   12255            0 :                                     switch (TREE_CODE (_q82))
   12256              :                                       {
   12257            0 :                                       case VECTOR_CST:
   12258            0 :                                         {
   12259            0 :                                           switch (TREE_CODE (_p2))
   12260              :                                             {
   12261            0 :                                             case VECTOR_CST:
   12262            0 :                                               {
   12263            0 :                                                 {
   12264            0 :                                                   tree captures[6] ATTRIBUTE_UNUSED = { _q30, _q31, _q32, _q80, _q81, _p2 };
   12265            0 :                                                   tree res = generic_simplify_635 (loc, type, _p0, _p1, _p2, captures);
   12266            0 :                                                   if (res) return res;
   12267              :                                                 }
   12268            0 :                                                 break;
   12269              :                                               }
   12270              :                                             default:;
   12271              :                                             }
   12272              :                                           break;
   12273              :                                         }
   12274              :                                       default:;
   12275              :                                       }
   12276              :                                   }
   12277              :                                 break;
   12278              :                               }
   12279              :                             default:;
   12280              :                             }
   12281              :                           break;
   12282              :                         }
   12283              :                       default:;
   12284              :                       }
   12285              :                     break;
   12286              :                   }
   12287              :                 default:;
   12288              :                 }
   12289              :               break;
   12290              :             }
   12291              :           default:;
   12292              :           }
   12293              :         break;
   12294              :       }
   12295              :     default:;
   12296              :     }
   12297              :   return NULL_TREE;
   12298              : }
   12299              : #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.