LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - generic-match-7.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 49.9 % 7390 3690
Test Date: 2026-06-20 15:32:29 Functions: 69.3 % 75 52
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    113004466 : tree_maybe_cmp (tree t, tree *res_ops)
      11              : {
      12    113004466 :   const tree type = TREE_TYPE (t);
      13    113004466 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14    113004466 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15    113004466 :   switch (TREE_CODE (t))
      16              :     {
      17       451076 :     case LT_EXPR:
      18       451076 :     case LE_EXPR:
      19       451076 :     case EQ_EXPR:
      20       451076 :     case NE_EXPR:
      21       451076 :     case GE_EXPR:
      22       451076 :     case GT_EXPR:
      23       451076 :     case UNORDERED_EXPR:
      24       451076 :     case ORDERED_EXPR:
      25       451076 :     case UNLT_EXPR:
      26       451076 :     case UNLE_EXPR:
      27       451076 :     case UNGT_EXPR:
      28       451076 :     case UNGE_EXPR:
      29       451076 :     case UNEQ_EXPR:
      30       451076 :     case LTGT_EXPR:
      31       451076 :       {
      32       451076 :         tree _p0 = TREE_OPERAND (t, 0);
      33       451076 :         tree _p1 = TREE_OPERAND (t, 1);
      34       451076 :         {
      35       451076 :           tree captures[3] ATTRIBUTE_UNUSED = { t, _p0, _p1 };
      36       451076 :           {
      37       451076 :             res_ops[0] = captures[0];
      38       451076 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 5, __FILE__, __LINE__, false);
      39       451076 :             return true;
      40              :           }
      41              :         }
      42     24272754 :         break;
      43              :       }
      44     24272754 :     CASE_CONVERT:
      45     24272754 :       {
      46     24272754 :         tree _p0 = TREE_OPERAND (t, 0);
      47     24272754 :         switch (TREE_CODE (_p0))
      48              :           {
      49         1437 :           case LT_EXPR:
      50         1437 :           case LE_EXPR:
      51         1437 :           case EQ_EXPR:
      52         1437 :           case NE_EXPR:
      53         1437 :           case GE_EXPR:
      54         1437 :           case GT_EXPR:
      55         1437 :           case UNORDERED_EXPR:
      56         1437 :           case ORDERED_EXPR:
      57         1437 :           case UNLT_EXPR:
      58         1437 :           case UNLE_EXPR:
      59         1437 :           case UNGT_EXPR:
      60         1437 :           case UNGE_EXPR:
      61         1437 :           case UNEQ_EXPR:
      62         1437 :           case LTGT_EXPR:
      63         1437 :             {
      64         1437 :               tree _q20 = TREE_OPERAND (_p0, 0);
      65         1437 :               tree _q21 = TREE_OPERAND (_p0, 1);
      66         1437 :               {
      67         1437 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
      68         1437 :                 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
      69              : )
      70              :                   {
      71          774 :                     {
      72          774 :                       res_ops[0] = captures[0];
      73          774 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 6, __FILE__, __LINE__, false);
      74          774 :                       return true;
      75              :                     }
      76              :                   }
      77              :               }
      78              :               break;
      79              :             }
      80              :           default:;
      81              :           }
      82              :         break;
      83              :       }
      84       181492 :     case BIT_XOR_EXPR:
      85       181492 :       {
      86       181492 :         tree _p0 = TREE_OPERAND (t, 0);
      87       181492 :         tree _p1 = TREE_OPERAND (t, 1);
      88       181492 :         {
      89       181492 :           tree captures[3] ATTRIBUTE_UNUSED = { t, _p0, _p1 };
      90       181492 :           if (INTEGRAL_TYPE_P (type)
      91       181492 :  && TYPE_PRECISION (type) == 1
      92              : )
      93              :             {
      94        88314 :               {
      95        88314 :                 res_ops[0] = captures[0];
      96        88314 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 7, __FILE__, __LINE__, false);
      97        88314 :                 return true;
      98              :               }
      99              :             }
     100              :         }
     101              :         break;
     102              :       }
     103              :     default:;
     104              :     }
     105              :   return false;
     106              : }
     107              : 
     108              : bool
     109            0 : tree_float_value_p (tree t)
     110              : {
     111            0 :   const tree type = TREE_TYPE (t);
     112            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     113            0 :   if (TREE_SIDE_EFFECTS (t)) return false;
     114            0 :   {
     115            0 :     tree captures[1] ATTRIBUTE_UNUSED = { t };
     116            0 :     if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == float_type_node
     117              : )
     118              :       {
     119            0 :         {
     120            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 45, __FILE__, __LINE__, false);
     121            0 :           return true;
     122              :         }
     123              :       }
     124              :   }
     125              :   return false;
     126              : }
     127              : 
     128              : tree
     129            0 : generic_simplify_7 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     130              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     131              : {
     132            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     133            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail78;
     134            0 :   {
     135            0 :     tree res_op0;
     136            0 :     res_op0 = captures[1];
     137            0 :     tree res_op1;
     138            0 :     res_op1 = captures[2];
     139            0 :     tree _r;
     140            0 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     141            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 55, __FILE__, __LINE__, true);
     142              :     return _r;
     143              :   }
     144            0 : next_after_fail78:;
     145            0 :   return NULL_TREE;
     146              : }
     147              : 
     148              : tree
     149          589 : generic_simplify_13 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     150              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     151              : {
     152          589 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     153          589 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail88;
     154          589 :   {
     155          589 :     if (! tree_invariant_p (captures[3])) goto next_after_fail88;
     156            1 :     tree res_op0;
     157            1 :     {
     158            1 :       tree _o1[2], _r1;
     159            1 :       _o1[0] = captures[2];
     160            1 :       _o1[1] = unshare_expr (captures[3]);
     161            1 :       _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     162            1 :       res_op0 = _r1;
     163              :     }
     164            1 :     tree res_op1;
     165            1 :     {
     166            1 :       tree _o1[2], _r1;
     167            1 :       {
     168            1 :         tree _o2[1], _r2;
     169            1 :         _o2[0] = captures[4];
     170            1 :         _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
     171            1 :         if (EXPR_P (_r2))
     172            0 :           goto next_after_fail88;
     173            1 :         _o1[0] = _r2;
     174              :       }
     175            1 :       _o1[1] = captures[3];
     176            1 :       _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     177            1 :       if (EXPR_P (_r1))
     178            0 :         goto next_after_fail88;
     179            1 :       res_op1 = _r1;
     180              :     }
     181            1 :     tree _r;
     182            1 :     _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
     183            1 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 61, __FILE__, __LINE__, true);
     184              :     return _r;
     185              :   }
     186              : next_after_fail88:;
     187              :   return NULL_TREE;
     188              : }
     189              : 
     190              : tree
     191           10 : generic_simplify_26 (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_fail101;
     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", 74, __FILE__, __LINE__, true);
     228           10 :         return _r;
     229              :       }
     230            0 : next_after_fail101:;
     231              :     }
     232              :   return NULL_TREE;
     233              : }
     234              : 
     235              : tree
     236            0 : generic_simplify_37 (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_fail114;
     249              :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail114;
     250              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail114;
     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", 86, __FILE__, __LINE__, true);
     261              :         return _r;
     262              :       }
     263            0 : next_after_fail114:;
     264              :     }
     265            0 :   return NULL_TREE;
     266              : }
     267              : 
     268              : tree
     269           19 : generic_simplify_44 (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_fail122;
     285            0 :           if (TREE_SIDE_EFFECTS (captures[7])) goto next_after_fail122;
     286            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail122;
     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", 88, __FILE__, __LINE__, true);
     311            0 :             return _r;
     312              :           }
     313            0 : next_after_fail122:;
     314            0 :       }
     315              :     }
     316              :   return NULL_TREE;
     317              : }
     318              : 
     319              : tree
     320         5301 : generic_simplify_54 (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         5301 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     324         5301 :   if (fold_real_zero_addition_p (type, captures[0], captures[1], 0)
     325              : )
     326              :     {
     327           95 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail134;
     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", 102, __FILE__, __LINE__, true);
     336           95 :         return _r;
     337              :       }
     338            0 : next_after_fail134:;
     339              :     }
     340              :   return NULL_TREE;
     341              : }
     342              : 
     343              : tree
     344            0 : 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            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     348            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail140;
     349            0 :   {
     350            0 :     tree res_op0;
     351            0 :     res_op0 = captures[0];
     352            0 :     tree res_op1;
     353            0 :     res_op1 = captures[1];
     354            0 :     tree _r;
     355            0 :     _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
     356            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 108, __FILE__, __LINE__, true);
     357              :     return _r;
     358              :   }
     359            0 : next_after_fail140:;
     360            0 :   return NULL_TREE;
     361              : }
     362              : 
     363              : tree
     364           10 : generic_simplify_66 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     365              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     366              : {
     367           10 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     368           10 :   if (!TYPE_SATURATING (type)
     369              : )
     370              :     {
     371           10 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     372           20 :  && !FIXED_POINT_TYPE_P (type)
     373              : )
     374              :         {
     375           10 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail155;
     376           10 :           {
     377           10 :             tree res_op0;
     378           10 :             res_op0 = captures[2];
     379           10 :             tree res_op1;
     380           10 :             res_op1 = captures[1];
     381           10 :             tree _r;
     382           10 :             _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
     383           10 :             if (TREE_SIDE_EFFECTS (captures[0]))
     384            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     385           10 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 123, __FILE__, __LINE__, true);
     386           10 :             return _r;
     387              :           }
     388            0 : next_after_fail155:;
     389              :         }
     390              :     }
     391              :   return NULL_TREE;
     392              : }
     393              : 
     394              : tree
     395       472416 : generic_simplify_73 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     396              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     397              :  const enum tree_code ARG_UNUSED (plusminus))
     398              : {
     399       472416 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     400       472416 :   if (!TYPE_SATURATING (type)
     401       472416 :  && (!FLOAT_TYPE_P (type) || flag_associative_math)
     402              : )
     403              :     {
     404       471876 :       if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
     405              : )
     406              :         {
     407           55 :           if ((!ANY_INTEGRAL_TYPE_P (type)
     408       471835 :  || TYPE_OVERFLOW_WRAPS (type)
     409       100054 :  || (INTEGRAL_TYPE_P (type)
     410       100040 :  && ((tree_expr_nonzero_p (captures[1])
     411        72678 :  && (plusminus == MINUS_EXPR
     412        72537 :  || expr_not_equal_to (captures[1],
     413       544413 :  wi::minus_one (TYPE_PRECISION (type)),
     414              :  gimple_match_ctx (captures[0]))))
     415        27362 :  || expr_not_equal_to (captures[2],
     416              :  (plusminus == PLUS_EXPR
     417       499238 :  ? wi::max_value (TYPE_PRECISION (type), SIGNED)
     418         1620 :  : wi::min_value (TYPE_PRECISION (type), SIGNED)),
     419              :  gimple_match_ctx (captures[0])))))
     420       471876 :  && single_use (captures[0])
     421              : )
     422              :             {
     423       470269 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail163;
     424       470269 :               {
     425       470269 :                 tree res_op0;
     426       470269 :                 {
     427       470269 :                   tree _o1[2], _r1;
     428       470269 :                   _o1[0] = captures[2];
     429       470269 :                   _o1[1] =  build_one_cst (type);
     430       470269 :                   _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     431       470269 :                   res_op0 = _r1;
     432              :                 }
     433       470269 :                 tree res_op1;
     434       470269 :                 res_op1 = captures[1];
     435       470269 :                 tree _r;
     436       470269 :                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
     437       470269 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 131, __FILE__, __LINE__, true);
     438       470269 :                 return _r;
     439              :               }
     440            0 : next_after_fail163:;
     441              :             }
     442              :         }
     443              :     }
     444              :   return NULL_TREE;
     445              : }
     446              : 
     447              : tree
     448          117 : generic_simplify_81 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     449              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     450              :  const combined_fn ARG_UNUSED (POPCOUNT))
     451              : {
     452          117 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     453          234 :   if (INTEGRAL_TYPE_P (type)
     454          585 :  && (wi::bit_and (widest_int::from (tree_nonzero_bits (captures[1]), UNSIGNED),
     455          468 :  widest_int::from (tree_nonzero_bits (captures[3]), UNSIGNED))
     456          351 :  == 0)
     457              : )
     458              :     {
     459            1 :       {
     460            1 :  tree utype = TREE_TYPE (captures[1]);
     461            1 :  if (TYPE_PRECISION (utype) < TYPE_PRECISION (TREE_TYPE (captures[3])))
     462            0 :  utype = TREE_TYPE (captures[3]);
     463            1 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail172;
     464            1 :           {
     465            1 :             tree res_op0;
     466            1 :             {
     467            1 :               tree _o1[2], _r1;
     468            1 :               {
     469            1 :                 tree _o2[1], _r2;
     470            1 :                 _o2[0] = captures[1];
     471            1 :                 if (TREE_TYPE (_o2[0]) != utype)
     472              :                   {
     473            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     474              :                   }
     475              :                 else
     476              :                   _r2 = _o2[0];
     477            1 :                 _o1[0] = _r2;
     478              :               }
     479            1 :               {
     480            1 :                 tree _o2[1], _r2;
     481            1 :                 _o2[0] = captures[3];
     482            1 :                 if (TREE_TYPE (_o2[0]) != utype)
     483              :                   {
     484            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     485              :                   }
     486              :                 else
     487              :                   _r2 = _o2[0];
     488            1 :                 _o1[1] = _r2;
     489              :               }
     490            1 :               _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     491            1 :               res_op0 = _r1;
     492              :             }
     493            1 :             tree _r;
     494            1 :             _r = maybe_build_call_expr_loc (loc, POPCOUNT, type, 1, res_op0);
     495            1 :             if (!_r)
     496            0 :               goto next_after_fail172;
     497            1 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 140, __FILE__, __LINE__, true);
     498            1 :             return _r;
     499              :           }
     500              : next_after_fail172:;
     501              :       }
     502              :     }
     503              :   return NULL_TREE;
     504              : }
     505              : 
     506              : tree
     507          304 : generic_simplify_94 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     508              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     509              : {
     510          304 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     511          304 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
     512          304 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
     513              : )
     514              :     {
     515          304 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail185;
     516          304 :       {
     517          304 :         tree res_op0;
     518          304 :         {
     519          304 :           tree _o1[2], _r1;
     520          304 :           {
     521          304 :             tree _o2[1], _r2;
     522          304 :             _o2[0] = captures[3];
     523          304 :             _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
     524          304 :             _o1[0] = _r2;
     525              :           }
     526          304 :           _o1[1] = captures[0];
     527          304 :           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     528          304 :           res_op0 = _r1;
     529              :         }
     530          304 :         tree _r;
     531          304 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     532          304 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 152, __FILE__, __LINE__, true);
     533          304 :         return _r;
     534              :       }
     535            0 : next_after_fail185:;
     536              :     }
     537              :   return NULL_TREE;
     538              : }
     539              : 
     540              : tree
     541        11638 : generic_simplify_104 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     542              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     543              : {
     544        11638 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     545        11638 :   if (!TYPE_SATURATING (type)
     546              : )
     547              :     {
     548        11638 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     549        23276 :  && !FIXED_POINT_TYPE_P (type)
     550              : )
     551              :         {
     552        11638 :           if (INTEGRAL_TYPE_P (type)
     553        11638 :  && TYPE_OVERFLOW_UNDEFINED (type)
     554         4064 :  && TREE_CODE (captures[1]) != INTEGER_CST
     555        13626 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     556              : )
     557              :             {
     558         1986 :               {
     559         1986 :  tree utype = unsigned_type_for (type);
     560         1986 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail199;
     561         1986 :                   {
     562         1986 :                     tree res_op0;
     563         1986 :                     {
     564         1986 :                       tree _o1[1], _r1;
     565         1986 :                       {
     566         1986 :                         tree _o2[1], _r2;
     567         1986 :                         _o2[0] = captures[1];
     568         1986 :                         if (TREE_TYPE (_o2[0]) != utype)
     569              :                           {
     570         1986 :                             _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     571              :                           }
     572              :                         else
     573              :                           _r2 = _o2[0];
     574         1986 :                         _o1[0] = _r2;
     575              :                       }
     576         1986 :                       _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     577         1986 :                       res_op0 = _r1;
     578              :                     }
     579         1986 :                     tree _r;
     580         1986 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     581         1986 :                     if (TREE_SIDE_EFFECTS (captures[2]))
     582            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     583         1986 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 166, __FILE__, __LINE__, true);
     584         1986 :                     return _r;
     585              :                   }
     586            0 : next_after_fail199:;
     587              :               }
     588              :             }
     589              :           else
     590              :             {
     591         9652 :               if (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     592         9652 :  || (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     593         2654 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
     594              : )
     595              :                 {
     596         9387 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail200;
     597         9387 :                   {
     598         9387 :                     tree res_op0;
     599         9387 :                     {
     600         9387 :                       tree _o1[1], _r1;
     601         9387 :                       _o1[0] = captures[1];
     602         9387 :                       if (TREE_TYPE (_o1[0]) != type)
     603              :                         {
     604         9387 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     605              :                         }
     606              :                       else
     607              :                         _r1 = _o1[0];
     608         9387 :                       res_op0 = _r1;
     609              :                     }
     610         9387 :                     tree _r;
     611         9387 :                     _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     612         9387 :                     if (TREE_SIDE_EFFECTS (captures[2]))
     613            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     614         9387 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 167, __FILE__, __LINE__, true);
     615         9387 :                     return _r;
     616              :                   }
     617            0 : next_after_fail200:;
     618              :                 }
     619              :             }
     620              :         }
     621              :     }
     622              :   return NULL_TREE;
     623              : }
     624              : 
     625              : tree
     626            0 : generic_simplify_118 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     627              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     628              : {
     629            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     630            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail215;
     631            0 :   {
     632            0 :     tree res_op0;
     633            0 :     res_op0 = captures[0];
     634            0 :     tree res_op1;
     635            0 :     {
     636            0 :       tree _o1[1], _r1;
     637            0 :       _o1[0] = captures[2];
     638            0 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     639            0 :       res_op1 = _r1;
     640              :     }
     641            0 :     tree _r;
     642            0 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     643            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 181, __FILE__, __LINE__, true);
     644              :     return _r;
     645              :   }
     646            0 : next_after_fail215:;
     647            0 :   return NULL_TREE;
     648              : }
     649              : 
     650              : tree
     651            8 : generic_simplify_124 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     652              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     653              : {
     654            8 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     655           16 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
     656           16 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
     657              : )
     658              :     {
     659            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail221;
     660            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail221;
     661            0 :       {
     662            0 :         tree _r;
     663            0 :         _r = captures[2];
     664            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 186, __FILE__, __LINE__, true);
     665            0 :         return _r;
     666              :       }
     667              : next_after_fail221:;
     668              :     }
     669              :   return NULL_TREE;
     670              : }
     671              : 
     672              : tree
     673           93 : generic_simplify_134 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     674              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     675              :  const enum tree_code ARG_UNUSED (op),
     676              :  const enum tree_code ARG_UNUSED (rop))
     677              : {
     678           93 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     679           93 :   if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
     680           93 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     681              : )
     682              :     {
     683           61 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail231;
     684           61 :       {
     685           61 :         tree res_op0;
     686           61 :         {
     687           61 :           tree _o1[2], _r1;
     688           61 :           {
     689           61 :             tree _o2[1], _r2;
     690           61 :             _o2[0] = captures[0];
     691           61 :             if (TREE_TYPE (_o2[0]) != type)
     692              :               {
     693            1 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
     694              :               }
     695              :             else
     696              :               _r2 = _o2[0];
     697           61 :             _o1[0] = _r2;
     698              :           }
     699           61 :           {
     700           61 :             tree _o2[1], _r2;
     701           61 :             _o2[0] = captures[1];
     702           61 :             if (TREE_TYPE (_o2[0]) != type)
     703              :               {
     704            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
     705              :               }
     706              :             else
     707              :               _r2 = _o2[0];
     708           61 :             _o1[1] = _r2;
     709              :           }
     710           61 :           _r1 = fold_build2_loc (loc, rop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     711           61 :           res_op0 = _r1;
     712              :         }
     713           61 :         tree _r;
     714           61 :         _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     715           61 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 193, __FILE__, __LINE__, true);
     716           61 :         return _r;
     717              :       }
     718            0 : next_after_fail231:;
     719              :     }
     720              :   return NULL_TREE;
     721              : }
     722              : 
     723              : tree
     724            0 : generic_simplify_150 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     725              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     726              :  const enum tree_code ARG_UNUSED (op))
     727              : {
     728            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     729            0 :   if (bitwise_equal_p (captures[4], captures[7])
     730              : )
     731              :     {
     732            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail252;
     733            0 :       {
     734            0 :         tree res_op0;
     735            0 :         {
     736            0 :           tree _o1[2], _r1;
     737            0 :           {
     738            0 :             tree _o2[2], _r2;
     739            0 :             _o2[0] = captures[5];
     740            0 :             {
     741            0 :               tree _o3[1], _r3;
     742            0 :               _o3[0] = captures[6];
     743            0 :               if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
     744              :                 {
     745            0 :                   _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
     746              :                 }
     747              :               else
     748              :                 _r3 = _o3[0];
     749            0 :               _o2[1] = _r3;
     750              :             }
     751            0 :             _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     752            0 :             _o1[0] = _r2;
     753              :           }
     754            0 :           {
     755            0 :             tree _o2[1], _r2;
     756            0 :             _o2[0] = captures[4];
     757            0 :             if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
     758              :               {
     759            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
     760              :               }
     761              :             else
     762              :               _r2 = _o2[0];
     763            0 :             _o1[1] = _r2;
     764              :           }
     765            0 :           _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     766            0 :           res_op0 = _r1;
     767              :         }
     768            0 :         tree _r;
     769            0 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     770            0 :         if (TREE_SIDE_EFFECTS (captures[7]))
     771            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
     772            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 202, __FILE__, __LINE__, true);
     773            0 :         return _r;
     774              :       }
     775            0 : next_after_fail252:;
     776              :     }
     777              :   return NULL_TREE;
     778              : }
     779              : 
     780              : tree
     781            0 : generic_simplify_162 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     782              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     783              :  const enum tree_code ARG_UNUSED (cmp))
     784              : {
     785            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     786            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail285;
     787            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail285;
     788            0 :   {
     789            0 :     tree res_op0;
     790            0 :     {
     791            0 :       tree _o1[2], _r1;
     792            0 :       _o1[0] =  build_zero_cst (TREE_TYPE (captures[0]));
     793            0 :       _o1[1] = captures[2];
     794            0 :       _r1 = fold_build2_loc (loc, cmp, type, _o1[0], _o1[1]);
     795            0 :       res_op0 = _r1;
     796              :     }
     797            0 :     tree res_op1;
     798            0 :     res_op1 = captures[3];
     799            0 :     tree _r;
     800            0 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     801            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 227, __FILE__, __LINE__, true);
     802              :     return _r;
     803              :   }
     804              : next_after_fail285:;
     805              :   return NULL_TREE;
     806              : }
     807              : 
     808              : tree
     809            8 : generic_simplify_170 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     810              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     811              :  const enum tree_code ARG_UNUSED (eqne))
     812              : {
     813            8 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     814            8 :   if (eqne == EQ_EXPR
     815              : )
     816              :     {
     817            4 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail306;
     818            4 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail306;
     819            4 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail306;
     820            4 :       {
     821            4 :         tree _r;
     822            4 :         _r = captures[0];
     823            4 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 229, __FILE__, __LINE__, true);
     824            4 :         return _r;
     825              :       }
     826              : next_after_fail306:;
     827              :     }
     828              :   else
     829              :     {
     830            4 :       if (eqne == NE_EXPR
     831              : )
     832              :         {
     833            4 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail307;
     834            4 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail307;
     835            4 :           {
     836            4 :             tree _r;
     837            4 :             _r =  constant_boolean_node (true, type);
     838            4 :             if (TREE_SIDE_EFFECTS (captures[2]))
     839            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     840            4 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 230, __FILE__, __LINE__, true);
     841            4 :             return _r;
     842              :           }
     843              : next_after_fail307:;
     844              :         }
     845              :     }
     846              :   return NULL_TREE;
     847              : }
     848              : 
     849              : tree
     850            0 : generic_simplify_175 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     851              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     852              : {
     853            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     854            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail312;
     855            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail312;
     856            0 :   {
     857            0 :     tree _r;
     858            0 :     _r = captures[1];
     859            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 233, __FILE__, __LINE__, true);
     860              :     return _r;
     861              :   }
     862              : next_after_fail312:;
     863              :   return NULL_TREE;
     864              : }
     865              : 
     866              : tree
     867            0 : generic_simplify_179 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     868              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     869              :  const combined_fn ARG_UNUSED (COPYSIGN_ALL))
     870              : {
     871            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     872            0 :   if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
     873              : )
     874              :     {
     875            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail316;
     876            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail316;
     877            0 :       {
     878            0 :         tree res_op0;
     879            0 :         res_op0 = captures[0];
     880            0 :         tree _r;
     881            0 :         _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
     882            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 237, __FILE__, __LINE__, true);
     883            0 :         return _r;
     884              :       }
     885              : next_after_fail316:;
     886              :     }
     887              :   return NULL_TREE;
     888              : }
     889              : 
     890              : tree
     891            0 : generic_simplify_182 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     892              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     893              :  const combined_fn ARG_UNUSED (COPYSIGN_ALL))
     894              : {
     895            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     896            0 :   if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
     897              : )
     898              :     {
     899            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail319;
     900            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail319;
     901            0 :       {
     902            0 :         tree res_op0;
     903            0 :         {
     904            0 :           tree _o1[1], _r1;
     905            0 :           _o1[0] = captures[0];
     906            0 :           _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     907            0 :           res_op0 = _r1;
     908              :         }
     909            0 :         tree _r;
     910            0 :         _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     911            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 238, __FILE__, __LINE__, true);
     912            0 :         return _r;
     913              :       }
     914              : next_after_fail319:;
     915              :     }
     916              :   return NULL_TREE;
     917              : }
     918              : 
     919              : tree
     920            6 : generic_simplify_188 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     921              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     922              : {
     923            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     924            6 :   if (INTEGRAL_TYPE_P (type)
     925            6 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
     926           12 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
     927              : )
     928              :     {
     929            6 :       if (TYPE_UNSIGNED (type)
     930              : )
     931              :         {
     932            5 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail325;
     933            5 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail325;
     934            5 :           {
     935            5 :             tree res_op0;
     936            5 :             res_op0 = captures[0];
     937            5 :             tree _r;
     938            5 :             _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
     939            5 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 243, __FILE__, __LINE__, true);
     940            5 :             return _r;
     941              :           }
     942              : next_after_fail325:;
     943              :         }
     944              :       else
     945              :         {
     946            1 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail326;
     947            1 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail326;
     948            1 :           {
     949            1 :             tree res_op0;
     950            1 :             res_op0 = captures[0];
     951            1 :             tree _r;
     952            1 :             _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
     953            1 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 244, __FILE__, __LINE__, true);
     954            1 :             return _r;
     955              :           }
     956              : next_after_fail326:;
     957              :         }
     958              :     }
     959              :   return NULL_TREE;
     960              : }
     961              : 
     962              : tree
     963        48478 : generic_simplify_195 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     964              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     965              : {
     966        48478 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     967        48478 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail334;
     968        48478 :   {
     969        48478 :     tree res_op0;
     970        48478 :     res_op0 = captures[0];
     971        48478 :     tree _r;
     972        48478 :     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     973        48478 :     if (TREE_SIDE_EFFECTS (captures[2]))
     974            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     975        48478 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 249, __FILE__, __LINE__, true);
     976              :     return _r;
     977              :   }
     978            0 : next_after_fail334:;
     979            0 :   return NULL_TREE;
     980              : }
     981              : 
     982              : tree
     983            8 : generic_simplify_200 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     984              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     985              :  const combined_fn ARG_UNUSED (POW))
     986              : {
     987            8 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     988            8 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
     989              : )
     990              :     {
     991            8 :       if (!TREE_OVERFLOW (captures[2])
     992              : )
     993              :         {
     994            8 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail340;
     995            8 :           {
     996            8 :             tree res_op0;
     997            8 :             res_op0 = captures[0];
     998            8 :             tree res_op1;
     999            8 :             {
    1000            8 :               tree _o1[2], _r1;
    1001            8 :               _o1[0] = captures[2];
    1002            8 :               _o1[1] =  build_one_cst (type);
    1003            8 :               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1004            8 :               res_op1 = _r1;
    1005              :             }
    1006            8 :             tree _r;
    1007            8 :             _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
    1008            8 :             if (!_r)
    1009            0 :               goto next_after_fail340;
    1010            8 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 255, __FILE__, __LINE__, true);
    1011            8 :             return _r;
    1012              :           }
    1013              : next_after_fail340:;
    1014              :         }
    1015              :     }
    1016              :   return NULL_TREE;
    1017              : }
    1018              : 
    1019              : tree
    1020        20147 : generic_simplify_207 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1021              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1022              :  const enum tree_code ARG_UNUSED (cmp),
    1023              :  const enum tree_code ARG_UNUSED (mod))
    1024              : {
    1025        20147 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1026        20147 :   if (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1027              : )
    1028              :     {
    1029        20147 :       {
    1030        20147 :  tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
    1031        20147 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail347;
    1032        20147 :           {
    1033        20147 :             tree res_op0;
    1034        20147 :             {
    1035        20147 :               tree _o1[2], _r1;
    1036        20147 :               {
    1037        20147 :                 tree _o2[1], _r2;
    1038        20147 :                 _o2[0] = captures[0];
    1039        20147 :                 if (TREE_TYPE (_o2[0]) != utype)
    1040              :                   {
    1041        20147 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    1042              :                   }
    1043              :                 else
    1044              :                   _r2 = _o2[0];
    1045        20147 :                 _o1[0] = _r2;
    1046              :               }
    1047        20147 :               {
    1048        20147 :                 tree _o2[1], _r2;
    1049        20147 :                 _o2[0] = captures[1];
    1050        20147 :                 if (TREE_TYPE (_o2[0]) != utype)
    1051              :                   {
    1052        20147 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    1053              :                   }
    1054              :                 else
    1055              :                   _r2 = _o2[0];
    1056        20147 :                 _o1[1] = _r2;
    1057              :               }
    1058        20147 :               _r1 = fold_build2_loc (loc, mod, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1059        20147 :               res_op0 = _r1;
    1060              :             }
    1061        20147 :             tree res_op1;
    1062        20147 :             {
    1063        20147 :               tree _o1[1], _r1;
    1064        20147 :               _o1[0] = captures[2];
    1065        20147 :               if (TREE_TYPE (_o1[0]) != utype)
    1066              :                 {
    1067        20147 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
    1068              :                 }
    1069              :               else
    1070              :                 _r1 = _o1[0];
    1071        20147 :               res_op1 = _r1;
    1072              :             }
    1073        20147 :             tree _r;
    1074        20147 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1075        20147 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 262, __FILE__, __LINE__, true);
    1076        20147 :             return _r;
    1077              :           }
    1078            0 : next_after_fail347:;
    1079              :       }
    1080              :     }
    1081              :   return NULL_TREE;
    1082              : }
    1083              : 
    1084              : tree
    1085        11758 : generic_simplify_221 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1086              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1087              :  const enum tree_code ARG_UNUSED (op))
    1088              : {
    1089        11758 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1090        11758 :   if (tree_nop_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    1091        11758 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
    1092        11758 :  && (CONSTANT_CLASS_P (captures[3]) || (single_use (captures[1]) && single_use (captures[0])))
    1093              : )
    1094              :     {
    1095        11758 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail377;
    1096        11758 :       {
    1097        11758 :         tree res_op0;
    1098        11758 :         res_op0 = captures[3];
    1099        11758 :         tree res_op1;
    1100        11758 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[3]));
    1101        11758 :         tree _r;
    1102        11758 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1103        11758 :         if (TREE_SIDE_EFFECTS (captures[2]))
    1104            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1105        11758 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 291, __FILE__, __LINE__, true);
    1106        11758 :         return _r;
    1107              :       }
    1108            0 : next_after_fail377:;
    1109              :     }
    1110              :   return NULL_TREE;
    1111              : }
    1112              : 
    1113              : tree
    1114         1366 : generic_simplify_228 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1115              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1116              :  const enum tree_code ARG_UNUSED (cmp),
    1117              :  const enum tree_code ARG_UNUSED (ocmp))
    1118              : {
    1119         1366 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1120         1366 :   if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1121          374 :  && TREE_CODE (TREE_TYPE (captures[0])) != COMPLEX_TYPE
    1122         1718 :  && (VECTOR_TYPE_P (type) || !VECTOR_TYPE_P (TREE_TYPE (captures[0])))
    1123              : )
    1124              :     {
    1125          352 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail384;
    1126          352 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail384;
    1127          352 :       {
    1128          352 :         tree res_op0;
    1129          352 :         res_op0 = captures[0];
    1130          352 :         tree res_op1;
    1131          352 :         res_op1 = captures[1];
    1132          352 :         tree _r;
    1133          352 :         _r = fold_build2_loc (loc, ocmp, type, res_op0, res_op1);
    1134          352 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 297, __FILE__, __LINE__, true);
    1135          352 :         return _r;
    1136              :       }
    1137              : next_after_fail384:;
    1138              :     }
    1139              :   return NULL_TREE;
    1140              : }
    1141              : 
    1142              : tree
    1143            6 : generic_simplify_236 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1144              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1145              :  const enum tree_code ARG_UNUSED (cmp),
    1146              :  const enum tree_code ARG_UNUSED (icmp))
    1147              : {
    1148            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1149            6 :   {
    1150            6 :  int c1 = wi::clz (wi::to_wide (captures[0]));
    1151            6 :  int c2 = wi::clz (wi::to_wide (captures[2]));
    1152            6 :       if (c1 < c2
    1153              : )
    1154              :         {
    1155            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail394;
    1156            0 :           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail394;
    1157            0 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail394;
    1158            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail394;
    1159            0 :           {
    1160            0 :             tree _r;
    1161            0 :             _r =  constant_boolean_node (cmp == NE_EXPR ? false : true, type);
    1162            0 :             if (TREE_SIDE_EFFECTS (captures[1]))
    1163            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1164            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 307, __FILE__, __LINE__, true);
    1165            0 :             return _r;
    1166              :           }
    1167              : next_after_fail394:;
    1168              :         }
    1169              :       else
    1170              :         {
    1171            6 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail395;
    1172            6 :           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail395;
    1173            6 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail395;
    1174            6 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail395;
    1175            6 :           {
    1176            6 :             tree res_op0;
    1177            6 :             res_op0 = captures[1];
    1178            6 :             tree res_op1;
    1179            6 :             res_op1 =  build_int_cst (TREE_TYPE (captures[1]), c1 - c2);
    1180            6 :             tree _r;
    1181            6 :             _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1182            6 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 308, __FILE__, __LINE__, true);
    1183            6 :             return _r;
    1184              :           }
    1185              : next_after_fail395:;
    1186              :         }
    1187              :   }
    1188              :   return NULL_TREE;
    1189              : }
    1190              : 
    1191              : tree
    1192           14 : generic_simplify_246 (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 combined_fn ARG_UNUSED (bswap))
    1196              : {
    1197           14 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1198           14 :   {
    1199           14 :  tree ctype = TREE_TYPE (captures[0]);
    1200           14 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail414;
    1201           14 :       {
    1202           14 :         tree res_op0;
    1203           14 :         {
    1204           14 :           tree _o1[1], _r1;
    1205           14 :           _o1[0] = captures[1];
    1206           14 :           if (TREE_TYPE (_o1[0]) != ctype)
    1207              :             {
    1208            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
    1209              :             }
    1210              :           else
    1211              :             _r1 = _o1[0];
    1212           14 :           res_op0 = _r1;
    1213              :         }
    1214           14 :         tree res_op1;
    1215           14 :         {
    1216           14 :           tree _o1[1], _r1;
    1217           14 :           _o1[0] = captures[2];
    1218           14 :           if (TREE_TYPE (_o1[0]) != ctype)
    1219              :             {
    1220            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
    1221              :             }
    1222              :           else
    1223              :             _r1 = _o1[0];
    1224           14 :           res_op1 = _r1;
    1225              :         }
    1226           14 :         tree _r;
    1227           14 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1228           14 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 327, __FILE__, __LINE__, true);
    1229              :         return _r;
    1230              :       }
    1231            0 : next_after_fail414:;
    1232              :   }
    1233            0 :   return NULL_TREE;
    1234              : }
    1235              : 
    1236              : tree
    1237       142968 : generic_simplify_254 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1238              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1239              :  const enum tree_code ARG_UNUSED (cmp))
    1240              : {
    1241       142968 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1242       281110 :   if (! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1243       143234 :  || ! tree_expr_maybe_nan_p (captures[0])
    1244              : )
    1245              :     {
    1246       137950 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail427;
    1247       137950 :       {
    1248       137950 :         tree _r;
    1249       137950 :         _r =  constant_boolean_node (true, type);
    1250       137950 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1251            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1252       137950 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 339, __FILE__, __LINE__, true);
    1253       137950 :         return _r;
    1254              :       }
    1255            0 : next_after_fail427:;
    1256              :     }
    1257              :   else
    1258              :     {
    1259         5018 :       if (cmp != EQ_EXPR
    1260         5018 :  && (! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1261           79 :  || ! flag_trapping_math)
    1262              : )
    1263              :         {
    1264            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail428;
    1265            0 :           {
    1266            0 :             tree res_op0;
    1267            0 :             res_op0 = unshare_expr (captures[0]);
    1268            0 :             tree res_op1;
    1269            0 :             res_op1 = captures[0];
    1270            0 :             tree _r;
    1271            0 :             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    1272            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 340, __FILE__, __LINE__, true);
    1273            0 :             return _r;
    1274              :           }
    1275            0 : next_after_fail428:;
    1276              :         }
    1277              :     }
    1278              :   return NULL_TREE;
    1279              : }
    1280              : 
    1281              : tree
    1282        18984 : generic_simplify_261 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1283              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1284              :  const enum tree_code ARG_UNUSED (cmp))
    1285              : {
    1286        18984 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1287        18984 :   if (flag_associative_math
    1288              : )
    1289              :     {
    1290           13 :       {
    1291           13 :  tree tem = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), captures[0], captures[2]);
    1292           13 :           if (tem && !TREE_OVERFLOW (tem)
    1293              : )
    1294              :             {
    1295           13 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail449;
    1296           13 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail449;
    1297           13 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail449;
    1298           13 :               {
    1299           13 :                 tree res_op0;
    1300           13 :                 res_op0 =  tem;
    1301           13 :                 tree res_op1;
    1302           13 :                 res_op1 = captures[1];
    1303           13 :                 tree _r;
    1304           13 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1305           13 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 360, __FILE__, __LINE__, true);
    1306           13 :                 return _r;
    1307              :               }
    1308              : next_after_fail449:;
    1309              :             }
    1310              :       }
    1311              :     }
    1312              :   return NULL_TREE;
    1313              : }
    1314              : 
    1315              : tree
    1316           59 : generic_simplify_267 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1317              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1318              :  const enum tree_code ARG_UNUSED (cmp),
    1319              :  const enum tree_code ARG_UNUSED (scmp))
    1320              : {
    1321           59 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1322           96 :   if (FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1323           96 :  || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1324           37 :  && (cmp == EQ_EXPR
    1325           37 :  || cmp == NE_EXPR
    1326           36 :  || TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
    1327              : )
    1328              :     {
    1329           23 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail482;
    1330           23 :       {
    1331           23 :         tree res_op0;
    1332           23 :         res_op0 = captures[0];
    1333           23 :         tree res_op1;
    1334           23 :         res_op1 = captures[1];
    1335           23 :         tree _r;
    1336           23 :         _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
    1337           23 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 393, __FILE__, __LINE__, true);
    1338           23 :         return _r;
    1339              :       }
    1340            0 : next_after_fail482:;
    1341              :     }
    1342              :   return NULL_TREE;
    1343              : }
    1344              : 
    1345              : tree
    1346     19126016 : generic_simplify_270 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1347              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1348              :  const enum tree_code ARG_UNUSED (cmp))
    1349              : {
    1350     19126016 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1351     37987847 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1352     11596124 :  && !(targetm.have_canonicalize_funcptr_for_compare ()
    1353            0 :  && ((POINTER_TYPE_P (TREE_TYPE (captures[1]))
    1354            0 :  && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1]))))
    1355            0 :  || (POINTER_TYPE_P (TREE_TYPE (captures[3]))
    1356            0 :  && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[3]))))))
    1357     19126016 :  && single_use (captures[0])
    1358              : )
    1359              :     {
    1360     11596124 :       if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[0]))
    1361      5050146 :  && (TREE_CODE (captures[3]) == INTEGER_CST
    1362      1888590 :  || captures[2] != captures[3])
    1363      3161556 :  && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1364              :  || cmp == NE_EXPR
    1365      1445277 :  || cmp == EQ_EXPR)
    1366      2166602 :  && !POINTER_TYPE_P (TREE_TYPE (captures[1]))
    1367     13730888 :  && (TREE_CODE (TREE_TYPE (captures[1])) != BOOLEAN_TYPE
    1368         1672 :  || TREE_CODE (TREE_TYPE (captures[3])) == BOOLEAN_TYPE)
    1369              : )
    1370              :         {
    1371      2134736 :           if (TREE_CODE (captures[2]) == INTEGER_CST
    1372              : )
    1373              :             {
    1374      2134736 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail492;
    1375      2134736 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail492;
    1376      2134736 :               {
    1377      2134736 :                 tree res_op0;
    1378      2134736 :                 res_op0 = captures[1];
    1379      2134736 :                 tree res_op1;
    1380      2134736 :                 res_op1 =  force_fit_type (TREE_TYPE (captures[1]),
    1381      2134736 :  wide_int::from (wi::to_wide (captures[2]),
    1382      2134736 :  MAX (TYPE_PRECISION (TREE_TYPE (captures[2])),
    1383              :  TYPE_PRECISION (TREE_TYPE (captures[1]))),
    1384      2134736 :  TYPE_SIGN (TREE_TYPE (captures[2]))),
    1385      2134736 :  0, TREE_OVERFLOW (captures[2]));
    1386      2134736 :                 tree _r;
    1387      2134736 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1388      2134736 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 395, __FILE__, __LINE__, true);
    1389      2134736 :                 return _r;
    1390              :               }
    1391              : next_after_fail492:;
    1392              :             }
    1393              :           else
    1394              :             {
    1395            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail493;
    1396            0 :               {
    1397            0 :                 tree res_op0;
    1398            0 :                 res_op0 = captures[1];
    1399            0 :                 tree res_op1;
    1400            0 :                 {
    1401            0 :                   tree _o1[1], _r1;
    1402            0 :                   _o1[0] = captures[2];
    1403            0 :                   if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1404              :                     {
    1405            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1406              :                     }
    1407              :                   else
    1408              :                     _r1 = _o1[0];
    1409            0 :                   res_op1 = _r1;
    1410              :                 }
    1411            0 :                 tree _r;
    1412            0 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1413            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 396, __FILE__, __LINE__, true);
    1414            0 :                 return _r;
    1415              :               }
    1416            0 : next_after_fail493:;
    1417              :             }
    1418              :         }
    1419              :       else
    1420              :         {
    1421      9461388 :           if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
    1422              : )
    1423              :             {
    1424      5595096 :               if ((cmp == EQ_EXPR || cmp == NE_EXPR
    1425      2898331 :  || TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    1426       390173 :  || (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1427       306297 :  && TYPE_UNSIGNED (TREE_TYPE (captures[1]))))
    1428      8409551 :  && (types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]))
    1429      5511202 :  || ((TYPE_PRECISION (TREE_TYPE (captures[1]))
    1430      5511202 :  >= TYPE_PRECISION (TREE_TYPE (captures[3])))
    1431            0 :  && (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    1432            0 :  == TYPE_UNSIGNED (TREE_TYPE (captures[3]))))
    1433      5511202 :  || (TREE_CODE (captures[2]) == INTEGER_CST
    1434      4420221 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1435      4420221 :  && int_fits_type_p (captures[2], TREE_TYPE (captures[1]))))
    1436              : )
    1437              :                 {
    1438      4387707 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail494;
    1439      4387707 :                   {
    1440      4387707 :                     tree res_op0;
    1441      4387707 :                     res_op0 = captures[1];
    1442      4387707 :                     tree res_op1;
    1443      4387707 :                     {
    1444      4387707 :                       tree _o1[1], _r1;
    1445      4387707 :                       _o1[0] = captures[3];
    1446      4387707 :                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1447              :                         {
    1448      4387689 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1449              :                         }
    1450              :                       else
    1451              :                         _r1 = _o1[0];
    1452      4387707 :                       res_op1 = _r1;
    1453              :                     }
    1454      4387707 :                     tree _r;
    1455      4387707 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1456      4387707 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 397, __FILE__, __LINE__, true);
    1457      4387707 :                     return _r;
    1458              :                   }
    1459            0 : next_after_fail494:;
    1460              :                 }
    1461              :               else
    1462              :                 {
    1463      1207389 :                   if (TREE_CODE (captures[2]) == INTEGER_CST
    1464        80862 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1465      1288251 :  && !int_fits_type_p (captures[2], TREE_TYPE (captures[1]))
    1466              : )
    1467              :                     {
    1468        35660 :                       {
    1469        35660 :  tree min = lower_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
    1470        35660 :  tree max = upper_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
    1471        35660 :  bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, captures[2]));
    1472        35660 :  bool below = integer_nonzerop (const_binop (LT_EXPR, type, captures[2], min));
    1473        35660 :                           if (above || below
    1474              : )
    1475              :                             {
    1476        30027 :                               if (cmp == EQ_EXPR || cmp == NE_EXPR
    1477              : )
    1478              :                                 {
    1479        25865 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail495;
    1480        25865 :                                   {
    1481        25865 :                                     tree _r;
    1482        25865 :                                     _r =  constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
    1483        25865 :                                     if (TREE_SIDE_EFFECTS (captures[1]))
    1484           10 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1485        25865 :                                     if (TREE_SIDE_EFFECTS (captures[2]))
    1486            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1487        25865 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 398, __FILE__, __LINE__, true);
    1488        25865 :                                     return _r;
    1489              :                                   }
    1490            0 : next_after_fail495:;
    1491              :                                 }
    1492              :                               else
    1493              :                                 {
    1494         4162 :                                   if (cmp == LT_EXPR || cmp == LE_EXPR
    1495              : )
    1496              :                                     {
    1497         3633 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail496;
    1498         3633 :                                       {
    1499         3633 :                                         tree _r;
    1500         3633 :                                         _r =  constant_boolean_node (above ? true : false, type);
    1501         3633 :                                         if (TREE_SIDE_EFFECTS (captures[1]))
    1502           10 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1503         3633 :                                         if (TREE_SIDE_EFFECTS (captures[2]))
    1504            0 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1505         3633 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 399, __FILE__, __LINE__, true);
    1506         3633 :                                         return _r;
    1507              :                                       }
    1508            0 : next_after_fail496:;
    1509              :                                     }
    1510              :                                   else
    1511              :                                     {
    1512          529 :                                       if (cmp == GT_EXPR || cmp == GE_EXPR
    1513              : )
    1514              :                                         {
    1515          529 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail497;
    1516          529 :                                           {
    1517          529 :                                             tree _r;
    1518          747 :                                             _r =  constant_boolean_node (above ? false : true, type);
    1519          529 :                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1520            4 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1521          529 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    1522            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1523          529 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 400, __FILE__, __LINE__, true);
    1524          529 :                                             return _r;
    1525              :                                           }
    1526            0 : next_after_fail497:;
    1527              :                                         }
    1528              :                                     }
    1529              :                                 }
    1530              :                             }
    1531              :                       }
    1532              :                     }
    1533              :                 }
    1534              :             }
    1535              :           else
    1536              :             {
    1537      7729803 :               if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1538      3644836 :  && (TYPE_PRECISION (TREE_TYPE (captures[0]))
    1539      3644836 :  < TYPE_PRECISION (TREE_TYPE (captures[1])))
    1540       950796 :  && (cmp == EQ_EXPR || cmp == NE_EXPR)
    1541      4497097 :  && types_match (TREE_TYPE (captures[1]),
    1542       630805 :  TREE_TYPE (captures[3]))
    1543              : )
    1544              :                 {
    1545            0 :                   {
    1546            0 :  tree itype = TREE_TYPE (captures[0]);
    1547            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail498;
    1548            0 :                       {
    1549            0 :                         tree res_op0;
    1550            0 :                         {
    1551            0 :                           tree _o1[1], _r1;
    1552            0 :                           {
    1553            0 :                             tree _o2[2], _r2;
    1554            0 :                             _o2[0] = captures[1];
    1555            0 :                             _o2[1] = captures[3];
    1556            0 :                             _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1557            0 :                             _o1[0] = _r2;
    1558              :                           }
    1559            0 :                           if (TREE_TYPE (_o1[0]) != itype)
    1560              :                             {
    1561            0 :                               _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
    1562              :                             }
    1563              :                           else
    1564              :                             _r1 = _o1[0];
    1565            0 :                           res_op0 = _r1;
    1566              :                         }
    1567            0 :                         tree res_op1;
    1568            0 :                         res_op1 =  build_zero_cst (itype);
    1569            0 :                         tree _r;
    1570            0 :                         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1571            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 401, __FILE__, __LINE__, true);
    1572            0 :                         return _r;
    1573              :                       }
    1574            0 : next_after_fail498:;
    1575              :                   }
    1576              :                 }
    1577              :             }
    1578              :         }
    1579              :     }
    1580              :   else
    1581              :     {
    1582     14527908 :       if (FLOAT_TYPE_P (TREE_TYPE (captures[1]))
    1583      1090748 :  && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1584       545374 :  == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1])))
    1585      8620402 :  && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1586       545255 :  == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[3])))
    1587              : )
    1588              :         {
    1589       545255 :           {
    1590       545255 :  tree type1 = TREE_TYPE (captures[3]);
    1591       545255 :  if (TREE_CODE (captures[3]) == REAL_CST && !DECIMAL_FLOAT_TYPE_P (type1))
    1592              :  {
    1593       342551 :  REAL_VALUE_TYPE orig = TREE_REAL_CST (captures[3]);
    1594       342551 :  if (TYPE_PRECISION (type1) > TYPE_PRECISION (float_type_node)
    1595       342551 :  && exact_real_truncate (TYPE_MODE (float_type_node), &orig))
    1596       176645 :  type1 = float_type_node;
    1597       342551 :  if (TYPE_PRECISION (type1) > TYPE_PRECISION (double_type_node)
    1598       342551 :  && exact_real_truncate (TYPE_MODE (double_type_node), &orig))
    1599          292 :  type1 = double_type_node;
    1600              :  }
    1601       545255 :  tree newtype
    1602       545255 :  = (element_precision (TREE_TYPE (captures[1])) > element_precision (type1)
    1603       545255 :  ? TREE_TYPE (captures[1]) : type1);
    1604       545255 :               if (element_precision (TREE_TYPE (captures[0])) > element_precision (newtype)
    1605       545255 :  && (!VECTOR_TYPE_P (type) || is_truth_type_for (newtype, type))
    1606              : )
    1607              :                 {
    1608        44604 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail499;
    1609        44604 :                   {
    1610        44604 :                     tree res_op0;
    1611        44604 :                     {
    1612        44604 :                       tree _o1[1], _r1;
    1613        44604 :                       _o1[0] = captures[1];
    1614        44604 :                       if (TREE_TYPE (_o1[0]) != newtype)
    1615              :                         {
    1616        11436 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    1617              :                         }
    1618              :                       else
    1619              :                         _r1 = _o1[0];
    1620        44604 :                       res_op0 = _r1;
    1621              :                     }
    1622        44604 :                     tree res_op1;
    1623        44604 :                     {
    1624        44604 :                       tree _o1[1], _r1;
    1625        44604 :                       _o1[0] = captures[3];
    1626        44604 :                       if (TREE_TYPE (_o1[0]) != newtype)
    1627              :                         {
    1628        44604 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    1629              :                         }
    1630              :                       else
    1631              :                         _r1 = _o1[0];
    1632        44604 :                       res_op1 = _r1;
    1633              :                     }
    1634        44604 :                     tree _r;
    1635        44604 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1636        44604 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 402, __FILE__, __LINE__, true);
    1637        44604 :                     return _r;
    1638              :                   }
    1639            0 : next_after_fail499:;
    1640              :                 }
    1641              :           }
    1642              :         }
    1643              :     }
    1644              :   return NULL_TREE;
    1645              : }
    1646              : 
    1647              : tree
    1648            0 : generic_simplify_302 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1649              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1650              :  const enum tree_code ARG_UNUSED (cmp))
    1651              : {
    1652            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1653            0 :   if (VECTOR_MODE_P (TYPE_MODE (TREE_TYPE (captures[0])))
    1654            0 :  && can_compare_p (cmp == EQ_EXPR ? EQ : NE, TYPE_MODE (TREE_TYPE (captures[0])),
    1655              :  ccp_jump)
    1656              : )
    1657              :     {
    1658            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail567;
    1659            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail567;
    1660            0 :       {
    1661            0 :         tree res_op0;
    1662            0 :         res_op0 = captures[0];
    1663            0 :         tree res_op1;
    1664            0 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    1665            0 :         tree _r;
    1666            0 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1667            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 460, __FILE__, __LINE__, true);
    1668            0 :         return _r;
    1669              :       }
    1670              : next_after_fail567:;
    1671              :     }
    1672              :   return NULL_TREE;
    1673              : }
    1674              : 
    1675              : tree
    1676            0 : generic_simplify_307 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1677              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1678              :  const combined_fn ARG_UNUSED (copysigns))
    1679              : {
    1680            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1681            0 :   if (!REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
    1682              : )
    1683              :     {
    1684            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail573;
    1685            0 :       {
    1686            0 :         tree res_op0;
    1687            0 :         res_op0 = captures[0];
    1688            0 :         tree _r;
    1689            0 :         _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    1690            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1691            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1692            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 466, __FILE__, __LINE__, true);
    1693            0 :         return _r;
    1694              :       }
    1695            0 : next_after_fail573:;
    1696              :     }
    1697              :   return NULL_TREE;
    1698              : }
    1699              : 
    1700              : tree
    1701           23 : generic_simplify_313 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1702              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1703              :  const enum tree_code ARG_UNUSED (div))
    1704              : {
    1705           23 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1706           30 :   if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0]))
    1707           16 :  && (!VECTOR_TYPE_P (type)
    1708            0 :  || target_supports_op_p (type, RSHIFT_EXPR, optab_vector)
    1709            0 :  || target_supports_op_p (type, RSHIFT_EXPR, optab_scalar))
    1710           39 :  && (useless_type_conversion_p (type, TREE_TYPE (captures[2]))
    1711            7 :  || (element_precision (type) >= element_precision (TREE_TYPE (captures[2]))
    1712            7 :  && (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    1713           14 :  || (element_precision (type)
    1714            7 :  == element_precision (TREE_TYPE (captures[2])))
    1715            7 :  || (INTEGRAL_TYPE_P (type)
    1716           14 :  && (tree_nonzero_bits (captures[0])
    1717           44 :  & wi::mask (element_precision (TREE_TYPE (captures[2])) - 1,
    1718              :  true,
    1719           37 :  element_precision (type))) == 0))))
    1720              : )
    1721              :     {
    1722            9 :       if (!VECTOR_TYPE_P (type)
    1723            9 :  && useless_type_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    1724           18 :  && element_precision (TREE_TYPE (captures[1])) < element_precision (type)
    1725              : )
    1726              :         {
    1727            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail580;
    1728            0 :           {
    1729            0 :             tree res_op0;
    1730            0 :             {
    1731            0 :               tree _o1[2], _r1;
    1732            0 :               _o1[0] = captures[1];
    1733            0 :               _o1[1] = captures[3];
    1734            0 :               _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1735            0 :               res_op0 = _r1;
    1736              :             }
    1737            0 :             tree _r;
    1738            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1739            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1740            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1741            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 471, __FILE__, __LINE__, true);
    1742            0 :             return _r;
    1743              :           }
    1744            0 : next_after_fail580:;
    1745              :         }
    1746              :       else
    1747              :         {
    1748            9 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail581;
    1749            9 :           {
    1750            9 :             tree res_op0;
    1751            9 :             res_op0 = captures[0];
    1752            9 :             tree res_op1;
    1753            9 :             res_op1 = captures[3];
    1754            9 :             tree _r;
    1755            9 :             _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
    1756            9 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1757            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1758            9 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 472, __FILE__, __LINE__, true);
    1759            9 :             return _r;
    1760              :           }
    1761            0 : next_after_fail581:;
    1762              :         }
    1763              :     }
    1764              :   return NULL_TREE;
    1765              : }
    1766              : 
    1767              : tree
    1768           52 : generic_simplify_330 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1769              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1770              :  const enum tree_code ARG_UNUSED (mod))
    1771              : {
    1772           52 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1773           52 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail599;
    1774           52 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail599;
    1775           52 :   {
    1776           52 :     tree _r;
    1777           52 :     _r = captures[0];
    1778           52 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 490, __FILE__, __LINE__, true);
    1779              :     return _r;
    1780              :   }
    1781              : next_after_fail599:;
    1782              :   return NULL_TREE;
    1783              : }
    1784              : 
    1785              : tree
    1786            5 : generic_simplify_338 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1787              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1788              :  const combined_fn ARG_UNUSED (SINH),
    1789              :  const combined_fn ARG_UNUSED (COSH),
    1790              :  const combined_fn ARG_UNUSED (TANH))
    1791              : {
    1792            5 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1793            5 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1794              : )
    1795              :     {
    1796            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail609;
    1797            3 :       {
    1798            3 :         tree res_op0;
    1799            3 :         res_op0 = captures[1];
    1800            3 :         tree _r;
    1801            3 :         _r = maybe_build_call_expr_loc (loc, TANH, type, 1, res_op0);
    1802            3 :         if (!_r)
    1803            0 :           goto next_after_fail609;
    1804            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 500, __FILE__, __LINE__, true);
    1805            3 :         return _r;
    1806              :       }
    1807              : next_after_fail609:;
    1808              :     }
    1809              :   return NULL_TREE;
    1810              : }
    1811              : 
    1812              : tree
    1813         7491 : generic_simplify_346 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1814              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1815              :  const enum tree_code ARG_UNUSED (cmp),
    1816              :  const enum tree_code ARG_UNUSED (op))
    1817              : {
    1818         7491 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1819         7491 :   {
    1820         7491 :  tree from_type = TREE_TYPE (captures[0]), to_type = TREE_TYPE (captures[1]);
    1821         7491 :       if (types_match (from_type, to_type)
    1822         7491 :  || (TYPE_UNSIGNED (from_type)
    1823           37 :  && !TYPE_UNSIGNED (to_type)
    1824           37 :  && TYPE_PRECISION (from_type) == TYPE_PRECISION (to_type)
    1825           37 :  && integer_zerop (captures[1])
    1826           31 :  && (cmp == LT_EXPR || cmp == GE_EXPR))
    1827              : )
    1828              :         {
    1829         7461 :           {
    1830         7461 :  wi::overflow_type overflow = wi::OVF_NONE;
    1831         7461 :  enum tree_code code, cmp_code = cmp;
    1832         7461 :  wide_int real_c1;
    1833         7461 :  wide_int c1 = wi::to_wide (captures[1]);
    1834         7461 :  wide_int c2 = wi::to_wide (captures[2]);
    1835         7461 :  wide_int c3 = wi::to_wide (captures[3]);
    1836         7461 :  signop sgn = TYPE_SIGN (from_type);
    1837         7461 :  if (!types_match (from_type, to_type))
    1838              :  {
    1839            7 :  if (cmp_code == LT_EXPR)
    1840              :  cmp_code = GT_EXPR;
    1841            0 :  if (cmp_code == GE_EXPR)
    1842            0 :  cmp_code = LE_EXPR;
    1843            7 :  c1 = wi::max_value (to_type);
    1844              :  }
    1845         7461 :  if (op == PLUS_EXPR)
    1846         7461 :  real_c1 = wi::sub (c3, c2, sgn, &overflow);
    1847              :  else
    1848            0 :  real_c1 = wi::add (c3, c2, sgn, &overflow);
    1849         7461 :  code = cmp_code;
    1850         7461 :  if (!overflow || !TYPE_OVERFLOW_UNDEFINED (from_type))
    1851              :  {
    1852        14922 :  if (!wi::cmp (wi::sub (real_c1, 1, sgn, &overflow), c1, sgn)
    1853         7461 :  && !overflow)
    1854              :  {
    1855          633 :  if (cmp_code == LE_EXPR)
    1856              :  code = LT_EXPR;
    1857          633 :  if (cmp_code == GT_EXPR)
    1858         7461 :  code = GE_EXPR;
    1859              :  }
    1860        14922 :  if (!wi::cmp (wi::add (real_c1, 1, sgn, &overflow), c1, sgn)
    1861         7461 :  && !overflow)
    1862              :  {
    1863         6407 :  if (cmp_code == LT_EXPR)
    1864              :  code = LE_EXPR;
    1865         6407 :  if (cmp_code == GE_EXPR)
    1866              :  code = GT_EXPR;
    1867              :  }
    1868         1083 :  if (code != cmp_code || !wi::cmp (real_c1, c1, sgn))
    1869              :  {
    1870         7238 :  if (cmp_code == LT_EXPR || cmp_code == LE_EXPR)
    1871              :  code = MIN_EXPR;
    1872         7238 :  if (cmp_code == GT_EXPR || cmp_code == GE_EXPR)
    1873              :  code = MAX_EXPR;
    1874              :  }
    1875              :  }
    1876          223 :               if (code == MAX_EXPR
    1877              : )
    1878              :                 {
    1879         7238 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail619;
    1880         7238 :                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail619;
    1881         7238 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail619;
    1882         7238 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail619;
    1883         7238 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail619;
    1884         7238 :                   {
    1885         7238 :                     tree res_op0;
    1886         7238 :                     {
    1887         7238 :                       tree _o1[2], _r1;
    1888         7238 :                       _o1[0] = captures[0];
    1889         7238 :                       _o1[1] =  wide_int_to_tree (from_type, real_c1);
    1890         7238 :                       _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1891         7238 :                       res_op0 = _r1;
    1892              :                     }
    1893         7238 :                     tree res_op1;
    1894         7238 :                     res_op1 =  wide_int_to_tree (from_type, c2);
    1895         7238 :                     tree _r;
    1896         7238 :                     _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1897         7238 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 510, __FILE__, __LINE__, true);
    1898         7238 :                     return _r;
    1899              :                   }
    1900          223 : next_after_fail619:;
    1901              :                 }
    1902              :               else
    1903              :                 {
    1904          223 :                   if (code == MIN_EXPR
    1905              : )
    1906              :                     {
    1907            0 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail620;
    1908            0 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail620;
    1909            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail620;
    1910            0 :                       if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail620;
    1911            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail620;
    1912            0 :                       {
    1913            0 :                         tree res_op0;
    1914            0 :                         {
    1915            0 :                           tree _o1[2], _r1;
    1916            0 :                           _o1[0] = captures[0];
    1917            0 :                           _o1[1] =  wide_int_to_tree (from_type, real_c1);
    1918            0 :                           _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1919            0 :                           res_op0 = _r1;
    1920              :                         }
    1921            0 :                         tree res_op1;
    1922            0 :                         res_op1 =  wide_int_to_tree (from_type, c2);
    1923            0 :                         tree _r;
    1924            0 :                         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1925            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 511, __FILE__, __LINE__, true);
    1926            0 :                         return _r;
    1927              :                       }
    1928          223 : next_after_fail620:;
    1929              :                     }
    1930              :                 }
    1931         7461 :           }
    1932              :         }
    1933              :   }
    1934              :   return NULL_TREE;
    1935              : }
    1936              : 
    1937              : tree
    1938           17 : generic_simplify_376 (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           17 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1943           17 :   if (INTEGRAL_TYPE_P (type)
    1944           17 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1945           17 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1946           34 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (type)
    1947              : )
    1948              :     {
    1949           17 :       {
    1950           17 :  tree shifter = build_int_cst (integer_type_node, TYPE_PRECISION (type) - 1);
    1951           17 :           if (cmp == GE_EXPR
    1952              : )
    1953              :             {
    1954            9 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail655;
    1955            9 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail655;
    1956            9 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail655;
    1957            9 :               {
    1958            9 :                 tree res_op0;
    1959            9 :                 {
    1960            9 :                   tree _o1[1], _r1;
    1961            9 :                   {
    1962            9 :                     tree _o2[2], _r2;
    1963            9 :                     _o2[0] = captures[0];
    1964            9 :                     _o2[1] = shifter;
    1965            9 :                     _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1966            9 :                     _o1[0] = _r2;
    1967              :                   }
    1968            9 :                   if (TREE_TYPE (_o1[0]) != type)
    1969              :                     {
    1970            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    1971              :                     }
    1972              :                   else
    1973              :                     _r1 = _o1[0];
    1974            9 :                   res_op0 = _r1;
    1975              :                 }
    1976            9 :                 tree res_op1;
    1977            9 :                 res_op1 = captures[1];
    1978            9 :                 tree _r;
    1979            9 :                 _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    1980            9 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 544, __FILE__, __LINE__, true);
    1981            9 :                 return _r;
    1982              :               }
    1983              : next_after_fail655:;
    1984              :             }
    1985              :           else
    1986              :             {
    1987            8 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail656;
    1988            8 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail656;
    1989            8 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail656;
    1990            8 :               {
    1991            8 :                 tree res_op0;
    1992            8 :                 {
    1993            8 :                   tree _o1[2], _r1;
    1994            8 :                   {
    1995            8 :                     tree _o2[1], _r2;
    1996            8 :                     {
    1997            8 :                       tree _o3[2], _r3;
    1998            8 :                       _o3[0] = captures[0];
    1999            8 :                       _o3[1] = shifter;
    2000            8 :                       _r3 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
    2001            8 :                       _o2[0] = _r3;
    2002              :                     }
    2003            8 :                     if (TREE_TYPE (_o2[0]) != type)
    2004              :                       {
    2005            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
    2006              :                       }
    2007              :                     else
    2008              :                       _r2 = _o2[0];
    2009            8 :                     _o1[0] = _r2;
    2010              :                   }
    2011            8 :                   _o1[1] = captures[1];
    2012            8 :                   _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2013            8 :                   res_op0 = _r1;
    2014              :                 }
    2015            8 :                 tree _r;
    2016            8 :                 _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
    2017            8 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 545, __FILE__, __LINE__, true);
    2018            8 :                 return _r;
    2019              :               }
    2020              : next_after_fail656:;
    2021              :             }
    2022              :       }
    2023              :     }
    2024              :   return NULL_TREE;
    2025              : }
    2026              : 
    2027              : tree
    2028      1195429 : generic_simplify_395 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2029              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2030              :  const enum tree_code ARG_UNUSED (cmp))
    2031              : {
    2032      1195429 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2033      2390858 :   if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2034          469 :  || POINTER_TYPE_P (TREE_TYPE (captures[2]))
    2035           94 :  || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2])))
    2036      2390858 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2037              : )
    2038              :     {
    2039      1017951 :       {
    2040      1017951 :  tree cst = uniform_integer_cst_p (captures[2]);
    2041      1017951 :  tree arg1_type = TREE_TYPE (cst);
    2042      1017951 :  unsigned int prec = TYPE_PRECISION (arg1_type);
    2043      1017951 :  wide_int max = wi::max_value (arg1_type);
    2044      1017951 :  wide_int signed_max = wi::max_value (prec, SIGNED);
    2045      1017951 :  wide_int min = wi::min_value (arg1_type);
    2046      1017951 :           if (wi::to_wide (cst) == max
    2047              : )
    2048              :             {
    2049          713 :               if (cmp == GT_EXPR
    2050              : )
    2051              :                 {
    2052          478 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail680;
    2053          478 :                   {
    2054          478 :                     tree _r;
    2055          478 :                     _r =  constant_boolean_node (false, type);
    2056          478 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    2057            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2058          478 :                     if (TREE_SIDE_EFFECTS (captures[2]))
    2059            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2060          478 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 569, __FILE__, __LINE__, true);
    2061          478 :                     return _r;
    2062              :                   }
    2063            0 : next_after_fail680:;
    2064              :                 }
    2065              :               else
    2066              :                 {
    2067          235 :                   if (cmp == GE_EXPR
    2068              : )
    2069              :                     {
    2070            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail681;
    2071            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail681;
    2072            0 :                       {
    2073            0 :                         tree res_op0;
    2074            0 :                         res_op0 = captures[0];
    2075            0 :                         tree res_op1;
    2076            0 :                         res_op1 = captures[2];
    2077            0 :                         tree _r;
    2078            0 :                         _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2079            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 570, __FILE__, __LINE__, true);
    2080            0 :                         return _r;
    2081              :                       }
    2082       957513 : next_after_fail681:;
    2083              :                     }
    2084              :                   else
    2085              :                     {
    2086          235 :                       if (cmp == LE_EXPR
    2087              : )
    2088              :                         {
    2089          235 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail682;
    2090          235 :                           {
    2091          235 :                             tree _r;
    2092          235 :                             _r =  constant_boolean_node (true, type);
    2093          235 :                             if (TREE_SIDE_EFFECTS (captures[1]))
    2094            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2095          235 :                             if (TREE_SIDE_EFFECTS (captures[2]))
    2096            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2097          235 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 571, __FILE__, __LINE__, true);
    2098          235 :                             return _r;
    2099              :                           }
    2100            0 : next_after_fail682:;
    2101              :                         }
    2102              :                       else
    2103              :                         {
    2104            0 :                           if (cmp == LT_EXPR
    2105              : )
    2106              :                             {
    2107            0 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail683;
    2108            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail683;
    2109            0 :                               {
    2110            0 :                                 tree res_op0;
    2111            0 :                                 res_op0 = captures[0];
    2112            0 :                                 tree res_op1;
    2113            0 :                                 res_op1 = captures[2];
    2114            0 :                                 tree _r;
    2115            0 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2116            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 572, __FILE__, __LINE__, true);
    2117            0 :                                 return _r;
    2118              :                               }
    2119       957513 : next_after_fail683:;
    2120              :                             }
    2121              :                         }
    2122              :                     }
    2123              :                 }
    2124              :             }
    2125              :           else
    2126              :             {
    2127      1017238 :               if (wi::to_wide (cst) == min
    2128              : )
    2129              :                 {
    2130        55006 :                   if (cmp == LT_EXPR
    2131              : )
    2132              :                     {
    2133         2552 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail684;
    2134         2552 :                       {
    2135         2552 :                         tree _r;
    2136         2552 :                         _r =  constant_boolean_node (false, type);
    2137         2552 :                         if (TREE_SIDE_EFFECTS (captures[1]))
    2138            6 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2139         2552 :                         if (TREE_SIDE_EFFECTS (captures[2]))
    2140            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2141         2552 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 573, __FILE__, __LINE__, true);
    2142         2552 :                         return _r;
    2143              :                       }
    2144            0 : next_after_fail684:;
    2145              :                     }
    2146              :                   else
    2147              :                     {
    2148        52454 :                       if (cmp == LE_EXPR
    2149              : )
    2150              :                         {
    2151        13621 :                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail685;
    2152        12503 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail685;
    2153        12503 :                           {
    2154        12503 :                             tree res_op0;
    2155        12503 :                             res_op0 = captures[0];
    2156        12503 :                             tree res_op1;
    2157        12503 :                             res_op1 = captures[2];
    2158        12503 :                             tree _r;
    2159        12503 :                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2160        12503 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 574, __FILE__, __LINE__, true);
    2161        12503 :                             return _r;
    2162              :                           }
    2163       957513 : next_after_fail685:;
    2164              :                         }
    2165              :                       else
    2166              :                         {
    2167        38833 :                           if (cmp == GE_EXPR
    2168              : )
    2169              :                             {
    2170         8563 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail686;
    2171         8563 :                               {
    2172         8563 :                                 tree _r;
    2173         8563 :                                 _r =  constant_boolean_node (true, type);
    2174         8563 :                                 if (TREE_SIDE_EFFECTS (captures[1]))
    2175           51 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2176         8563 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2177            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2178         8563 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 575, __FILE__, __LINE__, true);
    2179         8563 :                                 return _r;
    2180              :                               }
    2181            0 : next_after_fail686:;
    2182              :                             }
    2183              :                           else
    2184              :                             {
    2185        30270 :                               if (cmp == GT_EXPR
    2186              : )
    2187              :                                 {
    2188        30270 :                                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail687;
    2189        24680 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail687;
    2190        24680 :                                   {
    2191        24680 :                                     tree res_op0;
    2192        24680 :                                     res_op0 = captures[0];
    2193        24680 :                                     tree res_op1;
    2194        24680 :                                     res_op1 = captures[2];
    2195        24680 :                                     tree _r;
    2196        24680 :                                     _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2197        24680 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 576, __FILE__, __LINE__, true);
    2198        24680 :                                     return _r;
    2199              :                                   }
    2200       957513 : next_after_fail687:;
    2201              :                                 }
    2202              :                             }
    2203              :                         }
    2204              :                     }
    2205              :                 }
    2206              :               else
    2207              :                 {
    2208       962232 :                   if (wi::to_wide (cst) == max - 1
    2209              : )
    2210              :                     {
    2211         6495 :                       if (cmp == GT_EXPR
    2212              : )
    2213              :                         {
    2214         1397 :                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail688;
    2215         1397 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail688;
    2216         1397 :                           {
    2217         1397 :                             tree res_op0;
    2218         1397 :                             res_op0 = captures[0];
    2219         1397 :                             tree res_op1;
    2220         1397 :                             res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2221         1397 :  wide_int_to_tree (TREE_TYPE (cst),
    2222         1397 :  wi::to_wide (cst)
    2223         2794 :  + 1));
    2224         1397 :                             tree _r;
    2225         1397 :                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2226         1397 :                             if (TREE_SIDE_EFFECTS (captures[2]))
    2227            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2228         1397 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 577, __FILE__, __LINE__, true);
    2229         1397 :                             return _r;
    2230              :                           }
    2231       957513 : next_after_fail688:;
    2232              :                         }
    2233              :                       else
    2234              :                         {
    2235         5098 :                           if (cmp == LE_EXPR
    2236              : )
    2237              :                             {
    2238         5098 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail689;
    2239         5098 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail689;
    2240         5098 :                               {
    2241         5098 :                                 tree res_op0;
    2242         5098 :                                 res_op0 = captures[0];
    2243         5098 :                                 tree res_op1;
    2244         5098 :                                 res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2245         5098 :  wide_int_to_tree (TREE_TYPE (cst),
    2246         5098 :  wi::to_wide (cst)
    2247        10196 :  + 1));
    2248         5098 :                                 tree _r;
    2249         5098 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2250         5098 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2251            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2252         5098 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 578, __FILE__, __LINE__, true);
    2253         5098 :                                 return _r;
    2254              :                               }
    2255       957513 : next_after_fail689:;
    2256              :                             }
    2257              :                         }
    2258              :                     }
    2259              :                   else
    2260              :                     {
    2261       955737 :                       if (wi::to_wide (cst) == min + 1
    2262              : )
    2263              :                         {
    2264        54045 :                           if (cmp == GE_EXPR
    2265              : )
    2266              :                             {
    2267         1716 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail690;
    2268         1716 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail690;
    2269         1716 :                               {
    2270         1716 :                                 tree res_op0;
    2271         1716 :                                 res_op0 = captures[0];
    2272         1716 :                                 tree res_op1;
    2273         1716 :                                 res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2274         1716 :  wide_int_to_tree (TREE_TYPE (cst),
    2275         1716 :  wi::to_wide (cst)
    2276         3432 :  - 1));
    2277         1716 :                                 tree _r;
    2278         1716 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2279         1716 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2280            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2281         1716 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 579, __FILE__, __LINE__, true);
    2282         1716 :                                 return _r;
    2283              :                               }
    2284       957513 : next_after_fail690:;
    2285              :                             }
    2286              :                           else
    2287              :                             {
    2288        52329 :                               if (cmp == LT_EXPR
    2289              : )
    2290              :                                 {
    2291          334 :                                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail691;
    2292          334 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail691;
    2293          334 :                                   {
    2294          334 :                                     tree res_op0;
    2295          334 :                                     res_op0 = captures[0];
    2296          334 :                                     tree res_op1;
    2297          334 :                                     res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2298          334 :  wide_int_to_tree (TREE_TYPE (cst),
    2299          334 :  wi::to_wide (cst)
    2300          668 :  - 1));
    2301          334 :                                     tree _r;
    2302          334 :                                     _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2303          334 :                                     if (TREE_SIDE_EFFECTS (captures[2]))
    2304            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2305          334 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 580, __FILE__, __LINE__, true);
    2306          334 :                                     return _r;
    2307              :                                   }
    2308       957513 : next_after_fail691:;
    2309              :                                 }
    2310              :                             }
    2311              :                         }
    2312              :                       else
    2313              :                         {
    2314       901692 :                           if (wi::to_wide (cst) == signed_max
    2315         2882 :  && TYPE_UNSIGNED (arg1_type)
    2316         2882 :  && TYPE_MODE (arg1_type) != BLKmode
    2317       901692 :  && prec == GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (arg1_type))
    2318       904574 :  && INTEGRAL_TYPE_P (arg1_type)
    2319              : )
    2320              :                             {
    2321         2882 :                               if (cmp == LE_EXPR || cmp == GT_EXPR
    2322              : )
    2323              :                                 {
    2324         2882 :                                   {
    2325         2882 :  tree st = signed_type_for (TREE_TYPE (captures[2]));
    2326         2882 :                                       if (cst == captures[2] && cmp == LE_EXPR
    2327              : )
    2328              :                                         {
    2329         2846 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail692;
    2330         2846 :                                           {
    2331         2846 :                                             tree res_op0;
    2332         2846 :                                             {
    2333         2846 :                                               tree _o1[1], _r1;
    2334         2846 :                                               _o1[0] = captures[1];
    2335         2846 :                                               if (TREE_TYPE (_o1[0]) != st)
    2336              :                                                 {
    2337         2842 :                                                   _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
    2338              :                                                 }
    2339              :                                               else
    2340              :                                                 _r1 = _o1[0];
    2341         2846 :                                               res_op0 = _r1;
    2342              :                                             }
    2343         2846 :                                             tree res_op1;
    2344         2846 :                                             res_op1 =  build_zero_cst (st);
    2345         2846 :                                             tree _r;
    2346         2846 :                                             _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    2347         2846 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    2348            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2349         2846 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 581, __FILE__, __LINE__, true);
    2350         2846 :                                             return _r;
    2351              :                                           }
    2352            0 : next_after_fail692:;
    2353            0 :                                         }
    2354              :                                       else
    2355              :                                         {
    2356           36 :                                           if (cst == captures[2] && cmp == GT_EXPR
    2357              : )
    2358              :                                             {
    2359           36 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail693;
    2360           36 :                                               {
    2361           36 :                                                 tree res_op0;
    2362           36 :                                                 {
    2363           36 :                                                   tree _o1[1], _r1;
    2364           36 :                                                   _o1[0] = captures[1];
    2365           36 :                                                   if (TREE_TYPE (_o1[0]) != st)
    2366              :                                                     {
    2367           36 :                                                       _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
    2368              :                                                     }
    2369              :                                                   else
    2370              :                                                     _r1 = _o1[0];
    2371           36 :                                                   res_op0 = _r1;
    2372              :                                                 }
    2373           36 :                                                 tree res_op1;
    2374           36 :                                                 res_op1 =  build_zero_cst (st);
    2375           36 :                                                 tree _r;
    2376           36 :                                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2377           36 :                                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2378            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2379           36 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 582, __FILE__, __LINE__, true);
    2380           36 :                                                 return _r;
    2381              :                                               }
    2382            0 : next_after_fail693:;
    2383            0 :                                             }
    2384              :                                           else
    2385              :                                             {
    2386            0 :                                               if (cmp == LE_EXPR
    2387              : )
    2388              :                                                 {
    2389            0 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail694;
    2390            0 :                                                   {
    2391            0 :                                                     tree res_op0;
    2392            0 :                                                     {
    2393            0 :                                                       tree _o1[1], _r1;
    2394            0 :                                                       _o1[0] = captures[1];
    2395            0 :                                                       if (TREE_TYPE (_o1[0]) != st)
    2396              :                                                         {
    2397            0 :                                                           _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
    2398              :                                                         }
    2399              :                                                       else
    2400              :                                                         _r1 = _o1[0];
    2401            0 :                                                       res_op0 = _r1;
    2402              :                                                     }
    2403            0 :                                                     tree res_op1;
    2404            0 :                                                     res_op1 =  build_zero_cst (st);
    2405            0 :                                                     tree _r;
    2406            0 :                                                     _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    2407            0 :                                                     if (TREE_SIDE_EFFECTS (captures[2]))
    2408            0 :                                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2409            0 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 583, __FILE__, __LINE__, true);
    2410            0 :                                                     return _r;
    2411              :                                                   }
    2412            0 : next_after_fail694:;
    2413              :                                                 }
    2414              :                                               else
    2415              :                                                 {
    2416            0 :                                                   if (cmp == GT_EXPR
    2417              : )
    2418              :                                                     {
    2419            0 :                                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail695;
    2420            0 :                                                       {
    2421            0 :                                                         tree res_op0;
    2422            0 :                                                         {
    2423            0 :                                                           tree _o1[1], _r1;
    2424            0 :                                                           _o1[0] = captures[1];
    2425            0 :                                                           if (TREE_TYPE (_o1[0]) != st)
    2426              :                                                             {
    2427            0 :                                                               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
    2428              :                                                             }
    2429              :                                                           else
    2430              :                                                             _r1 = _o1[0];
    2431            0 :                                                           res_op0 = _r1;
    2432              :                                                         }
    2433            0 :                                                         tree res_op1;
    2434            0 :                                                         res_op1 =  build_zero_cst (st);
    2435            0 :                                                         tree _r;
    2436            0 :                                                         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2437            0 :                                                         if (TREE_SIDE_EFFECTS (captures[2]))
    2438            0 :                                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2439            0 :                                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 584, __FILE__, __LINE__, true);
    2440            0 :                                                         return _r;
    2441              :                                                       }
    2442            0 : next_after_fail695:;
    2443              :                                                     }
    2444              :                                                 }
    2445              :                                             }
    2446              :                                         }
    2447              :                                   }
    2448              :                                 }
    2449              :                             }
    2450              :                         }
    2451              :                     }
    2452              :                 }
    2453              :             }
    2454      1017951 :       }
    2455              :     }
    2456              :   return NULL_TREE;
    2457              : }
    2458              : 
    2459              : tree
    2460       122799 : generic_simplify_457 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2461              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2462              : {
    2463       122799 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2464       122799 :   {
    2465       122799 :  bool wascmp;
    2466       122799 :       if (bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
    2467       122799 :  && (!wascmp || element_precision (type) == 1)
    2468              : )
    2469              :         {
    2470            1 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail804;
    2471            1 :           {
    2472            1 :             tree res_op0;
    2473            1 :             res_op0 = captures[0];
    2474            1 :             tree res_op1;
    2475            1 :             res_op1 = captures[2];
    2476            1 :             tree _r;
    2477            1 :             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2478            1 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2479            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2480            1 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 658, __FILE__, __LINE__, true);
    2481            1 :             return _r;
    2482              :           }
    2483            0 : next_after_fail804:;
    2484              :         }
    2485              :   }
    2486       122798 :   return NULL_TREE;
    2487              : }
    2488              : 
    2489              : tree
    2490           65 : generic_simplify_464 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2491              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2492              : {
    2493           65 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2494           65 :   if (INTEGRAL_TYPE_P (type)
    2495           65 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2496           65 :  && TREE_CODE (TREE_TYPE (captures[0])) != BOOLEAN_TYPE
    2497          130 :  && (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    2498           19 :  || TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0])))
    2499              : )
    2500              :     {
    2501           65 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail811;
    2502           65 :       {
    2503           65 :         tree res_op0;
    2504           65 :         {
    2505           65 :           tree _o1[1], _r1;
    2506           65 :           _o1[0] = captures[0];
    2507           65 :           if (TREE_TYPE (_o1[0]) != type)
    2508              :             {
    2509           20 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2510              :             }
    2511              :           else
    2512              :             _r1 = _o1[0];
    2513           65 :           res_op0 = _r1;
    2514              :         }
    2515           65 :         tree res_op1;
    2516           65 :         res_op1 = captures[1];
    2517           65 :         tree _r;
    2518           65 :         _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    2519           65 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 664, __FILE__, __LINE__, true);
    2520           65 :         return _r;
    2521              :       }
    2522            0 : next_after_fail811:;
    2523              :     }
    2524              :   return NULL_TREE;
    2525              : }
    2526              : 
    2527              : tree
    2528            0 : generic_simplify_471 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2529              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2530              :  const enum tree_code ARG_UNUSED (cmp))
    2531              : {
    2532            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2533            0 :   if (fold_before_rtl_expansion_p ()
    2534              : )
    2535              :     {
    2536            0 :       if (INTEGRAL_TYPE_P (type)
    2537            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2538              : )
    2539              :         {
    2540            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail818;
    2541            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail818;
    2542            0 :           {
    2543            0 :             tree res_op0;
    2544            0 :             res_op0 = captures[0];
    2545            0 :             tree res_op1;
    2546            0 :             res_op1 = captures[3];
    2547            0 :             tree res_op2;
    2548            0 :             res_op2 =  build_zero_cst (type);
    2549            0 :             tree _r;
    2550            0 :             _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    2551            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 670, __FILE__, __LINE__, true);
    2552            0 :             return _r;
    2553              :           }
    2554              : next_after_fail818:;
    2555              :         }
    2556              :     }
    2557              :   return NULL_TREE;
    2558              : }
    2559              : 
    2560              : tree
    2561            0 : generic_simplify_481 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2562              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2563              : {
    2564            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2565            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail850;
    2566            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail850;
    2567            0 :   {
    2568            0 :     tree _r;
    2569            0 :     _r = captures[2];
    2570            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2571            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2572            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 691, __FILE__, __LINE__, true);
    2573              :     return _r;
    2574              :   }
    2575              : next_after_fail850:;
    2576              :   return NULL_TREE;
    2577              : }
    2578              : 
    2579              : tree
    2580            4 : generic_simplify_486 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2581              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2582              : {
    2583            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2584            4 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail867;
    2585            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail867;
    2586            4 :   {
    2587            4 :     tree _r;
    2588            4 :     _r = captures[2];
    2589            4 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2590            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2591            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 691, __FILE__, __LINE__, true);
    2592              :     return _r;
    2593              :   }
    2594              : next_after_fail867:;
    2595              :   return NULL_TREE;
    2596              : }
    2597              : 
    2598              : tree
    2599        62429 : generic_simplify_490 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2600              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2601              :  const enum tree_code ARG_UNUSED (shift))
    2602              : {
    2603        62429 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2604        62429 :   if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2605        62429 :  && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
    2606        62318 :  && tree_fits_uhwi_p (captures[4])
    2607        62269 :  && tree_to_uhwi (captures[4]) > 0
    2608       124697 :  && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
    2609              : )
    2610              :     {
    2611        62268 :       {
    2612        62268 :  unsigned int shiftc = tree_to_uhwi (captures[4]);
    2613        62268 :  unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
    2614        62268 :  unsigned HOST_WIDE_INT newmask, zerobits = 0;
    2615        62268 :  tree shift_type = TREE_TYPE (captures[2]);
    2616        62268 :  unsigned int prec;
    2617        62268 :  if (shift == LSHIFT_EXPR)
    2618        27795 :  zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
    2619        34473 :  else if (shift == RSHIFT_EXPR
    2620        34473 :  && type_has_mode_precision_p (shift_type))
    2621              :  {
    2622        34473 :  prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
    2623        34473 :  tree arg00 = captures[3];
    2624        34473 :  if (captures[2] != captures[3]
    2625        34473 :  && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
    2626              :  {
    2627            0 :  tree inner_type = TREE_TYPE (captures[3]);
    2628            0 :  if (type_has_mode_precision_p (inner_type)
    2629            0 :  && TYPE_PRECISION (inner_type) < prec)
    2630              :  {
    2631            0 :  prec = TYPE_PRECISION (inner_type);
    2632            0 :  if (shiftc < prec)
    2633            0 :  shift_type = inner_type;
    2634              :  }
    2635              :  }
    2636        34473 :  zerobits = HOST_WIDE_INT_M1U;
    2637        34473 :  if (shiftc < prec)
    2638              :  {
    2639        34473 :  zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
    2640        34473 :  zerobits <<= prec - shiftc;
    2641              :  }
    2642        34473 :  if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    2643        34473 :  && prec == TYPE_PRECISION (TREE_TYPE (captures[2])))
    2644              :  {
    2645         2894 :  if ((mask & zerobits) == 0)
    2646         2883 :  shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
    2647              :  else
    2648              :  zerobits = 0;
    2649              :  }
    2650              :  }
    2651        62257 :           if ((mask & zerobits) == mask
    2652              : )
    2653              :             {
    2654            3 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail873;
    2655            3 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail873;
    2656            3 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail873;
    2657            3 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail873;
    2658            3 :               {
    2659            3 :                 tree _r;
    2660            3 :                 _r =  build_int_cst (type, 0);
    2661            3 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 694, __FILE__, __LINE__, true);
    2662            3 :                 return _r;
    2663              :               }
    2664              : next_after_fail873:;
    2665              :             }
    2666              :           else
    2667              :             {
    2668        62265 :               {
    2669        62265 :  newmask = mask | zerobits;
    2670        62265 :                   if (newmask != mask && (newmask & (newmask + 1)) == 0
    2671              : )
    2672              :                     {
    2673              :                       {
    2674        18268 :  for (prec = BITS_PER_UNIT;
    2675        33613 :  prec < HOST_BITS_PER_WIDE_INT; prec <<= 1)
    2676        31549 :  if (newmask == (HOST_WIDE_INT_1U << prec) - 1)
    2677              :  break;
    2678        15345 :                           if (prec < HOST_BITS_PER_WIDE_INT
    2679         2064 :  || newmask == HOST_WIDE_INT_M1U
    2680              : )
    2681              :                             {
    2682        13448 :                               {
    2683        13448 :  tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
    2684        13448 :                                   if (!tree_int_cst_equal (newmaskt, captures[5])
    2685              : )
    2686              :                                     {
    2687        13448 :                                       if (shift_type != TREE_TYPE (captures[2])
    2688              : )
    2689              :                                         {
    2690           85 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail874;
    2691           85 :                                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail874;
    2692           85 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail874;
    2693           85 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail874;
    2694           85 :                                           {
    2695           85 :                                             tree res_op0;
    2696           85 :                                             {
    2697           85 :                                               tree _o1[1], _r1;
    2698           85 :                                               {
    2699           85 :                                                 tree _o2[2], _r2;
    2700           85 :                                                 {
    2701           85 :                                                   tree _o3[1], _r3;
    2702           85 :                                                   _o3[0] = captures[2];
    2703           85 :                                                   if (TREE_TYPE (_o3[0]) != shift_type)
    2704              :                                                     {
    2705           85 :                                                       _r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
    2706              :                                                     }
    2707              :                                                   else
    2708              :                                                     _r3 = _o3[0];
    2709           85 :                                                   _o2[0] = _r3;
    2710              :                                                 }
    2711           85 :                                                 _o2[1] = captures[4];
    2712           85 :                                                 _r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
    2713           85 :                                                 _o1[0] = _r2;
    2714              :                                               }
    2715           85 :                                               if (TREE_TYPE (_o1[0]) != type)
    2716              :                                                 {
    2717           85 :                                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2718              :                                                 }
    2719              :                                               else
    2720              :                                                 _r1 = _o1[0];
    2721           85 :                                               res_op0 = _r1;
    2722              :                                             }
    2723           85 :                                             tree res_op1;
    2724           85 :                                             res_op1 =  newmaskt;
    2725           85 :                                             tree _r;
    2726           85 :                                             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2727           85 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 695, __FILE__, __LINE__, true);
    2728           85 :                                             return _r;
    2729              :                                           }
    2730              : next_after_fail874:;
    2731              :                                         }
    2732              :                                       else
    2733              :                                         {
    2734        13363 :                                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail875;
    2735        12427 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail875;
    2736        12427 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail875;
    2737        12427 :                                           {
    2738        12427 :                                             tree res_op0;
    2739        12427 :                                             res_op0 = captures[0];
    2740        12427 :                                             tree res_op1;
    2741        12427 :                                             res_op1 =  newmaskt;
    2742        12427 :                                             tree _r;
    2743        12427 :                                             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2744        12427 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 696, __FILE__, __LINE__, true);
    2745        12427 :                                             return _r;
    2746              :                                           }
    2747              : next_after_fail875:;
    2748              :                                         }
    2749              :                                     }
    2750              :                               }
    2751              :                             }
    2752              :                       }
    2753              :                     }
    2754              :               }
    2755              :             }
    2756              :       }
    2757              :     }
    2758              :   return NULL_TREE;
    2759              : }
    2760              : 
    2761              : tree
    2762           42 : generic_simplify_500 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2763              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2764              : {
    2765           42 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2766           42 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail891;
    2767           42 :   {
    2768           42 :     tree res_op0;
    2769           42 :     res_op0 = captures[1];
    2770           42 :     tree res_op1;
    2771           42 :     {
    2772           42 :       tree _o1[1], _r1;
    2773           42 :       _o1[0] = captures[2];
    2774           42 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    2775           42 :       res_op1 = _r1;
    2776              :     }
    2777           42 :     tree _r;
    2778           42 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
    2779           42 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 705, __FILE__, __LINE__, true);
    2780              :     return _r;
    2781              :   }
    2782            0 : next_after_fail891:;
    2783            0 :   return NULL_TREE;
    2784              : }
    2785              : 
    2786              : tree
    2787          145 : generic_simplify_506 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2788              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2789              : {
    2790          145 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2791          145 :   if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
    2792          145 :  || !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    2793              : )
    2794              :     {
    2795          145 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail897;
    2796          145 :       {
    2797          145 :         tree res_op0;
    2798          145 :         {
    2799          145 :           tree _o1[2], _r1;
    2800          145 :           _o1[0] = captures[0];
    2801          145 :           _o1[1] =  build_each_one_cst (TREE_TYPE (captures[0]));
    2802          145 :           _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2803          145 :           res_op0 = _r1;
    2804              :         }
    2805          145 :         tree _r;
    2806          145 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2807          145 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 711, __FILE__, __LINE__, true);
    2808          145 :         return _r;
    2809              :       }
    2810            0 : next_after_fail897:;
    2811              :     }
    2812              :   return NULL_TREE;
    2813              : }
    2814              : 
    2815              : tree
    2816          249 : generic_simplify_513 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2817              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2818              :  const enum tree_code ARG_UNUSED (cmp),
    2819              :  const enum tree_code ARG_UNUSED (icmp),
    2820              :  const enum tree_code ARG_UNUSED (ncmp))
    2821              : {
    2822          249 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2823          249 :   if (VECTOR_TYPE_P (type)
    2824          249 :  || (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1)
    2825              : )
    2826              :     {
    2827           51 :       {
    2828           51 :  enum tree_code ic = invert_tree_comparison
    2829           51 :  (cmp, HONOR_NANS (captures[0]));
    2830           51 :           if (ic == icmp
    2831              : )
    2832              :             {
    2833           12 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail904;
    2834           12 :               {
    2835           12 :                 tree res_op0;
    2836           12 :                 res_op0 = captures[0];
    2837           12 :                 tree res_op1;
    2838           12 :                 res_op1 = captures[1];
    2839           12 :                 tree _r;
    2840           12 :                 _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    2841           12 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 716, __FILE__, __LINE__, true);
    2842           12 :                 return _r;
    2843              :               }
    2844            0 : next_after_fail904:;
    2845              :             }
    2846              :           else
    2847              :             {
    2848           39 :               if (ic == ncmp
    2849              : )
    2850              :                 {
    2851            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail905;
    2852            0 :                   {
    2853            0 :                     tree res_op0;
    2854            0 :                     res_op0 = captures[0];
    2855            0 :                     tree res_op1;
    2856            0 :                     res_op1 = captures[1];
    2857            0 :                     tree _r;
    2858            0 :                     _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    2859            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 717, __FILE__, __LINE__, true);
    2860            0 :                     return _r;
    2861              :                   }
    2862            0 : next_after_fail905:;
    2863              :                 }
    2864              :             }
    2865              :       }
    2866              :     }
    2867              :   return NULL_TREE;
    2868              : }
    2869              : 
    2870              : tree
    2871            1 : generic_simplify_526 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2872              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2873              :  const enum tree_code ARG_UNUSED (minmax))
    2874              : {
    2875            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2876            1 :   if (INTEGRAL_TYPE_P (type)
    2877            1 :  && TYPE_OVERFLOW_UNDEFINED (type)
    2878            2 :  && !TYPE_OVERFLOW_SANITIZED (type)
    2879              : )
    2880              :     {
    2881            1 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail919;
    2882            1 :       {
    2883            1 :         tree res_op0;
    2884            1 :         {
    2885            1 :           tree _o1[2], _r1;
    2886            1 :           _o1[0] = captures[1];
    2887            1 :           _o1[1] = captures[4];
    2888            1 :           _r1 = fold_build2_loc (loc, minmax, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2889            1 :           res_op0 = _r1;
    2890              :         }
    2891            1 :         tree res_op1;
    2892            1 :         res_op1 = captures[2];
    2893            1 :         tree _r;
    2894            1 :         _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    2895            1 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 730, __FILE__, __LINE__, true);
    2896            1 :         return _r;
    2897              :       }
    2898            0 : next_after_fail919:;
    2899              :     }
    2900              :   return NULL_TREE;
    2901              : }
    2902              : 
    2903              : tree
    2904            2 : generic_simplify_535 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2905              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2906              :  const enum tree_code ARG_UNUSED (op),
    2907              :  const enum tree_code ARG_UNUSED (logic))
    2908              : {
    2909            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2910            2 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail942;
    2911            2 :   {
    2912            2 :     tree res_op0;
    2913            2 :     res_op0 = captures[0];
    2914            2 :     tree res_op1;
    2915            2 :     res_op1 = captures[1];
    2916            2 :     tree _r;
    2917            2 :     _r = fold_build2_loc (loc, logic, type, res_op0, res_op1);
    2918            2 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 741, __FILE__, __LINE__, true);
    2919              :     return _r;
    2920              :   }
    2921            0 : next_after_fail942:;
    2922            0 :   return NULL_TREE;
    2923              : }
    2924              : 
    2925              : tree
    2926            6 : generic_simplify_542 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2927              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    2928              : {
    2929            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2930            6 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail949;
    2931            6 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail949;
    2932            6 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail949;
    2933            6 :   {
    2934            6 :     tree _r;
    2935            6 :     _r = captures[2];
    2936            6 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 532, __FILE__, __LINE__, true);
    2937              :     return _r;
    2938              :   }
    2939              : next_after_fail949:;
    2940              :   return NULL_TREE;
    2941              : }
    2942              : 
    2943              : tree
    2944            0 : generic_simplify_545 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2945              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    2946              :  const enum tree_code ARG_UNUSED (cmp))
    2947              : {
    2948            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2949            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail952;
    2950            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail952;
    2951            0 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail952;
    2952            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail952;
    2953            0 :   {
    2954            0 :     tree _r;
    2955            0 :     _r = captures[3];
    2956            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 535, __FILE__, __LINE__, true);
    2957              :     return _r;
    2958              :   }
    2959              : next_after_fail952:;
    2960              :   return NULL_TREE;
    2961              : }
    2962              : 
    2963              : tree
    2964            0 : generic_simplify_555 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2965              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    2966              :  const combined_fn ARG_UNUSED (cond_op))
    2967              : {
    2968            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2969            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail962;
    2970            0 :   {
    2971            0 :     tree res_op0;
    2972            0 :     {
    2973            0 :       tree _o1[2], _r1;
    2974            0 :       _o1[0] = captures[2];
    2975            0 :       _o1[1] = captures[0];
    2976            0 :       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2977            0 :       res_op0 = _r1;
    2978              :     }
    2979            0 :     tree res_op1;
    2980            0 :     res_op1 = captures[3];
    2981            0 :     tree res_op2;
    2982            0 :     res_op2 = captures[4];
    2983            0 :     tree res_op3;
    2984            0 :     res_op3 = captures[5];
    2985            0 :     tree _r;
    2986            0 :     _r = maybe_build_call_expr_loc (loc, cond_op, type, 4, res_op0, res_op1, res_op2, res_op3);
    2987            0 :     if (!_r)
    2988            0 :       goto next_after_fail962;
    2989            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 756, __FILE__, __LINE__, true);
    2990              :     return _r;
    2991              :   }
    2992              : next_after_fail962:;
    2993              :   return NULL_TREE;
    2994              : }
    2995              : 
    2996              : tree
    2997            1 : generic_simplify_560 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2998              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2999              : {
    3000            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3001            1 :   if (tree_nop_conversion_p (TREE_TYPE (captures[0]), type)
    3002              : )
    3003              :     {
    3004            1 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail970;
    3005            1 :       {
    3006            1 :         tree res_op0;
    3007            1 :         {
    3008            1 :           tree _o1[1], _r1;
    3009            1 :           _o1[0] = captures[0];
    3010            1 :           if (TREE_TYPE (_o1[0]) != type)
    3011              :             {
    3012            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3013              :             }
    3014              :           else
    3015              :             _r1 = _o1[0];
    3016            1 :           res_op0 = _r1;
    3017              :         }
    3018            1 :         tree _r;
    3019            1 :         _r = non_lvalue_loc (loc, res_op0);
    3020            1 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 764, __FILE__, __LINE__, true);
    3021            1 :         return _r;
    3022              :       }
    3023            0 : next_after_fail970:;
    3024              :     }
    3025              :   return NULL_TREE;
    3026              : }
    3027              : 
    3028              : tree
    3029            0 : generic_simplify_570 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3030              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3031              :  const combined_fn ARG_UNUSED (logs))
    3032              : {
    3033            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3034            0 :   if (flag_unsafe_math_optimizations
    3035              : )
    3036              :     {
    3037            0 :       if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
    3038            0 :  && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
    3039            0 :  && ! flag_trapping_math
    3040            0 :  && ! flag_errno_math
    3041              : )
    3042              :         {
    3043            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail980;
    3044            0 :           {
    3045            0 :             tree res_op0;
    3046            0 :             {
    3047            0 :               tree _o1[1], _r1;
    3048            0 :               _o1[0] = captures[1];
    3049            0 :               _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3050            0 :               if (!_r1)
    3051            0 :                 goto next_after_fail980;
    3052            0 :               if (EXPR_P (_r1))
    3053            0 :                 goto next_after_fail980;
    3054            0 :               res_op0 = _r1;
    3055              :             }
    3056            0 :             tree res_op1;
    3057            0 :             {
    3058            0 :               tree _o1[1], _r1;
    3059            0 :               _o1[0] = captures[2];
    3060            0 :               _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3061            0 :               if (!_r1)
    3062            0 :                 goto next_after_fail980;
    3063            0 :               res_op1 = _r1;
    3064              :             }
    3065            0 :             tree _r;
    3066            0 :             _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    3067            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 774, __FILE__, __LINE__, true);
    3068            0 :             return _r;
    3069              :           }
    3070              : next_after_fail980:;
    3071              :         }
    3072              :     }
    3073              :   return NULL_TREE;
    3074              : }
    3075              : 
    3076              : tree
    3077            0 : generic_simplify_583 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3078              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3079              :  const combined_fn ARG_UNUSED (froms),
    3080              :  const combined_fn ARG_UNUSED (tos))
    3081              : {
    3082            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3083            0 :   if (optimize && canonicalize_math_p ()
    3084              : )
    3085              :     {
    3086            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail993;
    3087            0 :       {
    3088            0 :         tree res_op0;
    3089            0 :         res_op0 = captures[0];
    3090            0 :         tree _r;
    3091            0 :         _r = maybe_build_call_expr_loc (loc, tos, type, 1, res_op0);
    3092            0 :         if (!_r)
    3093            0 :           goto next_after_fail993;
    3094            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 787, __FILE__, __LINE__, true);
    3095            0 :         return _r;
    3096              :       }
    3097              : next_after_fail993:;
    3098              :     }
    3099              :   return NULL_TREE;
    3100              : }
    3101              : 
    3102              : tree
    3103            0 : generic_simplify_591 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3104              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3105              :  const combined_fn ARG_UNUSED (fmas))
    3106              : {
    3107            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3108            0 :   if (canonicalize_math_after_vectorization_p ()
    3109              : )
    3110              :     {
    3111              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1001;
    3112              :       {
    3113              :         tree res_op0;
    3114              :         res_op0 = captures[0];
    3115              :         tree res_op1;
    3116              :         res_op1 = captures[1];
    3117              :         tree res_op2;
    3118              :         res_op2 = captures[2];
    3119              :         tree _r;
    3120              :         _r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
    3121              :         if (!_r)
    3122              :           goto next_after_fail1001;
    3123              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 795, __FILE__, __LINE__, true);
    3124              :         return _r;
    3125              :       }
    3126            0 : next_after_fail1001:;
    3127              :     }
    3128            0 :   return NULL_TREE;
    3129              : }
    3130              : 
    3131              : tree
    3132            0 : generic_simplify_601 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3133              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures),
    3134              :  const combined_fn ARG_UNUSED (fmas))
    3135              : {
    3136            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3137            0 :   if (canonicalize_math_after_vectorization_p ()
    3138              : )
    3139              :     {
    3140              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1011;
    3141              :       {
    3142              :         tree res_op0;
    3143              :         res_op0 = captures[0];
    3144              :         tree res_op1;
    3145              :         res_op1 = captures[1];
    3146              :         tree res_op2;
    3147              :         res_op2 = captures[2];
    3148              :         tree res_op3;
    3149              :         res_op3 = captures[3];
    3150              :         tree res_op4;
    3151              :         res_op4 = captures[4];
    3152              :         tree _r;
    3153              :         _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3154              :         if (!_r)
    3155              :           goto next_after_fail1011;
    3156              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 805, __FILE__, __LINE__, true);
    3157              :         return _r;
    3158              :       }
    3159            0 : next_after_fail1011:;
    3160              :     }
    3161            0 :   return NULL_TREE;
    3162              : }
    3163              : 
    3164              : tree
    3165            0 : generic_simplify_610 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3166              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3167              :  const combined_fn ARG_UNUSED (ctz))
    3168              : {
    3169            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3170            0 :   {
    3171            0 :  tree t = TREE_TYPE (captures[0]);
    3172            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1020;
    3173            0 :       {
    3174            0 :         tree res_op0;
    3175            0 :         {
    3176            0 :           tree _o1[1], _r1;
    3177            0 :           _o1[0] = captures[1];
    3178            0 :           if (TREE_TYPE (_o1[0]) != t)
    3179              :             {
    3180            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
    3181              :             }
    3182              :           else
    3183              :             _r1 = _o1[0];
    3184            0 :           res_op0 = _r1;
    3185              :         }
    3186            0 :         tree _r;
    3187            0 :         _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
    3188            0 :         if (!_r)
    3189            0 :           goto next_after_fail1020;
    3190            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 813, __FILE__, __LINE__, true);
    3191              :         return _r;
    3192              :       }
    3193              : next_after_fail1020:;
    3194              :   }
    3195              :   return NULL_TREE;
    3196              : }
    3197              : 
    3198              : tree
    3199            0 : generic_simplify_620 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3200              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3201              :  const combined_fn ARG_UNUSED (bswap),
    3202              :  const combined_fn ARG_UNUSED (parity))
    3203              : {
    3204            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3205            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3206            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3207            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0]))
    3208            0 :  >= TYPE_PRECISION (TREE_TYPE (captures[1]))
    3209              : )
    3210              :     {
    3211            0 :       {
    3212            0 :  tree type0 = TREE_TYPE (captures[0]);
    3213            0 :  tree type1 = TREE_TYPE (captures[1]);
    3214            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1031;
    3215            0 :           {
    3216            0 :             tree res_op0;
    3217            0 :             {
    3218            0 :               tree _o1[1], _r1;
    3219            0 :               {
    3220            0 :                 tree _o2[1], _r2;
    3221            0 :                 _o2[0] = captures[2];
    3222            0 :                 if (TREE_TYPE (_o2[0]) != type1)
    3223              :                   {
    3224            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
    3225              :                   }
    3226              :                 else
    3227              :                   _r2 = _o2[0];
    3228            0 :                 _o1[0] = _r2;
    3229              :               }
    3230            0 :               if (TREE_TYPE (_o1[0]) != type0)
    3231              :                 {
    3232            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
    3233              :                 }
    3234              :               else
    3235              :                 _r1 = _o1[0];
    3236            0 :               res_op0 = _r1;
    3237              :             }
    3238            0 :             tree _r;
    3239            0 :             _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
    3240            0 :             if (!_r)
    3241            0 :               goto next_after_fail1031;
    3242            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 820, __FILE__, __LINE__, true);
    3243            0 :             return _r;
    3244              :           }
    3245              : next_after_fail1031:;
    3246              :       }
    3247              :     }
    3248              :   return NULL_TREE;
    3249              : }
    3250              : 
    3251              : tree
    3252    800429573 : generic_simplify_CONVERT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3253              : {
    3254    800429573 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3255    800429573 :   switch (TREE_CODE (_p0))
    3256              :     {
    3257       734037 :     case NEGATE_EXPR:
    3258       734037 :       {
    3259       734037 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3260       734037 :         switch (TREE_CODE (_q20))
    3261              :           {
    3262       405242 :           CASE_CONVERT:
    3263       405242 :             {
    3264       405242 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3265       405242 :               {
    3266       405242 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
    3267       405242 :                 if (INTEGRAL_TYPE_P (type)
    3268       404938 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    3269       401091 :  && (TYPE_PRECISION (type) > TYPE_PRECISION (TREE_TYPE (captures[2]))
    3270       399994 :  || TYPE_UNSIGNED (type))
    3271       436705 :  && TREE_CODE (type) != BOOLEAN_TYPE
    3272              : )
    3273              :                   {
    3274        31463 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1045;
    3275        31463 :                     {
    3276        31463 :                       tree res_op0;
    3277        31463 :                       {
    3278        31463 :                         tree _o1[1], _r1;
    3279        31463 :                         _o1[0] = captures[2];
    3280        31463 :                         if (TREE_TYPE (_o1[0]) != type)
    3281              :                           {
    3282        31421 :                             _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3283              :                           }
    3284              :                         else
    3285              :                           _r1 = _o1[0];
    3286        31463 :                         res_op0 = _r1;
    3287              :                       }
    3288        31463 :                       tree _r;
    3289        31463 :                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    3290        31463 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 832, __FILE__, __LINE__, true);
    3291        31463 :                       return _r;
    3292              :                     }
    3293            0 : next_after_fail1045:;
    3294              :                   }
    3295              :               }
    3296       373779 :               break;
    3297              :             }
    3298              :           default:;
    3299              :           }
    3300              :         break;
    3301              :       }
    3302      1188830 :     case BIT_AND_EXPR:
    3303      1188830 :       {
    3304      1188830 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3305      1188830 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3306      1188830 :         {
    3307      1188830 :           tree _q20_pops[1];
    3308      1188830 :           if (tree_nop_convert (_q20, _q20_pops))
    3309              :             {
    3310       599366 :               tree _q30 = _q20_pops[0];
    3311       599366 :               {
    3312       599366 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
    3313       599366 :                 tree res = generic_simplify_430 (loc, type, _p0, captures, BIT_AND_EXPR);
    3314       599366 :                 if (res) return res;
    3315              :               }
    3316              :             }
    3317              :         }
    3318      1188830 :         {
    3319      1188830 :           tree _q21_pops[1];
    3320      1188830 :           if (tree_nop_convert (_q21, _q21_pops))
    3321              :             {
    3322       512101 :               tree _q40 = _q21_pops[0];
    3323       512101 :               {
    3324       512101 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
    3325       512101 :                 tree res = generic_simplify_430 (loc, type, _p0, captures, BIT_AND_EXPR);
    3326       512101 :                 if (res) return res;
    3327              :               }
    3328              :             }
    3329              :         }
    3330      1188830 :         switch (TREE_CODE (_q20))
    3331              :           {
    3332       670101 :           CASE_CONVERT:
    3333       670101 :             {
    3334       670101 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3335       670101 :               {
    3336       670101 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
    3337       670101 :                 tree res = generic_simplify_431 (loc, type, _p0, captures, BIT_AND_EXPR);
    3338       670101 :                 if (res) return res;
    3339              :               }
    3340       670101 :               break;
    3341              :             }
    3342      1188830 :           default:;
    3343              :           }
    3344      1188830 :         switch (TREE_CODE (_q21))
    3345              :           {
    3346       512882 :           CASE_CONVERT:
    3347       512882 :             {
    3348       512882 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3349       512882 :               {
    3350       512882 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
    3351       512882 :                 tree res = generic_simplify_431 (loc, type, _p0, captures, BIT_AND_EXPR);
    3352       512882 :                 if (res) return res;
    3353              :               }
    3354       512882 :               break;
    3355              :             }
    3356              :           default:;
    3357              :           }
    3358              :         break;
    3359              :       }
    3360      1137573 :     case BIT_IOR_EXPR:
    3361      1137573 :       {
    3362      1137573 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3363      1137573 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3364      1137573 :         {
    3365      1137573 :           tree _q20_pops[1];
    3366      1137573 :           if (tree_nop_convert (_q20, _q20_pops))
    3367              :             {
    3368       417206 :               tree _q30 = _q20_pops[0];
    3369       417206 :               {
    3370       417206 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
    3371       417206 :                 tree res = generic_simplify_430 (loc, type, _p0, captures, BIT_IOR_EXPR);
    3372       417206 :                 if (res) return res;
    3373              :               }
    3374              :             }
    3375              :         }
    3376      1137573 :         {
    3377      1137573 :           tree _q21_pops[1];
    3378      1137573 :           if (tree_nop_convert (_q21, _q21_pops))
    3379              :             {
    3380      1065535 :               tree _q40 = _q21_pops[0];
    3381      1065535 :               {
    3382      1065535 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
    3383      1065535 :                 tree res = generic_simplify_430 (loc, type, _p0, captures, BIT_IOR_EXPR);
    3384      1065535 :                 if (res) return res;
    3385              :               }
    3386              :             }
    3387              :         }
    3388      1137573 :         switch (TREE_CODE (_q20))
    3389              :           {
    3390       433876 :           CASE_CONVERT:
    3391       433876 :             {
    3392       433876 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3393       433876 :               {
    3394       433876 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
    3395       433876 :                 tree res = generic_simplify_431 (loc, type, _p0, captures, BIT_IOR_EXPR);
    3396       433876 :                 if (res) return res;
    3397              :               }
    3398       433876 :               break;
    3399              :             }
    3400      1137573 :           default:;
    3401              :           }
    3402      1137573 :         switch (TREE_CODE (_q21))
    3403              :           {
    3404      1073385 :           CASE_CONVERT:
    3405      1073385 :             {
    3406      1073385 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3407      1073385 :               {
    3408      1073385 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
    3409      1073385 :                 tree res = generic_simplify_431 (loc, type, _p0, captures, BIT_IOR_EXPR);
    3410      1073385 :                 if (res) return res;
    3411              :               }
    3412      1073385 :               break;
    3413              :             }
    3414              :           default:;
    3415              :           }
    3416              :         break;
    3417              :       }
    3418       585183 :     case BIT_XOR_EXPR:
    3419       585183 :       {
    3420       585183 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3421       585183 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3422       585183 :         {
    3423       585183 :           tree _q20_pops[1];
    3424       585183 :           if (tree_nop_convert (_q20, _q20_pops))
    3425              :             {
    3426       331397 :               tree _q30 = _q20_pops[0];
    3427       331397 :               {
    3428       331397 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
    3429       331397 :                 tree res = generic_simplify_430 (loc, type, _p0, captures, BIT_XOR_EXPR);
    3430       331397 :                 if (res) return res;
    3431              :               }
    3432              :             }
    3433              :         }
    3434       585183 :         {
    3435       585183 :           tree _q21_pops[1];
    3436       585183 :           if (tree_nop_convert (_q21, _q21_pops))
    3437              :             {
    3438       468882 :               tree _q40 = _q21_pops[0];
    3439       468882 :               {
    3440       468882 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
    3441       468882 :                 tree res = generic_simplify_430 (loc, type, _p0, captures, BIT_XOR_EXPR);
    3442       468882 :                 if (res) return res;
    3443              :               }
    3444              :             }
    3445              :         }
    3446       585183 :         switch (TREE_CODE (_q20))
    3447              :           {
    3448       372697 :           CASE_CONVERT:
    3449       372697 :             {
    3450       372697 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3451       372697 :               {
    3452       372697 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
    3453       372697 :                 tree res = generic_simplify_431 (loc, type, _p0, captures, BIT_XOR_EXPR);
    3454       372697 :                 if (res) return res;
    3455              :               }
    3456       372697 :               break;
    3457              :             }
    3458       585183 :           default:;
    3459              :           }
    3460       585183 :         switch (TREE_CODE (_q21))
    3461              :           {
    3462       509171 :           CASE_CONVERT:
    3463       509171 :             {
    3464       509171 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3465       509171 :               {
    3466       509171 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
    3467       509171 :                 tree res = generic_simplify_431 (loc, type, _p0, captures, BIT_XOR_EXPR);
    3468       509171 :                 if (res) return res;
    3469              :               }
    3470       509171 :               break;
    3471              :             }
    3472              :           default:;
    3473              :           }
    3474              :         break;
    3475              :       }
    3476      9144206 :     case MULT_EXPR:
    3477      9144206 :       {
    3478      9144206 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3479      9144206 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3480      9144206 :         if (tree_zero_one_valued_p (_q20))
    3481              :           {
    3482        54482 :             switch (TREE_CODE (_q21))
    3483              :               {
    3484        49005 :               case INTEGER_CST:
    3485        49005 :                 {
    3486        49005 :                   {
    3487        49005 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    3488        49005 :                     if (INTEGRAL_TYPE_P (type)
    3489        49005 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3490        49005 :  && TYPE_PRECISION (type) < TYPE_PRECISION (TREE_TYPE (captures[0]))
    3491        49652 :  && (TYPE_UNSIGNED (type) || TYPE_PRECISION (type) > 1)
    3492              : )
    3493              :                       {
    3494          647 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1046;
    3495          647 :                         {
    3496          647 :                           tree res_op0;
    3497          647 :                           {
    3498          647 :                             tree _o1[1], _r1;
    3499          647 :                             _o1[0] = captures[1];
    3500          647 :                             if (TREE_TYPE (_o1[0]) != type)
    3501              :                               {
    3502          647 :                                 _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3503              :                               }
    3504              :                             else
    3505              :                               _r1 = _o1[0];
    3506          647 :                             res_op0 = _r1;
    3507              :                           }
    3508          647 :                           tree res_op1;
    3509          647 :                           {
    3510          647 :                             tree _o1[1], _r1;
    3511          647 :                             _o1[0] = captures[2];
    3512          647 :                             if (TREE_TYPE (_o1[0]) != type)
    3513              :                               {
    3514          647 :                                 _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3515              :                               }
    3516              :                             else
    3517              :                               _r1 = _o1[0];
    3518          647 :                             res_op1 = _r1;
    3519              :                           }
    3520          647 :                           tree _r;
    3521          647 :                           _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    3522          647 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 833, __FILE__, __LINE__, true);
    3523          647 :                           return _r;
    3524              :                         }
    3525            0 : next_after_fail1046:;
    3526              :                       }
    3527              :                   }
    3528        48358 :                   break;
    3529              :                 }
    3530              :               default:;
    3531              :               }
    3532              :           }
    3533              :         break;
    3534              :       }
    3535      1142245 :     case POINTER_DIFF_EXPR:
    3536      1142245 :       {
    3537      1142245 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3538      1142245 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3539      1142245 :         switch (TREE_CODE (_q21))
    3540              :           {
    3541          200 :           case INTEGER_CST:
    3542          200 :             {
    3543          200 :               {
    3544          200 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3545          200 :                 if (POINTER_TYPE_P (type)
    3546              : )
    3547              :                   {
    3548           18 :                     if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1047;
    3549           18 :                     if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1047;
    3550           18 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1047;
    3551           18 :                     {
    3552           18 :                       tree _r;
    3553           18 :                       _r =  build_fold_addr_expr_with_type
    3554              :  (build2 (MEM_REF, char_type_node, captures[0],
    3555              :  wide_int_to_tree (ptr_type_node, wi::neg (wi::to_wide (captures[1])))),
    3556              :  type);
    3557           18 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 834, __FILE__, __LINE__, true);
    3558           18 :                       return _r;
    3559              :                     }
    3560          182 : next_after_fail1047:;
    3561              :                   }
    3562              :               }
    3563          182 :               break;
    3564              :             }
    3565              :           default:;
    3566              :           }
    3567              :         break;
    3568              :       }
    3569       206316 :     case EQ_EXPR:
    3570       206316 :       {
    3571       206316 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3572       206316 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3573       206316 :         if (tree_zero_one_valued_p (_q20))
    3574              :           {
    3575         1500 :             switch (TREE_CODE (_q21))
    3576              :               {
    3577          617 :               case INTEGER_CST:
    3578          617 :                 {
    3579          617 :                   {
    3580          617 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3581          617 :                     tree res = generic_simplify_432 (loc, type, _p0, captures, EQ_EXPR);
    3582          617 :                     if (res) return res;
    3583              :                   }
    3584          570 :                   break;
    3585              :                 }
    3586              :               default:;
    3587              :               }
    3588              :           }
    3589              :         break;
    3590              :       }
    3591       261241 :     case NE_EXPR:
    3592       261241 :       {
    3593       261241 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3594       261241 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3595       261241 :         if (tree_zero_one_valued_p (_q20))
    3596              :           {
    3597         1866 :             switch (TREE_CODE (_q21))
    3598              :               {
    3599         1540 :               case INTEGER_CST:
    3600         1540 :                 {
    3601         1540 :                   {
    3602         1540 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3603         1540 :                     tree res = generic_simplify_432 (loc, type, _p0, captures, NE_EXPR);
    3604         1540 :                     if (res) return res;
    3605              :                   }
    3606            1 :                   break;
    3607              :                 }
    3608              :               default:;
    3609              :               }
    3610              :           }
    3611              :         break;
    3612              :       }
    3613         1999 :     case MIN_EXPR:
    3614         1999 :       {
    3615         1999 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3616         1999 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3617         1999 :         switch (TREE_CODE (_q20))
    3618              :           {
    3619          733 :           CASE_CONVERT:
    3620          733 :             {
    3621          733 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3622          733 :               switch (TREE_CODE (_q21))
    3623              :                 {
    3624           47 :                 CASE_CONVERT:
    3625           47 :                   {
    3626           47 :                     tree _q50 = TREE_OPERAND (_q21, 0);
    3627           47 :                     {
    3628           47 :                       tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q21, _q50 };
    3629           47 :                       tree res = generic_simplify_433 (loc, type, _p0, captures, MIN_EXPR);
    3630           47 :                       if (res) return res;
    3631              :                     }
    3632           47 :                     {
    3633           47 :                       tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q50, _q20, _q30 };
    3634           47 :                       tree res = generic_simplify_433 (loc, type, _p0, captures, MIN_EXPR);
    3635           47 :                       if (res) return res;
    3636              :                     }
    3637           47 :                     break;
    3638              :                   }
    3639          659 :                 case INTEGER_CST:
    3640          659 :                   {
    3641          659 :                     {
    3642          659 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
    3643          659 :                       tree res = generic_simplify_434 (loc, type, _p0, captures, MIN_EXPR);
    3644          659 :                       if (res) return res;
    3645              :                     }
    3646          659 :                     break;
    3647              :                   }
    3648              :                 default:;
    3649              :                 }
    3650              :               break;
    3651              :             }
    3652              :           default:;
    3653              :           }
    3654              :         break;
    3655              :       }
    3656       305352 :     case MAX_EXPR:
    3657       305352 :       {
    3658       305352 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3659       305352 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3660       305352 :         switch (TREE_CODE (_q20))
    3661              :           {
    3662         6724 :           CASE_CONVERT:
    3663         6724 :             {
    3664         6724 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3665         6724 :               switch (TREE_CODE (_q21))
    3666              :                 {
    3667            0 :                 CASE_CONVERT:
    3668            0 :                   {
    3669            0 :                     tree _q50 = TREE_OPERAND (_q21, 0);
    3670            0 :                     {
    3671            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q21, _q50 };
    3672            0 :                       tree res = generic_simplify_433 (loc, type, _p0, captures, MAX_EXPR);
    3673            0 :                       if (res) return res;
    3674              :                     }
    3675            0 :                     {
    3676            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q50, _q20, _q30 };
    3677            0 :                       tree res = generic_simplify_433 (loc, type, _p0, captures, MAX_EXPR);
    3678            0 :                       if (res) return res;
    3679              :                     }
    3680            0 :                     break;
    3681              :                   }
    3682         6688 :                 case INTEGER_CST:
    3683         6688 :                   {
    3684         6688 :                     {
    3685         6688 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
    3686         6688 :                       tree res = generic_simplify_434 (loc, type, _p0, captures, MAX_EXPR);
    3687         6688 :                       if (res) return res;
    3688              :                     }
    3689         6688 :                     break;
    3690              :                   }
    3691              :                 default:;
    3692              :                 }
    3693              :               break;
    3694              :             }
    3695              :           default:;
    3696              :           }
    3697              :         break;
    3698              :       }
    3699       464433 :     case LSHIFT_EXPR:
    3700       464433 :       {
    3701       464433 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3702       464433 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3703       464433 :         switch (TREE_CODE (_q21))
    3704              :           {
    3705       141062 :           case INTEGER_CST:
    3706       141062 :             {
    3707       141062 :               {
    3708       141062 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    3709       141062 :                 if (INTEGRAL_TYPE_P (type)
    3710       141035 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3711       141035 :  && !integer_zerop (captures[2])
    3712       281324 :  && TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
    3713              : )
    3714              :                   {
    3715       138979 :                     if (TYPE_PRECISION (type) == TYPE_PRECISION (TREE_TYPE (captures[0]))
    3716       138979 :  || wi::ltu_p (wi::to_wide (captures[2]), TYPE_PRECISION (type))
    3717              : )
    3718              :                       {
    3719       138671 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1048;
    3720       138671 :                         {
    3721       138671 :                           tree res_op0;
    3722       138671 :                           {
    3723       138671 :                             tree _o1[1], _r1;
    3724       138671 :                             _o1[0] = captures[1];
    3725       138671 :                             if (TREE_TYPE (_o1[0]) != type)
    3726              :                               {
    3727       129597 :                                 _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3728              :                               }
    3729              :                             else
    3730              :                               _r1 = _o1[0];
    3731       138671 :                             res_op0 = _r1;
    3732              :                           }
    3733       138671 :                           tree res_op1;
    3734       138671 :                           res_op1 = captures[2];
    3735       138671 :                           tree _r;
    3736       138671 :                           _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
    3737       138671 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 835, __FILE__, __LINE__, true);
    3738       138671 :                           return _r;
    3739              :                         }
    3740            0 : next_after_fail1048:;
    3741              :                       }
    3742              :                     else
    3743              :                       {
    3744          308 :                         if (wi::ltu_p (wi::to_wide (captures[2]), TYPE_PRECISION (TREE_TYPE (captures[0])))
    3745              : )
    3746              :                           {
    3747          259 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1049;
    3748          259 :                             {
    3749          259 :                               tree _r;
    3750          259 :                               _r =  build_zero_cst (type);
    3751          259 :                               if (TREE_SIDE_EFFECTS (captures[1]))
    3752           14 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3753          259 :                               if (TREE_SIDE_EFFECTS (captures[2]))
    3754            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    3755          259 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 836, __FILE__, __LINE__, true);
    3756          259 :                               return _r;
    3757              :                             }
    3758            0 : next_after_fail1049:;
    3759              :                           }
    3760              :                       }
    3761              :                   }
    3762              :               }
    3763         2132 :               break;
    3764              :             }
    3765              :           default:;
    3766              :           }
    3767              :         break;
    3768              :       }
    3769    800256929 :     default:;
    3770              :     }
    3771    800256929 :   {
    3772    800256929 :     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3773   1600513858 :     if ((
    3774              : 
    3775              :  && useless_type_conversion_p (type, TREE_TYPE (captures[0])))
    3776              :  || (
    3777              : 1
    3778    800256929 :  && type == TREE_TYPE (captures[0]))
    3779              : )
    3780              :       {
    3781     45761011 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1050;
    3782     45761011 :         {
    3783     45761011 :           tree _r;
    3784     45761011 :           _r = captures[0];
    3785     45761011 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 837, __FILE__, __LINE__, true);
    3786     45761011 :           return _r;
    3787              :         }
    3788            0 : next_after_fail1050:;
    3789              :       }
    3790              :   }
    3791    754495918 :   switch (TREE_CODE (_p0))
    3792              :     {
    3793    120867718 :     CASE_CONVERT:
    3794    120867718 :       {
    3795    120867718 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3796    120867718 :         {
    3797    120867718 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    3798    120867718 :           {
    3799    120867718 :  tree inside_type = TREE_TYPE (captures[1]);
    3800    120867718 :  tree inter_type = TREE_TYPE (captures[0]);
    3801    120867718 :  int inside_int = INTEGRAL_TYPE_P (inside_type);
    3802    120867718 :  int inside_ptr = POINTER_TYPE_P (inside_type);
    3803    120867718 :  int inside_float = FLOAT_TYPE_P (inside_type);
    3804    120867718 :  int inside_vec = VECTOR_TYPE_P (inside_type);
    3805    120867718 :  unsigned int inside_prec = element_precision (inside_type);
    3806    120867718 :  int inside_unsignedp = TYPE_UNSIGNED (inside_type);
    3807    120867718 :  int inter_int = INTEGRAL_TYPE_P (inter_type);
    3808    120867718 :  int inter_ptr = POINTER_TYPE_P (inter_type);
    3809    120867718 :  int inter_float = FLOAT_TYPE_P (inter_type);
    3810    120867718 :  int inter_vec = VECTOR_TYPE_P (inter_type);
    3811    120867718 :  unsigned int inter_prec = element_precision (inter_type);
    3812    120867718 :  int inter_unsignedp = TYPE_UNSIGNED (inter_type);
    3813    120867718 :  int final_int = INTEGRAL_TYPE_P (type);
    3814    120867718 :  int final_ptr = POINTER_TYPE_P (type);
    3815    120867718 :  int final_float = FLOAT_TYPE_P (type);
    3816    120867718 :  int final_vec = VECTOR_TYPE_P (type);
    3817    120867718 :  unsigned int final_prec = element_precision (type);
    3818    120867718 :  int final_unsignedp = TYPE_UNSIGNED (type);
    3819    120867718 :               if (((
    3820              : 
    3821              :  && useless_type_conversion_p (type, inside_type))
    3822              :  || (
    3823              : 1
    3824    120867718 :  && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type)))
    3825     19993005 :  && (((inter_int || inter_ptr) && final_int)
    3826     15752224 :  || (inter_float && final_float))
    3827    125189293 :  && inter_prec >= final_prec
    3828              : )
    3829              :                 {
    3830      3797013 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1051;
    3831      3797013 :                   {
    3832      3797013 :                     tree res_op0;
    3833      3797013 :                     res_op0 = captures[1];
    3834      3797013 :                     tree _r;
    3835      3797013 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3836      3797013 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 838, __FILE__, __LINE__, true);
    3837      3797013 :                     return _r;
    3838              :                   }
    3839            0 : next_after_fail1051:;
    3840              :                 }
    3841              :               else
    3842              :                 {
    3843    117070705 :                   if (((inter_int && inside_int) || (inter_float && inside_float))
    3844     12730142 :  && (final_int || final_float)
    3845     12585360 :  && inter_prec >= inside_prec
    3846     11283185 :  && (inter_float || inter_unsignedp == inside_unsignedp)
    3847              : )
    3848              :                     {
    3849      7739155 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1052;
    3850      7739155 :                       {
    3851      7739155 :                         tree res_op0;
    3852      7739155 :                         res_op0 = captures[1];
    3853      7739155 :                         tree _r;
    3854      7739155 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3855      7739155 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 839, __FILE__, __LINE__, true);
    3856      7739155 :                         return _r;
    3857              :                       }
    3858            0 : next_after_fail1052:;
    3859            0 :                     }
    3860              :                   else
    3861              :                     {
    3862    109331550 :                       if (inside_int && inter_int && final_int
    3863      4839910 :  && ((inside_prec < inter_prec && inter_prec < final_prec
    3864       193659 :  && inside_unsignedp && !inter_unsignedp)
    3865      4673026 :  || final_prec == inter_prec
    3866      2325599 :  || (inside_prec < inter_prec && inter_prec > final_prec
    3867       175869 :  && !inside_unsignedp && inter_unsignedp))
    3868              : )
    3869              :                         {
    3870      2602959 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1053;
    3871      2602959 :                           {
    3872      2602959 :                             tree res_op0;
    3873      2602959 :                             res_op0 = captures[1];
    3874      2602959 :                             tree _r;
    3875      2602959 :                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3876      2602959 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 840, __FILE__, __LINE__, true);
    3877      2602959 :                             return _r;
    3878              :                           }
    3879            0 : next_after_fail1053:;
    3880            0 :                         }
    3881              :                       else
    3882              :                         {
    3883    106728591 :                           if (! inside_float && ! inter_float && ! final_float
    3884              :  && ! inside_vec && ! inter_vec && ! final_vec
    3885    106722292 :  && (inter_prec >= inside_prec || inter_prec >= final_prec)
    3886    105988364 :  && ! (inside_int && inter_int
    3887      1647801 :  && inter_unsignedp != inside_unsignedp
    3888      1647801 :  && inter_prec < final_prec)
    3889    104656397 :  && ((inter_unsignedp && inter_prec > inside_prec)
    3890    104656397 :  == (final_unsignedp && final_prec > inter_prec))
    3891    104633455 :  && ! (inside_ptr && inter_prec != final_prec)
    3892    104195479 :  && ! (final_ptr && inside_prec != inter_prec)
    3893              : )
    3894              :                             {
    3895    104174621 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1054;
    3896    104174621 :                               {
    3897    104174621 :                                 tree res_op0;
    3898    104174621 :                                 res_op0 = captures[1];
    3899    104174621 :                                 tree _r;
    3900    104174621 :                                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3901    104174621 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 841, __FILE__, __LINE__, true);
    3902    104174621 :                                 return _r;
    3903              :                               }
    3904            0 : next_after_fail1054:;
    3905            0 :                             }
    3906              :                           else
    3907              :                             {
    3908      2553970 :                               if (inside_int && inter_int && final_int
    3909      2095613 :  && final_prec <= inside_prec
    3910       674375 :  && inter_prec >= inside_prec
    3911              : )
    3912              :                                 {
    3913            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1055;
    3914            0 :                                   {
    3915            0 :                                     tree res_op0;
    3916            0 :                                     res_op0 = captures[1];
    3917            0 :                                     tree _r;
    3918            0 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3919            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 842, __FILE__, __LINE__, true);
    3920            0 :                                     return _r;
    3921              :                                   }
    3922            0 : next_after_fail1055:;
    3923            0 :                                 }
    3924              :                               else
    3925              :                                 {
    3926              :                                   if (0
    3927              :  && final_int && inter_int && inside_int
    3928              :  && final_prec >= inside_prec
    3929              :  && inside_prec > inter_prec
    3930              :  && inter_unsignedp
    3931              : )
    3932              :                                     {
    3933              :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1056;
    3934              :                                       {
    3935              :                                         tree res_op0;
    3936              :                                         {
    3937              :                                           tree _o1[2], _r1;
    3938              :                                           _o1[0] = captures[1];
    3939              :                                           _o1[1] =  wide_int_to_tree
    3940              :  (inside_type,
    3941              :  wi::mask (inter_prec, false,
    3942              :  TYPE_PRECISION (inside_type)));
    3943              :                                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3944              :                                           res_op0 = _r1;
    3945              :                                         }
    3946              :                                         tree _r;
    3947              :                                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3948              :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 843, __FILE__, __LINE__, true);
    3949              :                                         return _r;
    3950              :                                       }
    3951              : next_after_fail1056:;
    3952              :                                     }
    3953              :                                   else
    3954              :                                     {
    3955              :                                       if (0
    3956              :  && inside_int && inter_float && final_int &&
    3957              :  (unsigned) significand_size (TYPE_MODE (inter_type))
    3958              :  >= inside_prec - !inside_unsignedp
    3959              : )
    3960              :                                         {
    3961              :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1057;
    3962              :                                           {
    3963              :                                             tree res_op0;
    3964              :                                             res_op0 = captures[1];
    3965              :                                             tree _r;
    3966              :                                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3967              :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 844, __FILE__, __LINE__, true);
    3968              :                                             return _r;
    3969              :                                           }
    3970              : next_after_fail1057:;
    3971              :                                         }
    3972              :                                     }
    3973              :                                 }
    3974              :                             }
    3975              :                         }
    3976              :                     }
    3977              :                 }
    3978              :           }
    3979              :         }
    3980      2553970 :         break;
    3981              :       }
    3982         3065 :     case FLOAT_EXPR:
    3983         3065 :       {
    3984         3065 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3985         3065 :         {
    3986         3065 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    3987         3065 :           {
    3988         3065 :  tree inside_type = TREE_TYPE (captures[1]);
    3989         3065 :  tree inter_type = TREE_TYPE (captures[0]);
    3990         3065 :  int inside_int = INTEGRAL_TYPE_P (inside_type);
    3991         3065 :  int inside_ptr = POINTER_TYPE_P (inside_type);
    3992         3065 :  int inside_float = FLOAT_TYPE_P (inside_type);
    3993         3065 :  int inside_vec = VECTOR_TYPE_P (inside_type);
    3994         3065 :  unsigned int inside_prec = element_precision (inside_type);
    3995         3065 :  int inside_unsignedp = TYPE_UNSIGNED (inside_type);
    3996         3065 :  int inter_int = INTEGRAL_TYPE_P (inter_type);
    3997         3065 :  int inter_ptr = POINTER_TYPE_P (inter_type);
    3998         3065 :  int inter_float = FLOAT_TYPE_P (inter_type);
    3999         3065 :  int inter_vec = VECTOR_TYPE_P (inter_type);
    4000         3065 :  unsigned int inter_prec = element_precision (inter_type);
    4001         3065 :  int inter_unsignedp = TYPE_UNSIGNED (inter_type);
    4002         3065 :  int final_int = INTEGRAL_TYPE_P (type);
    4003         3065 :  int final_ptr = POINTER_TYPE_P (type);
    4004         3065 :  int final_float = FLOAT_TYPE_P (type);
    4005         3065 :  int final_vec = VECTOR_TYPE_P (type);
    4006         3065 :  unsigned int final_prec = element_precision (type);
    4007         3065 :  int final_unsignedp = TYPE_UNSIGNED (type);
    4008         3065 :               if (((
    4009              : 
    4010              :  && useless_type_conversion_p (type, inside_type))
    4011              :  || (
    4012              : 1
    4013         3065 :  && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type)))
    4014            0 :  && (((inter_int || inter_ptr) && final_int)
    4015            0 :  || (inter_float && final_float))
    4016         3065 :  && inter_prec >= final_prec
    4017              : )
    4018              :                 {
    4019            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1058;
    4020            0 :                   {
    4021            0 :                     tree res_op0;
    4022            0 :                     res_op0 = captures[1];
    4023            0 :                     tree _r;
    4024            0 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4025            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 838, __FILE__, __LINE__, true);
    4026            0 :                     return _r;
    4027              :                   }
    4028            0 : next_after_fail1058:;
    4029              :                 }
    4030              :               else
    4031              :                 {
    4032         3065 :                   if (((inter_int && inside_int) || (inter_float && inside_float))
    4033            0 :  && (final_int || final_float)
    4034            0 :  && inter_prec >= inside_prec
    4035            0 :  && (inter_float || inter_unsignedp == inside_unsignedp)
    4036              : )
    4037              :                     {
    4038            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1059;
    4039            0 :                       {
    4040            0 :                         tree res_op0;
    4041            0 :                         res_op0 = captures[1];
    4042            0 :                         tree _r;
    4043            0 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4044            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 839, __FILE__, __LINE__, true);
    4045            0 :                         return _r;
    4046              :                       }
    4047            0 : next_after_fail1059:;
    4048            0 :                     }
    4049              :                   else
    4050              :                     {
    4051         3065 :                       if (inside_int && inter_int && final_int
    4052            0 :  && ((inside_prec < inter_prec && inter_prec < final_prec
    4053            0 :  && inside_unsignedp && !inter_unsignedp)
    4054            0 :  || final_prec == inter_prec
    4055            0 :  || (inside_prec < inter_prec && inter_prec > final_prec
    4056            0 :  && !inside_unsignedp && inter_unsignedp))
    4057              : )
    4058              :                         {
    4059            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1060;
    4060            0 :                           {
    4061            0 :                             tree res_op0;
    4062            0 :                             res_op0 = captures[1];
    4063            0 :                             tree _r;
    4064            0 :                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4065            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 840, __FILE__, __LINE__, true);
    4066            0 :                             return _r;
    4067              :                           }
    4068            0 : next_after_fail1060:;
    4069            0 :                         }
    4070              :                       else
    4071              :                         {
    4072         3065 :                           if (! inside_float && ! inter_float && ! final_float
    4073              :  && ! inside_vec && ! inter_vec && ! final_vec
    4074            0 :  && (inter_prec >= inside_prec || inter_prec >= final_prec)
    4075            0 :  && ! (inside_int && inter_int
    4076            0 :  && inter_unsignedp != inside_unsignedp
    4077            0 :  && inter_prec < final_prec)
    4078            0 :  && ((inter_unsignedp && inter_prec > inside_prec)
    4079            0 :  == (final_unsignedp && final_prec > inter_prec))
    4080            0 :  && ! (inside_ptr && inter_prec != final_prec)
    4081            0 :  && ! (final_ptr && inside_prec != inter_prec)
    4082              : )
    4083              :                             {
    4084            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1061;
    4085            0 :                               {
    4086            0 :                                 tree res_op0;
    4087            0 :                                 res_op0 = captures[1];
    4088            0 :                                 tree _r;
    4089            0 :                                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4090            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 841, __FILE__, __LINE__, true);
    4091            0 :                                 return _r;
    4092              :                               }
    4093            0 : next_after_fail1061:;
    4094            0 :                             }
    4095              :                           else
    4096              :                             {
    4097         3065 :                               if (inside_int && inter_int && final_int
    4098            0 :  && final_prec <= inside_prec
    4099            0 :  && inter_prec >= inside_prec
    4100              : )
    4101              :                                 {
    4102            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1062;
    4103            0 :                                   {
    4104            0 :                                     tree res_op0;
    4105            0 :                                     res_op0 = captures[1];
    4106            0 :                                     tree _r;
    4107            0 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4108            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 842, __FILE__, __LINE__, true);
    4109            0 :                                     return _r;
    4110              :                                   }
    4111            0 : next_after_fail1062:;
    4112            0 :                                 }
    4113              :                               else
    4114              :                                 {
    4115              :                                   if (0
    4116              :  && final_int && inter_int && inside_int
    4117              :  && final_prec >= inside_prec
    4118              :  && inside_prec > inter_prec
    4119              :  && inter_unsignedp
    4120              : )
    4121              :                                     {
    4122              :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1063;
    4123              :                                       {
    4124              :                                         tree res_op0;
    4125              :                                         {
    4126              :                                           tree _o1[2], _r1;
    4127              :                                           _o1[0] = captures[1];
    4128              :                                           _o1[1] =  wide_int_to_tree
    4129              :  (inside_type,
    4130              :  wi::mask (inter_prec, false,
    4131              :  TYPE_PRECISION (inside_type)));
    4132              :                                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4133              :                                           res_op0 = _r1;
    4134              :                                         }
    4135              :                                         tree _r;
    4136              :                                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4137              :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 843, __FILE__, __LINE__, true);
    4138              :                                         return _r;
    4139              :                                       }
    4140              : next_after_fail1063:;
    4141              :                                     }
    4142              :                                   else
    4143              :                                     {
    4144              :                                       if (0
    4145              :  && inside_int && inter_float && final_int &&
    4146              :  (unsigned) significand_size (TYPE_MODE (inter_type))
    4147              :  >= inside_prec - !inside_unsignedp
    4148              : )
    4149              :                                         {
    4150              :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1064;
    4151              :                                           {
    4152              :                                             tree res_op0;
    4153              :                                             res_op0 = captures[1];
    4154              :                                             tree _r;
    4155              :                                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4156              :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 844, __FILE__, __LINE__, true);
    4157              :                                             return _r;
    4158              :                                           }
    4159              : next_after_fail1064:;
    4160              :                                         }
    4161              :                                     }
    4162              :                                 }
    4163              :                             }
    4164              :                         }
    4165              :                     }
    4166              :                 }
    4167              :           }
    4168              :         }
    4169         3065 :         break;
    4170              :       }
    4171       832750 :     case BIT_AND_EXPR:
    4172       832750 :       {
    4173       832750 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4174       832750 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4175       832750 :         switch (TREE_CODE (_q21))
    4176              :           {
    4177       211088 :           case INTEGER_CST:
    4178       211088 :             {
    4179       211088 :               {
    4180       211088 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4181       211088 :                 if (INTEGRAL_TYPE_P (type)
    4182       210580 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4183       210580 :  && TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
    4184       355601 :  && operand_equal_p (captures[1], build_low_bits_mask (TREE_TYPE (captures[1]),
    4185       144513 :  TYPE_PRECISION (type)), 0)
    4186              : )
    4187              :                   {
    4188        12617 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1065;
    4189        12617 :                     {
    4190        12617 :                       tree res_op0;
    4191        12617 :                       res_op0 = captures[0];
    4192        12617 :                       tree _r;
    4193        12617 :                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4194        12617 :                       if (TREE_SIDE_EFFECTS (captures[1]))
    4195            0 :                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4196        12617 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 845, __FILE__, __LINE__, true);
    4197        12617 :                       return _r;
    4198              :                     }
    4199            0 : next_after_fail1065:;
    4200              :                   }
    4201              :               }
    4202       198471 :               break;
    4203              :             }
    4204              :           default:;
    4205              :           }
    4206              :         break;
    4207              :       }
    4208            5 :     case VEC_COND_EXPR:
    4209            5 :       {
    4210            5 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4211            5 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4212            5 :         tree _q22 = TREE_OPERAND (_p0, 2);
    4213            5 :         {
    4214            5 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    4215            5 :           if (VECTOR_TYPE_P (type)
    4216            0 :  && types_match (TREE_TYPE (captures[1]), truth_type_for (type))
    4217            5 :  && (expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    4218            0 :  || !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1])))
    4219              : )
    4220              :             {
    4221            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1066;
    4222            0 :               {
    4223            0 :                 tree res_op0;
    4224            0 :                 res_op0 = captures[1];
    4225            0 :                 tree res_op1;
    4226            0 :                 {
    4227            0 :                   tree _o1[1], _r1;
    4228            0 :                   _o1[0] = captures[2];
    4229            0 :                   if (TREE_TYPE (_o1[0]) != type)
    4230              :                     {
    4231            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    4232            0 :                       if (EXPR_P (_r1))
    4233            0 :                         goto next_after_fail1066;
    4234              :                     }
    4235              :                   else
    4236              :                     _r1 = _o1[0];
    4237            0 :                   res_op1 = _r1;
    4238              :                 }
    4239            0 :                 tree res_op2;
    4240            0 :                 {
    4241            0 :                   tree _o1[1], _r1;
    4242            0 :                   _o1[0] = captures[3];
    4243            0 :                   if (TREE_TYPE (_o1[0]) != type)
    4244              :                     {
    4245            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    4246            0 :                       if (EXPR_P (_r1))
    4247            0 :                         goto next_after_fail1066;
    4248              :                     }
    4249              :                   else
    4250              :                     _r1 = _o1[0];
    4251            0 :                   res_op2 = _r1;
    4252              :                 }
    4253            0 :                 tree _r;
    4254            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    4255            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 846, __FILE__, __LINE__, true);
    4256            0 :                 return _r;
    4257              :               }
    4258            5 : next_after_fail1066:;
    4259              :             }
    4260              :         }
    4261            5 :         break;
    4262              :       }
    4263       610928 :     case COND_EXPR:
    4264       610928 :       {
    4265       610928 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4266       610928 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4267       610928 :         tree _q22 = TREE_OPERAND (_p0, 2);
    4268       610928 :         switch (TREE_CODE (_q21))
    4269              :           {
    4270       175793 :           case INTEGER_CST:
    4271       175793 :             {
    4272       175793 :               switch (TREE_CODE (_q22))
    4273              :                 {
    4274       110778 :                 case INTEGER_CST:
    4275       110778 :                   {
    4276       110778 :                     {
    4277       110778 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    4278       110778 :                       if (INTEGRAL_TYPE_P (type)
    4279       110778 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4280              : )
    4281              :                         {
    4282       110778 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1067;
    4283       110778 :                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1067;
    4284       110778 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1067;
    4285       110778 :                           {
    4286       110778 :                             tree res_op0;
    4287       110778 :                             res_op0 = captures[1];
    4288       110778 :                             tree res_op1;
    4289       110778 :                             {
    4290       110778 :                               tree _o1[1], _r1;
    4291       110778 :                               _o1[0] = captures[2];
    4292       110778 :                               if (TREE_TYPE (_o1[0]) != type)
    4293              :                                 {
    4294       110778 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    4295              :                                 }
    4296              :                               else
    4297              :                                 _r1 = _o1[0];
    4298       110778 :                               res_op1 = _r1;
    4299              :                             }
    4300       110778 :                             tree res_op2;
    4301       110778 :                             {
    4302       110778 :                               tree _o1[1], _r1;
    4303       110778 :                               _o1[0] = captures[3];
    4304       110778 :                               if (TREE_TYPE (_o1[0]) != type)
    4305              :                                 {
    4306       110778 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    4307              :                                 }
    4308              :                               else
    4309              :                                 _r1 = _o1[0];
    4310       110778 :                               res_op2 = _r1;
    4311              :                             }
    4312       110778 :                             tree _r;
    4313       110778 :                             _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    4314       110778 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 847, __FILE__, __LINE__, true);
    4315       110778 :                             return _r;
    4316              :                           }
    4317            0 : next_after_fail1067:;
    4318              :                         }
    4319              :                     }
    4320            0 :                     break;
    4321              :                   }
    4322              :                 default:;
    4323              :                 }
    4324              :               break;
    4325              :             }
    4326              :           default:;
    4327              :           }
    4328              :         break;
    4329              :       }
    4330     10468184 :     case PLUS_EXPR:
    4331     10468184 :       {
    4332     10468184 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4333     10468184 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4334     10468184 :         switch (TREE_CODE (_q20))
    4335              :           {
    4336      3798275 :           CASE_CONVERT:
    4337      3798275 :             {
    4338      3798275 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4339      3798275 :               switch (TREE_CODE (_q21))
    4340              :                 {
    4341       296044 :                 CASE_CONVERT:
    4342       296044 :                   {
    4343       296044 :                     tree _q50 = TREE_OPERAND (_q21, 0);
    4344       296044 :                     {
    4345       296044 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
    4346       296044 :                       tree res = generic_simplify_435 (loc, type, _p0, captures, PLUS_EXPR);
    4347       296044 :                       if (res) return res;
    4348              :                     }
    4349       295988 :                     break;
    4350              :                   }
    4351      3798219 :                 default:;
    4352              :                 }
    4353      3798219 :               {
    4354      3798219 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
    4355      3798219 :                 tree res = generic_simplify_436 (loc, type, _p0, captures, PLUS_EXPR);
    4356      3798219 :                 if (res) return res;
    4357              :               }
    4358      3783288 :               break;
    4359              :             }
    4360     10453197 :           default:;
    4361              :           }
    4362     10453197 :         switch (TREE_CODE (_q21))
    4363              :           {
    4364      1089531 :           CASE_CONVERT:
    4365      1089531 :             {
    4366      1089531 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4367      1089531 :               {
    4368      1089531 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
    4369      1089531 :                 tree res = generic_simplify_437 (loc, type, _p0, captures, PLUS_EXPR);
    4370      1089531 :                 if (res) return res;
    4371              :               }
    4372      1089531 :               break;
    4373              :             }
    4374     10453197 :           default:;
    4375              :           }
    4376     10453197 :         {
    4377     10453197 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
    4378     10453197 :           tree res = generic_simplify_438 (loc, type, _p0, captures, PLUS_EXPR);
    4379     10453197 :           if (res) return res;
    4380              :         }
    4381     10453163 :         break;
    4382              :       }
    4383       884562 :     case MINUS_EXPR:
    4384       884562 :       {
    4385       884562 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4386       884562 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4387       884562 :         switch (TREE_CODE (_q20))
    4388              :           {
    4389       315571 :           CASE_CONVERT:
    4390       315571 :             {
    4391       315571 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4392       315571 :               switch (TREE_CODE (_q21))
    4393              :                 {
    4394       169104 :                 CASE_CONVERT:
    4395       169104 :                   {
    4396       169104 :                     tree _q50 = TREE_OPERAND (_q21, 0);
    4397       169104 :                     {
    4398       169104 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
    4399       169104 :                       tree res = generic_simplify_435 (loc, type, _p0, captures, MINUS_EXPR);
    4400       169104 :                       if (res) return res;
    4401              :                     }
    4402       169075 :                     break;
    4403              :                   }
    4404       315542 :                 default:;
    4405              :                 }
    4406       315542 :               {
    4407       315542 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
    4408       315542 :                 tree res = generic_simplify_436 (loc, type, _p0, captures, MINUS_EXPR);
    4409       315542 :                 if (res) return res;
    4410              :               }
    4411       314422 :               break;
    4412              :             }
    4413       883413 :           default:;
    4414              :           }
    4415       883413 :         switch (TREE_CODE (_q21))
    4416              :           {
    4417       225308 :           CASE_CONVERT:
    4418       225308 :             {
    4419       225308 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4420       225308 :               {
    4421       225308 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
    4422       225308 :                 tree res = generic_simplify_437 (loc, type, _p0, captures, MINUS_EXPR);
    4423       225308 :                 if (res) return res;
    4424              :               }
    4425       225298 :               break;
    4426              :             }
    4427       883403 :           default:;
    4428              :           }
    4429       883403 :         {
    4430       883403 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
    4431       883403 :           tree res = generic_simplify_438 (loc, type, _p0, captures, MINUS_EXPR);
    4432       883403 :           if (res) return res;
    4433              :         }
    4434       883371 :         break;
    4435              :       }
    4436      8947833 :     case MULT_EXPR:
    4437      8947833 :       {
    4438      8947833 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4439      8947833 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4440      8947833 :         switch (TREE_CODE (_q20))
    4441              :           {
    4442      4073831 :           CASE_CONVERT:
    4443      4073831 :             {
    4444      4073831 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4445      4073831 :               switch (TREE_CODE (_q21))
    4446              :                 {
    4447       339091 :                 CASE_CONVERT:
    4448       339091 :                   {
    4449       339091 :                     tree _q50 = TREE_OPERAND (_q21, 0);
    4450       339091 :                     {
    4451       339091 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
    4452       339091 :                       tree res = generic_simplify_435 (loc, type, _p0, captures, MULT_EXPR);
    4453       339091 :                       if (res) return res;
    4454              :                     }
    4455       339091 :                     break;
    4456              :                   }
    4457      4073831 :                 default:;
    4458              :                 }
    4459      4073831 :               {
    4460      4073831 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
    4461      4073831 :                 tree res = generic_simplify_436 (loc, type, _p0, captures, MULT_EXPR);
    4462      4073831 :                 if (res) return res;
    4463              :               }
    4464      4073710 :               break;
    4465              :             }
    4466      8947712 :           default:;
    4467              :           }
    4468      8947712 :         switch (TREE_CODE (_q21))
    4469              :           {
    4470       741467 :           CASE_CONVERT:
    4471       741467 :             {
    4472       741467 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4473       741467 :               {
    4474       741467 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
    4475       741467 :                 tree res = generic_simplify_437 (loc, type, _p0, captures, MULT_EXPR);
    4476       741467 :                 if (res) return res;
    4477              :               }
    4478       741467 :               break;
    4479              :             }
    4480      8947712 :           default:;
    4481              :           }
    4482      8947712 :         {
    4483      8947712 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
    4484      8947712 :           tree res = generic_simplify_438 (loc, type, _p0, captures, MULT_EXPR);
    4485      8947712 :           if (res) return res;
    4486              :         }
    4487      8947679 :         break;
    4488              :       }
    4489         3073 :     case RDIV_EXPR:
    4490         3073 :       {
    4491         3073 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4492         3073 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4493         3073 :         switch (TREE_CODE (_q20))
    4494              :           {
    4495          975 :           CASE_CONVERT:
    4496          975 :             {
    4497          975 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4498          975 :               switch (TREE_CODE (_q21))
    4499              :                 {
    4500          668 :                 CASE_CONVERT:
    4501          668 :                   {
    4502          668 :                     tree _q50 = TREE_OPERAND (_q21, 0);
    4503          668 :                     {
    4504          668 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
    4505          668 :                       tree res = generic_simplify_435 (loc, type, _p0, captures, RDIV_EXPR);
    4506          668 :                       if (res) return res;
    4507              :                     }
    4508          667 :                     break;
    4509              :                   }
    4510          974 :                 default:;
    4511              :                 }
    4512          974 :               {
    4513          974 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
    4514          974 :                 tree res = generic_simplify_436 (loc, type, _p0, captures, RDIV_EXPR);
    4515          974 :                 if (res) return res;
    4516              :               }
    4517          972 :               break;
    4518              :             }
    4519         3070 :           default:;
    4520              :           }
    4521         3070 :         switch (TREE_CODE (_q21))
    4522              :           {
    4523         1657 :           CASE_CONVERT:
    4524         1657 :             {
    4525         1657 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4526         1657 :               {
    4527         1657 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
    4528         1657 :                 tree res = generic_simplify_437 (loc, type, _p0, captures, RDIV_EXPR);
    4529         1657 :                 if (res) return res;
    4530              :               }
    4531         1012 :               break;
    4532              :             }
    4533         2425 :           default:;
    4534              :           }
    4535         2425 :         {
    4536         2425 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
    4537         2425 :           tree res = generic_simplify_438 (loc, type, _p0, captures, RDIV_EXPR);
    4538         2425 :           if (res) return res;
    4539              :         }
    4540         2383 :         break;
    4541              :       }
    4542       686957 :     case NEGATE_EXPR:
    4543       686957 :       {
    4544       686957 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4545       686957 :         {
    4546       686957 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4547       686957 :           tree res = generic_simplify_439 (loc, type, _p0, captures);
    4548       686957 :           if (res) return res;
    4549              :         }
    4550       686935 :         break;
    4551              :       }
    4552              :     default:;
    4553              :     }
    4554              :   return NULL_TREE;
    4555              : }
    4556              : 
    4557              : tree
    4558         7100 : generic_simplify_CEIL_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    4559              : {
    4560         7100 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    4561         7100 :   if (integer_onep (_p1))
    4562              :     {
    4563         1755 :       {
    4564         1755 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4565         1755 :         tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4566         1755 :         if (res) return res;
    4567              :       }
    4568              :     }
    4569         5345 :   if (integer_zerop (_p0))
    4570              :     {
    4571            0 :       {
    4572            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4573            0 :         tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4574            0 :         if (res) return res;
    4575              :       }
    4576              :     }
    4577         5345 :   switch (TREE_CODE (_p1))
    4578              :     {
    4579           34 :     case SSA_NAME:
    4580           34 :       {
    4581           34 :         {
    4582           34 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4583           34 :           tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4584           34 :           if (res) return res;
    4585              :         }
    4586           34 :         break;
    4587              :       }
    4588         5345 :     default:;
    4589              :     }
    4590         5345 : if (integer_minus_onep (_p1))
    4591              :   {
    4592            0 :     {
    4593            0 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4594            0 :       tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4595            0 :       if (res) return res;
    4596              :     }
    4597              :   }
    4598         5345 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    4599              :     {
    4600            0 :       {
    4601            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4602            0 :         tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4603            0 :         if (res) return res;
    4604              :       }
    4605              :     }
    4606         5345 :   switch (TREE_CODE (_p1))
    4607              :     {
    4608            0 :     case ABS_EXPR:
    4609            0 :       {
    4610            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4611            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    4612              :           {
    4613            0 :             {
    4614            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4615            0 :               tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4616            0 :               if (res) return res;
    4617              :             }
    4618              :           }
    4619              :         break;
    4620              :       }
    4621         5345 :     default:;
    4622              :     }
    4623         5345 :   switch (TREE_CODE (_p0))
    4624              :     {
    4625            0 :     case ABS_EXPR:
    4626            0 :       {
    4627            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4628            0 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4629              :           {
    4630            0 :             {
    4631            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4632            0 :               tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4633            0 :               if (res) return res;
    4634              :             }
    4635              :           }
    4636              :         break;
    4637              :       }
    4638         5345 :     default:;
    4639              :     }
    4640         5345 :   switch (TREE_CODE (_p1))
    4641              :     {
    4642            0 :     case NEGATE_EXPR:
    4643            0 :       {
    4644            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4645            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    4646              :           {
    4647            0 :             {
    4648            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4649            0 :               tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4650            0 :               if (res) return res;
    4651              :             }
    4652              :           }
    4653              :         break;
    4654              :       }
    4655         5345 :     default:;
    4656              :     }
    4657         5345 :   switch (TREE_CODE (_p0))
    4658              :     {
    4659            0 :     case NEGATE_EXPR:
    4660            0 :       {
    4661            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4662            0 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4663              :           {
    4664            0 :             {
    4665            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4666            0 :               tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4667            0 :               if (res) return res;
    4668              :             }
    4669              :           }
    4670              :         break;
    4671              :       }
    4672          536 :     CASE_CONVERT:
    4673          536 :       {
    4674          536 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4675          536 :         switch (TREE_CODE (_q20))
    4676              :           {
    4677            0 :           case BIT_AND_EXPR:
    4678            0 :             {
    4679            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4680            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4681            0 :               switch (TREE_CODE (_q31))
    4682              :                 {
    4683            0 :                 case INTEGER_CST:
    4684            0 :                   {
    4685            0 :                     switch (TREE_CODE (_p1))
    4686              :                       {
    4687            0 :                       case INTEGER_CST:
    4688            0 :                         {
    4689            0 :                           {
    4690            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    4691            0 :                             tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4692            0 :                             if (res) return res;
    4693              :                           }
    4694            0 :                           break;
    4695              :                         }
    4696              :                       default:;
    4697              :                       }
    4698              :                     break;
    4699              :                   }
    4700              :                 default:;
    4701              :                 }
    4702              :               break;
    4703              :             }
    4704              :           default:;
    4705              :           }
    4706              :         break;
    4707              :       }
    4708            0 :     case BIT_AND_EXPR:
    4709            0 :       {
    4710            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4711            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4712            0 :         switch (TREE_CODE (_q21))
    4713              :           {
    4714            0 :           case INTEGER_CST:
    4715            0 :             {
    4716            0 :               switch (TREE_CODE (_p1))
    4717              :                 {
    4718            0 :                 case INTEGER_CST:
    4719            0 :                   {
    4720            0 :                     {
    4721            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4722            0 :                       tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4723            0 :                       if (res) return res;
    4724              :                     }
    4725            0 :                     break;
    4726              :                   }
    4727              :                 default:;
    4728              :                 }
    4729              :               break;
    4730              :             }
    4731              :           default:;
    4732              :           }
    4733              :         break;
    4734              :       }
    4735            0 :     case MULT_EXPR:
    4736            0 :       {
    4737            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4738            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4739            0 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4740              :           {
    4741            0 :             {
    4742            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    4743            0 :               tree res = generic_simplify_323 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4744            0 :               if (res) return res;
    4745              :             }
    4746              :           }
    4747            0 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4748              :           {
    4749            0 :             {
    4750            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    4751            0 :               tree res = generic_simplify_323 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4752            0 :               if (res) return res;
    4753              :             }
    4754              :           }
    4755            0 :         switch (TREE_CODE (_q21))
    4756              :           {
    4757            0 :           case INTEGER_CST:
    4758            0 :             {
    4759            0 :               switch (TREE_CODE (_p1))
    4760              :                 {
    4761            0 :                 case MULT_EXPR:
    4762            0 :                   {
    4763            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4764            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    4765            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4766              :                       {
    4767            0 :                         switch (TREE_CODE (_q51))
    4768              :                           {
    4769            0 :                           case INTEGER_CST:
    4770            0 :                             {
    4771            0 :                               {
    4772            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    4773            0 :                                 tree res = generic_simplify_324 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4774            0 :                                 if (res) return res;
    4775              :                               }
    4776            0 :                               break;
    4777              :                             }
    4778              :                           default:;
    4779              :                           }
    4780              :                       }
    4781              :                     break;
    4782              :                   }
    4783              :                 default:;
    4784              :                 }
    4785              :               break;
    4786              :             }
    4787              :           default:;
    4788              :           }
    4789              :         break;
    4790              :       }
    4791            0 :     case VEC_COND_EXPR:
    4792            0 :       {
    4793            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4794            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4795            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    4796            0 :         switch (TREE_CODE (_p1))
    4797              :           {
    4798            0 :           case VEC_COND_EXPR:
    4799            0 :             {
    4800            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    4801            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    4802            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    4803            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4804              :                 {
    4805            0 :                   {
    4806            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    4807            0 :                     if (VECTOR_TYPE_P (type)
    4808            0 :  && (TREE_CODE_CLASS (CEIL_DIV_EXPR) != tcc_comparison
    4809              :  || types_match (type, TREE_TYPE (captures[2]))
    4810              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    4811              :  || (optimize_vectors_before_lowering_p ()
    4812              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    4813              : )
    4814              :                       {
    4815            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1582;
    4816            0 :                         {
    4817            0 :                           tree res_op0;
    4818            0 :                           res_op0 = captures[1];
    4819            0 :                           tree res_op1;
    4820            0 :                           {
    4821            0 :                             tree _o1[2], _r1;
    4822            0 :                             _o1[0] = captures[2];
    4823            0 :                             _o1[1] = captures[5];
    4824            0 :                             _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, type, _o1[0], _o1[1]);
    4825            0 :                             if (EXPR_P (_r1))
    4826            0 :                               goto next_after_fail1582;
    4827            0 :                             res_op1 = _r1;
    4828              :                           }
    4829            0 :                           tree res_op2;
    4830            0 :                           {
    4831            0 :                             tree _o1[2], _r1;
    4832            0 :                             _o1[0] = captures[3];
    4833            0 :                             _o1[1] = captures[6];
    4834            0 :                             _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, type, _o1[0], _o1[1]);
    4835            0 :                             if (EXPR_P (_r1))
    4836            0 :                               goto next_after_fail1582;
    4837            0 :                             res_op2 = _r1;
    4838              :                           }
    4839            0 :                           tree _r;
    4840            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    4841            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    4842            0 :                           return _r;
    4843              :                         }
    4844            0 : next_after_fail1582:;
    4845              :                       }
    4846              :                   }
    4847              :                 }
    4848              :               break;
    4849              :             }
    4850            0 :           default:;
    4851              :           }
    4852            0 :         {
    4853            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    4854            0 :           if (VECTOR_TYPE_P (type)
    4855            0 :  && (TREE_CODE_CLASS (CEIL_DIV_EXPR) != tcc_comparison
    4856              :  || types_match (type, TREE_TYPE (captures[2]))
    4857              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    4858              :  || (optimize_vectors_before_lowering_p ()
    4859              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    4860              : )
    4861              :             {
    4862            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1583;
    4863            0 :               {
    4864            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1583;
    4865            0 :                 tree res_op0;
    4866            0 :                 res_op0 = captures[1];
    4867            0 :                 tree res_op1;
    4868            0 :                 {
    4869            0 :                   tree _o1[2], _r1;
    4870            0 :                   _o1[0] = captures[2];
    4871            0 :                   _o1[1] = unshare_expr (captures[4]);
    4872            0 :                   _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, type, _o1[0], _o1[1]);
    4873            0 :                   if (EXPR_P (_r1))
    4874            0 :                     goto next_after_fail1583;
    4875            0 :                   res_op1 = _r1;
    4876              :                 }
    4877            0 :                 tree res_op2;
    4878            0 :                 {
    4879            0 :                   tree _o1[2], _r1;
    4880            0 :                   _o1[0] = captures[3];
    4881            0 :                   _o1[1] = captures[4];
    4882            0 :                   _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, type, _o1[0], _o1[1]);
    4883            0 :                   if (EXPR_P (_r1))
    4884            0 :                     goto next_after_fail1583;
    4885            0 :                   res_op2 = _r1;
    4886              :                 }
    4887            0 :                 tree _r;
    4888            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    4889            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
    4890            0 :                 return _r;
    4891              :               }
    4892            0 : next_after_fail1583:;
    4893              :             }
    4894              :         }
    4895            0 :         break;
    4896              :       }
    4897         5345 :     default:;
    4898              :     }
    4899         5345 :   switch (TREE_CODE (_p1))
    4900              :     {
    4901            0 :     case VEC_COND_EXPR:
    4902            0 :       {
    4903            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4904            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4905            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    4906            0 :         {
    4907            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    4908            0 :           if (VECTOR_TYPE_P (type)
    4909            0 :  && (TREE_CODE_CLASS (CEIL_DIV_EXPR) != tcc_comparison
    4910              :  || types_match (type, TREE_TYPE (captures[3]))
    4911              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    4912              :  || (optimize_vectors_before_lowering_p ()
    4913              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    4914              : )
    4915              :             {
    4916            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1584;
    4917            0 :               {
    4918            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1584;
    4919            0 :                 tree res_op0;
    4920            0 :                 res_op0 = captures[2];
    4921            0 :                 tree res_op1;
    4922            0 :                 {
    4923            0 :                   tree _o1[2], _r1;
    4924            0 :                   _o1[0] = unshare_expr (captures[0]);
    4925            0 :                   _o1[1] = captures[3];
    4926            0 :                   _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, type, _o1[0], _o1[1]);
    4927            0 :                   if (EXPR_P (_r1))
    4928            0 :                     goto next_after_fail1584;
    4929            0 :                   res_op1 = _r1;
    4930              :                 }
    4931            0 :                 tree res_op2;
    4932            0 :                 {
    4933            0 :                   tree _o1[2], _r1;
    4934            0 :                   _o1[0] = captures[0];
    4935            0 :                   _o1[1] = captures[4];
    4936            0 :                   _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, type, _o1[0], _o1[1]);
    4937            0 :                   if (EXPR_P (_r1))
    4938            0 :                     goto next_after_fail1584;
    4939            0 :                   res_op2 = _r1;
    4940              :                 }
    4941            0 :                 tree _r;
    4942            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    4943            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    4944            0 :                 return _r;
    4945              :               }
    4946            0 : next_after_fail1584:;
    4947              :             }
    4948              :         }
    4949            0 :         break;
    4950              :       }
    4951              :     default:;
    4952              :     }
    4953              :   return NULL_TREE;
    4954              : }
    4955              : 
    4956              : tree
    4957      3404722 : generic_simplify_EXACT_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    4958              : {
    4959      3404722 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    4960      3404722 :   if (integer_onep (_p1))
    4961              :     {
    4962      2053482 :       {
    4963      2053482 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4964      2053482 :         tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    4965      2053482 :         if (res) return res;
    4966              :       }
    4967              :     }
    4968      1351240 :   switch (TREE_CODE (_p0))
    4969              :     {
    4970         9043 :     CASE_CONVERT:
    4971         9043 :       {
    4972         9043 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4973         9043 :         switch (TREE_CODE (_p1))
    4974              :           {
    4975            0 :           CASE_CONVERT:
    4976            0 :             {
    4977            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4978            0 :               switch (TREE_CODE (_q40))
    4979              :                 {
    4980            0 :                 case LSHIFT_EXPR:
    4981            0 :                   {
    4982            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    4983            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    4984            0 :                     if (integer_onep (_q50))
    4985              :                       {
    4986            0 :                         {
    4987            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q50, _q51 };
    4988            0 :                           tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    4989            0 :                           if (res) return res;
    4990              :                         }
    4991              :                       }
    4992              :                     break;
    4993              :                   }
    4994              :                 default:;
    4995              :                 }
    4996              :               break;
    4997              :             }
    4998            0 :           case LSHIFT_EXPR:
    4999            0 :             {
    5000            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5001            0 :               tree _q41 = TREE_OPERAND (_p1, 1);
    5002            0 :               if (integer_onep (_q40))
    5003              :                 {
    5004            0 :                   {
    5005            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q41 };
    5006            0 :                     tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5007            0 :                     if (res) return res;
    5008              :                   }
    5009              :                 }
    5010              :               break;
    5011              :             }
    5012              :           default:;
    5013              :           }
    5014              :         break;
    5015              :       }
    5016      1351240 :     default:;
    5017              :     }
    5018      1351240 :   switch (TREE_CODE (_p1))
    5019              :     {
    5020            2 :     CASE_CONVERT:
    5021            2 :       {
    5022            2 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5023            2 :         switch (TREE_CODE (_q30))
    5024              :           {
    5025            0 :           case LSHIFT_EXPR:
    5026            0 :             {
    5027            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5028            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    5029            0 :               if (integer_onep (_q40))
    5030              :                 {
    5031            0 :                   {
    5032            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q40, _q41 };
    5033            0 :                     tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5034            0 :                     if (res) return res;
    5035              :                   }
    5036              :                 }
    5037              :               break;
    5038              :             }
    5039              :           default:;
    5040              :           }
    5041              :         break;
    5042              :       }
    5043            0 :     case LSHIFT_EXPR:
    5044            0 :       {
    5045            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5046            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5047            0 :         if (integer_onep (_q30))
    5048              :           {
    5049            0 :             {
    5050            0 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q31 };
    5051            0 :               tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5052            0 :               if (res) return res;
    5053              :             }
    5054              :           }
    5055              :         break;
    5056              :       }
    5057      1351240 :     default:;
    5058              :     }
    5059      1351240 :   if (integer_zerop (_p0))
    5060              :     {
    5061            0 :       {
    5062            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    5063            0 :         tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5064            0 :         if (res) return res;
    5065              :       }
    5066              :     }
    5067      1351240 :   switch (TREE_CODE (_p1))
    5068              :     {
    5069            0 :     case SSA_NAME:
    5070            0 :       {
    5071            0 :         {
    5072            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    5073            0 :           tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5074            0 :           if (res) return res;
    5075              :         }
    5076            0 :         break;
    5077              :       }
    5078      1351240 :     default:;
    5079              :     }
    5080      1351240 : if (integer_minus_onep (_p1))
    5081              :   {
    5082            0 :     {
    5083            0 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    5084            0 :       tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5085            0 :       if (res) return res;
    5086              :     }
    5087              :   }
    5088      1351240 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5089              :     {
    5090            0 :       {
    5091            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5092            0 :         tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5093            0 :         if (res) return res;
    5094              :       }
    5095              :     }
    5096      1351240 :   switch (TREE_CODE (_p1))
    5097              :     {
    5098            0 :     case ABS_EXPR:
    5099            0 :       {
    5100            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5101            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5102              :           {
    5103            0 :             {
    5104            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5105            0 :               tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5106            0 :               if (res) return res;
    5107              :             }
    5108              :           }
    5109              :         break;
    5110              :       }
    5111      1351240 :     default:;
    5112              :     }
    5113      1351240 :   switch (TREE_CODE (_p0))
    5114              :     {
    5115            0 :     case ABS_EXPR:
    5116            0 :       {
    5117            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5118            0 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5119              :           {
    5120            0 :             {
    5121            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    5122            0 :               tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5123            0 :               if (res) return res;
    5124              :             }
    5125              :           }
    5126              :         break;
    5127              :       }
    5128      1351240 :     default:;
    5129              :     }
    5130      1351240 :   switch (TREE_CODE (_p1))
    5131              :     {
    5132            0 :     case NEGATE_EXPR:
    5133            0 :       {
    5134            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5135            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5136              :           {
    5137            0 :             {
    5138            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5139            0 :               tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5140            0 :               if (res) return res;
    5141              :             }
    5142              :           }
    5143              :         break;
    5144              :       }
    5145      1351240 :     default:;
    5146              :     }
    5147      1351240 :   switch (TREE_CODE (_p0))
    5148              :     {
    5149         1220 :     case NEGATE_EXPR:
    5150         1220 :       {
    5151         1220 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5152         1220 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5153              :           {
    5154            0 :             {
    5155            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    5156            0 :               tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5157            0 :               if (res) return res;
    5158              :             }
    5159              :           }
    5160              :         break;
    5161              :       }
    5162            0 :     case EXACT_DIV_EXPR:
    5163            0 :       {
    5164            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5165            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5166            0 :         switch (TREE_CODE (_q21))
    5167              :           {
    5168            0 :           case INTEGER_CST:
    5169            0 :             {
    5170            0 :               switch (TREE_CODE (_p1))
    5171              :                 {
    5172            0 :                 case INTEGER_CST:
    5173            0 :                   {
    5174            0 :                     {
    5175            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    5176            0 :                       tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5177            0 :                       if (res) return res;
    5178              :                     }
    5179            0 :                     break;
    5180              :                   }
    5181              :                 default:;
    5182              :                 }
    5183              :               break;
    5184              :             }
    5185              :           default:;
    5186              :           }
    5187              :         break;
    5188              :       }
    5189         9043 :     CASE_CONVERT:
    5190         9043 :       {
    5191         9043 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5192         9043 :         switch (TREE_CODE (_q20))
    5193              :           {
    5194            0 :           case BIT_AND_EXPR:
    5195            0 :             {
    5196            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5197            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5198            0 :               switch (TREE_CODE (_q31))
    5199              :                 {
    5200            0 :                 case INTEGER_CST:
    5201            0 :                   {
    5202            0 :                     switch (TREE_CODE (_p1))
    5203              :                       {
    5204            0 :                       case INTEGER_CST:
    5205            0 :                         {
    5206            0 :                           {
    5207            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    5208            0 :                             tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5209            0 :                             if (res) return res;
    5210              :                           }
    5211            0 :                           break;
    5212              :                         }
    5213              :                       default:;
    5214              :                       }
    5215              :                     break;
    5216              :                   }
    5217              :                 default:;
    5218              :                 }
    5219              :               break;
    5220              :             }
    5221              :           default:;
    5222              :           }
    5223              :         break;
    5224              :       }
    5225            0 :     case BIT_AND_EXPR:
    5226            0 :       {
    5227            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5228            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5229            0 :         switch (TREE_CODE (_q21))
    5230              :           {
    5231            0 :           case INTEGER_CST:
    5232            0 :             {
    5233            0 :               switch (TREE_CODE (_p1))
    5234              :                 {
    5235            0 :                 case INTEGER_CST:
    5236            0 :                   {
    5237            0 :                     {
    5238            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    5239            0 :                       tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5240            0 :                       if (res) return res;
    5241              :                     }
    5242            0 :                     break;
    5243              :                   }
    5244              :                 default:;
    5245              :                 }
    5246              :               break;
    5247              :             }
    5248              :           default:;
    5249              :           }
    5250              :         break;
    5251              :       }
    5252        19306 :     case MULT_EXPR:
    5253        19306 :       {
    5254        19306 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5255        19306 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5256        19306 :         if (integer_pow2p (_q21))
    5257              :           {
    5258        18090 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5259              :               {
    5260        18060 :                 {
    5261        18060 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    5262        18060 :                   tree res = generic_simplify_322 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5263        18060 :                   if (res) return res;
    5264              :                 }
    5265              :               }
    5266              :           }
    5267         1253 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5268              :           {
    5269            7 :             {
    5270            7 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5271            7 :               tree res = generic_simplify_323 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5272            7 :               if (res) return res;
    5273              :             }
    5274              :           }
    5275         1246 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5276              :           {
    5277            0 :             {
    5278            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    5279            0 :               tree res = generic_simplify_323 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5280            0 :               if (res) return res;
    5281              :             }
    5282              :           }
    5283         1246 :         switch (TREE_CODE (_q21))
    5284              :           {
    5285         1246 :           case INTEGER_CST:
    5286         1246 :             {
    5287         1246 :               switch (TREE_CODE (_p1))
    5288              :                 {
    5289            0 :                 case MULT_EXPR:
    5290            0 :                   {
    5291            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5292            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5293            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5294              :                       {
    5295            0 :                         switch (TREE_CODE (_q51))
    5296              :                           {
    5297            0 :                           case INTEGER_CST:
    5298            0 :                             {
    5299            0 :                               {
    5300            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    5301            0 :                                 tree res = generic_simplify_324 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5302            0 :                                 if (res) return res;
    5303              :                               }
    5304            0 :                               break;
    5305              :                             }
    5306              :                           default:;
    5307              :                           }
    5308              :                       }
    5309              :                     break;
    5310              :                   }
    5311              :                 default:;
    5312              :                 }
    5313              :               break;
    5314              :             }
    5315              :           default:;
    5316              :           }
    5317              :         break;
    5318              :       }
    5319            0 :     case VEC_COND_EXPR:
    5320            0 :       {
    5321            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5322            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5323            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    5324            0 :         switch (TREE_CODE (_p1))
    5325              :           {
    5326            0 :           case VEC_COND_EXPR:
    5327            0 :             {
    5328            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    5329            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    5330            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    5331            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    5332              :                 {
    5333            0 :                   {
    5334            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    5335            0 :                     if (VECTOR_TYPE_P (type)
    5336            0 :  && (TREE_CODE_CLASS (EXACT_DIV_EXPR) != tcc_comparison
    5337              :  || types_match (type, TREE_TYPE (captures[2]))
    5338              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    5339              :  || (optimize_vectors_before_lowering_p ()
    5340              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    5341              : )
    5342              :                       {
    5343            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1591;
    5344            0 :                         {
    5345            0 :                           tree res_op0;
    5346            0 :                           res_op0 = captures[1];
    5347            0 :                           tree res_op1;
    5348            0 :                           {
    5349            0 :                             tree _o1[2], _r1;
    5350            0 :                             _o1[0] = captures[2];
    5351            0 :                             _o1[1] = captures[5];
    5352            0 :                             _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, type, _o1[0], _o1[1]);
    5353            0 :                             if (EXPR_P (_r1))
    5354            0 :                               goto next_after_fail1591;
    5355            0 :                             res_op1 = _r1;
    5356              :                           }
    5357            0 :                           tree res_op2;
    5358            0 :                           {
    5359            0 :                             tree _o1[2], _r1;
    5360            0 :                             _o1[0] = captures[3];
    5361            0 :                             _o1[1] = captures[6];
    5362            0 :                             _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, type, _o1[0], _o1[1]);
    5363            0 :                             if (EXPR_P (_r1))
    5364            0 :                               goto next_after_fail1591;
    5365            0 :                             res_op2 = _r1;
    5366              :                           }
    5367            0 :                           tree _r;
    5368            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5369            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    5370            0 :                           return _r;
    5371              :                         }
    5372            0 : next_after_fail1591:;
    5373              :                       }
    5374              :                   }
    5375              :                 }
    5376              :               break;
    5377              :             }
    5378            0 :           default:;
    5379              :           }
    5380            0 :         {
    5381            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    5382            0 :           if (VECTOR_TYPE_P (type)
    5383            0 :  && (TREE_CODE_CLASS (EXACT_DIV_EXPR) != tcc_comparison
    5384              :  || types_match (type, TREE_TYPE (captures[2]))
    5385              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    5386              :  || (optimize_vectors_before_lowering_p ()
    5387              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    5388              : )
    5389              :             {
    5390            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1592;
    5391            0 :               {
    5392            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1592;
    5393            0 :                 tree res_op0;
    5394            0 :                 res_op0 = captures[1];
    5395            0 :                 tree res_op1;
    5396            0 :                 {
    5397            0 :                   tree _o1[2], _r1;
    5398            0 :                   _o1[0] = captures[2];
    5399            0 :                   _o1[1] = unshare_expr (captures[4]);
    5400            0 :                   _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, type, _o1[0], _o1[1]);
    5401            0 :                   if (EXPR_P (_r1))
    5402            0 :                     goto next_after_fail1592;
    5403            0 :                   res_op1 = _r1;
    5404              :                 }
    5405            0 :                 tree res_op2;
    5406            0 :                 {
    5407            0 :                   tree _o1[2], _r1;
    5408            0 :                   _o1[0] = captures[3];
    5409            0 :                   _o1[1] = captures[4];
    5410            0 :                   _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, type, _o1[0], _o1[1]);
    5411            0 :                   if (EXPR_P (_r1))
    5412            0 :                     goto next_after_fail1592;
    5413            0 :                   res_op2 = _r1;
    5414              :                 }
    5415            0 :                 tree _r;
    5416            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5417            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
    5418            0 :                 return _r;
    5419              :               }
    5420            0 : next_after_fail1592:;
    5421              :             }
    5422              :         }
    5423            0 :         break;
    5424              :       }
    5425      1333180 :     default:;
    5426              :     }
    5427      1333180 :   switch (TREE_CODE (_p1))
    5428              :     {
    5429            0 :     case VEC_COND_EXPR:
    5430            0 :       {
    5431            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5432            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5433            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    5434            0 :         {
    5435            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    5436            0 :           if (VECTOR_TYPE_P (type)
    5437            0 :  && (TREE_CODE_CLASS (EXACT_DIV_EXPR) != tcc_comparison
    5438              :  || types_match (type, TREE_TYPE (captures[3]))
    5439              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    5440              :  || (optimize_vectors_before_lowering_p ()
    5441              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    5442              : )
    5443              :             {
    5444            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1593;
    5445            0 :               {
    5446            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1593;
    5447            0 :                 tree res_op0;
    5448            0 :                 res_op0 = captures[2];
    5449            0 :                 tree res_op1;
    5450            0 :                 {
    5451            0 :                   tree _o1[2], _r1;
    5452            0 :                   _o1[0] = unshare_expr (captures[0]);
    5453            0 :                   _o1[1] = captures[3];
    5454            0 :                   _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, type, _o1[0], _o1[1]);
    5455            0 :                   if (EXPR_P (_r1))
    5456            0 :                     goto next_after_fail1593;
    5457            0 :                   res_op1 = _r1;
    5458              :                 }
    5459            0 :                 tree res_op2;
    5460            0 :                 {
    5461            0 :                   tree _o1[2], _r1;
    5462            0 :                   _o1[0] = captures[0];
    5463            0 :                   _o1[1] = captures[4];
    5464            0 :                   _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, type, _o1[0], _o1[1]);
    5465            0 :                   if (EXPR_P (_r1))
    5466            0 :                     goto next_after_fail1593;
    5467            0 :                   res_op2 = _r1;
    5468              :                 }
    5469            0 :                 tree _r;
    5470            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5471            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    5472            0 :                 return _r;
    5473              :               }
    5474            0 : next_after_fail1593:;
    5475              :             }
    5476              :         }
    5477            0 :         break;
    5478              :       }
    5479              :     default:;
    5480              :     }
    5481              :   return NULL_TREE;
    5482              : }
    5483              : 
    5484              : tree
    5485      9254140 : generic_simplify_LE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    5486              : {
    5487      9254140 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    5488      9254140 :   switch (TREE_CODE (_p0))
    5489              :     {
    5490         2318 :     case RDIV_EXPR:
    5491         2318 :       {
    5492         2318 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5493         2318 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5494         2318 :         switch (TREE_CODE (_q20))
    5495              :           {
    5496          548 :           case REAL_CST:
    5497          548 :             {
    5498          548 :               if (real_zerop (_p1))
    5499              :                 {
    5500            2 :                   {
    5501            2 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    5502            2 :                     tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    5503            2 :                     if (res) return res;
    5504              :                   }
    5505              :                 }
    5506              :               break;
    5507              :             }
    5508              :           default:;
    5509              :           }
    5510              :         break;
    5511              :       }
    5512      9254138 :     default:;
    5513              :     }
    5514      9254138 :   switch (TREE_CODE (_p1))
    5515              :     {
    5516            7 :     case TRUNC_MOD_EXPR:
    5517            7 :       {
    5518            7 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5519            7 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5520            7 :         if (tree_expr_nonnegative_p (_q30))
    5521              :           {
    5522            7 :             if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5523              :               {
    5524            0 :                 if (tree_expr_nonnegative_p (_q31))
    5525              :                   {
    5526            0 :                     {
    5527            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    5528            0 :                       tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GE_EXPR);
    5529            0 :                       if (res) return res;
    5530              :                     }
    5531              :                   }
    5532              :               }
    5533              :           }
    5534              :         break;
    5535              :       }
    5536      9254138 :     default:;
    5537              :     }
    5538      9254138 :   switch (TREE_CODE (_p0))
    5539              :     {
    5540        62437 :     case MULT_EXPR:
    5541        62437 :       {
    5542        62437 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5543        62437 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5544        62437 :         switch (TREE_CODE (_p1))
    5545              :           {
    5546         2842 :           case MULT_EXPR:
    5547         2842 :             {
    5548         2842 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5549         2842 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5550         2842 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5551              :                 {
    5552         2028 :                   {
    5553         2028 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5554         2028 :                     tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LE_EXPR);
    5555         2028 :                     if (res) return res;
    5556              :                   }
    5557              :                 }
    5558         1835 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5559              :                 {
    5560            1 :                   {
    5561            1 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5562            1 :                     tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LE_EXPR);
    5563            1 :                     if (res) return res;
    5564              :                   }
    5565              :                 }
    5566         1835 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    5567              :                 {
    5568            4 :                   {
    5569            4 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    5570            4 :                     tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LE_EXPR);
    5571            4 :                     if (res) return res;
    5572              :                   }
    5573              :                 }
    5574         1835 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5575              :                 {
    5576          307 :                   {
    5577          307 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    5578          307 :                     tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LE_EXPR);
    5579          307 :                     if (res) return res;
    5580              :                   }
    5581              :                 }
    5582              :               break;
    5583              :             }
    5584              :           default:;
    5585              :           }
    5586              :         break;
    5587              :       }
    5588      1597024 :     case PLUS_EXPR:
    5589      1597024 :       {
    5590      1597024 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5591      1597024 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5592      1597024 :         if (integer_minus_onep (_q21))
    5593              :           {
    5594       525542 :             switch (TREE_CODE (_p1))
    5595              :               {
    5596       326294 :               case INTEGER_CST:
    5597       326294 :                 {
    5598       326294 :                   {
    5599       326294 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    5600       326294 :                     tree res = generic_simplify_407 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
    5601       326294 :                     if (res) return res;
    5602              :                   }
    5603       326292 :                   break;
    5604              :                 }
    5605              :               default:;
    5606              :               }
    5607              :           }
    5608      1597022 :         switch (TREE_CODE (_p1))
    5609              :           {
    5610        90774 :           case PLUS_EXPR:
    5611        90774 :             {
    5612        90774 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5613        90774 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5614        90774 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5615              :                 {
    5616         7375 :                   {
    5617         7375 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5618         7375 :                     tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LE_EXPR);
    5619         7375 :                     if (res) return res;
    5620              :                   }
    5621              :                 }
    5622        86588 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5623              :                 {
    5624           13 :                   {
    5625           13 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5626           13 :                     tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LE_EXPR);
    5627           13 :                     if (res) return res;
    5628              :                   }
    5629              :                 }
    5630        86588 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    5631              :                 {
    5632          205 :                   {
    5633          205 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    5634          205 :                     tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LE_EXPR);
    5635          205 :                     if (res) return res;
    5636              :                   }
    5637              :                 }
    5638        86588 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5639              :                 {
    5640         7161 :                   {
    5641         7161 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    5642         7161 :                     tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LE_EXPR);
    5643         7161 :                     if (res) return res;
    5644              :                   }
    5645              :                 }
    5646              :               break;
    5647              :             }
    5648      1592237 :           default:;
    5649              :           }
    5650      1592237 :         switch (TREE_CODE (_q21))
    5651              :           {
    5652      1473253 :           case INTEGER_CST:
    5653      1473253 :             {
    5654      1473253 :               switch (TREE_CODE (_p1))
    5655              :                 {
    5656        83936 :                 case PLUS_EXPR:
    5657        83936 :                   {
    5658        83936 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5659        83936 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5660        83936 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5661              :                       {
    5662         3131 :                         {
    5663         3131 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5664         3131 :                           tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, LE_EXPR);
    5665         3131 :                           if (res) return res;
    5666              :                         }
    5667              :                       }
    5668              :                     break;
    5669              :                   }
    5670              :                 default:;
    5671              :                 }
    5672              :               break;
    5673              :             }
    5674      1592237 :           default:;
    5675              :           }
    5676      1592237 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5677              :           {
    5678        69222 :             {
    5679        69222 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5680        69222 :               tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LE_EXPR);
    5681        69222 :               if (res) return res;
    5682              :             }
    5683              :           }
    5684      1553802 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5685              :           {
    5686         3084 :             {
    5687         3084 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    5688         3084 :               tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LE_EXPR);
    5689         3084 :               if (res) return res;
    5690              :             }
    5691              :           }
    5692              :         break;
    5693              :       }
    5694      1646250 :     CASE_CONVERT:
    5695      1646250 :       {
    5696      1646250 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5697      1646250 :         switch (TREE_CODE (_q20))
    5698              :           {
    5699            0 :           case EXACT_DIV_EXPR:
    5700            0 :             {
    5701            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5702            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5703            0 :               switch (TREE_CODE (_q31))
    5704              :                 {
    5705            0 :                 case INTEGER_CST:
    5706            0 :                   {
    5707            0 :                     switch (TREE_CODE (_p1))
    5708              :                       {
    5709            0 :                       CASE_CONVERT:
    5710            0 :                         {
    5711            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    5712            0 :                           switch (TREE_CODE (_q60))
    5713              :                             {
    5714            0 :                             case EXACT_DIV_EXPR:
    5715            0 :                               {
    5716            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    5717            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    5718            0 :                                 if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    5719              :                                   {
    5720            0 :                                     {
    5721            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
    5722            0 :                                       tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, LE_EXPR);
    5723            0 :                                       if (res) return res;
    5724              :                                     }
    5725              :                                   }
    5726              :                                 break;
    5727              :                               }
    5728              :                             default:;
    5729              :                             }
    5730              :                           break;
    5731              :                         }
    5732              :                       default:;
    5733              :                       }
    5734              :                     break;
    5735              :                   }
    5736              :                 default:;
    5737              :                 }
    5738              :               break;
    5739              :             }
    5740              :           default:;
    5741              :           }
    5742              :         break;
    5743              :       }
    5744          428 :     case EXACT_DIV_EXPR:
    5745          428 :       {
    5746          428 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5747          428 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5748          428 :         switch (TREE_CODE (_q21))
    5749              :           {
    5750          428 :           case INTEGER_CST:
    5751          428 :             {
    5752          428 :               switch (TREE_CODE (_p1))
    5753              :                 {
    5754            0 :                 case EXACT_DIV_EXPR:
    5755            0 :                   {
    5756            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5757            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5758            0 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5759              :                       {
    5760            0 :                         {
    5761            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    5762            0 :                           tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, LE_EXPR);
    5763            0 :                           if (res) return res;
    5764              :                         }
    5765              :                       }
    5766              :                     break;
    5767              :                   }
    5768              :                 default:;
    5769              :                 }
    5770              :               break;
    5771              :             }
    5772              :           default:;
    5773              :           }
    5774              :         break;
    5775              :       }
    5776        10910 :     case TRUNC_DIV_EXPR:
    5777        10910 :       {
    5778        10910 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5779        10910 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5780        10910 :         switch (TREE_CODE (_q21))
    5781              :           {
    5782         2770 :           case INTEGER_CST:
    5783         2770 :             {
    5784         2770 :               switch (TREE_CODE (_p1))
    5785              :                 {
    5786         1343 :                 case INTEGER_CST:
    5787         1343 :                   {
    5788         1343 :                     {
    5789         1343 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    5790         1343 :                       tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, LE_EXPR);
    5791         1343 :                       if (res) return res;
    5792              :                     }
    5793          679 :                     break;
    5794              :                   }
    5795              :                 default:;
    5796              :                 }
    5797              :               break;
    5798              :             }
    5799              :           default:;
    5800              :           }
    5801              :         break;
    5802              :       }
    5803        64861 :     case MINUS_EXPR:
    5804        64861 :       {
    5805        64861 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5806        64861 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5807        64861 :         switch (TREE_CODE (_p1))
    5808              :           {
    5809          489 :           case MINUS_EXPR:
    5810          489 :             {
    5811          489 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5812          489 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5813          489 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5814              :                 {
    5815           54 :                   {
    5816           54 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5817           54 :                     tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LE_EXPR);
    5818           54 :                     if (res) return res;
    5819              :                   }
    5820              :                 }
    5821          489 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5822              :                 {
    5823           26 :                   {
    5824           26 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5825           26 :                     tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, LE_EXPR);
    5826           26 :                     if (res) return res;
    5827              :                   }
    5828              :                 }
    5829              :               break;
    5830              :             }
    5831              :           default:;
    5832              :           }
    5833              :         break;
    5834              :       }
    5835         5344 :     case POINTER_DIFF_EXPR:
    5836         5344 :       {
    5837         5344 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5838         5344 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5839         5344 :         switch (TREE_CODE (_p1))
    5840              :           {
    5841          223 :           case POINTER_DIFF_EXPR:
    5842          223 :             {
    5843          223 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5844          223 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5845          223 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5846              :                 {
    5847            0 :                   {
    5848            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    5849            0 :                     tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, LE_EXPR);
    5850            0 :                     if (res) return res;
    5851              :                   }
    5852              :                 }
    5853          223 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5854              :                 {
    5855            0 :                   {
    5856            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    5857            0 :                     tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, LE_EXPR);
    5858            0 :                     if (res) return res;
    5859              :                   }
    5860              :                 }
    5861              :               break;
    5862              :             }
    5863              :           default:;
    5864              :           }
    5865              :         break;
    5866              :       }
    5867      9208932 :     default:;
    5868              :     }
    5869      9208932 :   switch (TREE_CODE (_p1))
    5870              :     {
    5871       121839 :     case PLUS_EXPR:
    5872       121839 :       {
    5873       121839 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5874       121839 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5875       121839 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5876              :           {
    5877            0 :             {
    5878            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    5879            0 :               tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GE_EXPR);
    5880            0 :               if (res) return res;
    5881              :             }
    5882              :           }
    5883       121839 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5884              :           {
    5885           57 :             {
    5886           57 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
    5887           57 :               tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GE_EXPR);
    5888           57 :               if (res) return res;
    5889              :             }
    5890              :           }
    5891              :         break;
    5892              :       }
    5893         1208 :     case MINUS_EXPR:
    5894         1208 :       {
    5895         1208 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5896         1208 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5897         1208 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5898              :           {
    5899            0 :             {
    5900            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    5901            0 :               tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, LE_EXPR);
    5902            0 :               if (res) return res;
    5903              :             }
    5904              :           }
    5905              :         break;
    5906              :       }
    5907      9208905 :     default:;
    5908              :     }
    5909      9208905 :   switch (TREE_CODE (_p0))
    5910              :     {
    5911        64861 :     case MINUS_EXPR:
    5912        64861 :       {
    5913        64861 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5914        64861 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5915        64861 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5916              :           {
    5917         2509 :             {
    5918         2509 :               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    5919         2509 :               tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, GE_EXPR);
    5920         2509 :               if (res) return res;
    5921              :             }
    5922              :           }
    5923              :         break;
    5924              :       }
    5925         5327 :     case BIT_AND_EXPR:
    5926         5327 :       {
    5927         5327 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5928         5327 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5929         5327 :         if (tree_expr_nonnegative_p (_q20))
    5930              :           {
    5931         4447 :             if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5932              :               {
    5933            0 :                 {
    5934            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    5935            0 :                   tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
    5936            0 :                   if (res) return res;
    5937              :                 }
    5938              :               }
    5939              :           }
    5940         5327 :         if (tree_expr_nonnegative_p (_q21))
    5941              :           {
    5942         4933 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5943              :               {
    5944            0 :                 {
    5945            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    5946            0 :                   tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
    5947            0 :                   if (res) return res;
    5948              :                 }
    5949              :               }
    5950              :           }
    5951              :         break;
    5952              :       }
    5953      9208905 :     default:;
    5954              :     }
    5955      9208905 :   switch (TREE_CODE (_p1))
    5956              :     {
    5957           46 :     case BIT_IOR_EXPR:
    5958           46 :       {
    5959           46 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5960           46 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5961           46 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5962              :           {
    5963            0 :             if (tree_expr_nonnegative_p (_q30))
    5964              :               {
    5965            0 :                 {
    5966            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    5967            0 :                   tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
    5968            0 :                   if (res) return res;
    5969              :                 }
    5970              :               }
    5971              :           }
    5972           46 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5973              :           {
    5974            0 :             if (tree_expr_nonnegative_p (_q31))
    5975              :               {
    5976            0 :                 {
    5977            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    5978            0 :                   tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
    5979            0 :                   if (res) return res;
    5980              :                 }
    5981              :               }
    5982              :           }
    5983              :         break;
    5984              :       }
    5985      9208905 :     default:;
    5986              :     }
    5987      9208905 :   switch (TREE_CODE (_p0))
    5988              :     {
    5989        10208 :     case MIN_EXPR:
    5990        10208 :       {
    5991        10208 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5992        10208 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5993        10208 :         switch (TREE_CODE (_p1))
    5994              :           {
    5995            4 :           case MAX_EXPR:
    5996            4 :             {
    5997            4 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5998            4 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5999            4 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6000              :                 {
    6001            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6002              :                     {
    6003            0 :                       {
    6004            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6005            0 :                         tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, LE_EXPR);
    6006            0 :                         if (res) return res;
    6007              :                       }
    6008              :                     }
    6009              :                 }
    6010              :               break;
    6011              :             }
    6012              :           default:;
    6013              :           }
    6014              :         break;
    6015              :       }
    6016         4360 :     case MAX_EXPR:
    6017         4360 :       {
    6018         4360 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6019         4360 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6020         4360 :         switch (TREE_CODE (_p1))
    6021              :           {
    6022            4 :           case MIN_EXPR:
    6023            4 :             {
    6024            4 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6025            4 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6026            4 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6027              :                 {
    6028            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6029              :                     {
    6030            0 :                       {
    6031            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6032            0 :                         tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
    6033            0 :                         if (res) return res;
    6034              :                       }
    6035              :                     }
    6036              :                 }
    6037              :               break;
    6038              :             }
    6039         4360 :           default:;
    6040              :           }
    6041         4360 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6042              :           {
    6043            0 :             {
    6044            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6045            0 :               tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
    6046            0 :               if (res) return res;
    6047              :             }
    6048              :           }
    6049         4360 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    6050              :           {
    6051            1 :             {
    6052            1 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6053            1 :               tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
    6054            1 :               if (res) return res;
    6055              :             }
    6056              :           }
    6057              :         break;
    6058              :       }
    6059      9208904 :     default:;
    6060              :     }
    6061      9208904 :   switch (TREE_CODE (_p1))
    6062              :     {
    6063          298 :     case MIN_EXPR:
    6064          298 :       {
    6065          298 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6066          298 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6067          298 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6068              :           {
    6069            0 :             {
    6070            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6071            0 :               tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
    6072            0 :               if (res) return res;
    6073              :             }
    6074              :           }
    6075          298 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6076              :           {
    6077            0 :             {
    6078            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6079            0 :               tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
    6080            0 :               if (res) return res;
    6081              :             }
    6082              :           }
    6083              :         break;
    6084              :       }
    6085           14 :     case MAX_EXPR:
    6086           14 :       {
    6087           14 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6088           14 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6089           14 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6090              :           {
    6091            0 :             {
    6092            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6093            0 :               tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
    6094            0 :               if (res) return res;
    6095              :             }
    6096              :           }
    6097           14 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6098              :           {
    6099            0 :             {
    6100            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6101            0 :               tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
    6102            0 :               if (res) return res;
    6103              :             }
    6104              :           }
    6105              :         break;
    6106              :       }
    6107      9208904 :     default:;
    6108              :     }
    6109      9208904 :   switch (TREE_CODE (_p0))
    6110              :     {
    6111        10208 :     case MIN_EXPR:
    6112        10208 :       {
    6113        10208 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6114        10208 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6115        10208 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6116              :           {
    6117            0 :             {
    6118            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6119            0 :               tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
    6120            0 :               if (res) return res;
    6121              :             }
    6122              :           }
    6123        10208 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    6124              :           {
    6125            0 :             {
    6126            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6127            0 :               tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
    6128            0 :               if (res) return res;
    6129              :             }
    6130              :           }
    6131        10208 :         switch (TREE_CODE (_q21))
    6132              :           {
    6133          936 :           case INTEGER_CST:
    6134          936 :             {
    6135          936 :               switch (TREE_CODE (_p1))
    6136              :                 {
    6137            0 :                 case INTEGER_CST:
    6138            0 :                   {
    6139            0 :                     {
    6140            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6141            0 :                       tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, MIN_EXPR, LE_EXPR, BIT_IOR_EXPR);
    6142            0 :                       if (res) return res;
    6143              :                     }
    6144            0 :                     break;
    6145              :                   }
    6146              :                 default:;
    6147              :                 }
    6148              :               break;
    6149              :             }
    6150              :           default:;
    6151              :           }
    6152              :         break;
    6153              :       }
    6154         4359 :     case MAX_EXPR:
    6155         4359 :       {
    6156         4359 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6157         4359 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6158         4359 :         switch (TREE_CODE (_q21))
    6159              :           {
    6160         4125 :           case INTEGER_CST:
    6161         4125 :             {
    6162         4125 :               switch (TREE_CODE (_p1))
    6163              :                 {
    6164            0 :                 case INTEGER_CST:
    6165            0 :                   {
    6166            0 :                     {
    6167            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6168            0 :                       tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, BIT_AND_EXPR);
    6169            0 :                       if (res) return res;
    6170              :                     }
    6171            0 :                     break;
    6172              :                   }
    6173              :                 default:;
    6174              :                 }
    6175              :               break;
    6176              :             }
    6177              :           default:;
    6178              :           }
    6179              :         break;
    6180              :       }
    6181            9 :     case VEC_COND_EXPR:
    6182            9 :       {
    6183            9 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6184            9 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6185            9 :         tree _q22 = TREE_OPERAND (_p0, 2);
    6186            9 :         switch (TREE_CODE (_p1))
    6187              :           {
    6188            2 :           case VEC_COND_EXPR:
    6189            2 :             {
    6190            2 :               tree _q60 = TREE_OPERAND (_p1, 0);
    6191            2 :               tree _q61 = TREE_OPERAND (_p1, 1);
    6192            2 :               tree _q62 = TREE_OPERAND (_p1, 2);
    6193            2 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    6194              :                 {
    6195            0 :                   {
    6196            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    6197            0 :                     if (VECTOR_TYPE_P (type)
    6198            0 :  && (TREE_CODE_CLASS (LE_EXPR) != tcc_comparison
    6199            0 :  || types_match (type, TREE_TYPE (captures[2]))
    6200            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    6201              :  || (optimize_vectors_before_lowering_p ()
    6202            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    6203              : )
    6204              :                       {
    6205            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1639;
    6206            0 :                         {
    6207            0 :                           tree res_op0;
    6208            0 :                           res_op0 = captures[1];
    6209            0 :                           tree res_op1;
    6210            0 :                           {
    6211            0 :                             tree _o1[2], _r1;
    6212            0 :                             _o1[0] = captures[2];
    6213            0 :                             _o1[1] = captures[5];
    6214            0 :                             _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
    6215            0 :                             if (EXPR_P (_r1))
    6216            0 :                               goto next_after_fail1639;
    6217            0 :                             res_op1 = _r1;
    6218              :                           }
    6219            0 :                           tree res_op2;
    6220            0 :                           {
    6221            0 :                             tree _o1[2], _r1;
    6222            0 :                             _o1[0] = captures[3];
    6223            0 :                             _o1[1] = captures[6];
    6224            0 :                             _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
    6225            0 :                             if (EXPR_P (_r1))
    6226            0 :                               goto next_after_fail1639;
    6227            0 :                             res_op2 = _r1;
    6228              :                           }
    6229            0 :                           tree _r;
    6230            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    6231            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    6232            0 :                           return _r;
    6233              :                         }
    6234            0 : next_after_fail1639:;
    6235              :                       }
    6236              :                   }
    6237              :                 }
    6238              :               break;
    6239              :             }
    6240            9 :           default:;
    6241              :           }
    6242            9 :         {
    6243            9 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    6244            9 :           if (VECTOR_TYPE_P (type)
    6245            9 :  && (TREE_CODE_CLASS (LE_EXPR) != tcc_comparison
    6246            9 :  || types_match (type, TREE_TYPE (captures[2]))
    6247            9 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    6248              :  || (optimize_vectors_before_lowering_p ()
    6249            1 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    6250              : )
    6251              :             {
    6252            9 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1640;
    6253            9 :               {
    6254            9 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1640;
    6255            7 :                 tree res_op0;
    6256            7 :                 res_op0 = captures[1];
    6257            7 :                 tree res_op1;
    6258            7 :                 {
    6259            7 :                   tree _o1[2], _r1;
    6260            7 :                   _o1[0] = captures[2];
    6261            7 :                   _o1[1] = unshare_expr (captures[4]);
    6262            7 :                   _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
    6263            7 :                   if (EXPR_P (_r1))
    6264            0 :                     goto next_after_fail1640;
    6265            7 :                   res_op1 = _r1;
    6266              :                 }
    6267            7 :                 tree res_op2;
    6268            7 :                 {
    6269            7 :                   tree _o1[2], _r1;
    6270            7 :                   _o1[0] = captures[3];
    6271            7 :                   _o1[1] = captures[4];
    6272            7 :                   _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
    6273            7 :                   if (EXPR_P (_r1))
    6274            0 :                     goto next_after_fail1640;
    6275            7 :                   res_op2 = _r1;
    6276              :                 }
    6277            7 :                 tree _r;
    6278            7 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    6279            7 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
    6280            7 :                 return _r;
    6281              :               }
    6282            2 : next_after_fail1640:;
    6283              :             }
    6284              :         }
    6285            2 :         break;
    6286              :       }
    6287      9208897 :     default:;
    6288              :     }
    6289      9208897 :   switch (TREE_CODE (_p1))
    6290              :     {
    6291            2 :     case VEC_COND_EXPR:
    6292            2 :       {
    6293            2 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6294            2 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6295            2 :         tree _q32 = TREE_OPERAND (_p1, 2);
    6296            2 :         {
    6297            2 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    6298            2 :           if (VECTOR_TYPE_P (type)
    6299            2 :  && (TREE_CODE_CLASS (LE_EXPR) != tcc_comparison
    6300            2 :  || types_match (type, TREE_TYPE (captures[3]))
    6301            2 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    6302              :  || (optimize_vectors_before_lowering_p ()
    6303            1 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    6304              : )
    6305              :             {
    6306            2 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1641;
    6307            2 :               {
    6308            2 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1641;
    6309            0 :                 tree res_op0;
    6310            0 :                 res_op0 = captures[2];
    6311            0 :                 tree res_op1;
    6312            0 :                 {
    6313            0 :                   tree _o1[2], _r1;
    6314            0 :                   _o1[0] = unshare_expr (captures[0]);
    6315            0 :                   _o1[1] = captures[3];
    6316            0 :                   _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
    6317            0 :                   if (EXPR_P (_r1))
    6318            0 :                     goto next_after_fail1641;
    6319            0 :                   res_op1 = _r1;
    6320              :                 }
    6321            0 :                 tree res_op2;
    6322            0 :                 {
    6323            0 :                   tree _o1[2], _r1;
    6324            0 :                   _o1[0] = captures[0];
    6325            0 :                   _o1[1] = captures[4];
    6326            0 :                   _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
    6327            0 :                   if (EXPR_P (_r1))
    6328            0 :                     goto next_after_fail1641;
    6329            0 :                   res_op2 = _r1;
    6330              :                 }
    6331            0 :                 tree _r;
    6332            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    6333            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    6334            0 :                 return _r;
    6335              :               }
    6336            2 : next_after_fail1641:;
    6337              :             }
    6338              :         }
    6339            2 :         break;
    6340              :       }
    6341      9208897 :     default:;
    6342              :     }
    6343      9208897 : if (uniform_integer_cst_p (_p1))
    6344              :   {
    6345      6731804 :     {
    6346      6731804 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    6347      6731804 :       tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
    6348      6731804 :       if (res) return res;
    6349              :     }
    6350              :   }
    6351      9111463 :   switch (TREE_CODE (_p0))
    6352              :     {
    6353        61009 :     case MULT_EXPR:
    6354        61009 :       {
    6355        61009 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6356        61009 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6357        61009 :         switch (TREE_CODE (_q21))
    6358              :           {
    6359        53525 :           case INTEGER_CST:
    6360        53525 :             {
    6361        53525 :               if (integer_zerop (_p1))
    6362              :                 {
    6363          804 :                   {
    6364          804 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    6365          804 :                     tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    6366          804 :                     if (res) return res;
    6367              :                   }
    6368              :                 }
    6369              :               break;
    6370              :             }
    6371              :           default:;
    6372              :           }
    6373              :         break;
    6374              :       }
    6375      9110822 :     default:;
    6376              :     }
    6377      9110822 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6378              :     {
    6379         5050 :       {
    6380         5050 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    6381         5050 :         tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, LE_EXPR);
    6382         5050 :         if (res) return res;
    6383              :       }
    6384              :     }
    6385      9105814 :   switch (TREE_CODE (_p0))
    6386              :     {
    6387         2646 :     case BIT_NOT_EXPR:
    6388         2646 :       {
    6389         2646 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6390         2646 :         switch (TREE_CODE (_p1))
    6391              :           {
    6392            0 :           case BIT_NOT_EXPR:
    6393            0 :             {
    6394            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6395            0 :               {
    6396            0 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
    6397            0 :                 tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, LE_EXPR);
    6398            0 :                 if (res) return res;
    6399              :               }
    6400            0 :               break;
    6401              :             }
    6402         2646 :           default:;
    6403              :           }
    6404         2646 :       {
    6405         2646 :         tree _p1_pops[1];
    6406         2646 :         if (tree_nop_convert (_p1, _p1_pops))
    6407              :           {
    6408            0 :             tree _q40 = _p1_pops[0];
    6409            0 :             switch (TREE_CODE (_q40))
    6410              :               {
    6411            0 :               case BIT_NOT_EXPR:
    6412            0 :                 {
    6413            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    6414            0 :                   {
    6415            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
    6416            0 :                     tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, LE_EXPR);
    6417            0 :                     if (res) return res;
    6418              :                   }
    6419            0 :                   break;
    6420              :                 }
    6421              :               default:;
    6422              :               }
    6423              :           }
    6424              :       }
    6425         2646 :       if (CONSTANT_CLASS_P (_p1))
    6426              :         {
    6427         2354 :           {
    6428         2354 :             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    6429         2354 :             tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    6430         2354 :             if (res) return res;
    6431              :           }
    6432              :         }
    6433              :         break;
    6434              :       }
    6435      9103460 :     default:;
    6436              :     }
    6437      9103460 : {
    6438      9103460 :   tree _p0_pops[1];
    6439      9103460 :   if (tree_nop_convert (_p0, _p0_pops))
    6440              :     {
    6441       834131 :       tree _q20 = _p0_pops[0];
    6442       834131 :       switch (TREE_CODE (_q20))
    6443              :         {
    6444            0 :         case BIT_NOT_EXPR:
    6445            0 :           {
    6446            0 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6447            0 :             switch (TREE_CODE (_p1))
    6448              :               {
    6449            0 :               case BIT_NOT_EXPR:
    6450            0 :                 {
    6451            0 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    6452            0 :                   {
    6453            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
    6454            0 :                     tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, LE_EXPR);
    6455            0 :                     if (res) return res;
    6456              :                   }
    6457            0 :                   break;
    6458              :                 }
    6459            0 :               default:;
    6460              :               }
    6461            0 :           {
    6462            0 :             tree _p1_pops[1];
    6463            0 :             if (tree_nop_convert (_p1, _p1_pops))
    6464              :               {
    6465            0 :                 tree _q50 = _p1_pops[0];
    6466            0 :                 switch (TREE_CODE (_q50))
    6467              :                   {
    6468            0 :                   case BIT_NOT_EXPR:
    6469            0 :                     {
    6470            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    6471            0 :                       {
    6472            0 :                         tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
    6473            0 :                         tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, LE_EXPR);
    6474            0 :                         if (res) return res;
    6475              :                       }
    6476            0 :                       break;
    6477              :                     }
    6478              :                   default:;
    6479              :                   }
    6480              :               }
    6481              :           }
    6482            0 :           if (CONSTANT_CLASS_P (_p1))
    6483              :             {
    6484            0 :               {
    6485            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    6486            0 :                 tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    6487            0 :                 if (res) return res;
    6488              :               }
    6489              :             }
    6490              :             break;
    6491              :           }
    6492              :         default:;
    6493              :         }
    6494              :     }
    6495              : }
    6496      9103460 :   switch (TREE_CODE (_p1))
    6497              :     {
    6498       187669 :     case REAL_CST:
    6499       187669 :       {
    6500       187669 :         {
    6501       187669 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    6502       187669 :           tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, LE_EXPR);
    6503       187669 :           if (res) return res;
    6504              :         }
    6505       187606 :         break;
    6506              :       }
    6507      9103397 :     default:;
    6508              :     }
    6509      9103397 :   switch (TREE_CODE (_p0))
    6510              :     {
    6511      1552167 :     case PLUS_EXPR:
    6512      1552167 :       {
    6513      1552167 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6514      1552167 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6515      1552167 :         switch (TREE_CODE (_q21))
    6516              :           {
    6517           86 :           case REAL_CST:
    6518           86 :             {
    6519           86 :               switch (TREE_CODE (_p1))
    6520              :                 {
    6521           81 :                 case REAL_CST:
    6522           81 :                   {
    6523           81 :                     {
    6524           81 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6525           81 :                       tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR);
    6526           81 :                       if (res) return res;
    6527              :                     }
    6528           81 :                     break;
    6529              :                   }
    6530              :                 default:;
    6531              :                 }
    6532              :               break;
    6533              :             }
    6534      1453940 :           case INTEGER_CST:
    6535      1453940 :             {
    6536      1453940 :               if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6537              :                 {
    6538         1928 :                   {
    6539         1928 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
    6540         1928 :                     tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
    6541         1928 :                     if (res) return res;
    6542              :                   }
    6543              :                 }
    6544              :               break;
    6545              :             }
    6546              :           default:;
    6547              :           }
    6548              :         break;
    6549              :       }
    6550        59221 :     case MINUS_EXPR:
    6551        59221 :       {
    6552        59221 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6553        59221 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6554        59221 :         switch (TREE_CODE (_q21))
    6555              :           {
    6556         1225 :           case REAL_CST:
    6557         1225 :             {
    6558         1225 :               switch (TREE_CODE (_p1))
    6559              :                 {
    6560         1202 :                 case REAL_CST:
    6561         1202 :                   {
    6562         1202 :                     {
    6563         1202 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6564         1202 :                       tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, MINUS_EXPR, LE_EXPR);
    6565         1202 :                       if (res) return res;
    6566              :                     }
    6567         1202 :                     break;
    6568              :                   }
    6569              :                 default:;
    6570              :                 }
    6571              :               break;
    6572              :             }
    6573        59221 :           default:;
    6574              :           }
    6575        59221 :         switch (TREE_CODE (_q20))
    6576              :           {
    6577            2 :           case REAL_CST:
    6578            2 :             {
    6579            2 :               switch (TREE_CODE (_p1))
    6580              :                 {
    6581            0 :                 case REAL_CST:
    6582            0 :                   {
    6583            0 :                     {
    6584            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6585            0 :                       tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, LE_EXPR);
    6586            0 :                       if (res) return res;
    6587              :                     }
    6588            0 :                     break;
    6589              :                   }
    6590              :                 default:;
    6591              :                 }
    6592              :               break;
    6593              :             }
    6594              :           default:;
    6595              :           }
    6596              :         break;
    6597              :       }
    6598        11731 :     case FLOAT_EXPR:
    6599        11731 :       {
    6600        11731 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6601        11731 :         switch (TREE_CODE (_p1))
    6602              :           {
    6603            0 :           case FLOAT_EXPR:
    6604            0 :             {
    6605            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6606            0 :               {
    6607            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    6608            0 :                 tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
    6609            0 :                 if (res) return res;
    6610              :               }
    6611            0 :               break;
    6612              :             }
    6613          235 :           case REAL_CST:
    6614          235 :             {
    6615          235 :               {
    6616          235 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    6617          235 :                 tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
    6618          235 :                 if (res) return res;
    6619              :               }
    6620          156 :               break;
    6621              :             }
    6622              :           default:;
    6623              :           }
    6624              :         break;
    6625              :       }
    6626          428 :     case EXACT_DIV_EXPR:
    6627          428 :       {
    6628          428 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6629          428 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6630          428 :         switch (TREE_CODE (_q21))
    6631              :           {
    6632          428 :           case INTEGER_CST:
    6633          428 :             {
    6634          428 :               switch (TREE_CODE (_p1))
    6635              :                 {
    6636          351 :                 case INTEGER_CST:
    6637          351 :                   {
    6638          351 :                     {
    6639          351 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6640          351 :                       tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, LE_EXPR);
    6641          351 :                       if (res) return res;
    6642              :                     }
    6643            0 :                     break;
    6644              :                   }
    6645              :                 default:;
    6646              :                 }
    6647              :               break;
    6648              :             }
    6649              :           default:;
    6650              :           }
    6651              :         break;
    6652              :       }
    6653      1643038 :     CASE_CONVERT:
    6654      1643038 :       {
    6655      1643038 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6656      1643038 :         switch (TREE_CODE (_q20))
    6657              :           {
    6658            0 :           case EXACT_DIV_EXPR:
    6659            0 :             {
    6660            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6661            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6662            0 :               switch (TREE_CODE (_q31))
    6663              :                 {
    6664            0 :                 case INTEGER_CST:
    6665            0 :                   {
    6666            0 :                     switch (TREE_CODE (_p1))
    6667              :                       {
    6668            0 :                       case INTEGER_CST:
    6669            0 :                         {
    6670            0 :                           {
    6671            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    6672            0 :                             tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    6673            0 :                             if (res) return res;
    6674              :                           }
    6675            0 :                           break;
    6676              :                         }
    6677              :                       default:;
    6678              :                       }
    6679              :                     break;
    6680              :                   }
    6681              :                 default:;
    6682              :                 }
    6683              :               break;
    6684              :             }
    6685      1643038 :           default:;
    6686              :           }
    6687      1643038 :         switch (TREE_CODE (_p1))
    6688              :           {
    6689        77660 :           CASE_CONVERT:
    6690        77660 :             {
    6691        77660 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6692        77660 :               {
    6693        77660 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    6694        77660 :                 tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, LE_EXPR);
    6695        77660 :                 if (res) return res;
    6696              :               }
    6697        29226 :               break;
    6698              :             }
    6699      1594604 :           default:;
    6700              :           }
    6701      1594604 :         {
    6702      1594604 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
    6703      1594604 :           tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, LE_EXPR);
    6704      1594604 :           if (res) return res;
    6705              :         }
    6706       931713 :         switch (TREE_CODE (_q20))
    6707              :           {
    6708         6085 :           case ADDR_EXPR:
    6709         6085 :             {
    6710         6085 :               switch (TREE_CODE (_p1))
    6711              :                 {
    6712         5763 :                 CASE_CONVERT:
    6713         5763 :                   {
    6714         5763 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    6715         5763 :                     switch (TREE_CODE (_q40))
    6716              :                       {
    6717         5763 :                       case ADDR_EXPR:
    6718         5763 :                         {
    6719         5763 :                           {
    6720         5763 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    6721         5763 :                             tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, LE_EXPR);
    6722         5763 :                             if (res) return res;
    6723              :                           }
    6724          160 :                           break;
    6725              :                         }
    6726              :                       default:;
    6727              :                       }
    6728              :                     break;
    6729              :                   }
    6730            7 :                 case ADDR_EXPR:
    6731            7 :                   {
    6732            7 :                     {
    6733            7 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    6734            7 :                       tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, LE_EXPR);
    6735            7 :                       if (res) return res;
    6736              :                     }
    6737            0 :                     break;
    6738              :                   }
    6739              :                 default:;
    6740              :                 }
    6741              :               break;
    6742              :             }
    6743       926103 :           default:;
    6744              :           }
    6745       926103 :         if (uniform_integer_cst_p (_p1))
    6746              :           {
    6747       481342 :             {
    6748       481342 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    6749       481342 :               tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, LE_EXPR);
    6750       481342 :               if (res) return res;
    6751              :             }
    6752              :           }
    6753              :         break;
    6754              :       }
    6755         5327 :     case BIT_AND_EXPR:
    6756         5327 :       {
    6757         5327 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6758         5327 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6759         5327 :         switch (TREE_CODE (_q21))
    6760              :           {
    6761         4845 :           case INTEGER_CST:
    6762         4845 :             {
    6763         4845 :               switch (TREE_CODE (_p1))
    6764              :                 {
    6765         2710 :                 case INTEGER_CST:
    6766         2710 :                   {
    6767         2710 :                     {
    6768         2710 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    6769         2710 :                       tree res = generic_simplify_409 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
    6770         2710 :                       if (res) return res;
    6771              :                     }
    6772         2663 :                     break;
    6773              :                   }
    6774              :                 default:;
    6775              :                 }
    6776              :               break;
    6777              :             }
    6778              :           default:;
    6779              :           }
    6780              :         break;
    6781              :       }
    6782         5488 :     case NEGATE_EXPR:
    6783         5488 :       {
    6784         5488 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6785         5488 :         switch (TREE_CODE (_p1))
    6786              :           {
    6787           32 :           case NEGATE_EXPR:
    6788           32 :             {
    6789           32 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6790           32 :               {
    6791           32 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6792           32 :                 tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    6793           32 :                 if (res) return res;
    6794              :               }
    6795           32 :               break;
    6796              :             }
    6797         5488 :           default:;
    6798              :           }
    6799         5488 :       if (CONSTANT_CLASS_P (_p1))
    6800              :         {
    6801          455 :           {
    6802          455 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    6803          455 :             tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    6804          455 :             if (res) return res;
    6805              :           }
    6806              :         }
    6807              :         break;
    6808              :       }
    6809         1564 :     case ADDR_EXPR:
    6810         1564 :       {
    6811         1564 :         switch (TREE_CODE (_p1))
    6812              :           {
    6813           19 :           CASE_CONVERT:
    6814           19 :             {
    6815           19 :               tree _q30 = TREE_OPERAND (_p1, 0);
    6816           19 :               switch (TREE_CODE (_q30))
    6817              :                 {
    6818           19 :                 case ADDR_EXPR:
    6819           19 :                   {
    6820           19 :                     {
    6821           19 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
    6822           19 :                       tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, LE_EXPR);
    6823           19 :                       if (res) return res;
    6824              :                     }
    6825            0 :                     break;
    6826              :                   }
    6827              :                 default:;
    6828              :                 }
    6829              :               break;
    6830              :             }
    6831          662 :           case ADDR_EXPR:
    6832          662 :             {
    6833          662 :               {
    6834          662 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
    6835          662 :                 tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, LE_EXPR);
    6836          662 :                 if (res) return res;
    6837              :               }
    6838          302 :               break;
    6839              :             }
    6840              :           default:;
    6841              :           }
    6842              :         break;
    6843              :       }
    6844       125762 :     case CALL_EXPR:
    6845       125762 :       switch (get_call_combined_fn (_p0))
    6846              :         {
    6847            2 :         case CFN_BUILT_IN_SQRTF:
    6848            2 :           if (call_expr_nargs (_p0) == 1)
    6849              :     {
    6850            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6851            2 :               switch (TREE_CODE (_p1))
    6852              :                 {
    6853            2 :                 case REAL_CST:
    6854            2 :                   {
    6855            2 :                     {
    6856            2 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    6857            2 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LE_EXPR);
    6858            2 :                       if (res) return res;
    6859              :                     }
    6860            0 :                     break;
    6861              :                   }
    6862            0 :                 case CALL_EXPR:
    6863            0 :                   switch (get_call_combined_fn (_p1))
    6864              :                     {
    6865            0 :                     case CFN_BUILT_IN_SQRTF:
    6866            0 :                       if (call_expr_nargs (_p1) == 1)
    6867              :     {
    6868            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6869            0 :                           {
    6870            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6871            0 :                             tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LE_EXPR);
    6872            0 :                             if (res) return res;
    6873              :                           }
    6874              :                         }
    6875              :                       break;
    6876              :                     default:;
    6877              :                     }
    6878              :                   break;
    6879              :                 default:;
    6880              :                 }
    6881              :             }
    6882              :           break;
    6883            0 :         case CFN_BUILT_IN_SQRTL:
    6884            0 :           if (call_expr_nargs (_p0) == 1)
    6885              :     {
    6886            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6887            0 :               switch (TREE_CODE (_p1))
    6888              :                 {
    6889            0 :                 case REAL_CST:
    6890            0 :                   {
    6891            0 :                     {
    6892            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    6893            0 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LE_EXPR);
    6894            0 :                       if (res) return res;
    6895              :                     }
    6896            0 :                     break;
    6897              :                   }
    6898            0 :                 case CALL_EXPR:
    6899            0 :                   switch (get_call_combined_fn (_p1))
    6900              :                     {
    6901            0 :                     case CFN_BUILT_IN_SQRTL:
    6902            0 :                       if (call_expr_nargs (_p1) == 1)
    6903              :     {
    6904            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6905            0 :                           {
    6906            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6907            0 :                             tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LE_EXPR);
    6908            0 :                             if (res) return res;
    6909              :                           }
    6910              :                         }
    6911              :                       break;
    6912              :                     default:;
    6913              :                     }
    6914              :                   break;
    6915              :                 default:;
    6916              :                 }
    6917              :             }
    6918              :           break;
    6919            2 :         case CFN_BUILT_IN_SQRT:
    6920            2 :           if (call_expr_nargs (_p0) == 1)
    6921              :     {
    6922            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6923            2 :               switch (TREE_CODE (_p1))
    6924              :                 {
    6925            2 :                 case REAL_CST:
    6926            2 :                   {
    6927            2 :                     {
    6928            2 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    6929            2 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LE_EXPR);
    6930            2 :                       if (res) return res;
    6931              :                     }
    6932            2 :                     break;
    6933              :                   }
    6934            0 :                 case CALL_EXPR:
    6935            0 :                   switch (get_call_combined_fn (_p1))
    6936              :                     {
    6937            0 :                     case CFN_BUILT_IN_SQRT:
    6938            0 :                       if (call_expr_nargs (_p1) == 1)
    6939              :     {
    6940            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6941            0 :                           {
    6942            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6943            0 :                             tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LE_EXPR);
    6944            0 :                             if (res) return res;
    6945              :                           }
    6946              :                         }
    6947              :                       break;
    6948              :                     default:;
    6949              :                     }
    6950              :                   break;
    6951              :                 default:;
    6952              :                 }
    6953              :             }
    6954              :           break;
    6955            0 :         case CFN_SQRT:
    6956            0 :           if (call_expr_nargs (_p0) == 1)
    6957              :     {
    6958            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6959            0 :               switch (TREE_CODE (_p1))
    6960              :                 {
    6961            0 :                 case REAL_CST:
    6962            0 :                   {
    6963            0 :                     {
    6964            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    6965            0 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, CFN_SQRT, LE_EXPR);
    6966            0 :                       if (res) return res;
    6967              :                     }
    6968            0 :                     break;
    6969              :                   }
    6970            0 :                 case CALL_EXPR:
    6971            0 :                   switch (get_call_combined_fn (_p1))
    6972              :                     {
    6973            0 :                     case CFN_SQRT:
    6974            0 :                       if (call_expr_nargs (_p1) == 1)
    6975              :     {
    6976            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6977            0 :                           {
    6978            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6979            0 :                             tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, CFN_SQRT, LE_EXPR);
    6980            0 :                             if (res) return res;
    6981              :                           }
    6982              :                         }
    6983              :                       break;
    6984              :                     default:;
    6985              :                     }
    6986              :                   break;
    6987              :                 default:;
    6988              :                 }
    6989              :             }
    6990              :           break;
    6991              :         default:;
    6992              :         }
    6993              :       break;
    6994      8362967 :     default:;
    6995              :     }
    6996      8362967 :   if (uniform_integer_cst_p (_p1))
    6997              :     {
    6998      5947483 :       {
    6999      5947483 :         tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
    7000      5947483 :         tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, LE_EXPR);
    7001      5947483 :         if (res) return res;
    7002              :       }
    7003              :     }
    7004      7955750 :   switch (TREE_CODE (_p0))
    7005              :     {
    7006       890321 :     CASE_CONVERT:
    7007       890321 :       {
    7008       890321 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7009       890321 :         switch (TREE_CODE (_q20))
    7010              :           {
    7011        94417 :           case PLUS_EXPR:
    7012        94417 :             {
    7013        94417 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7014        94417 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7015        94417 :               switch (TREE_CODE (_q30))
    7016              :                 {
    7017        79712 :                 CASE_CONVERT:
    7018        79712 :                   {
    7019        79712 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    7020        79712 :                     switch (TREE_CODE (_q31))
    7021              :                       {
    7022        79139 :                       case INTEGER_CST:
    7023        79139 :                         {
    7024        79139 :                           if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    7025              :                             {
    7026            4 :                               {
    7027            4 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
    7028            4 :                                 tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
    7029            4 :                                 if (res) return res;
    7030              :                               }
    7031              :                             }
    7032              :                           break;
    7033              :                         }
    7034              :                       default:;
    7035              :                       }
    7036              :                     break;
    7037              :                   }
    7038              :                 default:;
    7039              :                 }
    7040              :               break;
    7041              :             }
    7042              :           default:;
    7043              :           }
    7044              :         break;
    7045              :       }
    7046      7955746 :     default:;
    7047              :     }
    7048      7955746 :   switch (TREE_CODE (_p1))
    7049              :     {
    7050       191583 :     CASE_CONVERT:
    7051       191583 :       {
    7052       191583 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7053       191583 :         switch (TREE_CODE (_q30))
    7054              :           {
    7055         1889 :           case PLUS_EXPR:
    7056         1889 :             {
    7057         1889 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7058         1889 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7059         1889 :               switch (TREE_CODE (_q40))
    7060              :                 {
    7061          441 :                 CASE_CONVERT:
    7062          441 :                   {
    7063          441 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    7064          441 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    7065              :                       {
    7066            0 :                         switch (TREE_CODE (_q41))
    7067              :                           {
    7068            0 :                           case INTEGER_CST:
    7069            0 :                             {
    7070            0 :                               {
    7071            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
    7072            0 :                                 tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    7073            0 :                                 if (res) return res;
    7074              :                               }
    7075            0 :                               break;
    7076              :                             }
    7077              :                           default:;
    7078              :                           }
    7079              :                       }
    7080              :                     break;
    7081              :                   }
    7082              :                 default:;
    7083              :                 }
    7084              :               break;
    7085              :             }
    7086              :           default:;
    7087              :           }
    7088              :         break;
    7089              :       }
    7090       121496 :     case PLUS_EXPR:
    7091       121496 :       {
    7092       121496 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7093       121496 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7094       121496 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    7095              :           {
    7096           30 :             switch (TREE_CODE (_q31))
    7097              :               {
    7098           30 :               case INTEGER_CST:
    7099           30 :                 {
    7100           30 :                   {
    7101           30 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
    7102           30 :                     tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    7103           30 :                     if (res) return res;
    7104              :                   }
    7105            0 :                   break;
    7106              :                 }
    7107              :               default:;
    7108              :               }
    7109              :           }
    7110              :         break;
    7111              :       }
    7112      7955716 :     default:;
    7113              :     }
    7114      7955716 :   switch (TREE_CODE (_p0))
    7115              :     {
    7116        57088 :     case MINUS_EXPR:
    7117        57088 :       {
    7118        57088 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7119        57088 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7120        57088 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7121              :           {
    7122         2509 :             {
    7123         2509 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7124         2509 :               tree res = generic_simplify_398 (loc, type, _p0, _p1, captures, LE_EXPR);
    7125         2509 :               if (res) return res;
    7126              :             }
    7127              :           }
    7128              :         break;
    7129              :       }
    7130      7955589 :     default:;
    7131              :     }
    7132      7955589 :   switch (TREE_CODE (_p1))
    7133              :     {
    7134       121466 :     case PLUS_EXPR:
    7135       121466 :       {
    7136       121466 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7137       121466 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7138       121466 :         switch (TREE_CODE (_q30))
    7139              :           {
    7140            4 :           case MINUS_EXPR:
    7141            4 :             {
    7142            4 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7143            4 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7144            4 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    7145              :                 {
    7146            0 :                   if (integer_minus_onep (_q31))
    7147              :                     {
    7148            0 :                       {
    7149            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    7150            0 :                         tree res = generic_simplify_410 (loc, type, _p0, _p1, captures, GE_EXPR);
    7151            0 :                         if (res) return res;
    7152              :                       }
    7153              :                     }
    7154              :                 }
    7155              :               break;
    7156              :             }
    7157              :           default:;
    7158              :           }
    7159              :         break;
    7160              :       }
    7161      7955589 :     default:;
    7162              :     }
    7163      7955589 :   switch (TREE_CODE (_p0))
    7164              :     {
    7165           12 :     case REALPART_EXPR:
    7166           12 :       {
    7167           12 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7168           12 :         switch (TREE_CODE (_q20))
    7169              :           {
    7170            0 :           case CALL_EXPR:
    7171            0 :             switch (get_call_combined_fn (_q20))
    7172              :               {
    7173            0 :               case CFN_SUB_OVERFLOW:
    7174            0 :                 if (call_expr_nargs (_q20) == 2)
    7175              :     {
    7176            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    7177            0 :                     tree _q31 = CALL_EXPR_ARG (_q20, 1);
    7178            0 :                     if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    7179              :                       {
    7180            0 :                         {
    7181            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7182            0 :                           tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
    7183            0 :                           if (res) return res;
    7184              :                         }
    7185              :                       }
    7186              :                   }
    7187              :                 break;
    7188              :               default:;
    7189              :               }
    7190              :             break;
    7191              :           default:;
    7192              :           }
    7193              :         break;
    7194              :       }
    7195      7955589 :     default:;
    7196              :     }
    7197      7955589 :   switch (TREE_CODE (_p1))
    7198              :     {
    7199            0 :     case REALPART_EXPR:
    7200            0 :       {
    7201            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7202            0 :         switch (TREE_CODE (_q30))
    7203              :           {
    7204            0 :           case CALL_EXPR:
    7205            0 :             switch (get_call_combined_fn (_q30))
    7206              :               {
    7207            0 :               case CFN_ADD_OVERFLOW:
    7208            0 :                 if (call_expr_nargs (_q30) == 2)
    7209              :     {
    7210            0 :                     tree _q40 = CALL_EXPR_ARG (_q30, 0);
    7211            0 :                     tree _q41 = CALL_EXPR_ARG (_q30, 1);
    7212            0 :                     if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    7213              :                       {
    7214            0 :                         {
    7215            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
    7216            0 :                           tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
    7217            0 :                           if (res) return res;
    7218              :                         }
    7219              :                       }
    7220            0 :                     if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    7221              :                       {
    7222            0 :                         {
    7223            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q40 };
    7224            0 :                           tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
    7225            0 :                           if (res) return res;
    7226              :                         }
    7227              :                       }
    7228              :                   }
    7229              :                 break;
    7230              :               default:;
    7231              :               }
    7232              :             break;
    7233              :           default:;
    7234              :           }
    7235              :         break;
    7236              :       }
    7237          339 :     case TRUNC_DIV_EXPR:
    7238          339 :       {
    7239          339 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7240          339 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7241          339 :         if (integer_all_onesp (_q30))
    7242              :           {
    7243            0 :             {
    7244            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
    7245            0 :               tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
    7246            0 :               if (res) return res;
    7247              :             }
    7248              :           }
    7249              :         break;
    7250              :       }
    7251      7955589 :     default:;
    7252              :     }
    7253      7955589 :   switch (TREE_CODE (_p0))
    7254              :     {
    7255        58059 :     case MULT_EXPR:
    7256        58059 :       {
    7257        58059 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7258        58059 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7259        58059 :         switch (TREE_CODE (_q21))
    7260              :           {
    7261          821 :           case REAL_CST:
    7262          821 :             {
    7263          821 :               switch (TREE_CODE (_p1))
    7264              :                 {
    7265          553 :                 case REAL_CST:
    7266          553 :                   {
    7267          553 :                     {
    7268          553 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7269          553 :                       tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    7270          553 :                       if (res) return res;
    7271              :                     }
    7272          551 :                     break;
    7273              :                   }
    7274              :                 default:;
    7275              :                 }
    7276              :               break;
    7277              :             }
    7278              :           default:;
    7279              :           }
    7280              :         break;
    7281              :       }
    7282           22 :     case REAL_CST:
    7283           22 :       {
    7284           22 :         switch (TREE_CODE (_p1))
    7285              :           {
    7286            0 :           case CALL_EXPR:
    7287            0 :             switch (get_call_combined_fn (_p1))
    7288              :               {
    7289            0 :               case CFN_BUILT_IN_EXP:
    7290            0 :                 if (call_expr_nargs (_p1) == 1)
    7291              :     {
    7292            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7293            0 :                     {
    7294            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7295            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
    7296            0 :                       if (res) return res;
    7297              :                     }
    7298              :                   }
    7299              :                 break;
    7300            0 :               case CFN_BUILT_IN_LOG:
    7301            0 :                 if (call_expr_nargs (_p1) == 1)
    7302              :     {
    7303            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7304            0 :                     {
    7305            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7306            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
    7307            0 :                       if (res) return res;
    7308              :                     }
    7309              :                   }
    7310              :                 break;
    7311            0 :               case CFN_BUILT_IN_EXP10F:
    7312            0 :                 if (call_expr_nargs (_p1) == 1)
    7313              :     {
    7314            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7315            0 :                     {
    7316            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7317            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
    7318            0 :                       if (res) return res;
    7319              :                     }
    7320              :                   }
    7321              :                 break;
    7322            0 :               case CFN_BUILT_IN_EXP10L:
    7323            0 :                 if (call_expr_nargs (_p1) == 1)
    7324              :     {
    7325            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7326            0 :                     {
    7327            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7328            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
    7329            0 :                       if (res) return res;
    7330              :                     }
    7331              :                   }
    7332              :                 break;
    7333            0 :               case CFN_BUILT_IN_EXP2:
    7334            0 :                 if (call_expr_nargs (_p1) == 1)
    7335              :     {
    7336            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7337            0 :                     {
    7338            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7339            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
    7340            0 :                       if (res) return res;
    7341              :                     }
    7342              :                   }
    7343              :                 break;
    7344            0 :               case CFN_BUILT_IN_EXPF:
    7345            0 :                 if (call_expr_nargs (_p1) == 1)
    7346              :     {
    7347            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7348            0 :                     {
    7349            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7350            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
    7351            0 :                       if (res) return res;
    7352              :                     }
    7353              :                   }
    7354              :                 break;
    7355            0 :               case CFN_BUILT_IN_EXPL:
    7356            0 :                 if (call_expr_nargs (_p1) == 1)
    7357              :     {
    7358            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7359            0 :                     {
    7360            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7361            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
    7362            0 :                       if (res) return res;
    7363              :                     }
    7364              :                   }
    7365              :                 break;
    7366            0 :               case CFN_BUILT_IN_LOG2:
    7367            0 :                 if (call_expr_nargs (_p1) == 1)
    7368              :     {
    7369            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7370            0 :                     {
    7371            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7372            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
    7373            0 :                       if (res) return res;
    7374              :                     }
    7375              :                   }
    7376              :                 break;
    7377            0 :               case CFN_BUILT_IN_LOGF:
    7378            0 :                 if (call_expr_nargs (_p1) == 1)
    7379              :     {
    7380            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7381            0 :                     {
    7382            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7383            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
    7384            0 :                       if (res) return res;
    7385              :                     }
    7386              :                   }
    7387              :                 break;
    7388            0 :               case CFN_BUILT_IN_LOGL:
    7389            0 :                 if (call_expr_nargs (_p1) == 1)
    7390              :     {
    7391            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7392            0 :                     {
    7393            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7394            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
    7395            0 :                       if (res) return res;
    7396              :                     }
    7397              :                   }
    7398              :                 break;
    7399            0 :               case CFN_BUILT_IN_LOG10F:
    7400            0 :                 if (call_expr_nargs (_p1) == 1)
    7401              :     {
    7402            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7403            0 :                     {
    7404            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7405            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
    7406            0 :                       if (res) return res;
    7407              :                     }
    7408              :                   }
    7409              :                 break;
    7410            0 :               case CFN_BUILT_IN_LOG10L:
    7411            0 :                 if (call_expr_nargs (_p1) == 1)
    7412              :     {
    7413            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7414            0 :                     {
    7415            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7416            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
    7417            0 :                       if (res) return res;
    7418              :                     }
    7419              :                   }
    7420              :                 break;
    7421            0 :               case CFN_EXP:
    7422            0 :                 if (call_expr_nargs (_p1) == 1)
    7423              :     {
    7424            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7425            0 :                     {
    7426            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7427            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
    7428            0 :                       if (res) return res;
    7429              :                     }
    7430              :                   }
    7431              :                 break;
    7432            0 :               case CFN_LOG:
    7433            0 :                 if (call_expr_nargs (_p1) == 1)
    7434              :     {
    7435            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7436            0 :                     {
    7437            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7438            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
    7439            0 :                       if (res) return res;
    7440              :                     }
    7441              :                   }
    7442              :                 break;
    7443            0 :               case CFN_EXP2:
    7444            0 :                 if (call_expr_nargs (_p1) == 1)
    7445              :     {
    7446            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7447            0 :                     {
    7448            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7449            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
    7450            0 :                       if (res) return res;
    7451              :                     }
    7452              :                   }
    7453              :                 break;
    7454            0 :               case CFN_LOG2:
    7455            0 :                 if (call_expr_nargs (_p1) == 1)
    7456              :     {
    7457            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7458            0 :                     {
    7459            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7460            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
    7461            0 :                       if (res) return res;
    7462              :                     }
    7463              :                   }
    7464              :                 break;
    7465            0 :               case CFN_EXP10:
    7466            0 :                 if (call_expr_nargs (_p1) == 1)
    7467              :     {
    7468            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7469            0 :                     {
    7470            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7471            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
    7472            0 :                       if (res) return res;
    7473              :                     }
    7474              :                   }
    7475              :                 break;
    7476            0 :               case CFN_LOG10:
    7477            0 :                 if (call_expr_nargs (_p1) == 1)
    7478              :     {
    7479            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7480            0 :                     {
    7481            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7482            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
    7483            0 :                       if (res) return res;
    7484              :                     }
    7485              :                   }
    7486              :                 break;
    7487            0 :               case CFN_BUILT_IN_EXP10:
    7488            0 :                 if (call_expr_nargs (_p1) == 1)
    7489              :     {
    7490            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7491            0 :                     {
    7492            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7493            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
    7494            0 :                       if (res) return res;
    7495              :                     }
    7496              :                   }
    7497              :                 break;
    7498            0 :               case CFN_BUILT_IN_EXP2F:
    7499            0 :                 if (call_expr_nargs (_p1) == 1)
    7500              :     {
    7501            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7502            0 :                     {
    7503            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7504            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
    7505            0 :                       if (res) return res;
    7506              :                     }
    7507              :                   }
    7508              :                 break;
    7509            0 :               case CFN_BUILT_IN_EXP2L:
    7510            0 :                 if (call_expr_nargs (_p1) == 1)
    7511              :     {
    7512            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7513            0 :                     {
    7514            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7515            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
    7516            0 :                       if (res) return res;
    7517              :                     }
    7518              :                   }
    7519              :                 break;
    7520            0 :               case CFN_BUILT_IN_LOG10:
    7521            0 :                 if (call_expr_nargs (_p1) == 1)
    7522              :     {
    7523            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7524            0 :                     {
    7525            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7526            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
    7527            0 :                       if (res) return res;
    7528              :                     }
    7529              :                   }
    7530              :                 break;
    7531            0 :               case CFN_BUILT_IN_LOG2F:
    7532            0 :                 if (call_expr_nargs (_p1) == 1)
    7533              :     {
    7534            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7535            0 :                     {
    7536            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7537            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
    7538            0 :                       if (res) return res;
    7539              :                     }
    7540              :                   }
    7541              :                 break;
    7542            0 :               case CFN_BUILT_IN_LOG2L:
    7543            0 :                 if (call_expr_nargs (_p1) == 1)
    7544              :     {
    7545            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7546            0 :                     {
    7547            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7548            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
    7549            0 :                       if (res) return res;
    7550              :                     }
    7551              :                   }
    7552              :                 break;
    7553              :               default:;
    7554              :               }
    7555              :             break;
    7556              :           default:;
    7557              :           }
    7558              :         break;
    7559              :       }
    7560      1466370 :     case PLUS_EXPR:
    7561      1466370 :       {
    7562      1466370 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7563      1466370 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7564      1466370 :         switch (TREE_CODE (_q21))
    7565              :           {
    7566      1370643 :           case INTEGER_CST:
    7567      1370643 :             {
    7568      1370643 :               switch (TREE_CODE (_p1))
    7569              :                 {
    7570       848701 :                 case INTEGER_CST:
    7571       848701 :                   {
    7572       848701 :                     {
    7573       848701 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    7574       848701 :                       tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, LE_EXPR, GE_EXPR);
    7575       848701 :                       if (res) return res;
    7576              :                     }
    7577       666955 :                     break;
    7578              :                   }
    7579              :                 default:;
    7580              :                 }
    7581              :               break;
    7582              :             }
    7583              :           default:;
    7584              :           }
    7585              :         break;
    7586              :       }
    7587        56961 :     case MINUS_EXPR:
    7588        56961 :       {
    7589        56961 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7590        56961 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7591        56961 :         switch (TREE_CODE (_q21))
    7592              :           {
    7593         2173 :           case INTEGER_CST:
    7594         2173 :             {
    7595         2173 :               switch (TREE_CODE (_p1))
    7596              :                 {
    7597         2173 :                 case INTEGER_CST:
    7598         2173 :                   {
    7599         2173 :                     {
    7600         2173 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    7601         2173 :                       tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, LE_EXPR, GE_EXPR);
    7602         2173 :                       if (res) return res;
    7603              :                     }
    7604         2173 :                     break;
    7605              :                   }
    7606              :                 default:;
    7607              :                 }
    7608              :               break;
    7609              :             }
    7610        56961 :           default:;
    7611              :           }
    7612        56961 :         switch (TREE_CODE (_q20))
    7613              :           {
    7614         2039 :           case INTEGER_CST:
    7615         2039 :             {
    7616         2039 :               switch (TREE_CODE (_p1))
    7617              :                 {
    7618         1081 :                 case INTEGER_CST:
    7619         1081 :                   {
    7620         1081 :                     {
    7621         1081 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7622         1081 :                       tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    7623         1081 :                       if (res) return res;
    7624              :                     }
    7625            0 :                     break;
    7626              :                   }
    7627              :                 default:;
    7628              :                 }
    7629              :               break;
    7630              :             }
    7631              :           default:;
    7632              :           }
    7633              :         break;
    7634              :       }
    7635       125341 :     case CALL_EXPR:
    7636       125341 :       switch (get_call_combined_fn (_p0))
    7637              :         {
    7638           18 :         case CFN_BUILT_IN_CTZ:
    7639           18 :           if (call_expr_nargs (_p0) == 1)
    7640              :     {
    7641           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7642           18 :               switch (TREE_CODE (_p1))
    7643              :                 {
    7644           18 :                 case INTEGER_CST:
    7645           18 :                   {
    7646           18 :                     {
    7647           18 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7648           18 :                       tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZ);
    7649           18 :                       if (res) return res;
    7650              :                     }
    7651           16 :                     break;
    7652              :                   }
    7653              :                 default:;
    7654              :                 }
    7655              :             }
    7656              :           break;
    7657            0 :         case CFN_BUILT_IN_EXP:
    7658            0 :           if (call_expr_nargs (_p0) == 1)
    7659              :     {
    7660            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7661            0 :               switch (TREE_CODE (_p1))
    7662              :                 {
    7663            0 :                 case REAL_CST:
    7664            0 :                   {
    7665            0 :                     {
    7666            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7667            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
    7668            0 :                       if (res) return res;
    7669              :                     }
    7670            0 :                     break;
    7671              :                   }
    7672              :                 default:;
    7673              :                 }
    7674              :             }
    7675              :           break;
    7676            8 :         case CFN_BUILT_IN_FFS:
    7677            8 :           if (call_expr_nargs (_p0) == 1)
    7678              :     {
    7679            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7680            8 :               switch (TREE_CODE (_p1))
    7681              :                 {
    7682            8 :                 case INTEGER_CST:
    7683            8 :                   {
    7684            8 :                     {
    7685            8 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7686            8 :                       tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFS);
    7687            8 :                       if (res) return res;
    7688              :                     }
    7689            2 :                     break;
    7690              :                   }
    7691              :                 default:;
    7692              :                 }
    7693              :             }
    7694              :           break;
    7695            0 :         case CFN_BUILT_IN_LOG:
    7696            0 :           if (call_expr_nargs (_p0) == 1)
    7697              :     {
    7698            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7699            0 :               switch (TREE_CODE (_p1))
    7700              :                 {
    7701            0 :                 case REAL_CST:
    7702            0 :                   {
    7703            0 :                     {
    7704            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7705            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
    7706            0 :                       if (res) return res;
    7707              :                     }
    7708            0 :                     break;
    7709              :                   }
    7710              :                 default:;
    7711              :                 }
    7712              :             }
    7713              :           break;
    7714            0 :         case CFN_BUILT_IN_FFSIMAX:
    7715            0 :           if (call_expr_nargs (_p0) == 1)
    7716              :     {
    7717            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7718            0 :               switch (TREE_CODE (_p1))
    7719              :                 {
    7720            0 :                 case INTEGER_CST:
    7721            0 :                   {
    7722            0 :                     {
    7723            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7724            0 :                       tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSIMAX);
    7725            0 :                       if (res) return res;
    7726              :                     }
    7727            0 :                     break;
    7728              :                   }
    7729              :                 default:;
    7730              :                 }
    7731              :             }
    7732              :           break;
    7733            0 :         case CFN_BUILT_IN_EXP10F:
    7734            0 :           if (call_expr_nargs (_p0) == 1)
    7735              :     {
    7736            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7737            0 :               switch (TREE_CODE (_p1))
    7738              :                 {
    7739            0 :                 case REAL_CST:
    7740            0 :                   {
    7741            0 :                     {
    7742            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7743            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
    7744            0 :                       if (res) return res;
    7745              :                     }
    7746            0 :                     break;
    7747              :                   }
    7748              :                 default:;
    7749              :                 }
    7750              :             }
    7751              :           break;
    7752            0 :         case CFN_BUILT_IN_EXP10L:
    7753            0 :           if (call_expr_nargs (_p0) == 1)
    7754              :     {
    7755            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7756            0 :               switch (TREE_CODE (_p1))
    7757              :                 {
    7758            0 :                 case REAL_CST:
    7759            0 :                   {
    7760            0 :                     {
    7761            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7762            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
    7763            0 :                       if (res) return res;
    7764              :                     }
    7765            0 :                     break;
    7766              :                   }
    7767              :                 default:;
    7768              :                 }
    7769              :             }
    7770              :           break;
    7771           37 :         case CFN_BUILT_IN_POPCOUNT:
    7772           37 :           if (call_expr_nargs (_p0) == 1)
    7773              :     {
    7774           37 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7775           37 :               if (integer_zerop (_p1))
    7776              :                 {
    7777            1 :                   {
    7778            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    7779            1 :                     tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT);
    7780            1 :                     if (res) return res;
    7781              :                   }
    7782              :                 }
    7783              :             }
    7784              :           break;
    7785            0 :         case CFN_BUILT_IN_CTZL:
    7786            0 :           if (call_expr_nargs (_p0) == 1)
    7787              :     {
    7788            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7789            0 :               switch (TREE_CODE (_p1))
    7790              :                 {
    7791            0 :                 case INTEGER_CST:
    7792            0 :                   {
    7793            0 :                     {
    7794            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7795            0 :                       tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZL);
    7796            0 :                       if (res) return res;
    7797              :                     }
    7798            0 :                     break;
    7799              :                   }
    7800              :                 default:;
    7801              :                 }
    7802              :             }
    7803              :           break;
    7804            0 :         case CFN_BUILT_IN_EXP2:
    7805            0 :           if (call_expr_nargs (_p0) == 1)
    7806              :     {
    7807            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7808            0 :               switch (TREE_CODE (_p1))
    7809              :                 {
    7810            0 :                 case REAL_CST:
    7811            0 :                   {
    7812            0 :                     {
    7813            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7814            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
    7815            0 :                       if (res) return res;
    7816              :                     }
    7817            0 :                     break;
    7818              :                   }
    7819              :                 default:;
    7820              :                 }
    7821              :             }
    7822              :           break;
    7823            0 :         case CFN_BUILT_IN_EXPF:
    7824            0 :           if (call_expr_nargs (_p0) == 1)
    7825              :     {
    7826            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7827            0 :               switch (TREE_CODE (_p1))
    7828              :                 {
    7829            0 :                 case REAL_CST:
    7830            0 :                   {
    7831            0 :                     {
    7832            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7833            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
    7834            0 :                       if (res) return res;
    7835              :                     }
    7836            0 :                     break;
    7837              :                   }
    7838              :                 default:;
    7839              :                 }
    7840              :             }
    7841              :           break;
    7842            0 :         case CFN_BUILT_IN_EXPL:
    7843            0 :           if (call_expr_nargs (_p0) == 1)
    7844              :     {
    7845            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7846            0 :               switch (TREE_CODE (_p1))
    7847              :                 {
    7848            0 :                 case REAL_CST:
    7849            0 :                   {
    7850            0 :                     {
    7851            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7852            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
    7853            0 :                       if (res) return res;
    7854              :                     }
    7855            0 :                     break;
    7856              :                   }
    7857              :                 default:;
    7858              :                 }
    7859              :             }
    7860              :           break;
    7861            3 :         case CFN_BUILT_IN_FFSL:
    7862            3 :           if (call_expr_nargs (_p0) == 1)
    7863              :     {
    7864            3 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7865            3 :               switch (TREE_CODE (_p1))
    7866              :                 {
    7867            3 :                 case INTEGER_CST:
    7868            3 :                   {
    7869            3 :                     {
    7870            3 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7871            3 :                       tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSL);
    7872            3 :                       if (res) return res;
    7873              :                     }
    7874            0 :                     break;
    7875              :                   }
    7876              :                 default:;
    7877              :                 }
    7878              :             }
    7879              :           break;
    7880            0 :         case CFN_BUILT_IN_LOG2:
    7881            0 :           if (call_expr_nargs (_p0) == 1)
    7882              :     {
    7883            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7884            0 :               switch (TREE_CODE (_p1))
    7885              :                 {
    7886            0 :                 case REAL_CST:
    7887            0 :                   {
    7888            0 :                     {
    7889            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7890            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
    7891            0 :                       if (res) return res;
    7892              :                     }
    7893            0 :                     break;
    7894              :                   }
    7895              :                 default:;
    7896              :                 }
    7897              :             }
    7898              :           break;
    7899            0 :         case CFN_BUILT_IN_LOGF:
    7900            0 :           if (call_expr_nargs (_p0) == 1)
    7901              :     {
    7902            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7903            0 :               switch (TREE_CODE (_p1))
    7904              :                 {
    7905            0 :                 case REAL_CST:
    7906            0 :                   {
    7907            0 :                     {
    7908            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7909            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
    7910            0 :                       if (res) return res;
    7911              :                     }
    7912            0 :                     break;
    7913              :                   }
    7914              :                 default:;
    7915              :                 }
    7916              :             }
    7917              :           break;
    7918            0 :         case CFN_BUILT_IN_LOGL:
    7919            0 :           if (call_expr_nargs (_p0) == 1)
    7920              :     {
    7921            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7922            0 :               switch (TREE_CODE (_p1))
    7923              :                 {
    7924            0 :                 case REAL_CST:
    7925            0 :                   {
    7926            0 :                     {
    7927            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7928            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
    7929            0 :                       if (res) return res;
    7930              :                     }
    7931            0 :                     break;
    7932              :                   }
    7933              :                 default:;
    7934              :                 }
    7935              :             }
    7936              :           break;
    7937            1 :         case CFN_BUILT_IN_POPCOUNTLL:
    7938            1 :           if (call_expr_nargs (_p0) == 1)
    7939              :     {
    7940            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7941            1 :               if (integer_zerop (_p1))
    7942              :                 {
    7943            1 :                   {
    7944            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    7945            1 :                     tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    7946            1 :                     if (res) return res;
    7947              :                   }
    7948              :                 }
    7949              :             }
    7950              :           break;
    7951            0 :         case CFN_BUILT_IN_LOG10F:
    7952            0 :           if (call_expr_nargs (_p0) == 1)
    7953              :     {
    7954            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7955            0 :               switch (TREE_CODE (_p1))
    7956              :                 {
    7957            0 :                 case REAL_CST:
    7958            0 :                   {
    7959            0 :                     {
    7960            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7961            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
    7962            0 :                       if (res) return res;
    7963              :                     }
    7964            0 :                     break;
    7965              :                   }
    7966              :                 default:;
    7967              :                 }
    7968              :             }
    7969              :           break;
    7970            0 :         case CFN_BUILT_IN_LOG10L:
    7971            0 :           if (call_expr_nargs (_p0) == 1)
    7972              :     {
    7973            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7974            0 :               switch (TREE_CODE (_p1))
    7975              :                 {
    7976            0 :                 case REAL_CST:
    7977            0 :                   {
    7978            0 :                     {
    7979            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7980            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
    7981            0 :                       if (res) return res;
    7982              :                     }
    7983            0 :                     break;
    7984              :                   }
    7985              :                 default:;
    7986              :                 }
    7987              :             }
    7988              :           break;
    7989            0 :         case CFN_BUILT_IN_CTZIMAX:
    7990            0 :           if (call_expr_nargs (_p0) == 1)
    7991              :     {
    7992            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7993            0 :               switch (TREE_CODE (_p1))
    7994              :                 {
    7995            0 :                 case INTEGER_CST:
    7996            0 :                   {
    7997            0 :                     {
    7998            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7999            0 :                       tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
    8000            0 :                       if (res) return res;
    8001              :                     }
    8002            0 :                     break;
    8003              :                   }
    8004              :                 default:;
    8005              :                 }
    8006              :             }
    8007              :           break;
    8008            0 :         case CFN_POPCOUNT:
    8009            0 :           if (call_expr_nargs (_p0) == 1)
    8010              :     {
    8011            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8012            0 :               if (integer_zerop (_p1))
    8013              :                 {
    8014            0 :                   {
    8015            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    8016            0 :                     tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_POPCOUNT);
    8017            0 :                     if (res) return res;
    8018              :                   }
    8019              :                 }
    8020              :             }
    8021              :           break;
    8022            0 :         case CFN_CTZ:
    8023            0 :           if (call_expr_nargs (_p0) == 2)
    8024              :     {
    8025            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8026            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    8027            0 :               switch (TREE_CODE (_p1))
    8028              :                 {
    8029            0 :                 case INTEGER_CST:
    8030            0 :                   {
    8031            0 :                     {
    8032            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    8033            0 :                       tree res = generic_simplify_406 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
    8034            0 :                       if (res) return res;
    8035              :                     }
    8036            0 :                     break;
    8037              :                   }
    8038              :                 default:;
    8039              :                 }
    8040              :             }
    8041            0 :           if (call_expr_nargs (_p0) == 1)
    8042              :     {
    8043            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8044            0 :               switch (TREE_CODE (_p1))
    8045              :                 {
    8046            0 :                 case INTEGER_CST:
    8047            0 :                   {
    8048            0 :                     {
    8049            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8050            0 :                       tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_CTZ);
    8051            0 :                       if (res) return res;
    8052              :                     }
    8053            0 :                     break;
    8054              :                   }
    8055              :                 default:;
    8056              :                 }
    8057              :             }
    8058              :           break;
    8059            0 :         case CFN_EXP:
    8060            0 :           if (call_expr_nargs (_p0) == 1)
    8061              :     {
    8062            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8063            0 :               switch (TREE_CODE (_p1))
    8064              :                 {
    8065            0 :                 case REAL_CST:
    8066            0 :                   {
    8067            0 :                     {
    8068            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8069            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
    8070            0 :                       if (res) return res;
    8071              :                     }
    8072            0 :                     break;
    8073              :                   }
    8074              :                 default:;
    8075              :                 }
    8076              :             }
    8077              :           break;
    8078            0 :         case CFN_FFS:
    8079            0 :           if (call_expr_nargs (_p0) == 1)
    8080              :     {
    8081            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8082            0 :               switch (TREE_CODE (_p1))
    8083              :                 {
    8084            0 :                 case INTEGER_CST:
    8085            0 :                   {
    8086            0 :                     {
    8087            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8088            0 :                       tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_FFS);
    8089            0 :                       if (res) return res;
    8090              :                     }
    8091            0 :                     break;
    8092              :                   }
    8093              :                 default:;
    8094              :                 }
    8095              :             }
    8096              :           break;
    8097            0 :         case CFN_LOG:
    8098            0 :           if (call_expr_nargs (_p0) == 1)
    8099              :     {
    8100            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8101            0 :               switch (TREE_CODE (_p1))
    8102              :                 {
    8103            0 :                 case REAL_CST:
    8104            0 :                   {
    8105            0 :                     {
    8106            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8107            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
    8108            0 :                       if (res) return res;
    8109              :                     }
    8110            0 :                     break;
    8111              :                   }
    8112              :                 default:;
    8113              :                 }
    8114              :             }
    8115              :           break;
    8116            0 :         case CFN_BUILT_IN_POPCOUNTIMAX:
    8117            0 :           if (call_expr_nargs (_p0) == 1)
    8118              :     {
    8119            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8120            0 :               if (integer_zerop (_p1))
    8121              :                 {
    8122            0 :                   {
    8123            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    8124            0 :                     tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    8125            0 :                     if (res) return res;
    8126              :                   }
    8127              :                 }
    8128              :             }
    8129              :           break;
    8130            0 :         case CFN_EXP2:
    8131            0 :           if (call_expr_nargs (_p0) == 1)
    8132              :     {
    8133            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8134            0 :               switch (TREE_CODE (_p1))
    8135              :                 {
    8136            0 :                 case REAL_CST:
    8137            0 :                   {
    8138            0 :                     {
    8139            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8140            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
    8141            0 :                       if (res) return res;
    8142              :                     }
    8143            0 :                     break;
    8144              :                   }
    8145              :                 default:;
    8146              :                 }
    8147              :             }
    8148              :           break;
    8149            0 :         case CFN_LOG2:
    8150            0 :           if (call_expr_nargs (_p0) == 1)
    8151              :     {
    8152            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8153            0 :               switch (TREE_CODE (_p1))
    8154              :                 {
    8155            0 :                 case REAL_CST:
    8156            0 :                   {
    8157            0 :                     {
    8158            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8159            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
    8160            0 :                       if (res) return res;
    8161              :                     }
    8162            0 :                     break;
    8163              :                   }
    8164              :                 default:;
    8165              :                 }
    8166              :             }
    8167              :           break;
    8168            0 :         case CFN_EXP10:
    8169            0 :           if (call_expr_nargs (_p0) == 1)
    8170              :     {
    8171            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8172            0 :               switch (TREE_CODE (_p1))
    8173              :                 {
    8174            0 :                 case REAL_CST:
    8175            0 :                   {
    8176            0 :                     {
    8177            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8178            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
    8179            0 :                       if (res) return res;
    8180              :                     }
    8181            0 :                     break;
    8182              :                   }
    8183              :                 default:;
    8184              :                 }
    8185              :             }
    8186              :           break;
    8187            1 :         case CFN_BUILT_IN_POPCOUNTL:
    8188            1 :           if (call_expr_nargs (_p0) == 1)
    8189              :     {
    8190            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8191            1 :               if (integer_zerop (_p1))
    8192              :                 {
    8193            1 :                   {
    8194            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    8195            1 :                     tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL);
    8196            1 :                     if (res) return res;
    8197              :                   }
    8198              :                 }
    8199              :             }
    8200              :           break;
    8201            0 :         case CFN_BUILT_IN_CTZLL:
    8202            0 :           if (call_expr_nargs (_p0) == 1)
    8203              :     {
    8204            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8205            0 :               switch (TREE_CODE (_p1))
    8206              :                 {
    8207            0 :                 case INTEGER_CST:
    8208            0 :                   {
    8209            0 :                     {
    8210            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8211            0 :                       tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZLL);
    8212            0 :                       if (res) return res;
    8213              :                     }
    8214            0 :                     break;
    8215              :                   }
    8216              :                 default:;
    8217              :                 }
    8218              :             }
    8219              :           break;
    8220            0 :         case CFN_LOG10:
    8221            0 :           if (call_expr_nargs (_p0) == 1)
    8222              :     {
    8223            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8224            0 :               switch (TREE_CODE (_p1))
    8225              :                 {
    8226            0 :                 case REAL_CST:
    8227            0 :                   {
    8228            0 :                     {
    8229            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8230            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
    8231            0 :                       if (res) return res;
    8232              :                     }
    8233            0 :                     break;
    8234              :                   }
    8235              :                 default:;
    8236              :                 }
    8237              :             }
    8238              :           break;
    8239            0 :         case CFN_BUILT_IN_EXP10:
    8240            0 :           if (call_expr_nargs (_p0) == 1)
    8241              :     {
    8242            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8243            0 :               switch (TREE_CODE (_p1))
    8244              :                 {
    8245            0 :                 case REAL_CST:
    8246            0 :                   {
    8247            0 :                     {
    8248            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8249            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
    8250            0 :                       if (res) return res;
    8251              :                     }
    8252            0 :                     break;
    8253              :                   }
    8254              :                 default:;
    8255              :                 }
    8256              :             }
    8257              :           break;
    8258            0 :         case CFN_BUILT_IN_EXP2F:
    8259            0 :           if (call_expr_nargs (_p0) == 1)
    8260              :     {
    8261            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8262            0 :               switch (TREE_CODE (_p1))
    8263              :                 {
    8264            0 :                 case REAL_CST:
    8265            0 :                   {
    8266            0 :                     {
    8267            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8268            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
    8269            0 :                       if (res) return res;
    8270              :                     }
    8271            0 :                     break;
    8272              :                   }
    8273              :                 default:;
    8274              :                 }
    8275              :             }
    8276              :           break;
    8277            0 :         case CFN_BUILT_IN_EXP2L:
    8278            0 :           if (call_expr_nargs (_p0) == 1)
    8279              :     {
    8280            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8281            0 :               switch (TREE_CODE (_p1))
    8282              :                 {
    8283            0 :                 case REAL_CST:
    8284            0 :                   {
    8285            0 :                     {
    8286            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8287            0 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
    8288            0 :                       if (res) return res;
    8289              :                     }
    8290            0 :                     break;
    8291              :                   }
    8292              :                 default:;
    8293              :                 }
    8294              :             }
    8295              :           break;
    8296            3 :         case CFN_BUILT_IN_FFSLL:
    8297            3 :           if (call_expr_nargs (_p0) == 1)
    8298              :     {
    8299            3 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8300            3 :               switch (TREE_CODE (_p1))
    8301              :                 {
    8302            3 :                 case INTEGER_CST:
    8303            3 :                   {
    8304            3 :                     {
    8305            3 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8306            3 :                       tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSLL);
    8307            3 :                       if (res) return res;
    8308              :                     }
    8309            0 :                     break;
    8310              :                   }
    8311              :                 default:;
    8312              :                 }
    8313              :             }
    8314              :           break;
    8315            0 :         case CFN_BUILT_IN_LOG10:
    8316            0 :           if (call_expr_nargs (_p0) == 1)
    8317              :     {
    8318            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8319            0 :               switch (TREE_CODE (_p1))
    8320              :                 {
    8321            0 :                 case REAL_CST:
    8322            0 :                   {
    8323            0 :                     {
    8324            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8325            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
    8326            0 :                       if (res) return res;
    8327              :                     }
    8328            0 :                     break;
    8329              :                   }
    8330              :                 default:;
    8331              :                 }
    8332              :             }
    8333              :           break;
    8334            0 :         case CFN_BUILT_IN_LOG2F:
    8335            0 :           if (call_expr_nargs (_p0) == 1)
    8336              :     {
    8337            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8338            0 :               switch (TREE_CODE (_p1))
    8339              :                 {
    8340            0 :                 case REAL_CST:
    8341            0 :                   {
    8342            0 :                     {
    8343            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8344            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
    8345            0 :                       if (res) return res;
    8346              :                     }
    8347            0 :                     break;
    8348              :                   }
    8349              :                 default:;
    8350              :                 }
    8351              :             }
    8352              :           break;
    8353            0 :         case CFN_BUILT_IN_LOG2L:
    8354            0 :           if (call_expr_nargs (_p0) == 1)
    8355              :     {
    8356            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8357            0 :               switch (TREE_CODE (_p1))
    8358              :                 {
    8359            0 :                 case REAL_CST:
    8360            0 :                   {
    8361            0 :                     {
    8362            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8363            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
    8364            0 :                       if (res) return res;
    8365              :                     }
    8366            0 :                     break;
    8367              :                   }
    8368              :                 default:;
    8369              :                 }
    8370              :             }
    8371              :           break;
    8372              :         default:;
    8373              :         }
    8374              :       break;
    8375              :     default:;
    8376              :     }
    8377              :   return NULL_TREE;
    8378              : }
    8379              : 
    8380              : tree
    8381         4212 : generic_simplify_CEIL_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    8382              : {
    8383         4212 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    8384         4212 :   if (integer_zerop (_p0))
    8385              :     {
    8386            0 :       {
    8387            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8388            0 :         tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
    8389            0 :         if (res) return res;
    8390              :       }
    8391              :     }
    8392         4212 :   if (integer_onep (_p1))
    8393              :     {
    8394            0 :       {
    8395            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8396            0 :         tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
    8397            0 :         if (res) return res;
    8398              :       }
    8399              :     }
    8400         4212 :   if (integer_minus_onep (_p1))
    8401              :     {
    8402            0 :       {
    8403            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8404            0 :         tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
    8405            0 :         if (res) return res;
    8406              :       }
    8407              :     }
    8408         4212 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8409              :     {
    8410            0 :       {
    8411            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8412            0 :         tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
    8413            0 :         if (res) return res;
    8414              :       }
    8415              :     }
    8416         4212 :   switch (TREE_CODE (_p0))
    8417              :     {
    8418            0 :     case CEIL_MOD_EXPR:
    8419            0 :       {
    8420            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8421            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8422            0 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    8423              :           {
    8424            0 :             {
    8425            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8426            0 :               tree res = generic_simplify_330 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
    8427            0 :               if (res) return res;
    8428              :             }
    8429              :           }
    8430              :         break;
    8431              :       }
    8432            0 :     case MULT_EXPR:
    8433            0 :       {
    8434            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8435            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8436            0 :         switch (TREE_CODE (_q21))
    8437              :           {
    8438            0 :           case INTEGER_CST:
    8439            0 :             {
    8440            0 :               switch (TREE_CODE (_p1))
    8441              :                 {
    8442            0 :                 case INTEGER_CST:
    8443            0 :                   {
    8444            0 :                     {
    8445            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8446            0 :                       tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
    8447            0 :                       if (res) return res;
    8448              :                     }
    8449            0 :                     break;
    8450              :                   }
    8451              :                 default:;
    8452              :                 }
    8453              :               break;
    8454              :             }
    8455              :           default:;
    8456              :           }
    8457              :         break;
    8458              :       }
    8459            0 :     case VEC_COND_EXPR:
    8460            0 :       {
    8461            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8462            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8463            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8464            0 :         switch (TREE_CODE (_p1))
    8465              :           {
    8466            0 :           case VEC_COND_EXPR:
    8467            0 :             {
    8468            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8469            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8470            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8471            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    8472              :                 {
    8473            0 :                   {
    8474            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    8475            0 :                     if (VECTOR_TYPE_P (type)
    8476            0 :  && (TREE_CODE_CLASS (CEIL_MOD_EXPR) != tcc_comparison
    8477              :  || types_match (type, TREE_TYPE (captures[2]))
    8478              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8479              :  || (optimize_vectors_before_lowering_p ()
    8480              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8481              : )
    8482              :                       {
    8483            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1649;
    8484            0 :                         {
    8485            0 :                           tree res_op0;
    8486            0 :                           res_op0 = captures[1];
    8487            0 :                           tree res_op1;
    8488            0 :                           {
    8489            0 :                             tree _o1[2], _r1;
    8490            0 :                             _o1[0] = captures[2];
    8491            0 :                             _o1[1] = captures[5];
    8492            0 :                             _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, type, _o1[0], _o1[1]);
    8493            0 :                             if (EXPR_P (_r1))
    8494            0 :                               goto next_after_fail1649;
    8495            0 :                             res_op1 = _r1;
    8496              :                           }
    8497            0 :                           tree res_op2;
    8498            0 :                           {
    8499            0 :                             tree _o1[2], _r1;
    8500            0 :                             _o1[0] = captures[3];
    8501            0 :                             _o1[1] = captures[6];
    8502            0 :                             _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, type, _o1[0], _o1[1]);
    8503            0 :                             if (EXPR_P (_r1))
    8504            0 :                               goto next_after_fail1649;
    8505            0 :                             res_op2 = _r1;
    8506              :                           }
    8507            0 :                           tree _r;
    8508            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8509            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8510            0 :                           return _r;
    8511              :                         }
    8512            0 : next_after_fail1649:;
    8513              :                       }
    8514              :                   }
    8515              :                 }
    8516              :               break;
    8517              :             }
    8518            0 :           default:;
    8519              :           }
    8520            0 :         {
    8521            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    8522            0 :           if (VECTOR_TYPE_P (type)
    8523            0 :  && (TREE_CODE_CLASS (CEIL_MOD_EXPR) != tcc_comparison
    8524              :  || types_match (type, TREE_TYPE (captures[2]))
    8525              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8526              :  || (optimize_vectors_before_lowering_p ()
    8527              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8528              : )
    8529              :             {
    8530            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1650;
    8531            0 :               {
    8532            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1650;
    8533            0 :                 tree res_op0;
    8534            0 :                 res_op0 = captures[1];
    8535            0 :                 tree res_op1;
    8536            0 :                 {
    8537            0 :                   tree _o1[2], _r1;
    8538            0 :                   _o1[0] = captures[2];
    8539            0 :                   _o1[1] = unshare_expr (captures[4]);
    8540            0 :                   _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, type, _o1[0], _o1[1]);
    8541            0 :                   if (EXPR_P (_r1))
    8542            0 :                     goto next_after_fail1650;
    8543            0 :                   res_op1 = _r1;
    8544              :                 }
    8545            0 :                 tree res_op2;
    8546            0 :                 {
    8547            0 :                   tree _o1[2], _r1;
    8548            0 :                   _o1[0] = captures[3];
    8549            0 :                   _o1[1] = captures[4];
    8550            0 :                   _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, type, _o1[0], _o1[1]);
    8551            0 :                   if (EXPR_P (_r1))
    8552            0 :                     goto next_after_fail1650;
    8553            0 :                   res_op2 = _r1;
    8554              :                 }
    8555            0 :                 tree _r;
    8556            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8557            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
    8558            0 :                 return _r;
    8559              :               }
    8560            0 : next_after_fail1650:;
    8561              :             }
    8562              :         }
    8563            0 :         break;
    8564              :       }
    8565         4212 :     default:;
    8566              :     }
    8567         4212 :   switch (TREE_CODE (_p1))
    8568              :     {
    8569            0 :     case VEC_COND_EXPR:
    8570            0 :       {
    8571            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8572            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8573            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    8574            0 :         {
    8575            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    8576            0 :           if (VECTOR_TYPE_P (type)
    8577            0 :  && (TREE_CODE_CLASS (CEIL_MOD_EXPR) != tcc_comparison
    8578              :  || types_match (type, TREE_TYPE (captures[3]))
    8579              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    8580              :  || (optimize_vectors_before_lowering_p ()
    8581              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    8582              : )
    8583              :             {
    8584            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1651;
    8585            0 :               {
    8586            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1651;
    8587            0 :                 tree res_op0;
    8588            0 :                 res_op0 = captures[2];
    8589            0 :                 tree res_op1;
    8590            0 :                 {
    8591            0 :                   tree _o1[2], _r1;
    8592            0 :                   _o1[0] = unshare_expr (captures[0]);
    8593            0 :                   _o1[1] = captures[3];
    8594            0 :                   _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, type, _o1[0], _o1[1]);
    8595            0 :                   if (EXPR_P (_r1))
    8596            0 :                     goto next_after_fail1651;
    8597            0 :                   res_op1 = _r1;
    8598              :                 }
    8599            0 :                 tree res_op2;
    8600            0 :                 {
    8601            0 :                   tree _o1[2], _r1;
    8602            0 :                   _o1[0] = captures[0];
    8603            0 :                   _o1[1] = captures[4];
    8604            0 :                   _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, type, _o1[0], _o1[1]);
    8605            0 :                   if (EXPR_P (_r1))
    8606            0 :                     goto next_after_fail1651;
    8607            0 :                   res_op2 = _r1;
    8608              :                 }
    8609            0 :                 tree _r;
    8610            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8611            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    8612            0 :                 return _r;
    8613              :               }
    8614            0 : next_after_fail1651:;
    8615              :             }
    8616              :         }
    8617            0 :         break;
    8618              :       }
    8619              :     default:;
    8620              :     }
    8621              :   return NULL_TREE;
    8622              : }
    8623              : 
    8624              : tree
    8625            0 : generic_simplify_ROUND_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    8626              : {
    8627            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    8628            0 :   if (integer_zerop (_p0))
    8629              :     {
    8630            0 :       {
    8631            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8632            0 :         tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
    8633            0 :         if (res) return res;
    8634              :       }
    8635              :     }
    8636            0 :   if (integer_onep (_p1))
    8637              :     {
    8638            0 :       {
    8639            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8640            0 :         tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
    8641            0 :         if (res) return res;
    8642              :       }
    8643              :     }
    8644            0 :   if (integer_minus_onep (_p1))
    8645              :     {
    8646            0 :       {
    8647            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8648            0 :         tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
    8649            0 :         if (res) return res;
    8650              :       }
    8651              :     }
    8652            0 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8653              :     {
    8654            0 :       {
    8655            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8656            0 :         tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
    8657            0 :         if (res) return res;
    8658              :       }
    8659              :     }
    8660            0 :   switch (TREE_CODE (_p0))
    8661              :     {
    8662            0 :     case ROUND_MOD_EXPR:
    8663            0 :       {
    8664            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8665            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8666            0 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    8667              :           {
    8668            0 :             {
    8669            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8670            0 :               tree res = generic_simplify_330 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
    8671            0 :               if (res) return res;
    8672              :             }
    8673              :           }
    8674              :         break;
    8675              :       }
    8676            0 :     case MULT_EXPR:
    8677            0 :       {
    8678            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8679            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8680            0 :         switch (TREE_CODE (_q21))
    8681              :           {
    8682            0 :           case INTEGER_CST:
    8683            0 :             {
    8684            0 :               switch (TREE_CODE (_p1))
    8685              :                 {
    8686            0 :                 case INTEGER_CST:
    8687            0 :                   {
    8688            0 :                     {
    8689            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8690            0 :                       tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
    8691            0 :                       if (res) return res;
    8692              :                     }
    8693            0 :                     break;
    8694              :                   }
    8695              :                 default:;
    8696              :                 }
    8697              :               break;
    8698              :             }
    8699              :           default:;
    8700              :           }
    8701              :         break;
    8702              :       }
    8703            0 :     case VEC_COND_EXPR:
    8704            0 :       {
    8705            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8706            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8707            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8708            0 :         switch (TREE_CODE (_p1))
    8709              :           {
    8710            0 :           case VEC_COND_EXPR:
    8711            0 :             {
    8712            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8713            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8714            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8715            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    8716              :                 {
    8717            0 :                   {
    8718            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    8719            0 :                     if (VECTOR_TYPE_P (type)
    8720            0 :  && (TREE_CODE_CLASS (ROUND_MOD_EXPR) != tcc_comparison
    8721              :  || types_match (type, TREE_TYPE (captures[2]))
    8722              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8723              :  || (optimize_vectors_before_lowering_p ()
    8724              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8725              : )
    8726              :                       {
    8727            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1652;
    8728            0 :                         {
    8729            0 :                           tree res_op0;
    8730            0 :                           res_op0 = captures[1];
    8731            0 :                           tree res_op1;
    8732            0 :                           {
    8733            0 :                             tree _o1[2], _r1;
    8734            0 :                             _o1[0] = captures[2];
    8735            0 :                             _o1[1] = captures[5];
    8736            0 :                             _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, type, _o1[0], _o1[1]);
    8737            0 :                             if (EXPR_P (_r1))
    8738            0 :                               goto next_after_fail1652;
    8739            0 :                             res_op1 = _r1;
    8740              :                           }
    8741            0 :                           tree res_op2;
    8742            0 :                           {
    8743            0 :                             tree _o1[2], _r1;
    8744            0 :                             _o1[0] = captures[3];
    8745            0 :                             _o1[1] = captures[6];
    8746            0 :                             _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, type, _o1[0], _o1[1]);
    8747            0 :                             if (EXPR_P (_r1))
    8748            0 :                               goto next_after_fail1652;
    8749            0 :                             res_op2 = _r1;
    8750              :                           }
    8751            0 :                           tree _r;
    8752            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8753            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8754            0 :                           return _r;
    8755              :                         }
    8756            0 : next_after_fail1652:;
    8757              :                       }
    8758              :                   }
    8759              :                 }
    8760              :               break;
    8761              :             }
    8762            0 :           default:;
    8763              :           }
    8764            0 :         {
    8765            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    8766            0 :           if (VECTOR_TYPE_P (type)
    8767            0 :  && (TREE_CODE_CLASS (ROUND_MOD_EXPR) != tcc_comparison
    8768              :  || types_match (type, TREE_TYPE (captures[2]))
    8769              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8770              :  || (optimize_vectors_before_lowering_p ()
    8771              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8772              : )
    8773              :             {
    8774            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1653;
    8775            0 :               {
    8776            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1653;
    8777            0 :                 tree res_op0;
    8778            0 :                 res_op0 = captures[1];
    8779            0 :                 tree res_op1;
    8780            0 :                 {
    8781            0 :                   tree _o1[2], _r1;
    8782            0 :                   _o1[0] = captures[2];
    8783            0 :                   _o1[1] = unshare_expr (captures[4]);
    8784            0 :                   _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, type, _o1[0], _o1[1]);
    8785            0 :                   if (EXPR_P (_r1))
    8786            0 :                     goto next_after_fail1653;
    8787            0 :                   res_op1 = _r1;
    8788              :                 }
    8789            0 :                 tree res_op2;
    8790            0 :                 {
    8791            0 :                   tree _o1[2], _r1;
    8792            0 :                   _o1[0] = captures[3];
    8793            0 :                   _o1[1] = captures[4];
    8794            0 :                   _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, type, _o1[0], _o1[1]);
    8795            0 :                   if (EXPR_P (_r1))
    8796            0 :                     goto next_after_fail1653;
    8797            0 :                   res_op2 = _r1;
    8798              :                 }
    8799            0 :                 tree _r;
    8800            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8801            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
    8802            0 :                 return _r;
    8803              :               }
    8804            0 : next_after_fail1653:;
    8805              :             }
    8806              :         }
    8807            0 :         break;
    8808              :       }
    8809            0 :     default:;
    8810              :     }
    8811            0 :   switch (TREE_CODE (_p1))
    8812              :     {
    8813            0 :     case VEC_COND_EXPR:
    8814            0 :       {
    8815            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8816            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8817            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    8818            0 :         {
    8819            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    8820            0 :           if (VECTOR_TYPE_P (type)
    8821            0 :  && (TREE_CODE_CLASS (ROUND_MOD_EXPR) != tcc_comparison
    8822              :  || types_match (type, TREE_TYPE (captures[3]))
    8823              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    8824              :  || (optimize_vectors_before_lowering_p ()
    8825              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    8826              : )
    8827              :             {
    8828            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1654;
    8829            0 :               {
    8830            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1654;
    8831            0 :                 tree res_op0;
    8832            0 :                 res_op0 = captures[2];
    8833            0 :                 tree res_op1;
    8834            0 :                 {
    8835            0 :                   tree _o1[2], _r1;
    8836            0 :                   _o1[0] = unshare_expr (captures[0]);
    8837            0 :                   _o1[1] = captures[3];
    8838            0 :                   _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, type, _o1[0], _o1[1]);
    8839            0 :                   if (EXPR_P (_r1))
    8840            0 :                     goto next_after_fail1654;
    8841            0 :                   res_op1 = _r1;
    8842              :                 }
    8843            0 :                 tree res_op2;
    8844            0 :                 {
    8845            0 :                   tree _o1[2], _r1;
    8846            0 :                   _o1[0] = captures[0];
    8847            0 :                   _o1[1] = captures[4];
    8848            0 :                   _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, type, _o1[0], _o1[1]);
    8849            0 :                   if (EXPR_P (_r1))
    8850            0 :                     goto next_after_fail1654;
    8851            0 :                   res_op2 = _r1;
    8852              :                 }
    8853            0 :                 tree _r;
    8854            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8855            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    8856            0 :                 return _r;
    8857              :               }
    8858            0 : next_after_fail1654:;
    8859              :             }
    8860              :         }
    8861            0 :         break;
    8862              :       }
    8863              :     default:;
    8864              :     }
    8865              :   return NULL_TREE;
    8866              : }
    8867              : 
    8868              : tree
    8869      2056136 : generic_simplify_TRUNC_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    8870              : {
    8871      2056136 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    8872      2056136 :   if (integer_zerop (_p0))
    8873              :     {
    8874          924 :       {
    8875          924 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8876          924 :         tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    8877          924 :         if (res) return res;
    8878              :       }
    8879              :     }
    8880      2055351 :   if (integer_onep (_p1))
    8881              :     {
    8882       212870 :       {
    8883       212870 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8884       212870 :         tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    8885       212870 :         if (res) return res;
    8886              :       }
    8887              :     }
    8888      1842481 :   if (integer_minus_onep (_p1))
    8889              :     {
    8890          529 :       {
    8891          529 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8892          529 :         tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    8893          529 :         if (res) return res;
    8894              :       }
    8895              :     }
    8896      1842461 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8897              :     {
    8898          232 :       {
    8899          232 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8900          232 :         tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    8901          232 :         if (res) return res;
    8902              :       }
    8903              :     }
    8904      1842368 :   switch (TREE_CODE (_p0))
    8905              :     {
    8906          107 :     case TRUNC_MOD_EXPR:
    8907          107 :       {
    8908          107 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8909          107 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8910          107 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    8911              :           {
    8912           52 :             {
    8913           52 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8914           52 :               tree res = generic_simplify_330 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    8915           52 :               if (res) return res;
    8916              :             }
    8917              :           }
    8918              :         break;
    8919              :       }
    8920         7647 :     case MULT_EXPR:
    8921         7647 :       {
    8922         7647 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8923         7647 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8924         7647 :         switch (TREE_CODE (_q21))
    8925              :           {
    8926         7554 :           case INTEGER_CST:
    8927         7554 :             {
    8928         7554 :               switch (TREE_CODE (_p1))
    8929              :                 {
    8930         7532 :                 case INTEGER_CST:
    8931         7532 :                   {
    8932         7532 :                     {
    8933         7532 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8934         7532 :                       tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    8935         7532 :                       if (res) return res;
    8936              :                     }
    8937         7532 :                     break;
    8938              :                   }
    8939              :                 default:;
    8940              :                 }
    8941              :               break;
    8942              :             }
    8943              :           default:;
    8944              :           }
    8945              :         break;
    8946              :       }
    8947      1842316 :     default:;
    8948              :     }
    8949      1842316 :   switch (TREE_CODE (_p1))
    8950              :     {
    8951      1571318 :     case INTEGER_CST:
    8952      1571318 :       {
    8953      1571318 :         {
    8954      1571318 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8955      1571318 :           if (TYPE_SIGN (type) == SIGNED
    8956       278857 :  && !TREE_OVERFLOW (captures[1])
    8957      1571322 :  && wi::neg_p (wi::to_wide (captures[1]))
    8958          313 :  && !TYPE_OVERFLOW_TRAPS (type)
    8959      1571631 :  && !sign_bit_p (captures[1], captures[1])
    8960              : )
    8961              :             {
    8962          309 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1655;
    8963          309 :               {
    8964          309 :                 tree res_op0;
    8965          309 :                 res_op0 = captures[0];
    8966          309 :                 tree res_op1;
    8967          309 :                 {
    8968          309 :                   tree _o1[1], _r1;
    8969          309 :                   _o1[0] = captures[1];
    8970          309 :                   _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    8971          309 :                   res_op1 = _r1;
    8972              :                 }
    8973          309 :                 tree _r;
    8974          309 :                 _r = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, res_op0, res_op1);
    8975          309 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
    8976          309 :                 return _r;
    8977              :               }
    8978            0 : next_after_fail1655:;
    8979              :             }
    8980              :         }
    8981      1571009 :         break;
    8982              :       }
    8983        56426 :     CASE_CONVERT:
    8984        56426 :       {
    8985        56426 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8986        56426 :         switch (TREE_CODE (_q30))
    8987              :           {
    8988            0 :           case NEGATE_EXPR:
    8989            0 :             {
    8990            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8991            0 :               {
    8992            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
    8993            0 :                 tree res = generic_simplify_417 (loc, type, _p0, _p1, captures);
    8994            0 :                 if (res) return res;
    8995              :               }
    8996            0 :               break;
    8997              :             }
    8998        56426 :           default:;
    8999              :           }
    9000        56426 :       {
    9001        56426 :         tree _q30_pops[1];
    9002        56426 :         if (tree_power_of_two_cand (_q30, _q30_pops))
    9003              :           {
    9004            7 :             tree _q40 = _q30_pops[0];
    9005            7 :             {
    9006            7 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
    9007            7 :               tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    9008            7 :               if (res) return res;
    9009              :             }
    9010              :           }
    9011              :       }
    9012        56419 :         break;
    9013              :       }
    9014           94 :     case NEGATE_EXPR:
    9015           94 :       {
    9016           94 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9017           94 :         {
    9018           94 :           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    9019           94 :           tree res = generic_simplify_417 (loc, type, _p0, _p1, captures);
    9020           94 :           if (res) return res;
    9021              :         }
    9022           94 :         break;
    9023              :       }
    9024      1842000 :     default:;
    9025              :     }
    9026      1842000 : {
    9027      1842000 :   tree _p1_pops[1];
    9028      1842000 :   if (tree_power_of_two_cand (_p1, _p1_pops))
    9029              :     {
    9030      1571018 :       tree _q30 = _p1_pops[0];
    9031      1571018 :       {
    9032      1571018 :         tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    9033      1571018 :         tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    9034      1571018 :         if (res) return res;
    9035              :       }
    9036              :     }
    9037              : }
    9038       892691 :   switch (TREE_CODE (_p0))
    9039              :     {
    9040            0 :     case VEC_COND_EXPR:
    9041            0 :       {
    9042            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9043            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9044            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    9045            0 :         switch (TREE_CODE (_p1))
    9046              :           {
    9047            0 :           case VEC_COND_EXPR:
    9048            0 :             {
    9049            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    9050            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    9051            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    9052            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    9053              :                 {
    9054            0 :                   {
    9055            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    9056            0 :                     if (VECTOR_TYPE_P (type)
    9057            0 :  && (TREE_CODE_CLASS (TRUNC_MOD_EXPR) != tcc_comparison
    9058              :  || types_match (type, TREE_TYPE (captures[2]))
    9059              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9060              :  || (optimize_vectors_before_lowering_p ()
    9061              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9062              : )
    9063              :                       {
    9064            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1656;
    9065            0 :                         {
    9066            0 :                           tree res_op0;
    9067            0 :                           res_op0 = captures[1];
    9068            0 :                           tree res_op1;
    9069            0 :                           {
    9070            0 :                             tree _o1[2], _r1;
    9071            0 :                             _o1[0] = captures[2];
    9072            0 :                             _o1[1] = captures[5];
    9073            0 :                             _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, _o1[0], _o1[1]);
    9074            0 :                             if (EXPR_P (_r1))
    9075            0 :                               goto next_after_fail1656;
    9076            0 :                             res_op1 = _r1;
    9077              :                           }
    9078            0 :                           tree res_op2;
    9079            0 :                           {
    9080            0 :                             tree _o1[2], _r1;
    9081            0 :                             _o1[0] = captures[3];
    9082            0 :                             _o1[1] = captures[6];
    9083            0 :                             _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, _o1[0], _o1[1]);
    9084            0 :                             if (EXPR_P (_r1))
    9085            0 :                               goto next_after_fail1656;
    9086            0 :                             res_op2 = _r1;
    9087              :                           }
    9088            0 :                           tree _r;
    9089            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9090            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    9091            0 :                           return _r;
    9092              :                         }
    9093            0 : next_after_fail1656:;
    9094              :                       }
    9095              :                   }
    9096              :                 }
    9097              :               break;
    9098              :             }
    9099            0 :           default:;
    9100              :           }
    9101            0 :         {
    9102            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    9103            0 :           if (VECTOR_TYPE_P (type)
    9104            0 :  && (TREE_CODE_CLASS (TRUNC_MOD_EXPR) != tcc_comparison
    9105              :  || types_match (type, TREE_TYPE (captures[2]))
    9106              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9107              :  || (optimize_vectors_before_lowering_p ()
    9108              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9109              : )
    9110              :             {
    9111            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1657;
    9112            0 :               {
    9113            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1657;
    9114            0 :                 tree res_op0;
    9115            0 :                 res_op0 = captures[1];
    9116            0 :                 tree res_op1;
    9117            0 :                 {
    9118            0 :                   tree _o1[2], _r1;
    9119            0 :                   _o1[0] = captures[2];
    9120            0 :                   _o1[1] = unshare_expr (captures[4]);
    9121            0 :                   _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, _o1[0], _o1[1]);
    9122            0 :                   if (EXPR_P (_r1))
    9123            0 :                     goto next_after_fail1657;
    9124            0 :                   res_op1 = _r1;
    9125              :                 }
    9126            0 :                 tree res_op2;
    9127            0 :                 {
    9128            0 :                   tree _o1[2], _r1;
    9129            0 :                   _o1[0] = captures[3];
    9130            0 :                   _o1[1] = captures[4];
    9131            0 :                   _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, _o1[0], _o1[1]);
    9132            0 :                   if (EXPR_P (_r1))
    9133            0 :                     goto next_after_fail1657;
    9134            0 :                   res_op2 = _r1;
    9135              :                 }
    9136            0 :                 tree _r;
    9137            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9138            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
    9139            0 :                 return _r;
    9140              :               }
    9141            0 : next_after_fail1657:;
    9142              :             }
    9143              :         }
    9144            0 :         break;
    9145              :       }
    9146       892691 :     default:;
    9147              :     }
    9148       892691 :   switch (TREE_CODE (_p1))
    9149              :     {
    9150            7 :     case VEC_COND_EXPR:
    9151            7 :       {
    9152            7 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9153            7 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9154            7 :         tree _q32 = TREE_OPERAND (_p1, 2);
    9155            7 :         {
    9156            7 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    9157            7 :           if (VECTOR_TYPE_P (type)
    9158            7 :  && (TREE_CODE_CLASS (TRUNC_MOD_EXPR) != tcc_comparison
    9159              :  || types_match (type, TREE_TYPE (captures[3]))
    9160              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    9161              :  || (optimize_vectors_before_lowering_p ()
    9162              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    9163              : )
    9164              :             {
    9165            7 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1658;
    9166            7 :               {
    9167            7 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1658;
    9168            0 :                 tree res_op0;
    9169            0 :                 res_op0 = captures[2];
    9170            0 :                 tree res_op1;
    9171            0 :                 {
    9172            0 :                   tree _o1[2], _r1;
    9173            0 :                   _o1[0] = unshare_expr (captures[0]);
    9174            0 :                   _o1[1] = captures[3];
    9175            0 :                   _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, _o1[0], _o1[1]);
    9176            0 :                   if (EXPR_P (_r1))
    9177            0 :                     goto next_after_fail1658;
    9178            0 :                   res_op1 = _r1;
    9179              :                 }
    9180            0 :                 tree res_op2;
    9181            0 :                 {
    9182            0 :                   tree _o1[2], _r1;
    9183            0 :                   _o1[0] = captures[0];
    9184            0 :                   _o1[1] = captures[4];
    9185            0 :                   _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, _o1[0], _o1[1]);
    9186            0 :                   if (EXPR_P (_r1))
    9187            0 :                     goto next_after_fail1658;
    9188            0 :                   res_op2 = _r1;
    9189              :                 }
    9190            0 :                 tree _r;
    9191            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9192            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    9193            0 :                 return _r;
    9194              :               }
    9195            7 : next_after_fail1658:;
    9196              :             }
    9197              :         }
    9198            7 :         break;
    9199              :       }
    9200              :     default:;
    9201              :     }
    9202              :   return NULL_TREE;
    9203              : }
    9204              : 
    9205              : tree
    9206       983595 : generic_simplify_RSHIFT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    9207              : {
    9208       983595 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    9209       983595 :   switch (TREE_CODE (_p1))
    9210              :     {
    9211          119 :     case TRUNC_MOD_EXPR:
    9212          119 :       {
    9213          119 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9214          119 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9215          119 :         {
    9216          119 :           tree _q31_pops[1];
    9217          119 :           if (tree_power_of_two_cand (_q31, _q31_pops))
    9218              :             {
    9219          111 :               tree _q50 = _q31_pops[0];
    9220          111 :               {
    9221          111 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
    9222          111 :                 tree res = generic_simplify_418 (loc, type, _p0, _p1, captures, RSHIFT_EXPR, TRUNC_MOD_EXPR);
    9223          111 :                 if (res) return res;
    9224              :               }
    9225              :             }
    9226              :         }
    9227           14 :         break;
    9228              :       }
    9229            0 :     case FLOOR_MOD_EXPR:
    9230            0 :       {
    9231            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9232            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9233            0 :         {
    9234            0 :           tree _q31_pops[1];
    9235            0 :           if (tree_power_of_two_cand (_q31, _q31_pops))
    9236              :             {
    9237            0 :               tree _q50 = _q31_pops[0];
    9238            0 :               {
    9239            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
    9240            0 :                 tree res = generic_simplify_418 (loc, type, _p0, _p1, captures, RSHIFT_EXPR, FLOOR_MOD_EXPR);
    9241            0 :                 if (res) return res;
    9242              :               }
    9243              :             }
    9244              :         }
    9245            0 :         break;
    9246              :       }
    9247       983490 :     default:;
    9248              :     }
    9249       983490 : if (uniform_integer_cst_p (_p1))
    9250              :   {
    9251       786840 :     {
    9252       786840 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9253       786840 :       tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
    9254       786840 :       if (res) return res;
    9255              :     }
    9256              :   }
    9257       982733 :   switch (TREE_CODE (_p0))
    9258              :     {
    9259           58 :     case NEGATE_EXPR:
    9260           58 :       {
    9261           58 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9262           58 :         switch (TREE_CODE (_p1))
    9263              :           {
    9264           57 :           case INTEGER_CST:
    9265           57 :             {
    9266           57 :               {
    9267           57 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9268           57 :                 if (!TYPE_UNSIGNED (type)
    9269           57 :  && TYPE_OVERFLOW_UNDEFINED (type)
    9270              : )
    9271              :                   {
    9272           32 :                     {
    9273           32 :  tree stype = TREE_TYPE (captures[2]);
    9274           32 :  tree bt = truth_type_for (type);
    9275           32 :  tree zeros = build_zero_cst (type);
    9276           32 :  tree INTEGER_CST = NULL_TREE;
    9277           32 :                         if (INTEGRAL_TYPE_P (type)
    9278              :  && canonicalize_math_after_vectorization_p ()
    9279              :  && wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (type) - 1)
    9280              : )
    9281              :                           {
    9282              :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1667;
    9283              :                             {
    9284              :                               tree res_op0;
    9285              :                               {
    9286              :                                 tree _o1[1], _r1;
    9287              :                                 {
    9288              :                                   tree _o2[2], _r2;
    9289              :                                   _o2[0] = captures[1];
    9290              :                                   _o2[1] =  zeros;
    9291              :                                   _r2 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o2[0], _o2[1]);
    9292              :                                   _o1[0] = _r2;
    9293              :                                 }
    9294              :                                 if (TREE_TYPE (_o1[0]) != type)
    9295              :                                   {
    9296              :                                     _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    9297              :                                   }
    9298              :                                 else
    9299              :                                   _r1 = _o1[0];
    9300              :                                 res_op0 = _r1;
    9301              :                               }
    9302              :                               tree _r;
    9303              :                               _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    9304              :                               if (TREE_SIDE_EFFECTS (captures[2]))
    9305              :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    9306              :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
    9307              :                               return _r;
    9308              :                             }
    9309              : next_after_fail1667:;
    9310              :                           }
    9311              :                         else
    9312              :                           {
    9313            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
    9314            0 :  && TYPE_MODE (bt) == TYPE_MODE (type)
    9315            0 :  && expand_vec_cmp_expr_p (type, bt, GT_EXPR)
    9316            0 :  && (INTEGER_CST = uniform_integer_cst_p (captures[2])) != NULL
    9317           32 :  && wi::eq_p (wi::to_wide (INTEGER_CST), element_precision (type) - 1)
    9318              : )
    9319              :                               {
    9320            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1668;
    9321            0 :                                 {
    9322            0 :                                   tree res_op0;
    9323            0 :                                   {
    9324            0 :                                     tree _o1[2], _r1;
    9325            0 :                                     _o1[0] = captures[1];
    9326            0 :                                     _o1[1] =  zeros;
    9327            0 :                                     _r1 = fold_build2_loc (loc, GT_EXPR, bt, _o1[0], _o1[1]);
    9328            0 :                                     res_op0 = _r1;
    9329              :                                   }
    9330            0 :                                   tree _r;
    9331            0 :                                   _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    9332            0 :                                   if (TREE_SIDE_EFFECTS (captures[2]))
    9333            0 :                                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    9334            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1013, __FILE__, __LINE__, true);
    9335            0 :                                   return _r;
    9336              :                                 }
    9337            0 : next_after_fail1668:;
    9338              :                               }
    9339              :                           }
    9340              :                     }
    9341              :                   }
    9342              :               }
    9343           57 :               break;
    9344              :             }
    9345            0 :           case VECTOR_CST:
    9346            0 :             {
    9347            0 :               {
    9348            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9349            0 :                 if (!TYPE_UNSIGNED (type)
    9350            0 :  && TYPE_OVERFLOW_UNDEFINED (type)
    9351              : )
    9352              :                   {
    9353            0 :                     {
    9354            0 :  tree stype = TREE_TYPE (captures[2]);
    9355            0 :  tree bt = truth_type_for (type);
    9356            0 :  tree zeros = build_zero_cst (type);
    9357            0 :  tree VECTOR_CST = NULL_TREE;
    9358            0 :                         if (INTEGRAL_TYPE_P (type)
    9359              :  && canonicalize_math_after_vectorization_p ()
    9360              :  && wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (type) - 1)
    9361              : )
    9362              :                           {
    9363              :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1669;
    9364              :                             {
    9365              :                               tree res_op0;
    9366              :                               {
    9367              :                                 tree _o1[1], _r1;
    9368              :                                 {
    9369              :                                   tree _o2[2], _r2;
    9370              :                                   _o2[0] = captures[1];
    9371              :                                   _o2[1] =  zeros;
    9372              :                                   _r2 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o2[0], _o2[1]);
    9373              :                                   _o1[0] = _r2;
    9374              :                                 }
    9375              :                                 if (TREE_TYPE (_o1[0]) != type)
    9376              :                                   {
    9377              :                                     _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    9378              :                                   }
    9379              :                                 else
    9380              :                                   _r1 = _o1[0];
    9381              :                                 res_op0 = _r1;
    9382              :                               }
    9383              :                               tree _r;
    9384              :                               _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    9385              :                               if (TREE_SIDE_EFFECTS (captures[2]))
    9386              :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    9387              :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
    9388              :                               return _r;
    9389              :                             }
    9390              : next_after_fail1669:;
    9391              :                           }
    9392              :                         else
    9393              :                           {
    9394            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
    9395            0 :  && TYPE_MODE (bt) == TYPE_MODE (type)
    9396            0 :  && expand_vec_cmp_expr_p (type, bt, GT_EXPR)
    9397            0 :  && (VECTOR_CST = uniform_integer_cst_p (captures[2])) != NULL
    9398            0 :  && wi::eq_p (wi::to_wide (VECTOR_CST), element_precision (type) - 1)
    9399              : )
    9400              :                               {
    9401            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1670;
    9402            0 :                                 {
    9403            0 :                                   tree res_op0;
    9404            0 :                                   {
    9405            0 :                                     tree _o1[2], _r1;
    9406            0 :                                     _o1[0] = captures[1];
    9407            0 :                                     _o1[1] =  zeros;
    9408            0 :                                     _r1 = fold_build2_loc (loc, GT_EXPR, bt, _o1[0], _o1[1]);
    9409            0 :                                     res_op0 = _r1;
    9410              :                                   }
    9411            0 :                                   tree _r;
    9412            0 :                                   _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    9413            0 :                                   if (TREE_SIDE_EFFECTS (captures[2]))
    9414            0 :                                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    9415            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1013, __FILE__, __LINE__, true);
    9416            0 :                                   return _r;
    9417              :                                 }
    9418            0 : next_after_fail1670:;
    9419              :                               }
    9420              :                           }
    9421              :                     }
    9422              :                   }
    9423              :               }
    9424            0 :               break;
    9425              :             }
    9426              :           default:;
    9427              :           }
    9428              :         break;
    9429              :       }
    9430          441 :     case LSHIFT_EXPR:
    9431          441 :       {
    9432          441 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9433          441 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9434          441 :         switch (TREE_CODE (_q21))
    9435              :           {
    9436          362 :           case INTEGER_CST:
    9437          362 :             {
    9438          362 :               if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
    9439              :                 {
    9440           67 :                   {
    9441           67 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q21 };
    9442           67 :                     tree res = generic_simplify_428 (loc, type, _p0, _p1, captures);
    9443           67 :                     if (res) return res;
    9444              :                   }
    9445              :                 }
    9446              :               break;
    9447              :             }
    9448              :           default:;
    9449              :           }
    9450              :         break;
    9451              :       }
    9452       982706 :     default:;
    9453              :     }
    9454       982706 : {
    9455       982706 :   tree _p0_pops[1];
    9456       982706 :   if (tree_nop_convert (_p0, _p0_pops))
    9457              :     {
    9458       159194 :       tree _q20 = _p0_pops[0];
    9459       159194 :       switch (TREE_CODE (_q20))
    9460              :         {
    9461           20 :         case LSHIFT_EXPR:
    9462           20 :           {
    9463           20 :             tree _q30 = TREE_OPERAND (_q20, 0);
    9464           20 :             tree _q31 = TREE_OPERAND (_q20, 1);
    9465           20 :             switch (TREE_CODE (_q31))
    9466              :               {
    9467            0 :               case INTEGER_CST:
    9468            0 :                 {
    9469            0 :                   if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
    9470              :                     {
    9471            0 :                       {
    9472            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p1, _q31 };
    9473            0 :                         tree res = generic_simplify_428 (loc, type, _p0, _p1, captures);
    9474            0 :                         if (res) return res;
    9475              :                       }
    9476              :                     }
    9477              :                   break;
    9478              :                 }
    9479              :               default:;
    9480              :               }
    9481              :             break;
    9482              :           }
    9483              :         default:;
    9484              :         }
    9485              :     }
    9486              : }
    9487       982706 : if (integer_all_onesp (_p0))
    9488              :   {
    9489        11275 :     {
    9490        11275 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9491        11275 :       if (!TYPE_UNSIGNED (type)
    9492              : )
    9493              :         {
    9494          119 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1671;
    9495          119 :           {
    9496          119 :             tree _r;
    9497          119 :             _r = captures[0];
    9498          119 :             if (TREE_SIDE_EFFECTS (captures[1]))
    9499            1 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    9500          119 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1014, __FILE__, __LINE__, true);
    9501          119 :             return _r;
    9502              :           }
    9503            0 : next_after_fail1671:;
    9504              :         }
    9505              :     }
    9506              :   }
    9507       982587 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    9508              :     {
    9509           25 :       {
    9510           25 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    9511           25 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1672;
    9512           25 :         {
    9513           25 :           tree _r;
    9514           25 :           _r =  build_zero_cst (type);
    9515           25 :           if (TREE_SIDE_EFFECTS (captures[0]))
    9516            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    9517           25 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1015, __FILE__, __LINE__, true);
    9518           25 :           return _r;
    9519              :         }
    9520            0 : next_after_fail1672:;
    9521              :       }
    9522              :     }
    9523       982562 :   if (integer_zerop (_p1))
    9524              :     {
    9525         1299 :       {
    9526         1299 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    9527         1299 :         tree res = generic_simplify_421 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
    9528         1299 :         if (res) return res;
    9529              :       }
    9530              :     }
    9531       981263 :   if (integer_zerop (_p0))
    9532              :     {
    9533          152 :       {
    9534          152 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9535          152 :         tree res = generic_simplify_422 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
    9536          152 :         if (res) return res;
    9537              :       }
    9538              :     }
    9539       981111 :   switch (TREE_CODE (_p1))
    9540              :     {
    9541            0 :     case VECTOR_CST:
    9542            0 :       {
    9543            0 :         {
    9544            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9545            0 :           tree res = generic_simplify_423 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
    9546            0 :           if (res) return res;
    9547              :         }
    9548            0 :         break;
    9549              :       }
    9550            0 :     case CONSTRUCTOR:
    9551            0 :       {
    9552            0 :         {
    9553            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9554            0 :           tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
    9555            0 :           if (res) return res;
    9556              :         }
    9557            0 :         break;
    9558              :       }
    9559       981111 :     default:;
    9560              :     }
    9561       981111 :   switch (TREE_CODE (_p0))
    9562              :     {
    9563          118 :     case RSHIFT_EXPR:
    9564          118 :       {
    9565          118 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9566          118 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9567          118 :         switch (TREE_CODE (_q21))
    9568              :           {
    9569           73 :           case INTEGER_CST:
    9570           73 :             {
    9571           73 :               switch (TREE_CODE (_p1))
    9572              :                 {
    9573           47 :                 case INTEGER_CST:
    9574           47 :                   {
    9575           47 :                     {
    9576           47 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    9577           47 :                       tree res = generic_simplify_425 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
    9578           47 :                       if (res) return res;
    9579              :                     }
    9580            0 :                     break;
    9581              :                   }
    9582              :                 default:;
    9583              :                 }
    9584              :               break;
    9585              :             }
    9586              :           default:;
    9587              :           }
    9588              :         break;
    9589              :       }
    9590       182429 :     CASE_CONVERT:
    9591       182429 :       {
    9592       182429 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9593       182429 :         switch (TREE_CODE (_q20))
    9594              :           {
    9595            6 :           case BIT_AND_EXPR:
    9596            6 :             {
    9597            6 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9598            6 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9599            6 :               switch (TREE_CODE (_q31))
    9600              :                 {
    9601            0 :                 case INTEGER_CST:
    9602            0 :                   {
    9603            0 :                     switch (TREE_CODE (_p1))
    9604              :                       {
    9605            0 :                       case INTEGER_CST:
    9606            0 :                         {
    9607            0 :                           {
    9608            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    9609            0 :                             tree res = generic_simplify_426 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, RSHIFT_EXPR);
    9610            0 :                             if (res) return res;
    9611              :                           }
    9612            0 :                           break;
    9613              :                         }
    9614              :                       default:;
    9615              :                       }
    9616              :                     break;
    9617              :                   }
    9618              :                 default:;
    9619              :                 }
    9620              :               break;
    9621              :             }
    9622           14 :           case BIT_XOR_EXPR:
    9623           14 :             {
    9624           14 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9625           14 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9626           14 :               switch (TREE_CODE (_q31))
    9627              :                 {
    9628            0 :                 case INTEGER_CST:
    9629            0 :                   {
    9630            0 :                     switch (TREE_CODE (_p1))
    9631              :                       {
    9632            0 :                       case INTEGER_CST:
    9633            0 :                         {
    9634            0 :                           {
    9635            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    9636            0 :                             tree res = generic_simplify_426 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, RSHIFT_EXPR);
    9637            0 :                             if (res) return res;
    9638              :                           }
    9639            0 :                           break;
    9640              :                         }
    9641              :                       default:;
    9642              :                       }
    9643              :                     break;
    9644              :                   }
    9645              :                 default:;
    9646              :                 }
    9647              :               break;
    9648              :             }
    9649           43 :           case BIT_IOR_EXPR:
    9650           43 :             {
    9651           43 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9652           43 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9653           43 :               switch (TREE_CODE (_q31))
    9654              :                 {
    9655           24 :                 case INTEGER_CST:
    9656           24 :                   {
    9657           24 :                     switch (TREE_CODE (_p1))
    9658              :                       {
    9659            7 :                       case INTEGER_CST:
    9660            7 :                         {
    9661            7 :                           {
    9662            7 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    9663            7 :                             tree res = generic_simplify_426 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, RSHIFT_EXPR);
    9664            7 :                             if (res) return res;
    9665              :                           }
    9666            0 :                           break;
    9667              :                         }
    9668              :                       default:;
    9669              :                       }
    9670              :                     break;
    9671              :                   }
    9672              :                 default:;
    9673              :                 }
    9674              :               break;
    9675              :             }
    9676          131 :           case CALL_EXPR:
    9677          131 :             switch (get_call_combined_fn (_q20))
    9678              :               {
    9679            0 :               case CFN_BSWAP:
    9680            0 :                 if (call_expr_nargs (_q20) == 1)
    9681              :     {
    9682            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    9683            0 :                     switch (TREE_CODE (_p1))
    9684              :                       {
    9685            0 :                       case INTEGER_CST:
    9686            0 :                         {
    9687            0 :                           {
    9688            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    9689            0 :                             tree res = generic_simplify_429 (loc, type, _p0, _p1, captures, CFN_BSWAP);
    9690            0 :                             if (res) return res;
    9691              :                           }
    9692            0 :                           break;
    9693              :                         }
    9694              :                       default:;
    9695              :                       }
    9696              :                   }
    9697              :                 break;
    9698            0 :               case CFN_BUILT_IN_BSWAP128:
    9699            0 :                 if (call_expr_nargs (_q20) == 1)
    9700              :     {
    9701            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    9702            0 :                     switch (TREE_CODE (_p1))
    9703              :                       {
    9704            0 :                       case INTEGER_CST:
    9705            0 :                         {
    9706            0 :                           {
    9707            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    9708            0 :                             tree res = generic_simplify_429 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
    9709            0 :                             if (res) return res;
    9710              :                           }
    9711            0 :                           break;
    9712              :                         }
    9713              :                       default:;
    9714              :                       }
    9715              :                   }
    9716              :                 break;
    9717            8 :               case CFN_BUILT_IN_BSWAP16:
    9718            8 :                 if (call_expr_nargs (_q20) == 1)
    9719              :     {
    9720            8 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    9721            8 :                     switch (TREE_CODE (_p1))
    9722              :                       {
    9723            7 :                       case INTEGER_CST:
    9724            7 :                         {
    9725            7 :                           {
    9726            7 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    9727            7 :                             tree res = generic_simplify_429 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
    9728            7 :                             if (res) return res;
    9729              :                           }
    9730            2 :                           break;
    9731              :                         }
    9732              :                       default:;
    9733              :                       }
    9734              :                   }
    9735              :                 break;
    9736           13 :               case CFN_BUILT_IN_BSWAP32:
    9737           13 :                 if (call_expr_nargs (_q20) == 1)
    9738              :     {
    9739           13 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    9740           13 :                     switch (TREE_CODE (_p1))
    9741              :                       {
    9742           13 :                       case INTEGER_CST:
    9743           13 :                         {
    9744           13 :                           {
    9745           13 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    9746           13 :                             tree res = generic_simplify_429 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
    9747           13 :                             if (res) return res;
    9748              :                           }
    9749            9 :                           break;
    9750              :                         }
    9751              :                       default:;
    9752              :                       }
    9753              :                   }
    9754              :                 break;
    9755           18 :               case CFN_BUILT_IN_BSWAP64:
    9756           18 :                 if (call_expr_nargs (_q20) == 1)
    9757              :     {
    9758           18 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    9759           18 :                     switch (TREE_CODE (_p1))
    9760              :                       {
    9761           18 :                       case INTEGER_CST:
    9762           18 :                         {
    9763           18 :                           {
    9764           18 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    9765           18 :                             tree res = generic_simplify_429 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
    9766           18 :                             if (res) return res;
    9767              :                           }
    9768           12 :                           break;
    9769              :                         }
    9770              :                       default:;
    9771              :                       }
    9772              :                   }
    9773              :                 break;
    9774              :               default:;
    9775              :               }
    9776              :             break;
    9777              :           default:;
    9778              :           }
    9779              :         break;
    9780              :       }
    9781        13893 :     case BIT_AND_EXPR:
    9782        13893 :       {
    9783        13893 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9784        13893 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9785        13893 :         switch (TREE_CODE (_q21))
    9786              :           {
    9787        13843 :           case INTEGER_CST:
    9788        13843 :             {
    9789        13843 :               switch (TREE_CODE (_p1))
    9790              :                 {
    9791        13820 :                 case INTEGER_CST:
    9792        13820 :                   {
    9793        13820 :                     {
    9794        13820 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
    9795        13820 :                       tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, RSHIFT_EXPR);
    9796        13820 :                       if (res) return res;
    9797              :                     }
    9798            0 :                     break;
    9799              :                   }
    9800              :                 default:;
    9801              :                 }
    9802              :               break;
    9803              :             }
    9804              :           default:;
    9805              :           }
    9806              :         break;
    9807              :       }
    9808          240 :     case BIT_XOR_EXPR:
    9809          240 :       {
    9810          240 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9811          240 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9812          240 :         switch (TREE_CODE (_q21))
    9813              :           {
    9814           97 :           case INTEGER_CST:
    9815           97 :             {
    9816           97 :               switch (TREE_CODE (_p1))
    9817              :                 {
    9818           97 :                 case INTEGER_CST:
    9819           97 :                   {
    9820           97 :                     {
    9821           97 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
    9822           97 :                       tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, RSHIFT_EXPR);
    9823           97 :                       if (res) return res;
    9824              :                     }
    9825            0 :                     break;
    9826              :                   }
    9827              :                 default:;
    9828              :                 }
    9829              :               break;
    9830              :             }
    9831              :           default:;
    9832              :           }
    9833              :         break;
    9834              :       }
    9835           55 :     case BIT_IOR_EXPR:
    9836           55 :       {
    9837           55 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9838           55 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9839           55 :         switch (TREE_CODE (_q21))
    9840              :           {
    9841           10 :           case INTEGER_CST:
    9842           10 :             {
    9843           10 :               switch (TREE_CODE (_p1))
    9844              :                 {
    9845            8 :                 case INTEGER_CST:
    9846            8 :                   {
    9847            8 :                     {
    9848            8 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
    9849            8 :                       tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, RSHIFT_EXPR);
    9850            8 :                       if (res) return res;
    9851              :                     }
    9852            0 :                     break;
    9853              :                   }
    9854              :                 default:;
    9855              :                 }
    9856              :               break;
    9857              :             }
    9858              :           default:;
    9859              :           }
    9860              :         break;
    9861              :       }
    9862            0 :     case VEC_COND_EXPR:
    9863            0 :       {
    9864            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9865            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9866            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    9867            0 :         switch (TREE_CODE (_p1))
    9868              :           {
    9869            0 :           case VEC_COND_EXPR:
    9870            0 :             {
    9871            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    9872            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    9873            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    9874            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    9875              :                 {
    9876            0 :                   {
    9877            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    9878            0 :                     if (VECTOR_TYPE_P (type)
    9879            0 :  && (TREE_CODE_CLASS (RSHIFT_EXPR) != tcc_comparison
    9880              :  || types_match (type, TREE_TYPE (captures[2]))
    9881              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9882              :  || (optimize_vectors_before_lowering_p ()
    9883              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9884              : )
    9885              :                       {
    9886            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1673;
    9887            0 :                         {
    9888            0 :                           tree res_op0;
    9889            0 :                           res_op0 = captures[1];
    9890            0 :                           tree res_op1;
    9891            0 :                           {
    9892            0 :                             tree _o1[2], _r1;
    9893            0 :                             _o1[0] = captures[2];
    9894            0 :                             _o1[1] = captures[5];
    9895            0 :                             _r1 = fold_build2_loc (loc, RSHIFT_EXPR, type, _o1[0], _o1[1]);
    9896            0 :                             if (EXPR_P (_r1))
    9897            0 :                               goto next_after_fail1673;
    9898            0 :                             res_op1 = _r1;
    9899              :                           }
    9900            0 :                           tree res_op2;
    9901            0 :                           {
    9902            0 :                             tree _o1[2], _r1;
    9903            0 :                             _o1[0] = captures[3];
    9904            0 :                             _o1[1] = captures[6];
    9905            0 :                             _r1 = fold_build2_loc (loc, RSHIFT_EXPR, type, _o1[0], _o1[1]);
    9906            0 :                             if (EXPR_P (_r1))
    9907            0 :                               goto next_after_fail1673;
    9908            0 :                             res_op2 = _r1;
    9909              :                           }
    9910            0 :                           tree _r;
    9911            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9912            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    9913            0 :                           return _r;
    9914              :                         }
    9915            0 : next_after_fail1673:;
    9916              :                       }
    9917              :                   }
    9918              :                 }
    9919              :               break;
    9920              :             }
    9921            0 :           default:;
    9922              :           }
    9923            0 :         {
    9924            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    9925            0 :           if (VECTOR_TYPE_P (type)
    9926            0 :  && (TREE_CODE_CLASS (RSHIFT_EXPR) != tcc_comparison
    9927              :  || types_match (type, TREE_TYPE (captures[2]))
    9928              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9929              :  || (optimize_vectors_before_lowering_p ()
    9930              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9931              : )
    9932              :             {
    9933            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1674;
    9934            0 :               {
    9935            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1674;
    9936            0 :                 tree res_op0;
    9937            0 :                 res_op0 = captures[1];
    9938            0 :                 tree res_op1;
    9939            0 :                 {
    9940            0 :                   tree _o1[2], _r1;
    9941            0 :                   _o1[0] = captures[2];
    9942            0 :                   _o1[1] = unshare_expr (captures[4]);
    9943            0 :                   _r1 = fold_build2_loc (loc, RSHIFT_EXPR, type, _o1[0], _o1[1]);
    9944            0 :                   if (EXPR_P (_r1))
    9945            0 :                     goto next_after_fail1674;
    9946            0 :                   res_op1 = _r1;
    9947              :                 }
    9948            0 :                 tree res_op2;
    9949            0 :                 {
    9950            0 :                   tree _o1[2], _r1;
    9951            0 :                   _o1[0] = captures[3];
    9952            0 :                   _o1[1] = captures[4];
    9953            0 :                   _r1 = fold_build2_loc (loc, RSHIFT_EXPR, type, _o1[0], _o1[1]);
    9954            0 :                   if (EXPR_P (_r1))
    9955            0 :                     goto next_after_fail1674;
    9956            0 :                   res_op2 = _r1;
    9957              :                 }
    9958            0 :                 tree _r;
    9959            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9960            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
    9961            0 :                 return _r;
    9962              :               }
    9963            0 : next_after_fail1674:;
    9964              :             }
    9965              :         }
    9966            0 :         break;
    9967              :       }
    9968          574 :     case CALL_EXPR:
    9969          574 :       switch (get_call_combined_fn (_p0))
    9970              :         {
    9971            0 :         case CFN_BSWAP:
    9972            0 :           if (call_expr_nargs (_p0) == 1)
    9973              :     {
    9974            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9975            0 :               switch (TREE_CODE (_p1))
    9976              :                 {
    9977            0 :                 case INTEGER_CST:
    9978            0 :                   {
    9979            0 :                     {
    9980            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9981            0 :                       tree res = generic_simplify_429 (loc, type, _p0, _p1, captures, CFN_BSWAP);
    9982            0 :                       if (res) return res;
    9983              :                     }
    9984            0 :                     break;
    9985              :                   }
    9986              :                 default:;
    9987              :                 }
    9988              :             }
    9989              :           break;
    9990            0 :         case CFN_BUILT_IN_BSWAP128:
    9991            0 :           if (call_expr_nargs (_p0) == 1)
    9992              :     {
    9993            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9994            0 :               switch (TREE_CODE (_p1))
    9995              :                 {
    9996            0 :                 case INTEGER_CST:
    9997            0 :                   {
    9998            0 :                     {
    9999            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10000            0 :                       tree res = generic_simplify_429 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
   10001            0 :                       if (res) return res;
   10002              :                     }
   10003            0 :                     break;
   10004              :                   }
   10005              :                 default:;
   10006              :                 }
   10007              :             }
   10008              :           break;
   10009           32 :         case CFN_BUILT_IN_BSWAP16:
   10010           32 :           if (call_expr_nargs (_p0) == 1)
   10011              :     {
   10012           32 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10013           32 :               switch (TREE_CODE (_p1))
   10014              :                 {
   10015           32 :                 case INTEGER_CST:
   10016           32 :                   {
   10017           32 :                     {
   10018           32 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10019           32 :                       tree res = generic_simplify_429 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
   10020           32 :                       if (res) return res;
   10021              :                     }
   10022            9 :                     break;
   10023              :                   }
   10024              :                 default:;
   10025              :                 }
   10026              :             }
   10027              :           break;
   10028          101 :         case CFN_BUILT_IN_BSWAP32:
   10029          101 :           if (call_expr_nargs (_p0) == 1)
   10030              :     {
   10031          101 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10032          101 :               switch (TREE_CODE (_p1))
   10033              :                 {
   10034          100 :                 case INTEGER_CST:
   10035          100 :                   {
   10036          100 :                     {
   10037          100 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10038          100 :                       tree res = generic_simplify_429 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
   10039          100 :                       if (res) return res;
   10040              :                     }
   10041           61 :                     break;
   10042              :                   }
   10043              :                 default:;
   10044              :                 }
   10045              :             }
   10046              :           break;
   10047          102 :         case CFN_BUILT_IN_BSWAP64:
   10048          102 :           if (call_expr_nargs (_p0) == 1)
   10049              :     {
   10050          102 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10051          102 :               switch (TREE_CODE (_p1))
   10052              :                 {
   10053          101 :                 case INTEGER_CST:
   10054          101 :                   {
   10055          101 :                     {
   10056          101 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10057          101 :                       tree res = generic_simplify_429 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
   10058          101 :                       if (res) return res;
   10059              :                     }
   10060           75 :                     break;
   10061              :                   }
   10062              :                 default:;
   10063              :                 }
   10064              :             }
   10065              :           break;
   10066              :         default:;
   10067              :         }
   10068              :       break;
   10069       967029 :     default:;
   10070              :     }
   10071       967029 : if (integer_onep (_p0))
   10072              :   {
   10073          524 :     {
   10074          524 :       tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
   10075          524 :       if (INTEGRAL_TYPE_P (type)
   10076              : )
   10077              :         {
   10078          524 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1675;
   10079          524 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1675;
   10080          524 :           {
   10081          524 :             tree res_op0;
   10082          524 :             {
   10083          524 :               tree _o1[2], _r1;
   10084          524 :               _o1[0] = captures[0];
   10085          524 :               _o1[1] =  build_zero_cst (TREE_TYPE (captures[0]));
   10086          524 :               _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
   10087          524 :               res_op0 = _r1;
   10088              :             }
   10089          524 :             tree _r;
   10090          524 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   10091          524 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1016, __FILE__, __LINE__, true);
   10092          524 :             return _r;
   10093              :           }
   10094              : next_after_fail1675:;
   10095              :         }
   10096              :     }
   10097              :   }
   10098       966505 :   switch (TREE_CODE (_p1))
   10099              :     {
   10100           11 :     case VEC_COND_EXPR:
   10101           11 :       {
   10102           11 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10103           11 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10104           11 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10105           11 :         {
   10106           11 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   10107           11 :           if (VECTOR_TYPE_P (type)
   10108           11 :  && (TREE_CODE_CLASS (RSHIFT_EXPR) != tcc_comparison
   10109              :  || types_match (type, TREE_TYPE (captures[3]))
   10110              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   10111              :  || (optimize_vectors_before_lowering_p ()
   10112              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   10113              : )
   10114              :             {
   10115           11 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1676;
   10116           11 :               {
   10117           11 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1676;
   10118            0 :                 tree res_op0;
   10119            0 :                 res_op0 = captures[2];
   10120            0 :                 tree res_op1;
   10121            0 :                 {
   10122            0 :                   tree _o1[2], _r1;
   10123            0 :                   _o1[0] = unshare_expr (captures[0]);
   10124            0 :                   _o1[1] = captures[3];
   10125            0 :                   _r1 = fold_build2_loc (loc, RSHIFT_EXPR, type, _o1[0], _o1[1]);
   10126            0 :                   if (EXPR_P (_r1))
   10127            0 :                     goto next_after_fail1676;
   10128            0 :                   res_op1 = _r1;
   10129              :                 }
   10130            0 :                 tree res_op2;
   10131            0 :                 {
   10132            0 :                   tree _o1[2], _r1;
   10133            0 :                   _o1[0] = captures[0];
   10134            0 :                   _o1[1] = captures[4];
   10135            0 :                   _r1 = fold_build2_loc (loc, RSHIFT_EXPR, type, _o1[0], _o1[1]);
   10136            0 :                   if (EXPR_P (_r1))
   10137            0 :                     goto next_after_fail1676;
   10138            0 :                   res_op2 = _r1;
   10139              :                 }
   10140            0 :                 tree _r;
   10141            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10142            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10143            0 :                 return _r;
   10144              :               }
   10145           11 : next_after_fail1676:;
   10146              :             }
   10147              :         }
   10148           11 :         break;
   10149              :       }
   10150       966505 :     default:;
   10151              :     }
   10152       966505 :   switch (TREE_CODE (_p0))
   10153              :     {
   10154            0 :     case VEC_PERM_EXPR:
   10155            0 :       {
   10156            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10157            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10158            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10159            0 :         if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
   10160              :           {
   10161            0 :             switch (TREE_CODE (_p1))
   10162              :               {
   10163            0 :               case VEC_PERM_EXPR:
   10164            0 :                 {
   10165            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
   10166            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
   10167            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
   10168            0 :                   if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
   10169              :                     {
   10170            0 :                       if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
   10171              :                         {
   10172            0 :                           {
   10173            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
   10174            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
   10175              : )
   10176              :                               {
   10177            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1677;
   10178            0 :                                 {
   10179            0 :                                   tree res_op0;
   10180            0 :                                   {
   10181            0 :                                     tree _o1[2], _r1;
   10182            0 :                                     _o1[0] = captures[0];
   10183            0 :                                     _o1[1] = captures[2];
   10184            0 :                                     _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10185            0 :                                     captures[3] = _r1;
   10186              :                                   }
   10187            0 :                                   res_op0 = unshare_expr (captures[3]);
   10188            0 :                                   tree res_op1;
   10189            0 :                                   res_op1 = captures[3];
   10190            0 :                                   tree res_op2;
   10191            0 :                                   res_op2 = captures[1];
   10192            0 :                                   tree _r;
   10193            0 :                                   _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
   10194            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
   10195            0 :                                   return _r;
   10196              :                                 }
   10197            0 : next_after_fail1677:;
   10198              :                               }
   10199              :                           }
   10200              :                         }
   10201              :                     }
   10202              :                   break;
   10203              :                 }
   10204              :               default:;
   10205              :               }
   10206              :           }
   10207              :         break;
   10208              :       }
   10209              :     default:;
   10210              :     }
   10211              :   return NULL_TREE;
   10212              : }
   10213              : 
   10214              : tree
   10215       388817 : generic_simplify_MAX_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10216              : {
   10217       388817 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10218       388817 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10219              :     {
   10220            0 :       {
   10221            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10222            0 :         tree res = generic_simplify_521 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10223            0 :         if (res) return res;
   10224              :       }
   10225              :     }
   10226       388817 :   switch (TREE_CODE (_p0))
   10227              :     {
   10228          111 :     case MAX_EXPR:
   10229          111 :       {
   10230          111 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10231          111 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10232          111 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10233              :           {
   10234            0 :             {
   10235            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
   10236            0 :               tree res = generic_simplify_522 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10237            0 :               if (res) return res;
   10238              :             }
   10239              :           }
   10240          111 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
   10241              :           {
   10242            0 :             {
   10243            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
   10244            0 :               tree res = generic_simplify_522 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10245            0 :               if (res) return res;
   10246              :             }
   10247              :           }
   10248              :         break;
   10249              :       }
   10250       388817 :     default:;
   10251              :     }
   10252       388817 :   switch (TREE_CODE (_p1))
   10253              :     {
   10254            0 :     case MAX_EXPR:
   10255            0 :       {
   10256            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10257            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10258            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   10259              :           {
   10260            0 :             {
   10261            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
   10262            0 :               tree res = generic_simplify_523 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10263            0 :               if (res) return res;
   10264              :             }
   10265              :           }
   10266            0 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
   10267              :           {
   10268            0 :             {
   10269            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q30 };
   10270            0 :               tree res = generic_simplify_523 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10271            0 :               if (res) return res;
   10272              :             }
   10273              :           }
   10274              :         break;
   10275              :       }
   10276       388817 :     default:;
   10277              :     }
   10278       388817 :   switch (TREE_CODE (_p0))
   10279              :     {
   10280         3386 :     case MIN_EXPR:
   10281         3386 :       {
   10282         3386 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10283         3386 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10284         3386 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
   10285              :           {
   10286            1 :             {
   10287            1 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10288            1 :               tree res = generic_simplify_536 (loc, type, _p0, _p1, captures);
   10289            1 :               if (res) return res;
   10290              :             }
   10291              :           }
   10292         3385 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10293              :           {
   10294            1 :             {
   10295            1 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
   10296            1 :               tree res = generic_simplify_536 (loc, type, _p0, _p1, captures);
   10297            1 :               if (res) return res;
   10298              :             }
   10299              :           }
   10300              :         break;
   10301              :       }
   10302       388815 :     default:;
   10303              :     }
   10304       388815 :   switch (TREE_CODE (_p1))
   10305              :     {
   10306            0 :     case MIN_EXPR:
   10307            0 :       {
   10308            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10309            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10310            0 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
   10311              :           {
   10312            0 :             {
   10313            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
   10314            0 :               tree res = generic_simplify_536 (loc, type, _p0, _p1, captures);
   10315            0 :               if (res) return res;
   10316              :             }
   10317              :           }
   10318            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   10319              :           {
   10320            0 :             {
   10321            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
   10322            0 :               tree res = generic_simplify_536 (loc, type, _p0, _p1, captures);
   10323            0 :               if (res) return res;
   10324              :             }
   10325              :           }
   10326              :         break;
   10327              :       }
   10328            0 :     case NEGATE_EXPR:
   10329            0 :       {
   10330            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10331            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   10332              :           {
   10333            0 :             {
   10334            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10335            0 :               tree res = generic_simplify_537 (loc, type, _p0, _p1, captures);
   10336            0 :               if (res) return res;
   10337              :             }
   10338              :           }
   10339              :         break;
   10340              :       }
   10341       388815 :     default:;
   10342              :     }
   10343       388815 :   switch (TREE_CODE (_p0))
   10344              :     {
   10345           76 :     case NEGATE_EXPR:
   10346           76 :       {
   10347           76 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10348           76 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10349              :           {
   10350            2 :             {
   10351            2 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10352            2 :               tree res = generic_simplify_537 (loc, type, _p0, _p1, captures);
   10353            2 :               if (res) return res;
   10354              :             }
   10355              :           }
   10356              :         break;
   10357              :       }
   10358       388813 :     default:;
   10359              :     }
   10360       388813 :   {
   10361       388813 :     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10362       388813 :     if (INTEGRAL_TYPE_P (type)
   10363       386877 :  && TYPE_MAX_VALUE (type)
   10364       775690 :  && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST)
   10365              : )
   10366              :       {
   10367            0 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1744;
   10368            0 :         {
   10369            0 :           tree _r;
   10370            0 :           _r = captures[1];
   10371            0 :           if (TREE_SIDE_EFFECTS (captures[0]))
   10372            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   10373            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1031, __FILE__, __LINE__, true);
   10374            0 :           return _r;
   10375              :         }
   10376            0 : next_after_fail1744:;
   10377              :       }
   10378              :     else
   10379              :       {
   10380       388813 :         if (INTEGRAL_TYPE_P (type)
   10381       386877 :  && TYPE_MIN_VALUE (type)
   10382       775690 :  && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST)
   10383              : )
   10384              :           {
   10385           11 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1745;
   10386           11 :             {
   10387           11 :               tree _r;
   10388           11 :               _r = captures[0];
   10389           11 :               if (TREE_SIDE_EFFECTS (captures[1]))
   10390            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   10391           11 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1032, __FILE__, __LINE__, true);
   10392           11 :               return _r;
   10393              :             }
   10394            0 : next_after_fail1745:;
   10395              :           }
   10396              :       }
   10397              :   }
   10398       388802 :   switch (TREE_CODE (_p0))
   10399              :     {
   10400        23333 :     case PLUS_EXPR:
   10401        23333 :       {
   10402        23333 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10403        23333 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10404        23333 :         switch (TREE_CODE (_p1))
   10405              :           {
   10406           14 :           case PLUS_EXPR:
   10407           14 :             {
   10408           14 :               tree _q50 = TREE_OPERAND (_p1, 0);
   10409           14 :               tree _q51 = TREE_OPERAND (_p1, 1);
   10410           14 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   10411              :                 {
   10412            0 :                   {
   10413            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10414            0 :                     tree res = generic_simplify_526 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10415            0 :                     if (res) return res;
   10416              :                   }
   10417            0 :                   {
   10418            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q50, _q21, _p0, _q20 };
   10419            0 :                     tree res = generic_simplify_526 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10420            0 :                     if (res) return res;
   10421              :                   }
   10422              :                 }
   10423           14 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
   10424              :                 {
   10425            0 :                   {
   10426            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
   10427            0 :                     tree res = generic_simplify_526 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10428            0 :                     if (res) return res;
   10429              :                   }
   10430              :                 }
   10431           14 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
   10432              :                 {
   10433            0 :                   {
   10434            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q51, _q21, _p0, _q20 };
   10435            0 :                     tree res = generic_simplify_526 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10436            0 :                     if (res) return res;
   10437              :                   }
   10438              :                 }
   10439              :               break;
   10440              :             }
   10441        23333 :           default:;
   10442              :           }
   10443        23333 :         switch (TREE_CODE (_q21))
   10444              :           {
   10445        23295 :           case INTEGER_CST:
   10446        23295 :             {
   10447        23295 :               if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10448              :                 {
   10449           11 :                   {
   10450           11 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
   10451           11 :                     if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
   10452              : )
   10453              :                       {
   10454            0 :                         if (tree_int_cst_sgn (captures[2]) > 0
   10455              : )
   10456              :                           {
   10457            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1746;
   10458            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1746;
   10459            0 :                             {
   10460            0 :                               tree _r;
   10461            0 :                               _r = captures[1];
   10462            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1033, __FILE__, __LINE__, true);
   10463            0 :                               return _r;
   10464              :                             }
   10465           11 : next_after_fail1746:;
   10466              :                           }
   10467              :                         else
   10468              :                           {
   10469            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1747;
   10470            0 :                             {
   10471            0 :                               tree _r;
   10472            0 :                               _r = captures[0];
   10473            0 :                               if (TREE_SIDE_EFFECTS (captures[2]))
   10474            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10475            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1034, __FILE__, __LINE__, true);
   10476            0 :                               return _r;
   10477              :                             }
   10478            0 : next_after_fail1747:;
   10479              :                           }
   10480              :                       }
   10481              :                   }
   10482              :                 }
   10483              :               break;
   10484              :             }
   10485              :           default:;
   10486              :           }
   10487              :         break;
   10488              :       }
   10489         8193 :     case MINUS_EXPR:
   10490         8193 :       {
   10491         8193 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10492         8193 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10493         8193 :         switch (TREE_CODE (_p1))
   10494              :           {
   10495            0 :           case MINUS_EXPR:
   10496            0 :             {
   10497            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
   10498            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
   10499            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   10500              :                 {
   10501            0 :                   {
   10502            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10503            0 :                     tree res = generic_simplify_527 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10504            0 :                     if (res) return res;
   10505              :                   }
   10506            0 :                   {
   10507            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q50, _q21, _p0, _q20 };
   10508            0 :                     tree res = generic_simplify_527 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10509            0 :                     if (res) return res;
   10510              :                   }
   10511              :                 }
   10512              :               break;
   10513              :             }
   10514              :           default:;
   10515              :           }
   10516              :         break;
   10517              :       }
   10518       388802 :     default:;
   10519              :     }
   10520       388802 :   switch (TREE_CODE (_p1))
   10521              :     {
   10522          110 :     case PLUS_EXPR:
   10523          110 :       {
   10524          110 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10525          110 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10526          110 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   10527              :           {
   10528            0 :             switch (TREE_CODE (_q31))
   10529              :               {
   10530            0 :               case INTEGER_CST:
   10531            0 :                 {
   10532            0 :                   {
   10533            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   10534            0 :                     if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
   10535              : )
   10536              :                       {
   10537            0 :                         if (tree_int_cst_sgn (captures[2]) > 0
   10538              : )
   10539              :                           {
   10540            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1748;
   10541            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1748;
   10542            0 :                             {
   10543            0 :                               tree _r;
   10544            0 :                               _r = captures[1];
   10545            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1033, __FILE__, __LINE__, true);
   10546            0 :                               return _r;
   10547              :                             }
   10548            0 : next_after_fail1748:;
   10549              :                           }
   10550              :                         else
   10551              :                           {
   10552            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1749;
   10553            0 :                             {
   10554            0 :                               tree _r;
   10555            0 :                               _r = captures[0];
   10556            0 :                               if (TREE_SIDE_EFFECTS (captures[2]))
   10557            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10558            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1034, __FILE__, __LINE__, true);
   10559            0 :                               return _r;
   10560              :                             }
   10561            0 : next_after_fail1749:;
   10562              :                           }
   10563              :                       }
   10564              :                   }
   10565            0 :                   break;
   10566              :                 }
   10567              :               default:;
   10568              :               }
   10569              :           }
   10570              :         break;
   10571              :       }
   10572       388802 :     default:;
   10573              :     }
   10574       388802 :   switch (TREE_CODE (_p0))
   10575              :     {
   10576         3384 :     case MIN_EXPR:
   10577         3384 :       {
   10578         3384 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10579         3384 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10580         3384 :         switch (TREE_CODE (_p1))
   10581              :           {
   10582            0 :           case MAX_EXPR:
   10583            0 :             {
   10584            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
   10585            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
   10586            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   10587              :                 {
   10588            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   10589              :                     {
   10590            0 :                       {
   10591            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10592            0 :                         if (!HONOR_NANS (captures[0])
   10593              : )
   10594              :                           {
   10595            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1750;
   10596            0 :                             {
   10597            0 :                               tree res_op0;
   10598            0 :                               res_op0 = captures[0];
   10599            0 :                               tree res_op1;
   10600            0 :                               res_op1 = captures[1];
   10601            0 :                               tree _r;
   10602            0 :                               _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
   10603            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
   10604            0 :                               return _r;
   10605              :                             }
   10606            0 : next_after_fail1750:;
   10607              :                           }
   10608              :                       }
   10609              :                     }
   10610              :                 }
   10611            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
   10612              :                 {
   10613            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
   10614              :                     {
   10615            0 :                       {
   10616            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
   10617            0 :                         if (!HONOR_NANS (captures[0])
   10618              : )
   10619              :                           {
   10620            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1751;
   10621            0 :                             {
   10622            0 :                               tree res_op0;
   10623            0 :                               res_op0 = captures[0];
   10624            0 :                               tree res_op1;
   10625            0 :                               res_op1 = captures[1];
   10626            0 :                               tree _r;
   10627            0 :                               _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
   10628            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
   10629            0 :                               return _r;
   10630              :                             }
   10631            0 : next_after_fail1751:;
   10632              :                           }
   10633              :                       }
   10634              :                     }
   10635              :                 }
   10636              :               break;
   10637              :             }
   10638              :           default:;
   10639              :           }
   10640              :         break;
   10641              :       }
   10642          111 :     case MAX_EXPR:
   10643          111 :       {
   10644          111 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10645          111 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10646          111 :         switch (TREE_CODE (_p1))
   10647              :           {
   10648            0 :           case MIN_EXPR:
   10649            0 :             {
   10650            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
   10651            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
   10652            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   10653              :                 {
   10654            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   10655              :                     {
   10656            0 :                       {
   10657            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10658            0 :                         if (!HONOR_NANS (captures[0])
   10659              : )
   10660              :                           {
   10661            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1752;
   10662            0 :                             {
   10663            0 :                               tree res_op0;
   10664            0 :                               res_op0 = captures[0];
   10665            0 :                               tree res_op1;
   10666            0 :                               res_op1 = captures[1];
   10667            0 :                               tree _r;
   10668            0 :                               _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
   10669            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
   10670            0 :                               return _r;
   10671              :                             }
   10672            0 : next_after_fail1752:;
   10673              :                           }
   10674              :                       }
   10675              :                     }
   10676              :                 }
   10677            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
   10678              :                 {
   10679            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
   10680              :                     {
   10681            0 :                       {
   10682            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10683            0 :                         if (!HONOR_NANS (captures[0])
   10684              : )
   10685              :                           {
   10686            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1753;
   10687            0 :                             {
   10688            0 :                               tree res_op0;
   10689            0 :                               res_op0 = captures[0];
   10690            0 :                               tree res_op1;
   10691            0 :                               res_op1 = captures[1];
   10692            0 :                               tree _r;
   10693            0 :                               _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
   10694            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
   10695            0 :                               return _r;
   10696              :                             }
   10697            0 : next_after_fail1753:;
   10698              :                           }
   10699              :                       }
   10700              :                     }
   10701              :                 }
   10702              :               break;
   10703              :             }
   10704              :           default:;
   10705              :           }
   10706              :         break;
   10707              :       }
   10708            0 :     case BIT_AND_EXPR:
   10709            0 :       {
   10710            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10711            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10712            0 :         switch (TREE_CODE (_q21))
   10713              :           {
   10714            0 :           case INTEGER_CST:
   10715            0 :             {
   10716            0 :               switch (TREE_CODE (_p1))
   10717              :                 {
   10718            0 :                 case BIT_AND_EXPR:
   10719            0 :                   {
   10720            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
   10721            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
   10722            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   10723              :                       {
   10724            0 :                         switch (TREE_CODE (_q51))
   10725              :                           {
   10726            0 :                           case INTEGER_CST:
   10727            0 :                             {
   10728            0 :                               {
   10729            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   10730            0 :                                 tree res = generic_simplify_528 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10731            0 :                                 if (res) return res;
   10732              :                               }
   10733            0 :                               break;
   10734              :                             }
   10735              :                           default:;
   10736              :                           }
   10737              :                       }
   10738              :                     break;
   10739              :                   }
   10740              :                 default:;
   10741              :                 }
   10742              :               break;
   10743              :             }
   10744              :           default:;
   10745              :           }
   10746              :         break;
   10747              :       }
   10748       388802 :     default:;
   10749              :     }
   10750       388802 :   switch (TREE_CODE (_p1))
   10751              :     {
   10752            0 :     case BIT_AND_EXPR:
   10753            0 :       {
   10754            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10755            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10756            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   10757              :           {
   10758            0 :             switch (TREE_CODE (_q31))
   10759              :               {
   10760            0 :               case INTEGER_CST:
   10761            0 :                 {
   10762            0 :                   {
   10763            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   10764            0 :                     tree res = generic_simplify_529 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10765            0 :                     if (res) return res;
   10766              :                   }
   10767            0 :                   break;
   10768              :                 }
   10769              :               default:;
   10770              :               }
   10771              :           }
   10772              :         break;
   10773              :       }
   10774       388802 :     default:;
   10775              :     }
   10776       388802 :   switch (TREE_CODE (_p0))
   10777              :     {
   10778        33115 :     CASE_CONVERT:
   10779        33115 :       {
   10780        33115 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10781        33115 :         switch (TREE_CODE (_q20))
   10782              :           {
   10783           30 :           case ADDR_EXPR:
   10784           30 :             {
   10785           30 :               switch (TREE_CODE (_p1))
   10786              :                 {
   10787            0 :                 CASE_CONVERT:
   10788            0 :                   {
   10789            0 :                     tree _q40 = TREE_OPERAND (_p1, 0);
   10790            0 :                     switch (TREE_CODE (_q40))
   10791              :                       {
   10792            0 :                       case ADDR_EXPR:
   10793            0 :                         {
   10794            0 :                           {
   10795            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10796            0 :                             tree res = generic_simplify_530 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
   10797            0 :                             if (res) return res;
   10798              :                           }
   10799            0 :                           break;
   10800              :                         }
   10801              :                       default:;
   10802              :                       }
   10803              :                     break;
   10804              :                   }
   10805            0 :                 case ADDR_EXPR:
   10806            0 :                   {
   10807            0 :                     {
   10808            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
   10809            0 :                       tree res = generic_simplify_531 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
   10810            0 :                       if (res) return res;
   10811              :                     }
   10812            0 :                     break;
   10813              :                   }
   10814              :                 default:;
   10815              :                 }
   10816              :               break;
   10817              :             }
   10818              :           default:;
   10819              :           }
   10820              :         break;
   10821              :       }
   10822           10 :     case ADDR_EXPR:
   10823           10 :       {
   10824           10 :         switch (TREE_CODE (_p1))
   10825              :           {
   10826            0 :           CASE_CONVERT:
   10827            0 :             {
   10828            0 :               tree _q30 = TREE_OPERAND (_p1, 0);
   10829            0 :               switch (TREE_CODE (_q30))
   10830              :                 {
   10831            0 :                 case ADDR_EXPR:
   10832            0 :                   {
   10833            0 :                     {
   10834            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
   10835            0 :                       tree res = generic_simplify_532 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
   10836            0 :                       if (res) return res;
   10837              :                     }
   10838            0 :                     break;
   10839              :                   }
   10840              :                 default:;
   10841              :                 }
   10842              :               break;
   10843              :             }
   10844           10 :           case ADDR_EXPR:
   10845           10 :             {
   10846           10 :               {
   10847           10 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
   10848           10 :                 tree res = generic_simplify_533 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
   10849           10 :                 if (res) return res;
   10850              :               }
   10851           10 :               break;
   10852              :             }
   10853              :           default:;
   10854              :           }
   10855              :         break;
   10856              :       }
   10857           74 :     case NEGATE_EXPR:
   10858           74 :       {
   10859           74 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10860           74 :         switch (TREE_CODE (_p1))
   10861              :           {
   10862            0 :           case NEGATE_EXPR:
   10863            0 :             {
   10864            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10865            0 :               {
   10866            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10867            0 :                 if (FLOAT_TYPE_P (TREE_TYPE (captures[1]))
   10868            0 :  || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
   10869            0 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
   10870              : )
   10871              :                   {
   10872            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1754;
   10873            0 :                     {
   10874            0 :                       tree res_op0;
   10875            0 :                       {
   10876            0 :                         tree _o1[2], _r1;
   10877            0 :                         _o1[0] = captures[1];
   10878            0 :                         _o1[1] = captures[3];
   10879            0 :                         _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10880            0 :                         res_op0 = _r1;
   10881              :                       }
   10882            0 :                       tree _r;
   10883            0 :                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
   10884            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1030, __FILE__, __LINE__, true);
   10885            0 :                       return _r;
   10886              :                     }
   10887            0 : next_after_fail1754:;
   10888              :                   }
   10889              :               }
   10890            0 :               break;
   10891              :             }
   10892              :           default:;
   10893              :           }
   10894              :         break;
   10895              :       }
   10896            0 :     case BIT_NOT_EXPR:
   10897            0 :       {
   10898            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10899            0 :         switch (TREE_CODE (_p1))
   10900              :           {
   10901            0 :           case BIT_NOT_EXPR:
   10902            0 :             {
   10903            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10904            0 :               {
   10905            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10906            0 :                 tree res = generic_simplify_534 (loc, type, _p0, _p1, captures, MAX_EXPR, MIN_EXPR);
   10907            0 :                 if (res) return res;
   10908              :               }
   10909            0 :               break;
   10910              :             }
   10911              :           default:;
   10912              :           }
   10913              :         break;
   10914              :       }
   10915            0 :     case VEC_COND_EXPR:
   10916            0 :       {
   10917            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10918            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10919            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10920            0 :         switch (TREE_CODE (_p1))
   10921              :           {
   10922            0 :           case VEC_COND_EXPR:
   10923            0 :             {
   10924            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   10925            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   10926            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   10927            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   10928              :                 {
   10929            0 :                   {
   10930            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   10931            0 :                     if (VECTOR_TYPE_P (type)
   10932            0 :  && (TREE_CODE_CLASS (MAX_EXPR) != tcc_comparison
   10933              :  || types_match (type, TREE_TYPE (captures[2]))
   10934              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10935              :  || (optimize_vectors_before_lowering_p ()
   10936              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10937              : )
   10938              :                       {
   10939            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1755;
   10940            0 :                         {
   10941            0 :                           tree res_op0;
   10942            0 :                           res_op0 = captures[1];
   10943            0 :                           tree res_op1;
   10944            0 :                           {
   10945            0 :                             tree _o1[2], _r1;
   10946            0 :                             _o1[0] = captures[2];
   10947            0 :                             _o1[1] = captures[5];
   10948            0 :                             _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
   10949            0 :                             if (EXPR_P (_r1))
   10950            0 :                               goto next_after_fail1755;
   10951            0 :                             res_op1 = _r1;
   10952              :                           }
   10953            0 :                           tree res_op2;
   10954            0 :                           {
   10955            0 :                             tree _o1[2], _r1;
   10956            0 :                             _o1[0] = captures[3];
   10957            0 :                             _o1[1] = captures[6];
   10958            0 :                             _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
   10959            0 :                             if (EXPR_P (_r1))
   10960            0 :                               goto next_after_fail1755;
   10961            0 :                             res_op2 = _r1;
   10962              :                           }
   10963            0 :                           tree _r;
   10964            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10965            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
   10966            0 :                           return _r;
   10967              :                         }
   10968            0 : next_after_fail1755:;
   10969              :                       }
   10970              :                   }
   10971              :                 }
   10972              :               break;
   10973              :             }
   10974            0 :           default:;
   10975              :           }
   10976            0 :         {
   10977            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   10978            0 :           if (VECTOR_TYPE_P (type)
   10979            0 :  && (TREE_CODE_CLASS (MAX_EXPR) != tcc_comparison
   10980              :  || types_match (type, TREE_TYPE (captures[2]))
   10981              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10982              :  || (optimize_vectors_before_lowering_p ()
   10983              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10984              : )
   10985              :             {
   10986            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1756;
   10987            0 :               {
   10988            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1756;
   10989            0 :                 tree res_op0;
   10990            0 :                 res_op0 = captures[1];
   10991            0 :                 tree res_op1;
   10992            0 :                 {
   10993            0 :                   tree _o1[2], _r1;
   10994            0 :                   _o1[0] = captures[2];
   10995            0 :                   _o1[1] = unshare_expr (captures[4]);
   10996            0 :                   _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
   10997            0 :                   if (EXPR_P (_r1))
   10998            0 :                     goto next_after_fail1756;
   10999            0 :                   res_op1 = _r1;
   11000              :                 }
   11001            0 :                 tree res_op2;
   11002            0 :                 {
   11003            0 :                   tree _o1[2], _r1;
   11004            0 :                   _o1[0] = captures[3];
   11005            0 :                   _o1[1] = captures[4];
   11006            0 :                   _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
   11007            0 :                   if (EXPR_P (_r1))
   11008            0 :                     goto next_after_fail1756;
   11009            0 :                   res_op2 = _r1;
   11010              :                 }
   11011            0 :                 tree _r;
   11012            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11013            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
   11014            0 :                 return _r;
   11015              :               }
   11016            0 : next_after_fail1756:;
   11017              :             }
   11018              :         }
   11019            0 :         break;
   11020              :       }
   11021       388802 :     default:;
   11022              :     }
   11023       388802 :   switch (TREE_CODE (_p1))
   11024              :     {
   11025            0 :     case VEC_COND_EXPR:
   11026            0 :       {
   11027            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   11028            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   11029            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   11030            0 :         {
   11031            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   11032            0 :           if (VECTOR_TYPE_P (type)
   11033            0 :  && (TREE_CODE_CLASS (MAX_EXPR) != tcc_comparison
   11034              :  || types_match (type, TREE_TYPE (captures[3]))
   11035              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   11036              :  || (optimize_vectors_before_lowering_p ()
   11037              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   11038              : )
   11039              :             {
   11040            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1757;
   11041            0 :               {
   11042            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1757;
   11043            0 :                 tree res_op0;
   11044            0 :                 res_op0 = captures[2];
   11045            0 :                 tree res_op1;
   11046            0 :                 {
   11047            0 :                   tree _o1[2], _r1;
   11048            0 :                   _o1[0] = unshare_expr (captures[0]);
   11049            0 :                   _o1[1] = captures[3];
   11050            0 :                   _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
   11051            0 :                   if (EXPR_P (_r1))
   11052            0 :                     goto next_after_fail1757;
   11053            0 :                   res_op1 = _r1;
   11054              :                 }
   11055            0 :                 tree res_op2;
   11056            0 :                 {
   11057            0 :                   tree _o1[2], _r1;
   11058            0 :                   _o1[0] = captures[0];
   11059            0 :                   _o1[1] = captures[4];
   11060            0 :                   _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
   11061            0 :                   if (EXPR_P (_r1))
   11062            0 :                     goto next_after_fail1757;
   11063            0 :                   res_op2 = _r1;
   11064              :                 }
   11065            0 :                 tree _r;
   11066            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11067            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   11068            0 :                 return _r;
   11069              :               }
   11070            0 : next_after_fail1757:;
   11071              :             }
   11072              :         }
   11073            0 :         break;
   11074              :       }
   11075       388802 :     default:;
   11076              :     }
   11077       388802 :   if (tree_zero_one_valued_p (_p0))
   11078              :     {
   11079           10 :       if (tree_zero_one_valued_p (_p1))
   11080              :         {
   11081            0 :           {
   11082            0 :             tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11083            0 :             tree res = generic_simplify_535 (loc, type, _p0, _p1, captures, MAX_EXPR, BIT_IOR_EXPR);
   11084            0 :             if (res) return res;
   11085              :           }
   11086              :         }
   11087              :     }
   11088              :   return NULL_TREE;
   11089              : }
   11090              : 
   11091              : tree
   11092      1259390 : generic_simplify_UNGT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   11093              : {
   11094      1259390 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   11095      1259390 :   switch (TREE_CODE (_p0))
   11096              :     {
   11097            0 :     case VEC_COND_EXPR:
   11098            0 :       {
   11099            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11100            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11101            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11102            0 :         switch (TREE_CODE (_p1))
   11103              :           {
   11104            0 :           case VEC_COND_EXPR:
   11105            0 :             {
   11106            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   11107            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   11108            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   11109            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   11110              :                 {
   11111            0 :                   {
   11112            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   11113            0 :                     if (VECTOR_TYPE_P (type)
   11114            0 :  && (TREE_CODE_CLASS (UNGT_EXPR) != tcc_comparison
   11115            0 :  || types_match (type, TREE_TYPE (captures[2]))
   11116            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   11117              :  || (optimize_vectors_before_lowering_p ()
   11118            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   11119              : )
   11120              :                       {
   11121            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1776;
   11122            0 :                         {
   11123            0 :                           tree res_op0;
   11124            0 :                           res_op0 = captures[1];
   11125            0 :                           tree res_op1;
   11126            0 :                           {
   11127            0 :                             tree _o1[2], _r1;
   11128            0 :                             _o1[0] = captures[2];
   11129            0 :                             _o1[1] = captures[5];
   11130            0 :                             _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
   11131            0 :                             if (EXPR_P (_r1))
   11132            0 :                               goto next_after_fail1776;
   11133            0 :                             res_op1 = _r1;
   11134              :                           }
   11135            0 :                           tree res_op2;
   11136            0 :                           {
   11137            0 :                             tree _o1[2], _r1;
   11138            0 :                             _o1[0] = captures[3];
   11139            0 :                             _o1[1] = captures[6];
   11140            0 :                             _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
   11141            0 :                             if (EXPR_P (_r1))
   11142            0 :                               goto next_after_fail1776;
   11143            0 :                             res_op2 = _r1;
   11144              :                           }
   11145            0 :                           tree _r;
   11146            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11147            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
   11148            0 :                           return _r;
   11149              :                         }
   11150            0 : next_after_fail1776:;
   11151              :                       }
   11152              :                   }
   11153              :                 }
   11154              :               break;
   11155              :             }
   11156            0 :           default:;
   11157              :           }
   11158            0 :         {
   11159            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   11160            0 :           if (VECTOR_TYPE_P (type)
   11161            0 :  && (TREE_CODE_CLASS (UNGT_EXPR) != tcc_comparison
   11162            0 :  || types_match (type, TREE_TYPE (captures[2]))
   11163            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   11164              :  || (optimize_vectors_before_lowering_p ()
   11165            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   11166              : )
   11167              :             {
   11168            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1777;
   11169            0 :               {
   11170            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1777;
   11171            0 :                 tree res_op0;
   11172            0 :                 res_op0 = captures[1];
   11173            0 :                 tree res_op1;
   11174            0 :                 {
   11175            0 :                   tree _o1[2], _r1;
   11176            0 :                   _o1[0] = captures[2];
   11177            0 :                   _o1[1] = unshare_expr (captures[4]);
   11178            0 :                   _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
   11179            0 :                   if (EXPR_P (_r1))
   11180            0 :                     goto next_after_fail1777;
   11181            0 :                   res_op1 = _r1;
   11182              :                 }
   11183            0 :                 tree res_op2;
   11184            0 :                 {
   11185            0 :                   tree _o1[2], _r1;
   11186            0 :                   _o1[0] = captures[3];
   11187            0 :                   _o1[1] = captures[4];
   11188            0 :                   _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
   11189            0 :                   if (EXPR_P (_r1))
   11190            0 :                     goto next_after_fail1777;
   11191            0 :                   res_op2 = _r1;
   11192              :                 }
   11193            0 :                 tree _r;
   11194            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11195            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
   11196            0 :                 return _r;
   11197              :               }
   11198            0 : next_after_fail1777:;
   11199              :             }
   11200              :         }
   11201            0 :         break;
   11202              :       }
   11203      1259390 :     default:;
   11204              :     }
   11205      1259390 :   switch (TREE_CODE (_p1))
   11206              :     {
   11207            0 :     case VEC_COND_EXPR:
   11208            0 :       {
   11209            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   11210            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   11211            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   11212            0 :         {
   11213            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   11214            0 :           if (VECTOR_TYPE_P (type)
   11215            0 :  && (TREE_CODE_CLASS (UNGT_EXPR) != tcc_comparison
   11216            0 :  || types_match (type, TREE_TYPE (captures[3]))
   11217            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   11218              :  || (optimize_vectors_before_lowering_p ()
   11219            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   11220              : )
   11221              :             {
   11222            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1778;
   11223            0 :               {
   11224            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1778;
   11225            0 :                 tree res_op0;
   11226            0 :                 res_op0 = captures[2];
   11227            0 :                 tree res_op1;
   11228            0 :                 {
   11229            0 :                   tree _o1[2], _r1;
   11230            0 :                   _o1[0] = unshare_expr (captures[0]);
   11231            0 :                   _o1[1] = captures[3];
   11232            0 :                   _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
   11233            0 :                   if (EXPR_P (_r1))
   11234            0 :                     goto next_after_fail1778;
   11235            0 :                   res_op1 = _r1;
   11236              :                 }
   11237            0 :                 tree res_op2;
   11238            0 :                 {
   11239            0 :                   tree _o1[2], _r1;
   11240            0 :                   _o1[0] = captures[0];
   11241            0 :                   _o1[1] = captures[4];
   11242            0 :                   _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
   11243            0 :                   if (EXPR_P (_r1))
   11244            0 :                     goto next_after_fail1778;
   11245            0 :                   res_op2 = _r1;
   11246              :                 }
   11247            0 :                 tree _r;
   11248            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11249            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   11250            0 :                 return _r;
   11251              :               }
   11252            0 : next_after_fail1778:;
   11253              :             }
   11254              :         }
   11255            0 :         break;
   11256              :       }
   11257      1259390 :     default:;
   11258              :     }
   11259      1259390 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11260              :     {
   11261            0 :       {
   11262            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   11263            0 :         tree res = generic_simplify_565 (loc, type, _p0, _p1, captures, UNGT_EXPR);
   11264            0 :         if (res) return res;
   11265              :       }
   11266              :     }
   11267      1259390 :   switch (TREE_CODE (_p0))
   11268              :     {
   11269          339 :     case FLOAT_EXPR:
   11270          339 :       {
   11271          339 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11272          339 :         switch (TREE_CODE (_p1))
   11273              :           {
   11274            0 :           case FLOAT_EXPR:
   11275            0 :             {
   11276            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11277            0 :               {
   11278            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
   11279            0 :                 tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNGT_EXPR, GT_EXPR);
   11280            0 :                 if (res) return res;
   11281              :               }
   11282            0 :               break;
   11283              :             }
   11284              :           default:;
   11285              :           }
   11286              :         break;
   11287              :       }
   11288            0 :     case NEGATE_EXPR:
   11289            0 :       {
   11290            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11291            0 :         switch (TREE_CODE (_p1))
   11292              :           {
   11293            0 :           case NEGATE_EXPR:
   11294            0 :             {
   11295            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11296            0 :               {
   11297            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   11298            0 :                 tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, UNGT_EXPR, UNLT_EXPR);
   11299            0 :                 if (res) return res;
   11300              :               }
   11301            0 :               break;
   11302              :             }
   11303            0 :           default:;
   11304              :           }
   11305            0 :       if (CONSTANT_CLASS_P (_p1))
   11306              :         {
   11307            0 :           {
   11308            0 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   11309            0 :             tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, UNGT_EXPR, UNLT_EXPR);
   11310            0 :             if (res) return res;
   11311              :           }
   11312              :         }
   11313              :         break;
   11314              :       }
   11315      1259390 :     default:;
   11316              :     }
   11317      1259390 :   switch (TREE_CODE (_p1))
   11318              :     {
   11319       908905 :     case REAL_CST:
   11320       908905 :       {
   11321       908905 :         {
   11322       908905 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11323       908905 :           tree res = generic_simplify_564 (loc, type, _p0, _p1, captures, UNGT_EXPR);
   11324       908905 :           if (res) return res;
   11325              :         }
   11326       908903 :         break;
   11327              :       }
   11328              :     default:;
   11329              :     }
   11330              :   return NULL_TREE;
   11331              : }
   11332              : 
   11333              : tree
   11334      9333031 : generic_simplify_TRUTH_OR_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   11335              : {
   11336      9333031 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   11337      9333031 :   switch (TREE_CODE (_p0))
   11338              :     {
   11339      1340761 :     case LE_EXPR:
   11340      1340761 :       {
   11341      1340761 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11342      1340761 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11343      1340761 :         switch (TREE_CODE (_q20))
   11344              :           {
   11345         3867 :           case POINTER_PLUS_EXPR:
   11346         3867 :             {
   11347         3867 :               tree _q30 = TREE_OPERAND (_q20, 0);
   11348         3867 :               tree _q31 = TREE_OPERAND (_q20, 1);
   11349         3867 :               switch (TREE_CODE (_q31))
   11350              :                 {
   11351         3635 :                 case INTEGER_CST:
   11352         3635 :                   {
   11353         3635 :                     switch (TREE_CODE (_p1))
   11354              :                       {
   11355         1085 :                       case LE_EXPR:
   11356         1085 :                         {
   11357         1085 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11358         1085 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11359         1085 :                           switch (TREE_CODE (_q70))
   11360              :                             {
   11361          800 :                             case POINTER_PLUS_EXPR:
   11362          800 :                               {
   11363          800 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   11364          800 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   11365          800 :                                 if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
   11366              :                                   {
   11367          514 :                                     if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
   11368              :                                       {
   11369          395 :                                         if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   11370              :                                           {
   11371          395 :                                             {
   11372          395 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
   11373          395 :                                               const enum tree_code cmp = LE_EXPR;
   11374          395 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11375          394 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11376          789 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11377              : )
   11378              :                                                 {
   11379          394 :                                                   {
   11380          394 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11381          394 :  offset_int rhs = off * 2;
   11382          394 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11383              : )
   11384              :                                                         {
   11385          394 :                                                           {
   11386          394 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11387          394 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11388          394 :                                                               if (cmp == LT_EXPR
   11389              : )
   11390              :                                                                 {
   11391              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1805;
   11392              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1805;
   11393              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1805;
   11394              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1805;
   11395              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1805;
   11396              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1805;
   11397              :                                                                   {
   11398              :                                                                     tree res_op0;
   11399              :                                                                     {
   11400              :                                                                       tree _o1[1], _r1;
   11401              :                                                                       {
   11402              :                                                                         tree _o2[2], _r2;
   11403              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11404              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11405              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11406              :                                                                         _o1[0] = _r2;
   11407              :                                                                       }
   11408              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11409              :                                                                         {
   11410              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11411              :                                                                         }
   11412              :                                                                       else
   11413              :                                                                         _r1 = _o1[0];
   11414              :                                                                       res_op0 = _r1;
   11415              :                                                                     }
   11416              :                                                                     tree res_op1;
   11417              :                                                                     res_op1 =  rhs_tree;
   11418              :                                                                     tree _r;
   11419              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11420              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   11421          394 :                                                                     return _r;
   11422              :                                                                   }
   11423              : next_after_fail1805:;
   11424              :                                                                 }
   11425              :                                                               else
   11426              :                                                                 {
   11427          394 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1806;
   11428          394 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1806;
   11429          394 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1806;
   11430          394 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1806;
   11431          394 :                                                                   {
   11432          394 :                                                                     tree res_op0;
   11433          394 :                                                                     {
   11434          394 :                                                                       tree _o1[1], _r1;
   11435          394 :                                                                       {
   11436          394 :                                                                         tree _o2[2], _r2;
   11437          394 :                                                                         {
   11438          394 :                                                                           tree _o3[2], _r3;
   11439          394 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11440          394 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11441          394 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11442          394 :                                                                           _o2[0] = _r3;
   11443              :                                                                         }
   11444          394 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11445          394 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11446          394 :                                                                         _o1[0] = _r2;
   11447              :                                                                       }
   11448          394 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11449              :                                                                         {
   11450          394 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11451              :                                                                         }
   11452              :                                                                       else
   11453              :                                                                         _r1 = _o1[0];
   11454          394 :                                                                       res_op0 = _r1;
   11455              :                                                                     }
   11456          394 :                                                                     tree res_op1;
   11457          394 :                                                                     res_op1 =  rhs_tree;
   11458          394 :                                                                     tree _r;
   11459          394 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11460          394 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   11461          394 :                                                                     return _r;
   11462              :                                                                   }
   11463            0 : next_after_fail1806:;
   11464              :                                                                 }
   11465              :                                                           }
   11466              :                                                         }
   11467              :                                                   }
   11468              :                                                 }
   11469              :                                             }
   11470              :                                           }
   11471              :                                       }
   11472              :                                   }
   11473              :                                 break;
   11474              :                               }
   11475              :                             default:;
   11476              :                             }
   11477              :                           break;
   11478              :                         }
   11479          116 :                       case GE_EXPR:
   11480          116 :                         {
   11481          116 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11482          116 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11483          116 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   11484              :                             {
   11485           18 :                               switch (TREE_CODE (_q71))
   11486              :                                 {
   11487           18 :                                 case POINTER_PLUS_EXPR:
   11488           18 :                                   {
   11489           18 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   11490           18 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   11491           18 :                                     if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
   11492              :                                       {
   11493           16 :                                         if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
   11494              :                                           {
   11495           11 :                                             {
   11496           11 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
   11497           11 :                                               const enum tree_code cmp = LE_EXPR;
   11498           11 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11499           11 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11500           22 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11501              : )
   11502              :                                                 {
   11503           11 :                                                   {
   11504           11 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11505           11 :  offset_int rhs = off * 2;
   11506           11 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11507              : )
   11508              :                                                         {
   11509           11 :                                                           {
   11510           11 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11511           11 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11512           11 :                                                               if (cmp == LT_EXPR
   11513              : )
   11514              :                                                                 {
   11515              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1807;
   11516              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1807;
   11517              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1807;
   11518              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1807;
   11519              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1807;
   11520              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1807;
   11521              :                                                                   {
   11522              :                                                                     tree res_op0;
   11523              :                                                                     {
   11524              :                                                                       tree _o1[1], _r1;
   11525              :                                                                       {
   11526              :                                                                         tree _o2[2], _r2;
   11527              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11528              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11529              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11530              :                                                                         _o1[0] = _r2;
   11531              :                                                                       }
   11532              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11533              :                                                                         {
   11534              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11535              :                                                                         }
   11536              :                                                                       else
   11537              :                                                                         _r1 = _o1[0];
   11538              :                                                                       res_op0 = _r1;
   11539              :                                                                     }
   11540              :                                                                     tree res_op1;
   11541              :                                                                     res_op1 =  rhs_tree;
   11542              :                                                                     tree _r;
   11543              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11544              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   11545           11 :                                                                     return _r;
   11546              :                                                                   }
   11547              : next_after_fail1807:;
   11548              :                                                                 }
   11549              :                                                               else
   11550              :                                                                 {
   11551           11 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1808;
   11552           11 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1808;
   11553           11 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1808;
   11554           11 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1808;
   11555           11 :                                                                   {
   11556           11 :                                                                     tree res_op0;
   11557           11 :                                                                     {
   11558           11 :                                                                       tree _o1[1], _r1;
   11559           11 :                                                                       {
   11560           11 :                                                                         tree _o2[2], _r2;
   11561           11 :                                                                         {
   11562           11 :                                                                           tree _o3[2], _r3;
   11563           11 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11564           11 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11565           11 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11566           11 :                                                                           _o2[0] = _r3;
   11567              :                                                                         }
   11568           11 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11569           11 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11570           11 :                                                                         _o1[0] = _r2;
   11571              :                                                                       }
   11572           11 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11573              :                                                                         {
   11574           11 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11575              :                                                                         }
   11576              :                                                                       else
   11577              :                                                                         _r1 = _o1[0];
   11578           11 :                                                                       res_op0 = _r1;
   11579              :                                                                     }
   11580           11 :                                                                     tree res_op1;
   11581           11 :                                                                     res_op1 =  rhs_tree;
   11582           11 :                                                                     tree _r;
   11583           11 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11584           11 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   11585           11 :                                                                     return _r;
   11586              :                                                                   }
   11587            0 : next_after_fail1808:;
   11588              :                                                                 }
   11589              :                                                           }
   11590              :                                                         }
   11591              :                                                   }
   11592              :                                                 }
   11593              :                                             }
   11594              :                                           }
   11595              :                                       }
   11596              :                                     break;
   11597              :                                   }
   11598              :                                 default:;
   11599              :                                 }
   11600              :                             }
   11601              :                           break;
   11602              :                         }
   11603              :                       default:;
   11604              :                       }
   11605              :                     break;
   11606              :                   }
   11607              :                 default:;
   11608              :                 }
   11609              :               break;
   11610              :             }
   11611              :           default:;
   11612              :           }
   11613              :         break;
   11614              :       }
   11615      1041396 :     case LT_EXPR:
   11616      1041396 :       {
   11617      1041396 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11618      1041396 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11619      1041396 :         switch (TREE_CODE (_q20))
   11620              :           {
   11621         2424 :           case POINTER_PLUS_EXPR:
   11622         2424 :             {
   11623         2424 :               tree _q30 = TREE_OPERAND (_q20, 0);
   11624         2424 :               tree _q31 = TREE_OPERAND (_q20, 1);
   11625         2424 :               switch (TREE_CODE (_q31))
   11626              :                 {
   11627         2240 :                 case INTEGER_CST:
   11628         2240 :                   {
   11629         2240 :                     switch (TREE_CODE (_p1))
   11630              :                       {
   11631          158 :                       case LT_EXPR:
   11632          158 :                         {
   11633          158 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11634          158 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11635          158 :                           switch (TREE_CODE (_q70))
   11636              :                             {
   11637           10 :                             case POINTER_PLUS_EXPR:
   11638           10 :                               {
   11639           10 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   11640           10 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   11641           10 :                                 if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
   11642              :                                   {
   11643            1 :                                     if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
   11644              :                                       {
   11645            1 :                                         if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   11646              :                                           {
   11647            1 :                                             {
   11648            1 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
   11649            1 :                                               const enum tree_code cmp = LT_EXPR;
   11650            1 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11651            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11652            1 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11653              : )
   11654              :                                                 {
   11655            0 :                                                   {
   11656            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11657            0 :  offset_int rhs = off * 2;
   11658            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11659              : )
   11660              :                                                         {
   11661            0 :                                                           {
   11662            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11663            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11664            0 :                                                               if (cmp == LT_EXPR
   11665              : )
   11666              :                                                                 {
   11667            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1809;
   11668            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1809;
   11669            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1809;
   11670            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1809;
   11671            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1809;
   11672            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1809;
   11673            0 :                                                                   {
   11674            0 :                                                                     tree res_op0;
   11675            0 :                                                                     {
   11676            0 :                                                                       tree _o1[1], _r1;
   11677            0 :                                                                       {
   11678            0 :                                                                         tree _o2[2], _r2;
   11679            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11680            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11681            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11682            0 :                                                                         _o1[0] = _r2;
   11683              :                                                                       }
   11684            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11685              :                                                                         {
   11686            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11687              :                                                                         }
   11688              :                                                                       else
   11689              :                                                                         _r1 = _o1[0];
   11690            0 :                                                                       res_op0 = _r1;
   11691              :                                                                     }
   11692            0 :                                                                     tree res_op1;
   11693            0 :                                                                     res_op1 =  rhs_tree;
   11694            0 :                                                                     tree _r;
   11695            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11696            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   11697            0 :                                                                     return _r;
   11698              :                                                                   }
   11699            0 : next_after_fail1809:;
   11700              :                                                                 }
   11701              :                                                               else
   11702              :                                                                 {
   11703              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1810;
   11704              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1810;
   11705              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1810;
   11706              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1810;
   11707              :                                                                   {
   11708              :                                                                     tree res_op0;
   11709              :                                                                     {
   11710              :                                                                       tree _o1[1], _r1;
   11711              :                                                                       {
   11712              :                                                                         tree _o2[2], _r2;
   11713              :                                                                         {
   11714              :                                                                           tree _o3[2], _r3;
   11715              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11716              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11717              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11718              :                                                                           _o2[0] = _r3;
   11719              :                                                                         }
   11720              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11721              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11722              :                                                                         _o1[0] = _r2;
   11723              :                                                                       }
   11724              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11725              :                                                                         {
   11726              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11727              :                                                                         }
   11728              :                                                                       else
   11729              :                                                                         _r1 = _o1[0];
   11730              :                                                                       res_op0 = _r1;
   11731              :                                                                     }
   11732              :                                                                     tree res_op1;
   11733              :                                                                     res_op1 =  rhs_tree;
   11734              :                                                                     tree _r;
   11735              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11736              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   11737              :                                                                     return _r;
   11738              :                                                                   }
   11739              : next_after_fail1810:;
   11740              :                                                                 }
   11741              :                                                           }
   11742              :                                                         }
   11743              :                                                   }
   11744              :                                                 }
   11745              :                                             }
   11746              :                                           }
   11747              :                                       }
   11748              :                                   }
   11749              :                                 break;
   11750              :                               }
   11751              :                             default:;
   11752              :                             }
   11753              :                           break;
   11754              :                         }
   11755          785 :                       case GT_EXPR:
   11756          785 :                         {
   11757          785 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11758          785 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11759          785 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   11760              :                             {
   11761            0 :                               switch (TREE_CODE (_q71))
   11762              :                                 {
   11763            0 :                                 case POINTER_PLUS_EXPR:
   11764            0 :                                   {
   11765            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   11766            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   11767            0 :                                     if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
   11768              :                                       {
   11769            0 :                                         if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
   11770              :                                           {
   11771            0 :                                             {
   11772            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
   11773            0 :                                               const enum tree_code cmp = LT_EXPR;
   11774            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11775            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11776            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11777              : )
   11778              :                                                 {
   11779            0 :                                                   {
   11780            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11781            0 :  offset_int rhs = off * 2;
   11782            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11783              : )
   11784              :                                                         {
   11785            0 :                                                           {
   11786            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11787            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11788            0 :                                                               if (cmp == LT_EXPR
   11789              : )
   11790              :                                                                 {
   11791            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1811;
   11792            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1811;
   11793            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1811;
   11794            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1811;
   11795            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1811;
   11796            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1811;
   11797            0 :                                                                   {
   11798            0 :                                                                     tree res_op0;
   11799            0 :                                                                     {
   11800            0 :                                                                       tree _o1[1], _r1;
   11801            0 :                                                                       {
   11802            0 :                                                                         tree _o2[2], _r2;
   11803            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11804            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11805            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11806            0 :                                                                         _o1[0] = _r2;
   11807              :                                                                       }
   11808            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11809              :                                                                         {
   11810            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11811              :                                                                         }
   11812              :                                                                       else
   11813              :                                                                         _r1 = _o1[0];
   11814            0 :                                                                       res_op0 = _r1;
   11815              :                                                                     }
   11816            0 :                                                                     tree res_op1;
   11817            0 :                                                                     res_op1 =  rhs_tree;
   11818            0 :                                                                     tree _r;
   11819            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11820            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   11821            0 :                                                                     return _r;
   11822              :                                                                   }
   11823            0 : next_after_fail1811:;
   11824              :                                                                 }
   11825              :                                                               else
   11826              :                                                                 {
   11827              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1812;
   11828              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1812;
   11829              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1812;
   11830              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1812;
   11831              :                                                                   {
   11832              :                                                                     tree res_op0;
   11833              :                                                                     {
   11834              :                                                                       tree _o1[1], _r1;
   11835              :                                                                       {
   11836              :                                                                         tree _o2[2], _r2;
   11837              :                                                                         {
   11838              :                                                                           tree _o3[2], _r3;
   11839              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11840              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11841              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11842              :                                                                           _o2[0] = _r3;
   11843              :                                                                         }
   11844              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11845              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11846              :                                                                         _o1[0] = _r2;
   11847              :                                                                       }
   11848              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11849              :                                                                         {
   11850              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11851              :                                                                         }
   11852              :                                                                       else
   11853              :                                                                         _r1 = _o1[0];
   11854              :                                                                       res_op0 = _r1;
   11855              :                                                                     }
   11856              :                                                                     tree res_op1;
   11857              :                                                                     res_op1 =  rhs_tree;
   11858              :                                                                     tree _r;
   11859              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11860              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   11861              :                                                                     return _r;
   11862              :                                                                   }
   11863              : next_after_fail1812:;
   11864              :                                                                 }
   11865              :                                                           }
   11866              :                                                         }
   11867              :                                                   }
   11868              :                                                 }
   11869              :                                             }
   11870              :                                           }
   11871              :                                       }
   11872              :                                     break;
   11873              :                                   }
   11874              :                                 default:;
   11875              :                                 }
   11876              :                             }
   11877              :                           break;
   11878              :                         }
   11879              :                       default:;
   11880              :                       }
   11881              :                     break;
   11882              :                   }
   11883              :                 default:;
   11884              :                 }
   11885              :               break;
   11886              :             }
   11887              :           default:;
   11888              :           }
   11889              :         break;
   11890              :       }
   11891       795788 :     case GE_EXPR:
   11892       795788 :       {
   11893       795788 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11894       795788 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11895       795788 :         switch (TREE_CODE (_q21))
   11896              :           {
   11897           53 :           case POINTER_PLUS_EXPR:
   11898           53 :             {
   11899           53 :               tree _q40 = TREE_OPERAND (_q21, 0);
   11900           53 :               tree _q41 = TREE_OPERAND (_q21, 1);
   11901           53 :               switch (TREE_CODE (_q41))
   11902              :                 {
   11903           53 :                 case INTEGER_CST:
   11904           53 :                   {
   11905           53 :                     switch (TREE_CODE (_p1))
   11906              :                       {
   11907           52 :                       case LE_EXPR:
   11908           52 :                         {
   11909           52 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11910           52 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11911           52 :                           switch (TREE_CODE (_q70))
   11912              :                             {
   11913           42 :                             case POINTER_PLUS_EXPR:
   11914           42 :                               {
   11915           42 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   11916           42 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   11917           42 :                                 if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   11918              :                                   {
   11919           27 :                                     if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
   11920              :                                       {
   11921            3 :                                         if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
   11922              :                                           {
   11923            3 :                                             {
   11924            3 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
   11925            3 :                                               const enum tree_code cmp = LE_EXPR;
   11926            3 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11927            3 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11928            6 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11929              : )
   11930              :                                                 {
   11931            3 :                                                   {
   11932            3 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11933            3 :  offset_int rhs = off * 2;
   11934            3 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11935              : )
   11936              :                                                         {
   11937            3 :                                                           {
   11938            3 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11939            3 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11940            3 :                                                               if (cmp == LT_EXPR
   11941              : )
   11942              :                                                                 {
   11943              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1813;
   11944              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1813;
   11945              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1813;
   11946              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1813;
   11947              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1813;
   11948              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1813;
   11949              :                                                                   {
   11950              :                                                                     tree res_op0;
   11951              :                                                                     {
   11952              :                                                                       tree _o1[1], _r1;
   11953              :                                                                       {
   11954              :                                                                         tree _o2[2], _r2;
   11955              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11956              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11957              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11958              :                                                                         _o1[0] = _r2;
   11959              :                                                                       }
   11960              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11961              :                                                                         {
   11962              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11963              :                                                                         }
   11964              :                                                                       else
   11965              :                                                                         _r1 = _o1[0];
   11966              :                                                                       res_op0 = _r1;
   11967              :                                                                     }
   11968              :                                                                     tree res_op1;
   11969              :                                                                     res_op1 =  rhs_tree;
   11970              :                                                                     tree _r;
   11971              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11972              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   11973            3 :                                                                     return _r;
   11974              :                                                                   }
   11975              : next_after_fail1813:;
   11976              :                                                                 }
   11977              :                                                               else
   11978              :                                                                 {
   11979            3 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1814;
   11980            3 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1814;
   11981            3 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1814;
   11982            3 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1814;
   11983            3 :                                                                   {
   11984            3 :                                                                     tree res_op0;
   11985            3 :                                                                     {
   11986            3 :                                                                       tree _o1[1], _r1;
   11987            3 :                                                                       {
   11988            3 :                                                                         tree _o2[2], _r2;
   11989            3 :                                                                         {
   11990            3 :                                                                           tree _o3[2], _r3;
   11991            3 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11992            3 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11993            3 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11994            3 :                                                                           _o2[0] = _r3;
   11995              :                                                                         }
   11996            3 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11997            3 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11998            3 :                                                                         _o1[0] = _r2;
   11999              :                                                                       }
   12000            3 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   12001              :                                                                         {
   12002            3 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   12003              :                                                                         }
   12004              :                                                                       else
   12005              :                                                                         _r1 = _o1[0];
   12006            3 :                                                                       res_op0 = _r1;
   12007              :                                                                     }
   12008            3 :                                                                     tree res_op1;
   12009            3 :                                                                     res_op1 =  rhs_tree;
   12010            3 :                                                                     tree _r;
   12011            3 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   12012            3 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   12013            3 :                                                                     return _r;
   12014              :                                                                   }
   12015            0 : next_after_fail1814:;
   12016              :                                                                 }
   12017              :                                                           }
   12018              :                                                         }
   12019              :                                                   }
   12020              :                                                 }
   12021              :                                             }
   12022              :                                           }
   12023              :                                       }
   12024              :                                   }
   12025              :                                 break;
   12026              :                               }
   12027              :                             default:;
   12028              :                             }
   12029              :                           break;
   12030              :                         }
   12031            0 :                       case GE_EXPR:
   12032            0 :                         {
   12033            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   12034            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   12035            0 :                           if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
   12036              :                             {
   12037            0 :                               switch (TREE_CODE (_q71))
   12038              :                                 {
   12039            0 :                                 case POINTER_PLUS_EXPR:
   12040            0 :                                   {
   12041            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   12042            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   12043            0 :                                     if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
   12044              :                                       {
   12045            0 :                                         if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
   12046              :                                           {
   12047            0 :                                             {
   12048            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
   12049            0 :                                               const enum tree_code cmp = LE_EXPR;
   12050            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   12051            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   12052            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   12053              : )
   12054              :                                                 {
   12055            0 :                                                   {
   12056            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   12057            0 :  offset_int rhs = off * 2;
   12058            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   12059              : )
   12060              :                                                         {
   12061            0 :                                                           {
   12062            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   12063            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   12064            0 :                                                               if (cmp == LT_EXPR
   12065              : )
   12066              :                                                                 {
   12067              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1815;
   12068              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1815;
   12069              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1815;
   12070              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1815;
   12071              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1815;
   12072              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1815;
   12073              :                                                                   {
   12074              :                                                                     tree res_op0;
   12075              :                                                                     {
   12076              :                                                                       tree _o1[1], _r1;
   12077              :                                                                       {
   12078              :                                                                         tree _o2[2], _r2;
   12079              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   12080              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   12081              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   12082              :                                                                         _o1[0] = _r2;
   12083              :                                                                       }
   12084              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   12085              :                                                                         {
   12086              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   12087              :                                                                         }
   12088              :                                                                       else
   12089              :                                                                         _r1 = _o1[0];
   12090              :                                                                       res_op0 = _r1;
   12091              :                                                                     }
   12092              :                                                                     tree res_op1;
   12093              :                                                                     res_op1 =  rhs_tree;
   12094              :                                                                     tree _r;
   12095              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   12096              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   12097            0 :                                                                     return _r;
   12098              :                                                                   }
   12099              : next_after_fail1815:;
   12100              :                                                                 }
   12101              :                                                               else
   12102              :                                                                 {
   12103            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1816;
   12104            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1816;
   12105            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1816;
   12106            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1816;
   12107            0 :                                                                   {
   12108            0 :                                                                     tree res_op0;
   12109            0 :                                                                     {
   12110            0 :                                                                       tree _o1[1], _r1;
   12111            0 :                                                                       {
   12112            0 :                                                                         tree _o2[2], _r2;
   12113            0 :                                                                         {
   12114            0 :                                                                           tree _o3[2], _r3;
   12115            0 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   12116            0 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   12117            0 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   12118            0 :                                                                           _o2[0] = _r3;
   12119              :                                                                         }
   12120            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   12121            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   12122            0 :                                                                         _o1[0] = _r2;
   12123              :                                                                       }
   12124            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   12125              :                                                                         {
   12126            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   12127              :                                                                         }
   12128              :                                                                       else
   12129              :                                                                         _r1 = _o1[0];
   12130            0 :                                                                       res_op0 = _r1;
   12131              :                                                                     }
   12132            0 :                                                                     tree res_op1;
   12133            0 :                                                                     res_op1 =  rhs_tree;
   12134            0 :                                                                     tree _r;
   12135            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   12136            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   12137            0 :                                                                     return _r;
   12138              :                                                                   }
   12139            0 : next_after_fail1816:;
   12140              :                                                                 }
   12141              :                                                           }
   12142              :                                                         }
   12143              :                                                   }
   12144              :                                                 }
   12145              :                                             }
   12146              :                                           }
   12147              :                                       }
   12148              :                                     break;
   12149              :                                   }
   12150              :                                 default:;
   12151              :                                 }
   12152              :                             }
   12153              :                           break;
   12154              :                         }
   12155              :                       default:;
   12156              :                       }
   12157              :                     break;
   12158              :                   }
   12159              :                 default:;
   12160              :                 }
   12161              :               break;
   12162              :             }
   12163              :           default:;
   12164              :           }
   12165              :         break;
   12166              :       }
   12167      1173513 :     case GT_EXPR:
   12168      1173513 :       {
   12169      1173513 :         tree _q20 = TREE_OPERAND (_p0, 0);
   12170      1173513 :         tree _q21 = TREE_OPERAND (_p0, 1);
   12171      1173513 :         switch (TREE_CODE (_q21))
   12172              :           {
   12173           46 :           case POINTER_PLUS_EXPR:
   12174           46 :             {
   12175           46 :               tree _q40 = TREE_OPERAND (_q21, 0);
   12176           46 :               tree _q41 = TREE_OPERAND (_q21, 1);
   12177           46 :               switch (TREE_CODE (_q41))
   12178              :                 {
   12179           46 :                 case INTEGER_CST:
   12180           46 :                   {
   12181           46 :                     switch (TREE_CODE (_p1))
   12182              :                       {
   12183            0 :                       case LT_EXPR:
   12184            0 :                         {
   12185            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   12186            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   12187            0 :                           switch (TREE_CODE (_q70))
   12188              :                             {
   12189            0 :                             case POINTER_PLUS_EXPR:
   12190            0 :                               {
   12191            0 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   12192            0 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   12193            0 :                                 if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   12194              :                                   {
   12195            0 :                                     if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
   12196              :                                       {
   12197            0 :                                         if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
   12198              :                                           {
   12199            0 :                                             {
   12200            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
   12201            0 :                                               const enum tree_code cmp = LT_EXPR;
   12202            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   12203            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   12204            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   12205              : )
   12206              :                                                 {
   12207            0 :                                                   {
   12208            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   12209            0 :  offset_int rhs = off * 2;
   12210            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   12211              : )
   12212              :                                                         {
   12213            0 :                                                           {
   12214            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   12215            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   12216            0 :                                                               if (cmp == LT_EXPR
   12217              : )
   12218              :                                                                 {
   12219            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1817;
   12220            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1817;
   12221            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1817;
   12222            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1817;
   12223            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1817;
   12224            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1817;
   12225            0 :                                                                   {
   12226            0 :                                                                     tree res_op0;
   12227            0 :                                                                     {
   12228            0 :                                                                       tree _o1[1], _r1;
   12229            0 :                                                                       {
   12230            0 :                                                                         tree _o2[2], _r2;
   12231            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   12232            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   12233            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   12234            0 :                                                                         _o1[0] = _r2;
   12235              :                                                                       }
   12236            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   12237              :                                                                         {
   12238            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   12239              :                                                                         }
   12240              :                                                                       else
   12241              :                                                                         _r1 = _o1[0];
   12242            0 :                                                                       res_op0 = _r1;
   12243              :                                                                     }
   12244            0 :                                                                     tree res_op1;
   12245            0 :                                                                     res_op1 =  rhs_tree;
   12246            0 :                                                                     tree _r;
   12247            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   12248            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   12249            0 :                                                                     return _r;
   12250              :                                                                   }
   12251            0 : next_after_fail1817:;
   12252              :                                                                 }
   12253              :                                                               else
   12254              :                                                                 {
   12255              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1818;
   12256              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1818;
   12257              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1818;
   12258              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1818;
   12259              :                                                                   {
   12260              :                                                                     tree res_op0;
   12261              :                                                                     {
   12262              :                                                                       tree _o1[1], _r1;
   12263              :                                                                       {
   12264              :                                                                         tree _o2[2], _r2;
   12265              :                                                                         {
   12266              :                                                                           tree _o3[2], _r3;
   12267              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   12268              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   12269              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   12270              :                                                                           _o2[0] = _r3;
   12271              :                                                                         }
   12272              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   12273              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   12274              :                                                                         _o1[0] = _r2;
   12275              :                                                                       }
   12276              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   12277              :                                                                         {
   12278              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   12279              :                                                                         }
   12280              :                                                                       else
   12281              :                                                                         _r1 = _o1[0];
   12282              :                                                                       res_op0 = _r1;
   12283              :                                                                     }
   12284              :                                                                     tree res_op1;
   12285              :                                                                     res_op1 =  rhs_tree;
   12286              :                                                                     tree _r;
   12287              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   12288              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   12289              :                                                                     return _r;
   12290              :                                                                   }
   12291              : next_after_fail1818:;
   12292              :                                                                 }
   12293              :                                                           }
   12294              :                                                         }
   12295              :                                                   }
   12296              :                                                 }
   12297              :                                             }
   12298              :                                           }
   12299              :                                       }
   12300              :                                   }
   12301              :                                 break;
   12302              :                               }
   12303              :                             default:;
   12304              :                             }
   12305              :                           break;
   12306              :                         }
   12307           18 :                       case GT_EXPR:
   12308           18 :                         {
   12309           18 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   12310           18 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   12311           18 :                           if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
   12312              :                             {
   12313            0 :                               switch (TREE_CODE (_q71))
   12314              :                                 {
   12315            0 :                                 case POINTER_PLUS_EXPR:
   12316            0 :                                   {
   12317            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   12318            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   12319            0 :                                     if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
   12320              :                                       {
   12321            0 :                                         if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
   12322              :                                           {
   12323            0 :                                             {
   12324            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
   12325            0 :                                               const enum tree_code cmp = LT_EXPR;
   12326            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   12327            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   12328            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   12329              : )
   12330              :                                                 {
   12331            0 :                                                   {
   12332            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   12333            0 :  offset_int rhs = off * 2;
   12334            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   12335              : )
   12336              :                                                         {
   12337            0 :                                                           {
   12338            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   12339            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   12340            0 :                                                               if (cmp == LT_EXPR
   12341              : )
   12342              :                                                                 {
   12343            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1819;
   12344            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1819;
   12345            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1819;
   12346            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1819;
   12347            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1819;
   12348            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1819;
   12349            0 :                                                                   {
   12350            0 :                                                                     tree res_op0;
   12351            0 :                                                                     {
   12352            0 :                                                                       tree _o1[1], _r1;
   12353            0 :                                                                       {
   12354            0 :                                                                         tree _o2[2], _r2;
   12355            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   12356            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   12357            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   12358            0 :                                                                         _o1[0] = _r2;
   12359              :                                                                       }
   12360            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   12361              :                                                                         {
   12362            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   12363              :                                                                         }
   12364              :                                                                       else
   12365              :                                                                         _r1 = _o1[0];
   12366            0 :                                                                       res_op0 = _r1;
   12367              :                                                                     }
   12368            0 :                                                                     tree res_op1;
   12369            0 :                                                                     res_op1 =  rhs_tree;
   12370            0 :                                                                     tree _r;
   12371            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   12372            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 947, __FILE__, __LINE__, true);
   12373            0 :                                                                     return _r;
   12374              :                                                                   }
   12375            0 : next_after_fail1819:;
   12376              :                                                                 }
   12377              :                                                               else
   12378              :                                                                 {
   12379              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1820;
   12380              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1820;
   12381              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1820;
   12382              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1820;
   12383              :                                                                   {
   12384              :                                                                     tree res_op0;
   12385              :                                                                     {
   12386              :                                                                       tree _o1[1], _r1;
   12387              :                                                                       {
   12388              :                                                                         tree _o2[2], _r2;
   12389              :                                                                         {
   12390              :                                                                           tree _o3[2], _r3;
   12391              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   12392              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   12393              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   12394              :                                                                           _o2[0] = _r3;
   12395              :                                                                         }
   12396              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   12397              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   12398              :                                                                         _o1[0] = _r2;
   12399              :                                                                       }
   12400              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   12401              :                                                                         {
   12402              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   12403              :                                                                         }
   12404              :                                                                       else
   12405              :                                                                         _r1 = _o1[0];
   12406              :                                                                       res_op0 = _r1;
   12407              :                                                                     }
   12408              :                                                                     tree res_op1;
   12409              :                                                                     res_op1 =  rhs_tree;
   12410              :                                                                     tree _r;
   12411              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   12412              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
   12413              :                                                                     return _r;
   12414              :                                                                   }
   12415              : next_after_fail1820:;
   12416              :                                                                 }
   12417              :                                                           }
   12418              :                                                         }
   12419              :                                                   }
   12420              :                                                 }
   12421              :                                             }
   12422              :                                           }
   12423              :                                       }
   12424              :                                     break;
   12425              :                                   }
   12426              :                                 default:;
   12427              :                                 }
   12428              :                             }
   12429              :                           break;
   12430              :                         }
   12431              :                       default:;
   12432              :                       }
   12433              :                     break;
   12434              :                   }
   12435              :                 default:;
   12436              :                 }
   12437              :               break;
   12438              :             }
   12439              :           default:;
   12440              :           }
   12441              :         break;
   12442              :       }
   12443              :     default:;
   12444              :     }
   12445              :   return NULL_TREE;
   12446              : }
   12447              : #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.