LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - generic-match-4.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 57.7 % 7062 4077
Test Date: 2026-03-28 14:25:54 Functions: 69.4 % 72 50
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    132545322 : tree_negate_expr_p (tree t)
      11              : {
      12    132545322 :   const tree type = TREE_TYPE (t);
      13    132545322 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14    132545322 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15    127224041 :   switch (TREE_CODE (t))
      16              :     {
      17      7666594 :     case INTEGER_CST:
      18      7666594 :       {
      19      7666594 :         {
      20      7666594 :           if ((INTEGRAL_TYPE_P (type)
      21      7666594 :  && TYPE_UNSIGNED (type))
      22      9854945 :  || (!TYPE_OVERFLOW_SANITIZED (type)
      23      2185616 :  && may_negate_without_overflow_p (t))
      24              : )
      25              :             {
      26      7650750 :               {
      27      7650750 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 14, __FILE__, __LINE__, false);
      28      7650750 :                 return true;
      29              :               }
      30              :             }
      31              :         }
      32              :         break;
      33              :       }
      34            0 :     case FIXED_CST:
      35            0 :       {
      36            0 :         {
      37            0 :           {
      38            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 15, __FILE__, __LINE__, false);
      39              :             return true;
      40              :           }
      41              :         }
      42       399232 :         break;
      43              :       }
      44       399232 :     case NEGATE_EXPR:
      45       399232 :       {
      46       399232 :         tree _p0 = TREE_OPERAND (t, 0);
      47       399232 :         {
      48       399232 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      49       399232 :           if (!TYPE_OVERFLOW_SANITIZED (type)
      50              : )
      51              :             {
      52       399212 :               {
      53       399212 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 16, __FILE__, __LINE__, false);
      54       399212 :                 return true;
      55              :               }
      56              :             }
      57              :         }
      58              :         break;
      59              :       }
      60       726207 :     case REAL_CST:
      61       726207 :       {
      62       726207 :         {
      63       726207 :           if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (t))
      64              : )
      65              :             {
      66          639 :               {
      67          639 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 17, __FILE__, __LINE__, false);
      68          639 :                 return true;
      69              :               }
      70              :             }
      71              :         }
      72              :         break;
      73              :       }
      74          436 :     case VECTOR_CST:
      75          436 :       {
      76          436 :         {
      77          436 :           if (FLOAT_TYPE_P (TREE_TYPE (type)) || TYPE_OVERFLOW_WRAPS (type)
      78              : )
      79              :             {
      80          320 :               {
      81          320 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 18, __FILE__, __LINE__, false);
      82          320 :                 return true;
      83              :               }
      84              :             }
      85              :         }
      86              :         break;
      87              :       }
      88      1218513 :     case MINUS_EXPR:
      89      1218513 :       {
      90      1218513 :         tree _p0 = TREE_OPERAND (t, 0);
      91      1218513 :         tree _p1 = TREE_OPERAND (t, 1);
      92      1218513 :         {
      93      1218513 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      94      1218513 :           if ((ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type))
      95      2121223 :  || (FLOAT_TYPE_P (type)
      96       632729 :  && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
      97       632729 :  && !HONOR_SIGNED_ZEROS (type))
      98              : )
      99              :             {
     100       316376 :               {
     101       316376 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 19, __FILE__, __LINE__, false);
     102       316376 :                 return true;
     103              :               }
     104              :             }
     105              :         }
     106       902137 :         break;
     107              :       }
     108              :     default:;
     109              :     }
     110              :   return false;
     111              : }
     112              : 
     113              : bool
     114            0 : tree_double_value_p (tree t)
     115              : {
     116            0 :   const tree type = TREE_TYPE (t);
     117            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     118            0 :   if (TREE_SIDE_EFFECTS (t)) return false;
     119            0 :   {
     120            0 :     tree captures[1] ATTRIBUTE_UNUSED = { t };
     121            0 :     if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == double_type_node
     122              : )
     123              :       {
     124            0 :         {
     125            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 44, __FILE__, __LINE__, false);
     126            0 :           return true;
     127              :         }
     128              :       }
     129              :   }
     130              :   return false;
     131              : }
     132              : 
     133              : tree
     134            7 : generic_simplify_6 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     135              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     136              :  const enum tree_code ARG_UNUSED (op))
     137              : {
     138            7 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     139            7 :   if (INTEGRAL_TYPE_P (type)
     140            7 :  && TYPE_OVERFLOW_WRAPS (type)
     141           14 :  && !TYPE_SATURATING (type)
     142              : )
     143              :     {
     144            7 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail78;
     145            7 :       {
     146            7 :         tree res_op0;
     147            7 :         {
     148            7 :           tree _o1[2], _r1;
     149            7 :           _o1[0] = captures[1];
     150            7 :           _o1[1] = captures[4];
     151            7 :           _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     152            7 :           res_op0 = _r1;
     153              :         }
     154            7 :         tree res_op1;
     155            7 :         res_op1 = captures[2];
     156            7 :         tree _r;
     157            7 :         _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
     158            7 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 55, __FILE__, __LINE__, true);
     159            7 :         return _r;
     160              :       }
     161            0 : next_after_fail78:;
     162              :     }
     163              :   return NULL_TREE;
     164              : }
     165              : 
     166              : tree
     167       222249 : generic_simplify_14 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     168              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     169              : {
     170       222249 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     171       222249 :   if (!TYPE_SATURATING (type)
     172              : )
     173              :     {
     174       222249 :       if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
     175       222249 :  && !TYPE_OVERFLOW_SANITIZED (type)
     176              : )
     177              :         {
     178       220104 :           {
     179       220104 :  tree t1 = type;
     180       220104 :  if (INTEGRAL_TYPE_P (type)
     181       370729 :  && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
     182         4235 :  t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]);
     183       220104 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail86;
     184       220104 :               {
     185       220104 :                 tree res_op0;
     186       220104 :                 {
     187       220104 :                   tree _o1[2], _r1;
     188       220104 :                   {
     189       220104 :                     tree _o2[1], _r2;
     190       220104 :                     _o2[0] = captures[0];
     191       220104 :                     if (TREE_TYPE (_o2[0]) != t1)
     192              :                       {
     193         3966 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
     194              :                       }
     195              :                     else
     196              :                       _r2 = _o2[0];
     197       220104 :                     _o1[0] = _r2;
     198              :                   }
     199       220104 :                   {
     200       220104 :                     tree _o2[1], _r2;
     201       220104 :                     _o2[0] = captures[1];
     202       220104 :                     if (TREE_TYPE (_o2[0]) != t1)
     203              :                       {
     204          992 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
     205              :                       }
     206              :                     else
     207              :                       _r2 = _o2[0];
     208       220104 :                     _o1[1] = _r2;
     209              :                   }
     210       220104 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     211       220104 :                   res_op0 = _r1;
     212              :                 }
     213       220104 :                 tree _r;
     214       220104 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     215       220104 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 63, __FILE__, __LINE__, true);
     216       220104 :                 return _r;
     217              :               }
     218            0 : next_after_fail86:;
     219              :           }
     220              :         }
     221              :     }
     222              :   return NULL_TREE;
     223              : }
     224              : 
     225              : tree
     226         9046 : generic_simplify_26 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     227              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     228              :  const enum tree_code ARG_UNUSED (plusminus))
     229              : {
     230         9046 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     231         9046 :   if (!TYPE_SATURATING (type)
     232         9046 :  && (!FLOAT_TYPE_P (type) || flag_associative_math)
     233              : )
     234              :     {
     235         8880 :       if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
     236              : )
     237              :         {
     238            4 :           if ((!ANY_INTEGRAL_TYPE_P (type)
     239         8876 :  || TYPE_OVERFLOW_WRAPS (type)
     240         3280 :  || (INTEGRAL_TYPE_P (type)
     241         3280 :  && ((tree_expr_nonzero_p (captures[0])
     242          136 :  && expr_not_equal_to (captures[0],
     243         9016 :  wi::minus_one (TYPE_PRECISION (type)),
     244              :  gimple_match_ctx (captures[1])))
     245              :  || (plusminus == PLUS_EXPR
     246         3144 :  ? expr_not_equal_to (captures[2],
     247         8898 :  wi::max_value (TYPE_PRECISION (type), SIGNED),
     248              :  gimple_match_ctx (captures[1]))
     249         3126 :  : (expr_not_equal_to (captures[2],
     250        12006 :  wi::min_value (TYPE_PRECISION (type), SIGNED),
     251              :  gimple_match_ctx (captures[1]))
     252         3102 :  && expr_not_equal_to (captures[2],
     253         6204 :  wi::min_value (TYPE_PRECISION (type), SIGNED)
     254        18186 :  + 1, gimple_match_ctx (captures[1])))))))
     255        12024 :  && single_use (captures[1])
     256              : )
     257              :             {
     258         8856 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail107;
     259         8856 :               {
     260         8856 :                 tree res_op0;
     261         8856 :                 {
     262         8856 :                   tree _o1[2], _r1;
     263         8856 :                   _o1[0] =  build_one_cst (type);
     264         8856 :                   _o1[1] = captures[2];
     265         8856 :                   _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     266         8856 :                   res_op0 = _r1;
     267              :                 }
     268         8856 :                 tree res_op1;
     269         8856 :                 res_op1 = captures[0];
     270         8856 :                 tree _r;
     271         8856 :                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
     272         8856 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 84, __FILE__, __LINE__, true);
     273         8856 :                 return _r;
     274              :               }
     275            0 : next_after_fail107:;
     276              :             }
     277              :         }
     278              :     }
     279              :   return NULL_TREE;
     280              : }
     281              : 
     282              : tree
     283            4 : generic_simplify_36 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     284              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     285              :  const combined_fn ARG_UNUSED (POPCOUNT))
     286              : {
     287            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     288            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail118;
     289            4 :   {
     290            4 :     tree res_op0;
     291            4 :     {
     292            4 :       tree _o1[1], _r1;
     293            4 :       _o1[0] = captures[2];
     294            4 :       _r1 = maybe_build_call_expr_loc (loc, POPCOUNT, type, 1, _o1[0]);
     295            4 :       if (!_r1)
     296            0 :         goto next_after_fail118;
     297            4 :       res_op0 = _r1;
     298              :     }
     299            4 :     tree res_op1;
     300            4 :     {
     301            4 :       tree _o1[1], _r1;
     302            4 :       _o1[0] = captures[3];
     303            4 :       _r1 = maybe_build_call_expr_loc (loc, POPCOUNT, type, 1, _o1[0]);
     304            4 :       if (!_r1)
     305            0 :         goto next_after_fail118;
     306            4 :       res_op1 = _r1;
     307              :     }
     308            4 :     tree _r;
     309            4 :     _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
     310            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 95, __FILE__, __LINE__, true);
     311              :     return _r;
     312              :   }
     313              : next_after_fail118:;
     314              :   return NULL_TREE;
     315              : }
     316              : 
     317              : tree
     318            2 : generic_simplify_44 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     319              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     320              : {
     321            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     322            2 :   if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
     323            2 :  && !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2]))
     324            2 :  && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[2]))
     325            4 :  && !TYPE_SATURATING (TREE_TYPE (captures[2]))
     326              : )
     327              :     {
     328            2 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail126;
     329            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail126;
     330            2 :       {
     331            2 :         tree res_op0;
     332            2 :         {
     333            2 :           tree _o1[1], _r1;
     334            2 :           {
     335            2 :             tree _o2[2], _r2;
     336            2 :             _o2[0] = captures[0];
     337            2 :             _o2[1] = captures[1];
     338            2 :             _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     339            2 :             _o1[0] = _r2;
     340              :           }
     341            2 :           if (TREE_TYPE (_o1[0]) != type)
     342              :             {
     343            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     344              :             }
     345              :           else
     346              :             _r1 = _o1[0];
     347            2 :           res_op0 = _r1;
     348              :         }
     349            2 :         tree _r;
     350            2 :         _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     351            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 103, __FILE__, __LINE__, true);
     352            2 :         return _r;
     353              :       }
     354              : next_after_fail126:;
     355              :     }
     356              :   return NULL_TREE;
     357              : }
     358              : 
     359              : tree
     360            0 : generic_simplify_54 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     361              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     362              : {
     363            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     364            0 :   if (!TYPE_SATURATING (type)
     365              : )
     366              :     {
     367            0 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     368            0 :  && !FIXED_POINT_TYPE_P (type)
     369              : )
     370              :         {
     371            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail138;
     372            0 :           {
     373            0 :             tree res_op0;
     374            0 :             res_op0 = captures[1];
     375            0 :             tree res_op1;
     376            0 :             res_op1 = captures[2];
     377            0 :             tree _r;
     378            0 :             _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
     379            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
     380            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     381            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 114, __FILE__, __LINE__, true);
     382            0 :             return _r;
     383              :           }
     384            0 : next_after_fail138:;
     385              :         }
     386              :     }
     387              :   return NULL_TREE;
     388              : }
     389              : 
     390              : tree
     391            9 : generic_simplify_60 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     392              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     393              : {
     394            9 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     395            9 :   if (INTEGRAL_TYPE_P (type)
     396            9 :  && (
     397              : 
     398            9 :  || !TREE_SIDE_EFFECTS (captures[1]))
     399              : )
     400              :     {
     401            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail148;
     402            2 :       {
     403            2 :         tree res_op0;
     404            2 :         {
     405            2 :           tree _o1[1], _r1;
     406            2 :           _o1[0] = captures[2];
     407            2 :           if (TREE_TYPE (_o1[0]) != boolean_type_node)
     408              :             {
     409            2 :               _r1 = fold_build1_loc (loc, NOP_EXPR, boolean_type_node, _o1[0]);
     410              :             }
     411              :           else
     412              :             _r1 = _o1[0];
     413            2 :           res_op0 = _r1;
     414              :         }
     415            2 :         tree res_op1;
     416            2 :         res_op1 = captures[1];
     417            2 :         tree res_op2;
     418            2 :         res_op2 = captures[0];
     419            2 :         tree _r;
     420            2 :         _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
     421            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 124, __FILE__, __LINE__, true);
     422            2 :         return _r;
     423              :       }
     424            0 : next_after_fail148:;
     425              :     }
     426              :   return NULL_TREE;
     427              : }
     428              : 
     429              : tree
     430           15 : generic_simplify_66 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     431              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     432              :  const enum tree_code ARG_UNUSED (op))
     433              : {
     434           15 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     435           15 :   if (INTEGRAL_TYPE_P (type)
     436              : )
     437              :     {
     438           15 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail154;
     439           15 :       {
     440           15 :         tree res_op0;
     441           15 :         {
     442           15 :           tree _o1[2], _r1;
     443           15 :           _o1[0] = captures[1];
     444           15 :           _o1[1] = captures[4];
     445           15 :           _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     446           15 :           res_op0 = _r1;
     447              :         }
     448           15 :         tree res_op1;
     449           15 :         res_op1 = captures[2];
     450           15 :         tree _r;
     451           15 :         _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
     452           15 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 130, __FILE__, __LINE__, true);
     453           15 :         return _r;
     454              :       }
     455            0 : next_after_fail154:;
     456              :     }
     457              :   return NULL_TREE;
     458              : }
     459              : 
     460              : tree
     461            0 : generic_simplify_72 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     462              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     463              : {
     464            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     465            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail160;
     466            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail160;
     467            0 :   {
     468            0 :     tree _r;
     469            0 :     _r = captures[2];
     470            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 134, __FILE__, __LINE__, true);
     471              :     return _r;
     472              :   }
     473              : next_after_fail160:;
     474              :   return NULL_TREE;
     475              : }
     476              : 
     477              : tree
     478            0 : generic_simplify_77 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     479              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     480              :  const enum tree_code ARG_UNUSED (bit_op))
     481              : {
     482            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     483            0 :   if (bit_op == BIT_AND_EXPR
     484              : )
     485              :     {
     486            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail167;
     487            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail167;
     488            0 :       {
     489            0 :         tree _r;
     490            0 :         _r =  build_zero_cst (type);
     491            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 140, __FILE__, __LINE__, true);
     492            0 :         return _r;
     493              :       }
     494              : next_after_fail167:;
     495              :     }
     496              :   else
     497              :     {
     498            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail168;
     499            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail168;
     500            0 :       {
     501            0 :         tree _r;
     502            0 :         _r =  build_minus_one_cst (type);
     503            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 141, __FILE__, __LINE__, true);
     504            0 :         return _r;
     505              :       }
     506              : next_after_fail168:;
     507              :     }
     508              :   return NULL_TREE;
     509              : }
     510              : 
     511              : tree
     512            0 : generic_simplify_87 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     513              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     514              : {
     515            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     516            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
     517            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
     518              : )
     519              :     {
     520            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail179;
     521            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail179;
     522            0 :       {
     523            0 :         tree _r;
     524            0 :         _r = captures[2];
     525            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 145, __FILE__, __LINE__, true);
     526            0 :         return _r;
     527              :       }
     528              : next_after_fail179:;
     529              :     }
     530              :   return NULL_TREE;
     531              : }
     532              : 
     533              : tree
     534            0 : generic_simplify_99 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     535              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     536              :  const enum tree_code ARG_UNUSED (op))
     537              : {
     538            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     539            0 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
     540            0 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
     541              : )
     542              :     {
     543            0 :       if (single_use (captures[4]) && single_use (captures[5])
     544              : )
     545              :         {
     546            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail191;
     547            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail191;
     548            0 :           {
     549            0 :             tree res_op0;
     550            0 :             res_op0 = captures[0];
     551            0 :             tree res_op1;
     552            0 :             {
     553            0 :               tree _o1[1], _r1;
     554            0 :               _o1[0] = captures[6];
     555            0 :               if (TREE_TYPE (_o1[0]) != type)
     556              :                 {
     557            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     558              :                 }
     559              :               else
     560              :                 _r1 = _o1[0];
     561            0 :               res_op1 = _r1;
     562              :             }
     563            0 :             tree _r;
     564            0 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     565            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 156, __FILE__, __LINE__, true);
     566            0 :             return _r;
     567              :           }
     568              : next_after_fail191:;
     569              :         }
     570              :       else
     571              :         {
     572              :           if (single_use (captures[0]) && single_use (captures[1])
     573              : )
     574              :             {
     575              :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail192;
     576              :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail192;
     577              :               {
     578              :                 tree res_op0;
     579              :                 {
     580              :                   tree _o1[1], _r1;
     581              :                   _o1[0] = captures[3];
     582              :                   if (TREE_TYPE (_o1[0]) != type)
     583              :                     {
     584              :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     585              :                     }
     586              :                   else
     587              :                     _r1 = _o1[0];
     588              :                   res_op0 = _r1;
     589              :                 }
     590              :                 tree res_op1;
     591              :                 res_op1 = captures[4];
     592              :                 tree _r;
     593              :                 _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     594              :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 157, __FILE__, __LINE__, true);
     595              :                 return _r;
     596              :               }
     597              : next_after_fail192:;
     598              :             }
     599              :         }
     600              :     }
     601              :   return NULL_TREE;
     602              : }
     603              : 
     604              : tree
     605          700 : generic_simplify_110 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     606              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     607              :  const enum tree_code ARG_UNUSED (op))
     608              : {
     609          700 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     610          700 :   if (bitwise_equal_p (captures[4], captures[7])
     611              : )
     612              :     {
     613           40 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail206;
     614           40 :       {
     615           40 :         tree res_op0;
     616           40 :         {
     617           40 :           tree _o1[2], _r1;
     618           40 :           {
     619           40 :             tree _o2[2], _r2;
     620           40 :             _o2[0] = captures[5];
     621           40 :             {
     622           40 :               tree _o3[1], _r3;
     623           40 :               _o3[0] = captures[6];
     624           40 :               if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
     625              :                 {
     626            0 :                   _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
     627              :                 }
     628              :               else
     629              :                 _r3 = _o3[0];
     630           40 :               _o2[1] = _r3;
     631              :             }
     632           40 :             _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     633           40 :             _o1[0] = _r2;
     634              :           }
     635           40 :           {
     636           40 :             tree _o2[1], _r2;
     637           40 :             _o2[0] = captures[4];
     638           40 :             if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
     639              :               {
     640            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
     641              :               }
     642              :             else
     643              :               _r2 = _o2[0];
     644           40 :             _o1[1] = _r2;
     645              :           }
     646           40 :           _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     647           40 :           res_op0 = _r1;
     648              :         }
     649           40 :         tree _r;
     650           40 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     651           40 :         if (TREE_SIDE_EFFECTS (captures[7]))
     652            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
     653           40 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 163, __FILE__, __LINE__, true);
     654           40 :         return _r;
     655              :       }
     656            0 : next_after_fail206:;
     657              :     }
     658              :   return NULL_TREE;
     659              : }
     660              : 
     661              : tree
     662          300 : generic_simplify_123 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     663              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     664              : {
     665          300 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     666          300 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail225;
     667          300 :   {
     668          300 :     if (! tree_invariant_p (captures[1])) goto next_after_fail225;
     669            0 :     tree res_op0;
     670            0 :     {
     671            0 :       tree _o1[2], _r1;
     672            0 :       {
     673            0 :         tree _o2[2], _r2;
     674            0 :         _o2[0] = unshare_expr (captures[1]);
     675            0 :         _o2[1] = captures[4];
     676            0 :         _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     677            0 :         _o1[0] = _r2;
     678              :       }
     679            0 :       _o1[1] = captures[2];
     680            0 :       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     681            0 :       res_op0 = _r1;
     682              :     }
     683            0 :     tree res_op1;
     684            0 :     res_op1 = captures[1];
     685            0 :     tree _r;
     686            0 :     _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
     687            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 178, __FILE__, __LINE__, true);
     688              :     return _r;
     689              :   }
     690              : next_after_fail225:;
     691              :   return NULL_TREE;
     692              : }
     693              : 
     694              : tree
     695            0 : generic_simplify_133 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     696              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     697              : {
     698            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     699            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail254;
     700            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail254;
     701            0 :   {
     702            0 :     tree _r;
     703            0 :     _r = captures[2];
     704            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
     705            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     706            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 181, __FILE__, __LINE__, true);
     707              :     return _r;
     708              :   }
     709              : next_after_fail254:;
     710              :   return NULL_TREE;
     711              : }
     712              : 
     713              : tree
     714            0 : generic_simplify_136 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     715              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     716              :  const enum tree_code ARG_UNUSED (eqne))
     717              : {
     718            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     719            0 :   if (eqne == EQ_EXPR
     720              : )
     721              :     {
     722            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail257;
     723            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail257;
     724            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail257;
     725            0 :       {
     726            0 :         tree _r;
     727            0 :         _r = captures[0];
     728            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 201, __FILE__, __LINE__, true);
     729            0 :         return _r;
     730              :       }
     731              : next_after_fail257:;
     732              :     }
     733              :   else
     734              :     {
     735            0 :       if (eqne == NE_EXPR
     736              : )
     737              :         {
     738            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail258;
     739            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail258;
     740            0 :           {
     741            0 :             tree _r;
     742            0 :             _r =  constant_boolean_node (true, type);
     743            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
     744            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     745            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 202, __FILE__, __LINE__, true);
     746            0 :             return _r;
     747              :           }
     748              : next_after_fail258:;
     749              :         }
     750              :     }
     751              :   return NULL_TREE;
     752              : }
     753              : 
     754              : tree
     755            0 : generic_simplify_144 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     756              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     757              :  const enum tree_code ARG_UNUSED (op))
     758              : {
     759            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     760            0 :   if (INTEGRAL_TYPE_P (type)
     761            0 :  && tree_int_cst_sgn (captures[5]) > 0
     762            0 :  && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[4])) == 0
     763              : )
     764              :     {
     765            0 :       {
     766            0 :  tree t = type;
     767            0 :  if (!TYPE_OVERFLOW_WRAPS (t))
     768            0 :  t = unsigned_type_for (t);
     769            0 :  wide_int wone = wi::one (TYPE_PRECISION (type));
     770            0 :  wide_int c = wi::add (wi::to_wide (captures[3]),
     771            0 :  wi::lshift (wone, wi::to_wide (captures[5])));
     772            0 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail279;
     773            0 :           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail279;
     774            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail279;
     775            0 :           {
     776            0 :             tree res_op0;
     777            0 :             {
     778            0 :               tree _o1[2], _r1;
     779            0 :               {
     780            0 :                 tree _o2[1], _r2;
     781            0 :                 _o2[0] = captures[2];
     782            0 :                 if (TREE_TYPE (_o2[0]) != t)
     783              :                   {
     784            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
     785              :                   }
     786              :                 else
     787              :                   _r2 = _o2[0];
     788            0 :                 _o1[0] = _r2;
     789              :               }
     790            0 :               _o1[1] =  wide_int_to_tree (t, c);
     791            0 :               _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
     792            0 :               res_op0 = _r1;
     793              :             }
     794            0 :             tree _r;
     795            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     796            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 167, __FILE__, __LINE__, true);
     797            0 :             return _r;
     798              :           }
     799            0 : next_after_fail279:;
     800            0 :       }
     801              :     }
     802              :   return NULL_TREE;
     803              : }
     804              : 
     805              : tree
     806           46 : generic_simplify_150 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     807              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     808              :  const enum tree_code ARG_UNUSED (logic),
     809              :  const enum tree_code ARG_UNUSED (op),
     810              :  const enum tree_code ARG_UNUSED (ext))
     811              : {
     812           46 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     813           92 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     814           92 :  && TREE_CODE (captures[1]) != INTEGER_CST
     815              : )
     816              :     {
     817            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail285;
     818            0 :       {
     819            0 :         tree res_op0;
     820            0 :         res_op0 = captures[1];
     821            0 :         tree res_op1;
     822            0 :         {
     823            0 :           tree _o1[2], _r1;
     824            0 :           _o1[0] = captures[2];
     825            0 :           _o1[1] = captures[4];
     826            0 :           _r1 = fold_build2_loc (loc, ext, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     827            0 :           res_op1 = _r1;
     828              :         }
     829            0 :         tree _r;
     830            0 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     831            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 207, __FILE__, __LINE__, true);
     832            0 :         return _r;
     833              :       }
     834            0 : next_after_fail285:;
     835              :     }
     836              :   return NULL_TREE;
     837              : }
     838              : 
     839              : tree
     840          196 : generic_simplify_156 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     841              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     842              : {
     843          196 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     844          196 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail291;
     845          196 :   {
     846          196 :     if (! tree_invariant_p (captures[3])) goto next_after_fail291;
     847           15 :     tree res_op0;
     848           15 :     {
     849           15 :       tree _o1[2], _r1;
     850           15 :       _o1[0] = captures[2];
     851           15 :       _o1[1] = unshare_expr (captures[3]);
     852           15 :       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     853           15 :       res_op0 = _r1;
     854              :     }
     855           15 :     tree res_op1;
     856           15 :     {
     857           15 :       tree _o1[2], _r1;
     858           15 :       _o1[0] = captures[4];
     859           15 :       _o1[1] = captures[3];
     860           15 :       _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     861           15 :       if (EXPR_P (_r1))
     862           14 :         goto next_after_fail291;
     863            1 :       res_op1 = _r1;
     864              :     }
     865            1 :     tree _r;
     866            1 :     _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
     867            1 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 213, __FILE__, __LINE__, true);
     868              :     return _r;
     869              :   }
     870              : next_after_fail291:;
     871              :   return NULL_TREE;
     872              : }
     873              : 
     874              : tree
     875            8 : generic_simplify_163 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     876              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     877              : {
     878            8 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     879            8 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
     880              : )
     881              :     {
     882            8 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail298;
     883            8 :       {
     884            8 :         tree res_op0;
     885            8 :         {
     886            8 :           tree _o1[2], _r1;
     887            8 :           _o1[0] = captures[1];
     888            8 :           {
     889            8 :             tree _o2[1], _r2;
     890            8 :             _o2[0] = captures[0];
     891            8 :             _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
     892            8 :             _o1[1] = _r2;
     893              :           }
     894            8 :           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     895            8 :           res_op0 = _r1;
     896              :         }
     897            8 :         tree _r;
     898            8 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     899            8 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 220, __FILE__, __LINE__, true);
     900            8 :         return _r;
     901              :       }
     902            0 : next_after_fail298:;
     903              :     }
     904              :   return NULL_TREE;
     905              : }
     906              : 
     907              : tree
     908            2 : generic_simplify_171 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     909              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     910              : {
     911            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     912            2 :   if (INTEGRAL_TYPE_P (type)
     913            2 :  && (
     914              : 
     915            2 :  || !TREE_SIDE_EFFECTS (captures[1]))
     916              : )
     917              :     {
     918            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail306;
     919            2 :       {
     920            2 :         tree res_op0;
     921            2 :         {
     922            2 :           tree _o1[1], _r1;
     923            2 :           _o1[0] = captures[2];
     924            2 :           if (TREE_TYPE (_o1[0]) != boolean_type_node)
     925              :             {
     926            2 :               _r1 = fold_build1_loc (loc, NOP_EXPR, boolean_type_node, _o1[0]);
     927              :             }
     928              :           else
     929              :             _r1 = _o1[0];
     930            2 :           res_op0 = _r1;
     931              :         }
     932            2 :         tree res_op1;
     933            2 :         res_op1 = captures[1];
     934            2 :         tree res_op2;
     935            2 :         res_op2 = captures[0];
     936            2 :         tree _r;
     937            2 :         _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
     938            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 227, __FILE__, __LINE__, true);
     939            2 :         return _r;
     940              :       }
     941            0 : next_after_fail306:;
     942              :     }
     943              :   return NULL_TREE;
     944              : }
     945              : 
     946              : tree
     947            0 : generic_simplify_178 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     948              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     949              :  const combined_fn ARG_UNUSED (COPYSIGN_ALL))
     950              : {
     951            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     952            0 :   if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
     953              : )
     954              :     {
     955            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail315;
     956            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail315;
     957            0 :       {
     958            0 :         tree res_op0;
     959            0 :         {
     960            0 :           tree _o1[1], _r1;
     961            0 :           _o1[0] = captures[0];
     962            0 :           _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     963            0 :           res_op0 = _r1;
     964              :         }
     965            0 :         tree _r;
     966            0 :         _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     967            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 235, __FILE__, __LINE__, true);
     968            0 :         return _r;
     969              :       }
     970              : next_after_fail315:;
     971              :     }
     972              :   return NULL_TREE;
     973              : }
     974              : 
     975              : tree
     976         1206 : generic_simplify_188 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     977              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     978              :  const enum tree_code ARG_UNUSED (cmp))
     979              : {
     980         1206 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     981         1206 :   if (fold_before_rtl_expansion_p ()
     982              : )
     983              :     {
     984            0 :       if (INTEGRAL_TYPE_P (type)
     985            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
     986              : )
     987              :         {
     988            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail327;
     989            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail327;
     990            0 :           {
     991            0 :             tree res_op0;
     992            0 :             res_op0 = captures[0];
     993            0 :             tree res_op1;
     994            0 :             res_op1 = captures[3];
     995            0 :             tree res_op2;
     996            0 :             res_op2 =  build_zero_cst (type);
     997            0 :             tree _r;
     998            0 :             _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
     999            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 243, __FILE__, __LINE__, true);
    1000            0 :             return _r;
    1001              :           }
    1002              : next_after_fail327:;
    1003              :         }
    1004              :     }
    1005              :   return NULL_TREE;
    1006              : }
    1007              : 
    1008              : tree
    1009            2 : generic_simplify_195 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1010              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1011              :  const combined_fn ARG_UNUSED (SQRT_ALL))
    1012              : {
    1013            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1014            2 :   if (flag_unsafe_math_optimizations
    1015              : )
    1016              :     {
    1017            2 :       if (!tree_expr_maybe_signaling_nan_p (captures[1])
    1018              : )
    1019              :         {
    1020            2 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail335;
    1021            2 :           {
    1022            2 :             tree _r;
    1023            2 :             _r = captures[1];
    1024            2 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 250, __FILE__, __LINE__, true);
    1025            2 :             return _r;
    1026              :           }
    1027            0 : next_after_fail335:;
    1028              :         }
    1029              :     }
    1030              :   return NULL_TREE;
    1031              : }
    1032              : 
    1033              : tree
    1034            2 : generic_simplify_201 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1035              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1036              :  const combined_fn ARG_UNUSED (POW))
    1037              : {
    1038            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1039            2 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1040              : )
    1041              :     {
    1042            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail341;
    1043            2 :       {
    1044            2 :         tree res_op0;
    1045            2 :         {
    1046            2 :           tree _o1[2], _r1;
    1047            2 :           _o1[0] = captures[1];
    1048            2 :           _o1[1] = captures[4];
    1049            2 :           _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1050            2 :           res_op0 = _r1;
    1051              :         }
    1052            2 :         tree res_op1;
    1053            2 :         res_op1 = captures[2];
    1054            2 :         tree _r;
    1055            2 :         _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
    1056            2 :         if (!_r)
    1057            0 :           goto next_after_fail341;
    1058            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 256, __FILE__, __LINE__, true);
    1059            2 :         return _r;
    1060              :       }
    1061              : next_after_fail341:;
    1062              :     }
    1063              :   return NULL_TREE;
    1064              : }
    1065              : 
    1066              : tree
    1067         2497 : generic_simplify_211 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1068              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1069              :  const enum tree_code ARG_UNUSED (cmp))
    1070              : {
    1071         2497 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1072         4994 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1073         3200 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    1074         4126 :  && tree_expr_nonzero_p (captures[1])
    1075              : )
    1076              :     {
    1077           20 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail354;
    1078           20 :       {
    1079           20 :         tree res_op0;
    1080           20 :         res_op0 = captures[0];
    1081           20 :         tree res_op1;
    1082           20 :         res_op1 = captures[2];
    1083           20 :         tree _r;
    1084           20 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1085           20 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1086            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1087           20 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 268, __FILE__, __LINE__, true);
    1088           20 :         return _r;
    1089              :       }
    1090            0 : next_after_fail354:;
    1091              :     }
    1092              :   return NULL_TREE;
    1093              : }
    1094              : 
    1095              : tree
    1096            0 : generic_simplify_219 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1097              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1098              :  const enum tree_code ARG_UNUSED (op))
    1099              : {
    1100            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1101            0 :   if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
    1102              : )
    1103              :     {
    1104            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail375;
    1105            0 :       {
    1106            0 :         tree res_op0;
    1107            0 :         res_op0 = captures[3];
    1108            0 :         tree res_op1;
    1109            0 :         res_op1 = captures[2];
    1110            0 :         tree _r;
    1111            0 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1112            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1113            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1114            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 289, __FILE__, __LINE__, true);
    1115            0 :         return _r;
    1116              :       }
    1117            0 : next_after_fail375:;
    1118              :     }
    1119              :   return NULL_TREE;
    1120              : }
    1121              : 
    1122              : tree
    1123         1368 : generic_simplify_223 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1124              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1125              :  const enum tree_code ARG_UNUSED (cmp),
    1126              :  const enum tree_code ARG_UNUSED (ocmp))
    1127              : {
    1128         1368 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1129         1368 :   if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1130          374 :  && TREE_CODE (TREE_TYPE (captures[0])) != COMPLEX_TYPE
    1131         1720 :  && (VECTOR_TYPE_P (type) || !VECTOR_TYPE_P (TREE_TYPE (captures[0])))
    1132              : )
    1133              :     {
    1134          352 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail379;
    1135          352 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail379;
    1136          352 :       {
    1137          352 :         tree res_op0;
    1138          352 :         res_op0 = captures[0];
    1139          352 :         tree res_op1;
    1140          352 :         res_op1 = captures[1];
    1141          352 :         tree _r;
    1142          352 :         _r = fold_build2_loc (loc, ocmp, type, res_op0, res_op1);
    1143          352 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 292, __FILE__, __LINE__, true);
    1144          352 :         return _r;
    1145              :       }
    1146              : next_after_fail379:;
    1147              :     }
    1148              :   return NULL_TREE;
    1149              : }
    1150              : 
    1151              : tree
    1152            6 : generic_simplify_231 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1153              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1154              :  const enum tree_code ARG_UNUSED (cmp),
    1155              :  const enum tree_code ARG_UNUSED (icmp))
    1156              : {
    1157            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1158            6 :   {
    1159            6 :  int c1 = wi::clz (wi::to_wide (captures[0]));
    1160            6 :  int c2 = wi::clz (wi::to_wide (captures[2]));
    1161            6 :       if (c1 < c2
    1162              : )
    1163              :         {
    1164            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail389;
    1165            0 :           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail389;
    1166            0 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail389;
    1167            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail389;
    1168            0 :           {
    1169            0 :             tree _r;
    1170            0 :             _r =  constant_boolean_node (cmp == NE_EXPR ? false : true, type);
    1171            0 :             if (TREE_SIDE_EFFECTS (captures[1]))
    1172            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1173            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 302, __FILE__, __LINE__, true);
    1174            0 :             return _r;
    1175              :           }
    1176              : next_after_fail389:;
    1177              :         }
    1178              :       else
    1179              :         {
    1180            6 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail390;
    1181            6 :           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail390;
    1182            6 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail390;
    1183            6 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail390;
    1184            6 :           {
    1185            6 :             tree res_op0;
    1186            6 :             res_op0 = captures[1];
    1187            6 :             tree res_op1;
    1188            6 :             res_op1 =  build_int_cst (TREE_TYPE (captures[1]), c1 - c2);
    1189            6 :             tree _r;
    1190            6 :             _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1191            6 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 303, __FILE__, __LINE__, true);
    1192            6 :             return _r;
    1193              :           }
    1194              : next_after_fail390:;
    1195              :         }
    1196              :   }
    1197              :   return NULL_TREE;
    1198              : }
    1199              : 
    1200              : tree
    1201           14 : generic_simplify_241 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1202              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1203              :  const enum tree_code ARG_UNUSED (cmp),
    1204              :  const combined_fn ARG_UNUSED (bswap))
    1205              : {
    1206           14 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1207           14 :   {
    1208           14 :  tree ctype = TREE_TYPE (captures[0]);
    1209           14 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail409;
    1210           14 :       {
    1211           14 :         tree res_op0;
    1212           14 :         {
    1213           14 :           tree _o1[1], _r1;
    1214           14 :           _o1[0] = captures[1];
    1215           14 :           if (TREE_TYPE (_o1[0]) != ctype)
    1216              :             {
    1217            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
    1218              :             }
    1219              :           else
    1220              :             _r1 = _o1[0];
    1221           14 :           res_op0 = _r1;
    1222              :         }
    1223           14 :         tree res_op1;
    1224           14 :         {
    1225           14 :           tree _o1[1], _r1;
    1226           14 :           _o1[0] = captures[2];
    1227           14 :           if (TREE_TYPE (_o1[0]) != ctype)
    1228              :             {
    1229            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
    1230              :             }
    1231              :           else
    1232              :             _r1 = _o1[0];
    1233           14 :           res_op1 = _r1;
    1234              :         }
    1235           14 :         tree _r;
    1236           14 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1237           14 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 322, __FILE__, __LINE__, true);
    1238              :         return _r;
    1239              :       }
    1240            0 : next_after_fail409:;
    1241              :   }
    1242            0 :   return NULL_TREE;
    1243              : }
    1244              : 
    1245              : tree
    1246       134364 : generic_simplify_249 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1247              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1248              :  const enum tree_code ARG_UNUSED (cmp))
    1249              : {
    1250       134364 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1251       263906 :   if (! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1252       134630 :  || ! tree_expr_maybe_nan_p (captures[0])
    1253              : )
    1254              :     {
    1255       129350 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail422;
    1256       129350 :       {
    1257       129350 :         tree _r;
    1258       129350 :         _r =  constant_boolean_node (true, type);
    1259       129350 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1260            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1261       129350 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 334, __FILE__, __LINE__, true);
    1262       129350 :         return _r;
    1263              :       }
    1264            0 : next_after_fail422:;
    1265              :     }
    1266              :   else
    1267              :     {
    1268         5014 :       if (cmp != EQ_EXPR
    1269         5014 :  && (! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1270           79 :  || ! flag_trapping_math)
    1271              : )
    1272              :         {
    1273            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail423;
    1274            0 :           {
    1275            0 :             tree res_op0;
    1276            0 :             res_op0 = unshare_expr (captures[0]);
    1277            0 :             tree res_op1;
    1278            0 :             res_op1 = captures[0];
    1279            0 :             tree _r;
    1280            0 :             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    1281            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 335, __FILE__, __LINE__, true);
    1282            0 :             return _r;
    1283              :           }
    1284            0 : next_after_fail423:;
    1285              :         }
    1286              :     }
    1287              :   return NULL_TREE;
    1288              : }
    1289              : 
    1290              : tree
    1291        18910 : generic_simplify_256 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1292              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1293              :  const enum tree_code ARG_UNUSED (cmp))
    1294              : {
    1295        18910 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1296        18910 :   if (flag_associative_math
    1297              : )
    1298              :     {
    1299           13 :       {
    1300           13 :  tree tem = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), captures[0], captures[2]);
    1301           13 :           if (tem && !TREE_OVERFLOW (tem)
    1302              : )
    1303              :             {
    1304           13 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail444;
    1305           13 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail444;
    1306           13 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail444;
    1307           13 :               {
    1308           13 :                 tree res_op0;
    1309           13 :                 res_op0 =  tem;
    1310           13 :                 tree res_op1;
    1311           13 :                 res_op1 = captures[1];
    1312           13 :                 tree _r;
    1313           13 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1314           13 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 355, __FILE__, __LINE__, true);
    1315           13 :                 return _r;
    1316              :               }
    1317              : next_after_fail444:;
    1318              :             }
    1319              :       }
    1320              :     }
    1321              :   return NULL_TREE;
    1322              : }
    1323              : 
    1324              : tree
    1325           59 : generic_simplify_262 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1326              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1327              :  const enum tree_code ARG_UNUSED (cmp),
    1328              :  const enum tree_code ARG_UNUSED (scmp))
    1329              : {
    1330           59 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1331           96 :   if (FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1332           96 :  || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1333           37 :  && (cmp == EQ_EXPR
    1334           37 :  || cmp == NE_EXPR
    1335           36 :  || TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
    1336              : )
    1337              :     {
    1338           23 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail477;
    1339           23 :       {
    1340           23 :         tree res_op0;
    1341           23 :         res_op0 = captures[0];
    1342           23 :         tree res_op1;
    1343           23 :         res_op1 = captures[1];
    1344           23 :         tree _r;
    1345           23 :         _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
    1346           23 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 388, __FILE__, __LINE__, true);
    1347           23 :         return _r;
    1348              :       }
    1349            0 : next_after_fail477:;
    1350              :     }
    1351              :   return NULL_TREE;
    1352              : }
    1353              : 
    1354              : tree
    1355     21564564 : generic_simplify_265 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1356              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1357              :  const enum tree_code ARG_UNUSED (cmp))
    1358              : {
    1359     21564564 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1360     41907687 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1361     15317154 :  && !(targetm.have_canonicalize_funcptr_for_compare ()
    1362            0 :  && ((POINTER_TYPE_P (TREE_TYPE (captures[1]))
    1363            0 :  && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1]))))
    1364            0 :  || (POINTER_TYPE_P (TREE_TYPE (captures[3]))
    1365            0 :  && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[3]))))))
    1366     21564564 :  && single_use (captures[0])
    1367              : )
    1368              :     {
    1369     15317154 :       if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[0]))
    1370      5723861 :  && (TREE_CODE (captures[3]) == INTEGER_CST
    1371      1972109 :  || captures[2] != captures[3])
    1372      3751752 :  && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1373              :  || cmp == NE_EXPR
    1374      1518746 :  || cmp == EQ_EXPR)
    1375      2699005 :  && !POINTER_TYPE_P (TREE_TYPE (captures[1]))
    1376     17984345 :  && (TREE_CODE (TREE_TYPE (captures[1])) != BOOLEAN_TYPE
    1377         1646 :  || TREE_CODE (TREE_TYPE (captures[3])) == BOOLEAN_TYPE)
    1378              : )
    1379              :         {
    1380      2667163 :           if (TREE_CODE (captures[2]) == INTEGER_CST
    1381              : )
    1382              :             {
    1383      2667163 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail486;
    1384      2667163 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail486;
    1385      2667163 :               {
    1386      2667163 :                 tree res_op0;
    1387      2667163 :                 res_op0 = captures[1];
    1388      2667163 :                 tree res_op1;
    1389      2667163 :                 res_op1 =  force_fit_type (TREE_TYPE (captures[1]),
    1390      2667163 :  wide_int::from (wi::to_wide (captures[2]),
    1391      2667163 :  MAX (TYPE_PRECISION (TREE_TYPE (captures[2])),
    1392              :  TYPE_PRECISION (TREE_TYPE (captures[1]))),
    1393      2667163 :  TYPE_SIGN (TREE_TYPE (captures[2]))),
    1394      2667163 :  0, TREE_OVERFLOW (captures[2]));
    1395      2667163 :                 tree _r;
    1396      2667163 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1397      2667163 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 390, __FILE__, __LINE__, true);
    1398      2667163 :                 return _r;
    1399              :               }
    1400              : next_after_fail486:;
    1401              :             }
    1402              :           else
    1403              :             {
    1404            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail487;
    1405            0 :               {
    1406            0 :                 tree res_op0;
    1407            0 :                 res_op0 = captures[1];
    1408            0 :                 tree res_op1;
    1409            0 :                 {
    1410            0 :                   tree _o1[1], _r1;
    1411            0 :                   _o1[0] = captures[2];
    1412            0 :                   if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1413              :                     {
    1414            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1415              :                     }
    1416              :                   else
    1417              :                     _r1 = _o1[0];
    1418            0 :                   res_op1 = _r1;
    1419              :                 }
    1420            0 :                 tree _r;
    1421            0 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1422            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 391, __FILE__, __LINE__, true);
    1423            0 :                 return _r;
    1424              :               }
    1425            0 : next_after_fail487:;
    1426              :             }
    1427              :         }
    1428              :       else
    1429              :         {
    1430     12649991 :           if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
    1431              : )
    1432              :             {
    1433      8632283 :               if ((cmp == EQ_EXPR || cmp == NE_EXPR
    1434      3298001 :  || TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    1435       569906 :  || (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1436       484699 :  && TYPE_UNSIGNED (TREE_TYPE (captures[1]))))
    1437     11845077 :  && (types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]))
    1438      8547058 :  || ((TYPE_PRECISION (TREE_TYPE (captures[1]))
    1439      8547058 :  >= TYPE_PRECISION (TREE_TYPE (captures[3])))
    1440            0 :  && (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    1441            0 :  == TYPE_UNSIGNED (TREE_TYPE (captures[3]))))
    1442      8547058 :  || (TREE_CODE (captures[2]) == INTEGER_CST
    1443      7420106 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1444      7420106 :  && int_fits_type_p (captures[2], TREE_TYPE (captures[1]))))
    1445              : )
    1446              :                 {
    1447      7379426 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail488;
    1448      7379426 :                   {
    1449      7379426 :                     tree res_op0;
    1450      7379426 :                     res_op0 = captures[1];
    1451      7379426 :                     tree res_op1;
    1452      7379426 :                     {
    1453      7379426 :                       tree _o1[1], _r1;
    1454      7379426 :                       _o1[0] = captures[3];
    1455      7379426 :                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1456              :                         {
    1457      7379408 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1458              :                         }
    1459              :                       else
    1460              :                         _r1 = _o1[0];
    1461      7379426 :                       res_op1 = _r1;
    1462              :                     }
    1463      7379426 :                     tree _r;
    1464      7379426 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1465      7379426 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 392, __FILE__, __LINE__, true);
    1466      7379426 :                     return _r;
    1467              :                   }
    1468            0 : next_after_fail488:;
    1469              :                 }
    1470              :               else
    1471              :                 {
    1472      1252857 :                   if (TREE_CODE (captures[2]) == INTEGER_CST
    1473        90489 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1474      1343346 :  && !int_fits_type_p (captures[2], TREE_TYPE (captures[1]))
    1475              : )
    1476              :                     {
    1477        44148 :                       {
    1478        44148 :  tree min = lower_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
    1479        44148 :  tree max = upper_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
    1480        44148 :  bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, captures[2]));
    1481        44148 :  bool below = integer_nonzerop (const_binop (LT_EXPR, type, captures[2], min));
    1482        44148 :                           if (above || below
    1483              : )
    1484              :                             {
    1485        38034 :                               if (cmp == EQ_EXPR || cmp == NE_EXPR
    1486              : )
    1487              :                                 {
    1488        25136 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail489;
    1489        25136 :                                   {
    1490        25136 :                                     tree _r;
    1491        25136 :                                     _r =  constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
    1492        25136 :                                     if (TREE_SIDE_EFFECTS (captures[1]))
    1493           10 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1494        25136 :                                     if (TREE_SIDE_EFFECTS (captures[2]))
    1495            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1496        25136 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 393, __FILE__, __LINE__, true);
    1497        25136 :                                     return _r;
    1498              :                                   }
    1499            0 : next_after_fail489:;
    1500              :                                 }
    1501              :                               else
    1502              :                                 {
    1503        12898 :                                   if (cmp == LT_EXPR || cmp == LE_EXPR
    1504              : )
    1505              :                                     {
    1506        12222 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail490;
    1507        12222 :                                       {
    1508        12222 :                                         tree _r;
    1509        12222 :                                         _r =  constant_boolean_node (above ? true : false, type);
    1510        12222 :                                         if (TREE_SIDE_EFFECTS (captures[1]))
    1511           10 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1512        12222 :                                         if (TREE_SIDE_EFFECTS (captures[2]))
    1513            0 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1514        12222 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 394, __FILE__, __LINE__, true);
    1515        12222 :                                         return _r;
    1516              :                                       }
    1517            0 : next_after_fail490:;
    1518              :                                     }
    1519              :                                   else
    1520              :                                     {
    1521          676 :                                       if (cmp == GT_EXPR || cmp == GE_EXPR
    1522              : )
    1523              :                                         {
    1524          676 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail491;
    1525          676 :                                           {
    1526          676 :                                             tree _r;
    1527          930 :                                             _r =  constant_boolean_node (above ? false : true, type);
    1528          676 :                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1529            4 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1530          676 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    1531            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1532          676 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 395, __FILE__, __LINE__, true);
    1533          676 :                                             return _r;
    1534              :                                           }
    1535            0 : next_after_fail491:;
    1536              :                                         }
    1537              :                                     }
    1538              :                                 }
    1539              :                             }
    1540              :                       }
    1541              :                     }
    1542              :                 }
    1543              :             }
    1544              :         }
    1545              :     }
    1546              :   else
    1547              :     {
    1548     11965894 :       if (FLOAT_TYPE_P (TREE_TYPE (captures[1]))
    1549      1084850 :  && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1550       542425 :  == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1])))
    1551      7332022 :  && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1552       542306 :  == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[3])))
    1553              : )
    1554              :         {
    1555       542306 :           {
    1556       542306 :  tree type1 = TREE_TYPE (captures[3]);
    1557       542306 :  if (TREE_CODE (captures[3]) == REAL_CST && !DECIMAL_FLOAT_TYPE_P (type1))
    1558              :  {
    1559       340378 :  REAL_VALUE_TYPE orig = TREE_REAL_CST (captures[3]);
    1560       340378 :  if (TYPE_PRECISION (type1) > TYPE_PRECISION (float_type_node)
    1561       340378 :  && exact_real_truncate (TYPE_MODE (float_type_node), &orig))
    1562       175795 :  type1 = float_type_node;
    1563       340378 :  if (TYPE_PRECISION (type1) > TYPE_PRECISION (double_type_node)
    1564       340378 :  && exact_real_truncate (TYPE_MODE (double_type_node), &orig))
    1565          292 :  type1 = double_type_node;
    1566              :  }
    1567       542306 :  tree newtype
    1568       542306 :  = (element_precision (TREE_TYPE (captures[1])) > element_precision (type1)
    1569       542306 :  ? TREE_TYPE (captures[1]) : type1);
    1570       542306 :               if (element_precision (TREE_TYPE (captures[0])) > element_precision (newtype)
    1571       542306 :  && (!VECTOR_TYPE_P (type) || is_truth_type_for (newtype, type))
    1572              : )
    1573              :                 {
    1574        44498 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail492;
    1575        44498 :                   {
    1576        44498 :                     tree res_op0;
    1577        44498 :                     {
    1578        44498 :                       tree _o1[1], _r1;
    1579        44498 :                       _o1[0] = captures[1];
    1580        44498 :                       if (TREE_TYPE (_o1[0]) != newtype)
    1581              :                         {
    1582        11436 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    1583              :                         }
    1584              :                       else
    1585              :                         _r1 = _o1[0];
    1586        44498 :                       res_op0 = _r1;
    1587              :                     }
    1588        44498 :                     tree res_op1;
    1589        44498 :                     {
    1590        44498 :                       tree _o1[1], _r1;
    1591        44498 :                       _o1[0] = captures[3];
    1592        44498 :                       if (TREE_TYPE (_o1[0]) != newtype)
    1593              :                         {
    1594        44498 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    1595              :                         }
    1596              :                       else
    1597              :                         _r1 = _o1[0];
    1598        44498 :                       res_op1 = _r1;
    1599              :                     }
    1600        44498 :                     tree _r;
    1601        44498 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1602        44498 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 396, __FILE__, __LINE__, true);
    1603        44498 :                     return _r;
    1604              :                   }
    1605            0 : next_after_fail492:;
    1606              :                 }
    1607              :           }
    1608              :         }
    1609              :     }
    1610              :   return NULL_TREE;
    1611              : }
    1612              : 
    1613              : tree
    1614            0 : generic_simplify_294 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1615              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1616              :  const enum tree_code ARG_UNUSED (op))
    1617              : {
    1618            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1619            0 :   {
    1620            0 :  HOST_WIDE_INT zero_val = tree_to_shwi (captures[2]);
    1621            0 :  tree type0 = TREE_TYPE (captures[1]);
    1622            0 :  int prec = TYPE_PRECISION (type0);
    1623            0 :       if (prec <= MAX_FIXED_MODE_SIZE
    1624              : )
    1625              :         {
    1626            0 :           if (tree_int_cst_sgn (captures[3]) < 0 || wi::to_widest (captures[3]) >= prec
    1627              : )
    1628              :             {
    1629            0 :               if (zero_val != wi::to_widest (captures[3])
    1630              : )
    1631              :                 {
    1632            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail554;
    1633            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail554;
    1634            0 :                   {
    1635            0 :                     tree _r;
    1636            0 :                     _r =  constant_boolean_node (op == EQ_EXPR ? false : true, type);
    1637            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1638            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1639            0 :                     if (TREE_SIDE_EFFECTS (captures[3]))
    1640            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    1641            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 448, __FILE__, __LINE__, true);
    1642            0 :                     return _r;
    1643              :                   }
    1644            0 : next_after_fail554:;
    1645              :                 }
    1646              :             }
    1647              :           else
    1648              :             {
    1649            0 :               if (zero_val < 0 || zero_val >= prec
    1650              : )
    1651              :                 {
    1652            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail555;
    1653            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail555;
    1654            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail555;
    1655            0 :                   {
    1656            0 :                     tree res_op0;
    1657            0 :                     {
    1658            0 :                       tree _o1[2], _r1;
    1659            0 :                       _o1[0] = captures[1];
    1660            0 :                       _o1[1] =  wide_int_to_tree (type0,
    1661            0 :  wi::mask (tree_to_uhwi (captures[3]) + 1,
    1662              :  false, prec));
    1663            0 :                       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1664            0 :                       res_op0 = _r1;
    1665              :                     }
    1666            0 :                     tree res_op1;
    1667            0 :                     res_op1 =  wide_int_to_tree (type0,
    1668            0 :  wi::shifted_mask (tree_to_uhwi (captures[3]), 1,
    1669              :  false, prec));
    1670            0 :                     tree _r;
    1671            0 :                     _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1672            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 449, __FILE__, __LINE__, true);
    1673            0 :                     return _r;
    1674              :                   }
    1675            0 : next_after_fail555:;
    1676              :                 }
    1677              :             }
    1678              :         }
    1679              :   }
    1680            0 :   return NULL_TREE;
    1681              : }
    1682              : 
    1683              : tree
    1684            0 : generic_simplify_306 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1685              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1686              :  const combined_fn ARG_UNUSED (COPYSIGN_ALL))
    1687              : {
    1688            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1689            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail570;
    1690            0 :   {
    1691            0 :     tree res_op0;
    1692            0 :     res_op0 = captures[0];
    1693            0 :     tree _r;
    1694            0 :     _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    1695            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    1696            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1697            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 464, __FILE__, __LINE__, true);
    1698              :     return _r;
    1699              :   }
    1700            0 : next_after_fail570:;
    1701            0 :   return NULL_TREE;
    1702              : }
    1703              : 
    1704              : tree
    1705            1 : generic_simplify_313 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1706              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1707              :  const enum tree_code ARG_UNUSED (div))
    1708              : {
    1709            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1710            1 :   if (INTEGRAL_TYPE_P (type)
    1711            1 :  && TYPE_OVERFLOW_UNDEFINED (type)
    1712            1 :  && !integer_zerop (captures[0])
    1713            2 :  && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
    1714              : )
    1715              :     {
    1716            1 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail579;
    1717            1 :       {
    1718            1 :         tree res_op0;
    1719            1 :         {
    1720            1 :           tree _o1[2], _r1;
    1721            1 :           _o1[0] = captures[0];
    1722            1 :           _o1[1] =  build_zero_cst (type);
    1723            1 :           _r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
    1724            1 :           res_op0 = _r1;
    1725              :         }
    1726            1 :         tree res_op1;
    1727            1 :         res_op1 =  build_minus_one_cst (type);
    1728            1 :         tree res_op2;
    1729            1 :         res_op2 =  build_one_cst (type);
    1730            1 :         tree _r;
    1731            1 :         _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    1732            1 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 471, __FILE__, __LINE__, true);
    1733            1 :         return _r;
    1734              :       }
    1735            0 : next_after_fail579:;
    1736              :     }
    1737              :   return NULL_TREE;
    1738              : }
    1739              : 
    1740              : tree
    1741      2366325 : generic_simplify_320 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1742              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1743              :  const enum tree_code ARG_UNUSED (floor_divmod),
    1744              :  const enum tree_code ARG_UNUSED (trunc_divmod))
    1745              : {
    1746      2366325 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1747            0 :   if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type))
    1748      2366325 :  && TYPE_UNSIGNED (type)
    1749              : )
    1750              :     {
    1751      2357164 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail587;
    1752      2357164 :       {
    1753      2357164 :         tree res_op0;
    1754      2357164 :         res_op0 = captures[0];
    1755      2357164 :         tree res_op1;
    1756      2357164 :         res_op1 = captures[1];
    1757      2357164 :         tree _r;
    1758      2357164 :         _r = fold_build2_loc (loc, trunc_divmod, type, res_op0, res_op1);
    1759      2357164 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 479, __FILE__, __LINE__, true);
    1760      2357164 :         return _r;
    1761              :       }
    1762            0 : next_after_fail587:;
    1763              :     }
    1764              :   return NULL_TREE;
    1765              : }
    1766              : 
    1767              : tree
    1768           52 : generic_simplify_325 (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_fail592;
    1774           52 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail592;
    1775           52 :   {
    1776           52 :     tree _r;
    1777           52 :     _r = captures[0];
    1778           52 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 484, __FILE__, __LINE__, true);
    1779              :     return _r;
    1780              :   }
    1781              : next_after_fail592:;
    1782              :   return NULL_TREE;
    1783              : }
    1784              : 
    1785              : tree
    1786            5 : generic_simplify_333 (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_fail602;
    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_fail602;
    1804            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 494, __FILE__, __LINE__, true);
    1805            3 :         return _r;
    1806              :       }
    1807              : next_after_fail602:;
    1808              :     }
    1809              :   return NULL_TREE;
    1810              : }
    1811              : 
    1812              : tree
    1813       157093 : generic_simplify_340 (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              : {
    1817       157093 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1818       157093 :   {
    1819       157093 :  tree from_type = TREE_TYPE (captures[0]);
    1820       157093 :  tree c1_type = TREE_TYPE (captures[1]), c2_type = TREE_TYPE (captures[2]);
    1821       157093 :  enum tree_code code = ERROR_MARK;
    1822       157093 :  if (integer_zerop (captures[1])
    1823        63317 :  && INTEGRAL_TYPE_P (from_type)
    1824        62827 :  && (cmp == GE_EXPR || cmp == LT_EXPR)
    1825        18149 :  && TYPE_UNSIGNED (from_type)
    1826         1733 :  && !TYPE_UNSIGNED (c1_type)
    1827         1733 :  && TYPE_PRECISION (from_type) == TYPE_PRECISION (c1_type)
    1828          587 :  && int_fits_type_p (captures[2], from_type)
    1829       157680 :  && (types_match (c2_type, from_type)
    1830            0 :  || (TYPE_PRECISION (c2_type) > TYPE_PRECISION (from_type)
    1831            0 :  && (TYPE_UNSIGNED (from_type)
    1832            0 :  || TYPE_SIGN (c2_type) == TYPE_SIGN (from_type)))))
    1833              :  {
    1834          587 :  tree_code ncmp = cmp == GE_EXPR ? LE_EXPR : GT_EXPR;
    1835          587 :  widest_int c1 = wi::mask<widest_int>(TYPE_PRECISION (type) - 1, 0);
    1836          587 :  code = minmax_from_comparison (ncmp, captures[0], c1, wi::to_widest (captures[2]));
    1837          587 :  }
    1838          587 :  if (code == ERROR_MARK
    1839       157088 :  && INTEGRAL_TYPE_P (from_type)
    1840       156598 :  && int_fits_type_p (captures[2], from_type)
    1841       156597 :  && (types_match (c1_type, from_type)
    1842         7902 :  || (TYPE_PRECISION (c1_type) > TYPE_PRECISION (from_type)
    1843            0 :  && (TYPE_UNSIGNED (from_type)
    1844            0 :  || TYPE_SIGN (c1_type) == TYPE_SIGN (from_type))))
    1845       149282 :  && (types_match (c2_type, from_type)
    1846        58002 :  || (TYPE_PRECISION (c2_type) > TYPE_PRECISION (from_type)
    1847        18727 :  && (TYPE_UNSIGNED (from_type)
    1848          698 :  || TYPE_SIGN (c2_type) == TYPE_SIGN (from_type)))))
    1849              :  {
    1850       108810 :  if (cmp != EQ_EXPR)
    1851       108798 :  code = minmax_from_comparison (cmp, captures[0], captures[1], captures[0], captures[2]);
    1852           12 :  else if (int_fits_type_p (captures[1], from_type))
    1853              :  code = EQ_EXPR;
    1854              :  }
    1855       157081 :       if (code == MAX_EXPR
    1856              : )
    1857              :         {
    1858        19398 :           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail609;
    1859        19398 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail609;
    1860        19398 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail609;
    1861        19398 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail609;
    1862        19398 :           {
    1863        19398 :             tree res_op0;
    1864        19398 :             {
    1865        19398 :               tree _o1[2], _r1;
    1866        19398 :               _o1[0] = captures[0];
    1867        19398 :               {
    1868        19398 :                 tree _o2[1], _r2;
    1869        19398 :                 _o2[0] = captures[2];
    1870        19398 :                 if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
    1871              :                   {
    1872          266 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
    1873              :                   }
    1874              :                 else
    1875              :                   _r2 = _o2[0];
    1876        19398 :                 _o1[1] = _r2;
    1877              :               }
    1878        19398 :               _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1879        19398 :               res_op0 = _r1;
    1880              :             }
    1881        19398 :             tree _r;
    1882        19398 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1883        19398 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 501, __FILE__, __LINE__, true);
    1884        19398 :             return _r;
    1885              :           }
    1886              : next_after_fail609:;
    1887              :         }
    1888              :       else
    1889              :         {
    1890       137695 :           if (code == MIN_EXPR
    1891              : )
    1892              :             {
    1893          255 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail610;
    1894          255 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail610;
    1895          255 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail610;
    1896          255 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail610;
    1897          255 :               {
    1898          255 :                 tree res_op0;
    1899          255 :                 {
    1900          255 :                   tree _o1[2], _r1;
    1901          255 :                   _o1[0] = captures[0];
    1902          255 :                   {
    1903          255 :                     tree _o2[1], _r2;
    1904          255 :                     _o2[0] = captures[2];
    1905          255 :                     if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
    1906              :                       {
    1907          100 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
    1908              :                       }
    1909              :                     else
    1910              :                       _r2 = _o2[0];
    1911          255 :                     _o1[1] = _r2;
    1912              :                   }
    1913          255 :                   _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1914          255 :                   res_op0 = _r1;
    1915              :                 }
    1916          255 :                 tree _r;
    1917          255 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1918          255 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 502, __FILE__, __LINE__, true);
    1919          255 :                 return _r;
    1920              :               }
    1921              : next_after_fail610:;
    1922              :             }
    1923              :           else
    1924              :             {
    1925       137440 :               if (code == EQ_EXPR
    1926              : )
    1927              :                 {
    1928           12 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail611;
    1929           12 :                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail611;
    1930           12 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail611;
    1931           12 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail611;
    1932           12 :                   {
    1933           12 :                     if (! tree_invariant_p (captures[1])) goto next_after_fail611;
    1934           12 :                     tree res_op0;
    1935           12 :                     {
    1936           12 :                       tree _o1[3], _r1;
    1937           12 :                       {
    1938           12 :                         tree _o2[2], _r2;
    1939           12 :                         _o2[0] = captures[0];
    1940           12 :                         {
    1941           12 :                           tree _o3[1], _r3;
    1942           12 :                           _o3[0] = unshare_expr (captures[1]);
    1943           12 :                           if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
    1944              :                             {
    1945            0 :                               _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
    1946              :                             }
    1947              :                           else
    1948              :                             _r3 = _o3[0];
    1949           12 :                           _o2[1] = _r3;
    1950              :                         }
    1951           12 :                         _r2 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o2[0], _o2[1]);
    1952           12 :                         _o1[0] = _r2;
    1953              :                       }
    1954           12 :                       {
    1955           12 :                         tree _o2[1], _r2;
    1956           12 :                         _o2[0] = captures[1];
    1957           12 :                         if (TREE_TYPE (_o2[0]) != from_type)
    1958              :                           {
    1959            0 :                             _r2 = fold_build1_loc (loc, NOP_EXPR, from_type, _o2[0]);
    1960              :                           }
    1961              :                         else
    1962              :                           _r2 = _o2[0];
    1963           12 :                         _o1[1] = _r2;
    1964              :                       }
    1965           12 :                       {
    1966           12 :                         tree _o2[1], _r2;
    1967           12 :                         _o2[0] = captures[2];
    1968           12 :                         if (TREE_TYPE (_o2[0]) != from_type)
    1969              :                           {
    1970            7 :                             _r2 = fold_build1_loc (loc, NOP_EXPR, from_type, _o2[0]);
    1971              :                           }
    1972              :                         else
    1973              :                           _r2 = _o2[0];
    1974           12 :                         _o1[2] = _r2;
    1975              :                       }
    1976           12 :                       _r1 = fold_build3_loc (loc, COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
    1977           12 :                       res_op0 = _r1;
    1978              :                     }
    1979           12 :                     tree _r;
    1980           12 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1981           12 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 503, __FILE__, __LINE__, true);
    1982           12 :                     return _r;
    1983              :                   }
    1984              : next_after_fail611:;
    1985              :                 }
    1986              :             }
    1987              :         }
    1988              :   }
    1989              :   return NULL_TREE;
    1990              : }
    1991              : 
    1992              : tree
    1993     10161718 : generic_simplify_381 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1994              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1995              :  const enum tree_code ARG_UNUSED (cmp),
    1996              :  const enum tree_code ARG_UNUSED (acmp))
    1997              : {
    1998     10161718 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1999     10161718 :   {
    2000     10161718 :  tree cst = uniform_integer_cst_p (captures[1]);
    2001     10161718 :       if (tree_int_cst_sgn (cst) == 1
    2002              : )
    2003              :         {
    2004      4108587 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail662;
    2005      4108587 :           {
    2006      4108587 :             tree res_op0;
    2007      4108587 :             res_op0 = captures[0];
    2008      4108587 :             tree res_op1;
    2009      4108587 :             res_op1 =  build_uniform_cst (TREE_TYPE (captures[1]),
    2010      4108587 :  wide_int_to_tree (TREE_TYPE (cst),
    2011      4108587 :  wi::to_wide (cst) - 1));
    2012      4108587 :             tree _r;
    2013      4108587 :             _r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
    2014      4108587 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2015            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2016      4108587 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 552, __FILE__, __LINE__, true);
    2017      4108587 :             return _r;
    2018              :           }
    2019            0 : next_after_fail662:;
    2020              :         }
    2021              :   }
    2022              :   return NULL_TREE;
    2023              : }
    2024              : 
    2025              : tree
    2026            2 : generic_simplify_389 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2027              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2028              :  const enum tree_code ARG_UNUSED (cmp))
    2029              : {
    2030            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2031            4 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2032            4 :  && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    2033              : )
    2034              :     {
    2035            2 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail702;
    2036            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail702;
    2037            2 :       {
    2038            2 :         tree res_op0;
    2039            2 :         res_op0 = captures[1];
    2040            2 :         tree res_op1;
    2041            2 :         res_op1 = captures[0];
    2042            2 :         tree _r;
    2043            2 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2044            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 575, __FILE__, __LINE__, true);
    2045            2 :         return _r;
    2046              :       }
    2047              : next_after_fail702:;
    2048              :     }
    2049              :   return NULL_TREE;
    2050              : }
    2051              : 
    2052              : tree
    2053      2585064 : generic_simplify_394 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2054              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2055              :  const enum tree_code ARG_UNUSED (op),
    2056              :  const enum tree_code ARG_UNUSED (rop),
    2057              :  const enum tree_code ARG_UNUSED (cmp),
    2058              :  const enum tree_code ARG_UNUSED (rcmp))
    2059              : {
    2060      2585064 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2061      5170114 :   if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3])
    2062      5170102 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    2063              : )
    2064              :     {
    2065       878515 :       {
    2066       878515 :  tree res = int_const_binop (rop, captures[3], captures[2]);
    2067       878515 :           if (TREE_OVERFLOW (res)
    2068              : )
    2069              :             {
    2070        12613 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail708;
    2071        12613 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail708;
    2072        12613 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail708;
    2073        12613 :               {
    2074        12613 :                 tree _r;
    2075        12613 :  bool less = cmp == LE_EXPR || cmp == LT_EXPR;
    2076        12613 :  bool ovf_high = wi::lt_p (wi::to_wide (captures[2]), 0,
    2077        12613 :  TYPE_SIGN (TREE_TYPE (captures[2])))
    2078        12613 :  != (op == MINUS_EXPR);         _r = 
    2079        12613 :  constant_boolean_node (less == ovf_high, type);
    2080        12613 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    2081            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2082        12613 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 581, __FILE__, __LINE__, true);
    2083        12613 :                 return _r;
    2084              :               }
    2085              : next_after_fail708:;
    2086              :             }
    2087              :           else
    2088              :             {
    2089       865902 :               if (single_use (captures[0])
    2090              : )
    2091              :                 {
    2092       865902 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail709;
    2093       865902 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail709;
    2094       865902 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail709;
    2095       865902 :                   {
    2096       865902 :                     tree res_op0;
    2097       865902 :                     res_op0 = captures[1];
    2098       865902 :                     tree res_op1;
    2099       865902 :                     res_op1 =  res;
    2100       865902 :                     tree _r;
    2101       865902 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2102       865902 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 582, __FILE__, __LINE__, true);
    2103       865902 :                     return _r;
    2104              :                   }
    2105              : next_after_fail709:;
    2106              :                 }
    2107              :             }
    2108              :       }
    2109              :     }
    2110              :   else
    2111              :     {
    2112      1706549 :       if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
    2113              : )
    2114              :         {
    2115      1706426 :           {
    2116      1706426 :  wide_int max = wi::max_value (TREE_TYPE (captures[1]));
    2117      1706426 :  wide_int min = wi::min_value (TREE_TYPE (captures[1]));
    2118      1706426 :  wide_int c2 = rop == PLUS_EXPR
    2119      1706426 :  ? wi::add (wi::to_wide (captures[3]), wi::to_wide (captures[2]))
    2120      1706426 :  : wi::sub (wi::to_wide (captures[3]), wi::to_wide (captures[2]));
    2121      1634178 :               if (((cmp == LE_EXPR || cmp == GT_EXPR) && wi::eq_p (c2, max))
    2122      3321725 :  || ((cmp == LT_EXPR || cmp == GE_EXPR) && wi::eq_p (c2, min))
    2123              : )
    2124              :                 {
    2125        19037 :                   {
    2126        19037 :  wide_int c1 = rop == PLUS_EXPR
    2127        19037 :  ? wi::add (wi::bit_not (c2), wi::to_wide (captures[2]))
    2128        38074 :  : wi::sub (wi::bit_not (c2), wi::to_wide (captures[2]));
    2129        19037 :  tree c1_cst = wide_int_to_tree (TREE_TYPE (captures[1]), c1);
    2130        19037 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail710;
    2131        19037 :                       if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail710;
    2132        19037 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail710;
    2133        19037 :                       {
    2134        19037 :                         tree res_op0;
    2135        19037 :                         res_op0 = captures[1];
    2136        19037 :                         tree res_op1;
    2137        19037 :                         res_op1 =  c1_cst;
    2138        19037 :                         tree _r;
    2139        19037 :                         _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    2140        19037 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 583, __FILE__, __LINE__, true);
    2141        19037 :                         return _r;
    2142              :                       }
    2143            0 : next_after_fail710:;
    2144        19037 :                   }
    2145              :                 }
    2146      1706428 :           }
    2147              :         }
    2148              :     }
    2149              :   return NULL_TREE;
    2150              : }
    2151              : 
    2152              : tree
    2153          330 : generic_simplify_412 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2154              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2155              :  const enum tree_code ARG_UNUSED (shiftrotate))
    2156              : {
    2157          330 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2158          330 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail736;
    2159          330 :   {
    2160          330 :     tree _r;
    2161          330 :     _r = captures[0];
    2162          330 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2163           42 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2164          330 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 605, __FILE__, __LINE__, true);
    2165              :     return _r;
    2166              :   }
    2167            0 : next_after_fail736:;
    2168            0 :   return NULL_TREE;
    2169              : }
    2170              : 
    2171              : tree
    2172        27431 : generic_simplify_417 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2173              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2174              :  const enum tree_code ARG_UNUSED (bit_op),
    2175              :  const enum tree_code ARG_UNUSED (shift))
    2176              : {
    2177        27431 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2178        27431 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
    2179              : )
    2180              :     {
    2181        27431 :       {
    2182        27431 :  tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
    2183        27431 :           if (mask
    2184              : )
    2185              :             {
    2186        27424 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail744;
    2187        27424 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail744;
    2188        27424 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail744;
    2189        27424 :               {
    2190        27424 :                 tree res_op0;
    2191        27424 :                 {
    2192        27424 :                   tree _o1[2], _r1;
    2193        27424 :                   {
    2194        27424 :                     tree _o2[1], _r2;
    2195        27424 :                     _o2[0] = captures[2];
    2196        27424 :                     if (TREE_TYPE (_o2[0]) != type)
    2197              :                       {
    2198           70 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
    2199              :                       }
    2200              :                     else
    2201              :                       _r2 = _o2[0];
    2202        27424 :                     _o1[0] = _r2;
    2203              :                   }
    2204        27424 :                   _o1[1] = captures[4];
    2205        27424 :                   _r1 = fold_build2_loc (loc, shift, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2206        27424 :                   res_op0 = _r1;
    2207              :                 }
    2208        27424 :                 tree res_op1;
    2209        27424 :                 res_op1 =  mask;
    2210        27424 :                 tree _r;
    2211        27424 :                 _r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
    2212        27424 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 611, __FILE__, __LINE__, true);
    2213        27424 :                 return _r;
    2214              :               }
    2215              : next_after_fail744:;
    2216              :             }
    2217              :       }
    2218              :     }
    2219              :   return NULL_TREE;
    2220              : }
    2221              : 
    2222              : tree
    2223         7083 : generic_simplify_423 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2224              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2225              :  const enum tree_code ARG_UNUSED (minmax))
    2226              : {
    2227         7083 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2228         7083 :   if (INTEGRAL_TYPE_P (type)
    2229         7083 :  && types_match (captures[1], type) && int_fits_type_p (captures[2], type)
    2230          624 :  && TYPE_SIGN (TREE_TYPE (captures[0])) == TYPE_SIGN (type)
    2231         7083 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type)
    2232              : )
    2233              :     {
    2234            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail756;
    2235            0 :       {
    2236            0 :         tree res_op0;
    2237            0 :         res_op0 = captures[1];
    2238            0 :         tree res_op1;
    2239            0 :         {
    2240            0 :           tree _o1[1], _r1;
    2241            0 :           _o1[0] = captures[2];
    2242            0 :           if (TREE_TYPE (_o1[0]) != type)
    2243              :             {
    2244            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2245              :             }
    2246              :           else
    2247              :             _r1 = _o1[0];
    2248            0 :           res_op1 = _r1;
    2249              :         }
    2250            0 :         tree _r;
    2251            0 :         _r = fold_build2_loc (loc, minmax, type, res_op0, res_op1);
    2252            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 623, __FILE__, __LINE__, true);
    2253            0 :         return _r;
    2254              :       }
    2255            0 : next_after_fail756:;
    2256              :     }
    2257              :   return NULL_TREE;
    2258              : }
    2259              : 
    2260              : tree
    2261      2511460 : generic_simplify_426 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2262              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2263              :  const enum tree_code ARG_UNUSED (op))
    2264              : {
    2265      2511460 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2266      2511460 :   if (INTEGRAL_TYPE_P (type)
    2267      2055954 :  && op != MULT_EXPR
    2268      2055954 :  && op != RDIV_EXPR
    2269      1367017 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2270      1367017 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2271      1367017 :  && type_has_mode_precision_p (TREE_TYPE (captures[2]))
    2272      1366642 :  && type_has_mode_precision_p (TREE_TYPE (captures[4]))
    2273      1365888 :  && type_has_mode_precision_p (type)
    2274      1362035 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
    2275            0 :  && types_match (captures[2], type)
    2276      2511460 :  && (types_match (captures[2], captures[4])
    2277            0 :  || poly_int_tree_p (captures[3]))
    2278              : )
    2279              :     {
    2280            0 :       if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
    2281              : )
    2282              :         {
    2283            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail765;
    2284            0 :           {
    2285            0 :             tree res_op0;
    2286            0 :             res_op0 = captures[2];
    2287            0 :             tree res_op1;
    2288            0 :             {
    2289            0 :               tree _o1[1], _r1;
    2290            0 :               _o1[0] = captures[4];
    2291            0 :               if (TREE_TYPE (_o1[0]) != type)
    2292              :                 {
    2293            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2294              :                 }
    2295              :               else
    2296              :                 _r1 = _o1[0];
    2297            0 :               res_op1 = _r1;
    2298              :             }
    2299            0 :             tree _r;
    2300            0 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2301            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 624, __FILE__, __LINE__, true);
    2302            0 :             return _r;
    2303              :           }
    2304            0 : next_after_fail765:;
    2305              :         }
    2306              :       else
    2307              :         {
    2308            0 :           {
    2309            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
    2310            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail766;
    2311            0 :               {
    2312            0 :                 tree res_op0;
    2313            0 :                 {
    2314            0 :                   tree _o1[2], _r1;
    2315            0 :                   {
    2316            0 :                     tree _o2[1], _r2;
    2317            0 :                     _o2[0] = captures[2];
    2318            0 :                     if (TREE_TYPE (_o2[0]) != utype)
    2319              :                       {
    2320            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2321              :                       }
    2322              :                     else
    2323              :                       _r2 = _o2[0];
    2324            0 :                     _o1[0] = _r2;
    2325              :                   }
    2326            0 :                   {
    2327            0 :                     tree _o2[1], _r2;
    2328            0 :                     _o2[0] = captures[4];
    2329            0 :                     if (TREE_TYPE (_o2[0]) != utype)
    2330              :                       {
    2331            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2332              :                       }
    2333              :                     else
    2334              :                       _r2 = _o2[0];
    2335            0 :                     _o1[1] = _r2;
    2336              :                   }
    2337            0 :                   _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2338            0 :                   res_op0 = _r1;
    2339              :                 }
    2340            0 :                 tree _r;
    2341            0 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2342            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 625, __FILE__, __LINE__, true);
    2343            0 :                 return _r;
    2344              :               }
    2345            0 : next_after_fail766:;
    2346              :           }
    2347              :         }
    2348              :     }
    2349              :   else
    2350              :     {
    2351      2499171 :       if (FLOAT_TYPE_P (type)
    2352      2523749 :  && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    2353        12289 :  == DECIMAL_FLOAT_TYPE_P (type)
    2354              : )
    2355              :         {
    2356        12266 :           {
    2357        12266 :  tree arg0 = strip_float_extensions (captures[2]);
    2358        12266 :  tree arg1 = strip_float_extensions (captures[4]);
    2359        12266 :  tree itype = TREE_TYPE (captures[0]);
    2360        12266 :  tree ty1 = TREE_TYPE (arg0);
    2361        12266 :  tree ty2 = TREE_TYPE (arg1);
    2362        12266 :  enum tree_code code = TREE_CODE (itype);
    2363            0 :               if (FLOAT_TYPE_P (ty1)
    2364        12266 :  && FLOAT_TYPE_P (ty2)
    2365              : )
    2366              :                 {
    2367        12266 :                   {
    2368        12266 :  tree newtype = type;
    2369        12266 :  if (TYPE_MODE (ty1) == SDmode
    2370        12257 :  || TYPE_MODE (ty2) == SDmode
    2371        24523 :  || TYPE_MODE (type) == SDmode)
    2372            9 :  newtype = dfloat32_type_node;
    2373        12266 :  if (TYPE_MODE (ty1) == DDmode
    2374        12260 :  || TYPE_MODE (ty2) == DDmode
    2375        24526 :  || TYPE_MODE (type) == DDmode)
    2376            6 :  newtype = dfloat64_type_node;
    2377        12266 :  if (TYPE_MODE (ty1) == TDmode
    2378        12266 :  || TYPE_MODE (ty2) == TDmode
    2379        24532 :  || TYPE_MODE (type) == TDmode)
    2380           15 :  newtype = dfloat128_type_node;
    2381        12266 :                       if ((newtype == dfloat32_type_node
    2382        12266 :  || newtype == dfloat64_type_node
    2383        12266 :  || newtype == dfloat128_type_node)
    2384           15 :  && newtype == type
    2385        12272 :  && types_match (newtype, type)
    2386              : )
    2387              :                         {
    2388            6 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail767;
    2389            0 :                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail767;
    2390            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail767;
    2391            0 :                           {
    2392            0 :                             tree res_op0;
    2393            0 :                             {
    2394            0 :                               tree _o1[1], _r1;
    2395            0 :                               _o1[0] = captures[2];
    2396            0 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2397              :                                 {
    2398            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2399              :                                 }
    2400              :                               else
    2401              :                                 _r1 = _o1[0];
    2402            0 :                               res_op0 = _r1;
    2403              :                             }
    2404            0 :                             tree res_op1;
    2405            0 :                             {
    2406            0 :                               tree _o1[1], _r1;
    2407            0 :                               _o1[0] = captures[4];
    2408            0 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2409              :                                 {
    2410            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2411              :                                 }
    2412              :                               else
    2413              :                                 _r1 = _o1[0];
    2414            0 :                               res_op1 = _r1;
    2415              :                             }
    2416            0 :                             tree _r;
    2417            0 :                             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2418            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 626, __FILE__, __LINE__, true);
    2419            0 :                             return _r;
    2420              :                           }
    2421              : next_after_fail767:;
    2422              :                         }
    2423              :                       else
    2424              :                         {
    2425        12260 :                           {
    2426        12260 :  if (element_precision (ty1) > element_precision (newtype))
    2427          745 :  newtype = ty1;
    2428        12260 :  if (element_precision (ty2) > element_precision (newtype))
    2429            1 :  newtype = ty2;
    2430        12260 :                               if (element_precision (newtype) < element_precision (itype)
    2431        10960 :  && (!VECTOR_MODE_P (TYPE_MODE (newtype))
    2432            0 :  || target_supports_op_p (newtype, op, optab_default))
    2433        10960 :  && (flag_unsafe_math_optimizations
    2434        10948 :  || (element_precision (newtype) == element_precision (type)
    2435        10944 :  && real_can_shorten_arithmetic (element_mode (itype),
    2436              :  element_mode (type))
    2437         3990 :  && !excess_precision_type (newtype)))
    2438        12933 :  && !types_match (itype, newtype)
    2439              : )
    2440              :                                 {
    2441          673 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail768;
    2442          673 :                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail768;
    2443          655 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail768;
    2444          655 :                                   {
    2445          655 :                                     tree res_op0;
    2446          655 :                                     {
    2447          655 :                                       tree _o1[2], _r1;
    2448          655 :                                       {
    2449          655 :                                         tree _o2[1], _r2;
    2450          655 :                                         _o2[0] = captures[2];
    2451          655 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2452              :                                           {
    2453          655 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2454              :                                           }
    2455              :                                         else
    2456              :                                           _r2 = _o2[0];
    2457          655 :                                         _o1[0] = _r2;
    2458              :                                       }
    2459          655 :                                       {
    2460          655 :                                         tree _o2[1], _r2;
    2461          655 :                                         _o2[0] = captures[4];
    2462          655 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2463              :                                           {
    2464          604 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2465              :                                           }
    2466              :                                         else
    2467              :                                           _r2 = _o2[0];
    2468          655 :                                         _o1[1] = _r2;
    2469              :                                       }
    2470          655 :                                       _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2471          655 :                                       res_op0 = _r1;
    2472              :                                     }
    2473          655 :                                     tree _r;
    2474          655 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2475          655 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 627, __FILE__, __LINE__, true);
    2476          655 :                                     return _r;
    2477              :                                   }
    2478              : next_after_fail768:;
    2479              :                                 }
    2480              :                           }
    2481              :                         }
    2482              :                   }
    2483              :                 }
    2484              :           }
    2485              :         }
    2486              :     }
    2487              :   return NULL_TREE;
    2488              : }
    2489              : 
    2490              : tree
    2491         1667 : generic_simplify_457 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2492              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2493              : {
    2494         1667 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2495         1667 :   {
    2496         1667 :  bool wascmp;
    2497         1667 :       if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
    2498         1667 :  || bitwise_inverted_equal_p (captures[1], captures[2], wascmp)
    2499              : )
    2500              :         {
    2501            8 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail802;
    2502            8 :           {
    2503            8 :             tree _r;
    2504            8 :             _r =  wascmp ? constant_boolean_node (false, type) : build_zero_cst (type);
    2505            8 :             if (TREE_SIDE_EFFECTS (captures[0]))
    2506            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2507            8 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2508            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2509            8 :             if (TREE_SIDE_EFFECTS (captures[2]))
    2510            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2511            8 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 656, __FILE__, __LINE__, true);
    2512            8 :             return _r;
    2513              :           }
    2514            0 : next_after_fail802:;
    2515              :         }
    2516              :   }
    2517         1659 :   return NULL_TREE;
    2518              : }
    2519              : 
    2520              : tree
    2521            0 : generic_simplify_468 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2522              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2523              : {
    2524            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2525            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail834;
    2526            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail834;
    2527            0 :   {
    2528            0 :     tree _r;
    2529            0 :     _r = captures[2];
    2530            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2531            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2532            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 678, __FILE__, __LINE__, true);
    2533              :     return _r;
    2534              :   }
    2535              : next_after_fail834:;
    2536              :   return NULL_TREE;
    2537              : }
    2538              : 
    2539              : tree
    2540            3 : generic_simplify_473 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2541              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2542              : {
    2543            3 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2544            6 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2545            6 :  && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
    2546              : )
    2547              :     {
    2548            3 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail852;
    2549            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail852;
    2550            3 :       {
    2551            3 :         tree res_op0;
    2552            3 :         res_op0 = captures[3];
    2553            3 :         tree res_op1;
    2554            3 :         {
    2555            3 :           tree _o1[2], _r1;
    2556            3 :           _o1[0] = captures[1];
    2557            3 :           _o1[1] =  build_int_cst (TREE_TYPE (captures[1]), 1);
    2558            3 :           _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2559            3 :           res_op1 = _r1;
    2560              :         }
    2561            3 :         tree _r;
    2562            3 :         _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2563            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 680, __FILE__, __LINE__, true);
    2564            3 :         return _r;
    2565              :       }
    2566              : next_after_fail852:;
    2567              :     }
    2568              :   return NULL_TREE;
    2569              : }
    2570              : 
    2571              : tree
    2572        98206 : generic_simplify_480 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2573              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2574              :  const enum tree_code ARG_UNUSED (shift))
    2575              : {
    2576        98206 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2577        98206 :   if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2578        22368 :  && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
    2579        22368 :  && tree_fits_uhwi_p (captures[4])
    2580        22368 :  && tree_to_uhwi (captures[4]) > 0
    2581       120574 :  && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
    2582              : )
    2583              :     {
    2584        22368 :       {
    2585        22368 :  unsigned int shiftc = tree_to_uhwi (captures[4]);
    2586        22368 :  unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
    2587        22368 :  unsigned HOST_WIDE_INT newmask, zerobits = 0;
    2588        22368 :  tree shift_type = TREE_TYPE (captures[2]);
    2589        22368 :  unsigned int prec;
    2590        22368 :  if (shift == LSHIFT_EXPR)
    2591            0 :  zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
    2592        22368 :  else if (shift == RSHIFT_EXPR
    2593        22368 :  && type_has_mode_precision_p (shift_type))
    2594              :  {
    2595        22368 :  prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
    2596        22368 :  tree arg00 = captures[3];
    2597        22368 :  if (captures[2] != captures[3]
    2598        22368 :  && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
    2599              :  {
    2600        21961 :  tree inner_type = TREE_TYPE (captures[3]);
    2601        21961 :  if (type_has_mode_precision_p (inner_type)
    2602        21961 :  && TYPE_PRECISION (inner_type) < prec)
    2603              :  {
    2604           34 :  prec = TYPE_PRECISION (inner_type);
    2605           34 :  if (shiftc < prec)
    2606           34 :  shift_type = inner_type;
    2607              :  }
    2608              :  }
    2609        22368 :  zerobits = HOST_WIDE_INT_M1U;
    2610        22368 :  if (shiftc < prec)
    2611              :  {
    2612        22368 :  zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
    2613        22368 :  zerobits <<= prec - shiftc;
    2614              :  }
    2615        22368 :  if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    2616        22368 :  && prec == TYPE_PRECISION (TREE_TYPE (captures[2])))
    2617              :  {
    2618           73 :  if ((mask & zerobits) == 0)
    2619           59 :  shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
    2620              :  else
    2621              :  zerobits = 0;
    2622              :  }
    2623              :  }
    2624        22354 :           if ((mask & zerobits) == mask
    2625              : )
    2626              :             {
    2627            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail863;
    2628            0 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail863;
    2629            0 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail863;
    2630            0 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail863;
    2631            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail863;
    2632            0 :               {
    2633            0 :                 tree _r;
    2634            0 :                 _r =  build_int_cst (type, 0);
    2635            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 682, __FILE__, __LINE__, true);
    2636            0 :                 return _r;
    2637              :               }
    2638              : next_after_fail863:;
    2639              :             }
    2640              :           else
    2641              :             {
    2642        22368 :               {
    2643        22368 :  newmask = mask | zerobits;
    2644        22368 :                   if (newmask != mask && (newmask & (newmask + 1)) == 0
    2645              : )
    2646              :                     {
    2647              :                       {
    2648           65 :  for (prec = BITS_PER_UNIT;
    2649          122 :  prec < HOST_BITS_PER_WIDE_INT; prec <<= 1)
    2650          118 :  if (newmask == (HOST_WIDE_INT_1U << prec) - 1)
    2651              :  break;
    2652           57 :                           if (prec < HOST_BITS_PER_WIDE_INT
    2653            4 :  || newmask == HOST_WIDE_INT_M1U
    2654              : )
    2655              :                             {
    2656           57 :                               {
    2657           57 :  tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
    2658           57 :                                   if (!tree_int_cst_equal (newmaskt, captures[5])
    2659              : )
    2660              :                                     {
    2661           57 :                                       if (shift_type != TREE_TYPE (captures[2])
    2662              : )
    2663              :                                         {
    2664           47 :                                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail864;
    2665           47 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail864;
    2666           47 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail864;
    2667           47 :                                           {
    2668           47 :                                             tree res_op0;
    2669           47 :                                             {
    2670           47 :                                               tree _o1[1], _r1;
    2671           47 :                                               {
    2672           47 :                                                 tree _o2[2], _r2;
    2673           47 :                                                 {
    2674           47 :                                                   tree _o3[1], _r3;
    2675           47 :                                                   _o3[0] = captures[2];
    2676           47 :                                                   if (TREE_TYPE (_o3[0]) != shift_type)
    2677              :                                                     {
    2678           47 :                                                       _r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
    2679              :                                                     }
    2680              :                                                   else
    2681              :                                                     _r3 = _o3[0];
    2682           47 :                                                   _o2[0] = _r3;
    2683              :                                                 }
    2684           47 :                                                 _o2[1] = captures[4];
    2685           47 :                                                 _r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
    2686           47 :                                                 _o1[0] = _r2;
    2687              :                                               }
    2688           47 :                                               if (TREE_TYPE (_o1[0]) != type)
    2689              :                                                 {
    2690           47 :                                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2691              :                                                 }
    2692              :                                               else
    2693              :                                                 _r1 = _o1[0];
    2694           47 :                                               res_op0 = _r1;
    2695              :                                             }
    2696           47 :                                             tree res_op1;
    2697           47 :                                             res_op1 =  newmaskt;
    2698           47 :                                             tree _r;
    2699           47 :                                             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2700           47 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 683, __FILE__, __LINE__, true);
    2701           47 :                                             return _r;
    2702              :                                           }
    2703              : next_after_fail864:;
    2704              :                                         }
    2705              :                                       else
    2706              :                                         {
    2707           10 :                                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail865;
    2708           10 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail865;
    2709           10 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail865;
    2710           10 :                                           {
    2711           10 :                                             tree res_op0;
    2712           10 :                                             res_op0 = captures[0];
    2713           10 :                                             tree res_op1;
    2714           10 :                                             res_op1 =  newmaskt;
    2715           10 :                                             tree _r;
    2716           10 :                                             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2717           10 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 684, __FILE__, __LINE__, true);
    2718           10 :                                             return _r;
    2719              :                                           }
    2720              : next_after_fail865:;
    2721              :                                         }
    2722              :                                     }
    2723              :                               }
    2724              :                             }
    2725              :                       }
    2726              :                     }
    2727              :               }
    2728              :             }
    2729              :       }
    2730              :     }
    2731              :   return NULL_TREE;
    2732              : }
    2733              : 
    2734              : tree
    2735          108 : generic_simplify_490 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2736              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2737              : {
    2738          108 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2739          108 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail879;
    2740          108 :   {
    2741          108 :     tree res_op0;
    2742          108 :     res_op0 = captures[1];
    2743          108 :     tree res_op1;
    2744          108 :     {
    2745          108 :       tree _o1[1], _r1;
    2746          108 :       _o1[0] = captures[2];
    2747          108 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    2748          108 :       res_op1 = _r1;
    2749              :     }
    2750          108 :     tree _r;
    2751          108 :     _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2752          108 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 694, __FILE__, __LINE__, true);
    2753              :     return _r;
    2754              :   }
    2755            0 : next_after_fail879:;
    2756            0 :   return NULL_TREE;
    2757              : }
    2758              : 
    2759              : tree
    2760           29 : generic_simplify_496 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2761              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2762              : {
    2763           29 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2764           29 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    2765              : )
    2766              :     {
    2767           29 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail885;
    2768           29 :       {
    2769           29 :         tree res_op0;
    2770           29 :         {
    2771           29 :           tree _o1[2], _r1;
    2772           29 :           _o1[0] = captures[0];
    2773           29 :           {
    2774           29 :             tree _o2[1], _r2;
    2775           29 :             _o2[0] = captures[1];
    2776           29 :             _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    2777           29 :             _o1[1] = _r2;
    2778              :           }
    2779           29 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2780           29 :           res_op0 = _r1;
    2781              :         }
    2782           29 :         tree _r;
    2783           29 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2784           29 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 700, __FILE__, __LINE__, true);
    2785           29 :         return _r;
    2786              :       }
    2787            0 : next_after_fail885:;
    2788              :     }
    2789              :   return NULL_TREE;
    2790              : }
    2791              : 
    2792              : tree
    2793        38982 : generic_simplify_503 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2794              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2795              : {
    2796        38982 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2797        38982 :   if (!HONOR_SIGN_DEPENDENT_ROUNDING (type)
    2798        38982 :  && !HONOR_SIGNED_ZEROS (type)
    2799              : )
    2800              :     {
    2801        38982 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail893;
    2802        38982 :       {
    2803        38982 :         tree res_op0;
    2804        38982 :         {
    2805        38982 :           tree _o1[1], _r1;
    2806        38982 :           _o1[0] = captures[1];
    2807        38982 :           _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    2808        38982 :           res_op0 = _r1;
    2809              :         }
    2810        38982 :         tree res_op1;
    2811        38982 :         res_op1 = captures[0];
    2812        38982 :         tree _r;
    2813        38982 :         _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    2814        38982 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 706, __FILE__, __LINE__, true);
    2815        38982 :         return _r;
    2816              :       }
    2817            0 : next_after_fail893:;
    2818              :     }
    2819              :   return NULL_TREE;
    2820              : }
    2821              : 
    2822              : tree
    2823           16 : generic_simplify_509 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2824              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2825              :  const combined_fn ARG_UNUSED (fmas))
    2826              : {
    2827           16 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2828           16 :   if (canonicalize_math_after_vectorization_p ()
    2829              : )
    2830              :     {
    2831              :       if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
    2832              : )
    2833              :         {
    2834              :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail900;
    2835              :           {
    2836              :             tree res_op0;
    2837              :             res_op0 = captures[1];
    2838              :             tree res_op1;
    2839              :             res_op1 = captures[2];
    2840              :             tree res_op2;
    2841              :             res_op2 = captures[3];
    2842              :             tree _r;
    2843              :             _r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
    2844              :             if (!_r)
    2845              :               goto next_after_fail900;
    2846              :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 713, __FILE__, __LINE__, true);
    2847              :             return _r;
    2848              :           }
    2849           16 : next_after_fail900:;
    2850              :         }
    2851              :     }
    2852           16 :   return NULL_TREE;
    2853              : }
    2854              : 
    2855              : tree
    2856            2 : generic_simplify_521 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2857              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2858              : {
    2859            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2860            2 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail924;
    2861            2 :   {
    2862            2 :     tree _r;
    2863            2 :     _r = captures[1];
    2864            2 :     if (TREE_SIDE_EFFECTS (captures[0]))
    2865            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2866            2 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 724, __FILE__, __LINE__, true);
    2867              :     return _r;
    2868              :   }
    2869            0 : next_after_fail924:;
    2870            0 :   return NULL_TREE;
    2871              : }
    2872              : 
    2873              : tree
    2874            0 : generic_simplify_525 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2875              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2876              :  const combined_fn ARG_UNUSED (FMIN_ALL))
    2877              : {
    2878            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2879            0 :   if (flag_finite_math_only
    2880              : )
    2881              :     {
    2882            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail928;
    2883            0 :       {
    2884            0 :         tree res_op0;
    2885            0 :         res_op0 = captures[0];
    2886            0 :         tree res_op1;
    2887            0 :         res_op1 = captures[1];
    2888            0 :         tree _r;
    2889            0 :         _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
    2890            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 728, __FILE__, __LINE__, true);
    2891            0 :         return _r;
    2892              :       }
    2893            0 : next_after_fail928:;
    2894              :     }
    2895              :   return NULL_TREE;
    2896              : }
    2897              : 
    2898              : tree
    2899            1 : generic_simplify_530 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2900              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2901              : {
    2902            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2903            1 :   if (tree_nop_conversion_p (TREE_TYPE (captures[0]), type)
    2904              : )
    2905              :     {
    2906            1 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail936;
    2907            1 :       {
    2908            1 :         tree res_op0;
    2909            1 :         {
    2910            1 :           tree _o1[1], _r1;
    2911            1 :           _o1[0] = captures[0];
    2912            1 :           if (TREE_TYPE (_o1[0]) != type)
    2913              :             {
    2914            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2915              :             }
    2916              :           else
    2917              :             _r1 = _o1[0];
    2918            1 :           res_op0 = _r1;
    2919              :         }
    2920            1 :         tree _r;
    2921            1 :         _r = non_lvalue_loc (loc, res_op0);
    2922            1 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 736, __FILE__, __LINE__, true);
    2923            1 :         return _r;
    2924              :       }
    2925            0 : next_after_fail936:;
    2926              :     }
    2927              :   return NULL_TREE;
    2928              : }
    2929              : 
    2930              : tree
    2931            0 : generic_simplify_539 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2932              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    2933              :  const combined_fn ARG_UNUSED (cond_op))
    2934              : {
    2935            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2936            0 :   {
    2937            0 :  tree op_type = TREE_TYPE (captures[3]);
    2938            0 :       if (element_precision (type) == element_precision (op_type)
    2939              : )
    2940              :         {
    2941            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail945;
    2942            0 :           {
    2943            0 :             tree res_op0;
    2944            0 :             {
    2945            0 :               tree _o1[4], _r1;
    2946            0 :               _o1[0] = captures[0];
    2947            0 :               _o1[1] = captures[1];
    2948            0 :               _o1[2] = captures[2];
    2949            0 :               {
    2950            0 :                 tree _o2[1], _r2;
    2951            0 :                 _o2[0] = captures[4];
    2952            0 :                 if (TREE_TYPE (_o2[0]) != op_type)
    2953              :                   {
    2954            0 :                     _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
    2955              :                   }
    2956              :                 else
    2957              :                   _r2 = _o2[0];
    2958            0 :                 _o1[3] = _r2;
    2959              :               }
    2960            0 :               _r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 4, _o1[0], _o1[1], _o1[2], _o1[3]);
    2961            0 :               if (!_r1)
    2962            0 :                 goto next_after_fail945;
    2963            0 :               res_op0 = _r1;
    2964              :             }
    2965            0 :             tree _r;
    2966            0 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    2967            0 :             if (TREE_SIDE_EFFECTS (captures[3]))
    2968            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    2969            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 740, __FILE__, __LINE__, true);
    2970            0 :             return _r;
    2971              :           }
    2972              : next_after_fail945:;
    2973              :         }
    2974              :   }
    2975              :   return NULL_TREE;
    2976              : }
    2977              : 
    2978              : tree
    2979            0 : generic_simplify_548 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2980              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    2981              :  const combined_fn ARG_UNUSED (cond_op))
    2982              : {
    2983            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2984            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail954;
    2985            0 :   {
    2986            0 :     tree res_op0;
    2987            0 :     {
    2988            0 :       tree _o1[2], _r1;
    2989            0 :       _o1[0] = captures[2];
    2990            0 :       _o1[1] = captures[0];
    2991            0 :       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2992            0 :       res_op0 = _r1;
    2993              :     }
    2994            0 :     tree res_op1;
    2995            0 :     res_op1 = captures[3];
    2996            0 :     tree res_op2;
    2997            0 :     res_op2 = captures[4];
    2998            0 :     tree res_op3;
    2999            0 :     res_op3 = captures[5];
    3000            0 :     tree res_op4;
    3001            0 :     res_op4 = captures[6];
    3002            0 :     tree _r;
    3003            0 :     _r = maybe_build_call_expr_loc (loc, cond_op, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3004            0 :     if (!_r)
    3005            0 :       goto next_after_fail954;
    3006            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 749, __FILE__, __LINE__, true);
    3007              :     return _r;
    3008              :   }
    3009              : next_after_fail954:;
    3010              :   return NULL_TREE;
    3011              : }
    3012              : 
    3013              : tree
    3014            0 : generic_simplify_559 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3015              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3016              :  const combined_fn ARG_UNUSED (sinhs),
    3017              :  const combined_fn ARG_UNUSED (atanhs),
    3018              :  const combined_fn ARG_UNUSED (sqrts))
    3019              : {
    3020            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3021            0 :   if (!flag_errno_math
    3022              : )
    3023              :     {
    3024            0 :       {
    3025            0 :  tree t_one = build_one_cst (type);
    3026            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail965;
    3027            0 :           {
    3028            0 :             if (! tree_invariant_p (captures[1])) goto next_after_fail965;
    3029            0 :             tree res_op0;
    3030            0 :             res_op0 = unshare_expr (captures[1]);
    3031            0 :             tree res_op1;
    3032            0 :             {
    3033            0 :               tree _o1[1], _r1;
    3034            0 :               {
    3035            0 :                 tree _o2[2], _r2;
    3036            0 :                 {
    3037            0 :                   tree _o3[2], _r3;
    3038            0 :                   _o3[0] =  t_one;
    3039            0 :                   _o3[1] = unshare_expr (captures[1]);
    3040            0 :                   _r3 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
    3041            0 :                   _o2[0] = _r3;
    3042              :                 }
    3043            0 :                 {
    3044            0 :                   tree _o3[2], _r3;
    3045            0 :                   _o3[0] =  t_one;
    3046            0 :                   _o3[1] = captures[1];
    3047            0 :                   _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
    3048            0 :                   _o2[1] = _r3;
    3049              :                 }
    3050            0 :                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    3051            0 :                 _o1[0] = _r2;
    3052              :               }
    3053            0 :               _r1 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3054            0 :               if (!_r1)
    3055            0 :                 goto next_after_fail965;
    3056            0 :               res_op1 = _r1;
    3057              :             }
    3058            0 :             tree _r;
    3059            0 :             _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    3060            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 760, __FILE__, __LINE__, true);
    3061            0 :             return _r;
    3062              :           }
    3063              : next_after_fail965:;
    3064              :       }
    3065              :     }
    3066              :   return NULL_TREE;
    3067              : }
    3068              : 
    3069              : tree
    3070            0 : generic_simplify_577 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3071              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3072              :  const combined_fn ARG_UNUSED (fmas))
    3073              : {
    3074            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3075            0 :   if (canonicalize_math_after_vectorization_p ()
    3076              : )
    3077              :     {
    3078              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail983;
    3079              :       {
    3080              :         tree res_op0;
    3081              :         res_op0 = captures[0];
    3082              :         tree res_op1;
    3083              :         res_op1 = captures[1];
    3084              :         tree res_op2;
    3085              :         res_op2 = captures[2];
    3086              :         tree _r;
    3087              :         _r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
    3088              :         if (!_r)
    3089              :           goto next_after_fail983;
    3090              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 778, __FILE__, __LINE__, true);
    3091              :         return _r;
    3092              :       }
    3093            0 : next_after_fail983:;
    3094              :     }
    3095            0 :   return NULL_TREE;
    3096              : }
    3097              : 
    3098              : tree
    3099            0 : generic_simplify_587 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3100              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
    3101              : {
    3102            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3103            0 :   if (canonicalize_math_after_vectorization_p ()
    3104              : )
    3105              :     {
    3106              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail993;
    3107              :       {
    3108              :         tree res_op0;
    3109              :         res_op0 = captures[0];
    3110              :         tree res_op1;
    3111              :         res_op1 = captures[1];
    3112              :         tree res_op2;
    3113              :         res_op2 = captures[2];
    3114              :         tree res_op3;
    3115              :         res_op3 = captures[3];
    3116              :         tree res_op4;
    3117              :         res_op4 = captures[4];
    3118              :         tree _r;
    3119              :         _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3120              :         if (!_r)
    3121              :           goto next_after_fail993;
    3122              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 788, __FILE__, __LINE__, true);
    3123              :         return _r;
    3124              :       }
    3125            0 : next_after_fail993:;
    3126              :     }
    3127            0 :   return NULL_TREE;
    3128              : }
    3129              : 
    3130              : tree
    3131            0 : generic_simplify_597 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3132              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3133              :  const combined_fn ARG_UNUSED (bswap),
    3134              :  const combined_fn ARG_UNUSED (popcount))
    3135              : {
    3136            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3137            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3138            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3139              : )
    3140              :     {
    3141            0 :       {
    3142            0 :  tree type0 = TREE_TYPE (captures[0]);
    3143            0 :  tree type1 = TREE_TYPE (captures[1]);
    3144            0 :  unsigned int prec0 = TYPE_PRECISION (type0);
    3145            0 :  unsigned int prec1 = TYPE_PRECISION (type1);
    3146            0 :           if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
    3147              : )
    3148              :             {
    3149            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1003;
    3150            0 :               {
    3151            0 :                 tree res_op0;
    3152            0 :                 {
    3153            0 :                   tree _o1[1], _r1;
    3154            0 :                   {
    3155            0 :                     tree _o2[1], _r2;
    3156            0 :                     _o2[0] = captures[2];
    3157            0 :                     if (TREE_TYPE (_o2[0]) != type1)
    3158              :                       {
    3159            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
    3160              :                       }
    3161              :                     else
    3162              :                       _r2 = _o2[0];
    3163            0 :                     _o1[0] = _r2;
    3164              :                   }
    3165            0 :                   if (TREE_TYPE (_o1[0]) != type0)
    3166              :                     {
    3167            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
    3168              :                     }
    3169              :                   else
    3170              :                     _r1 = _o1[0];
    3171            0 :                   res_op0 = _r1;
    3172              :                 }
    3173            0 :                 tree _r;
    3174            0 :                 _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
    3175            0 :                 if (!_r)
    3176            0 :                   goto next_after_fail1003;
    3177            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 795, __FILE__, __LINE__, true);
    3178            0 :                 return _r;
    3179              :               }
    3180              : next_after_fail1003:;
    3181              :             }
    3182              :       }
    3183              :     }
    3184              :   return NULL_TREE;
    3185              : }
    3186              : 
    3187              : tree
    3188            0 : generic_simplify_610 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3189              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3190              :  const enum tree_code ARG_UNUSED (plusminus),
    3191              :  const enum tree_code ARG_UNUSED (minusplus))
    3192              : {
    3193            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3194            0 :   if (!VECTOR_INTEGER_TYPE_P (type)
    3195              :  && !FLOAT_WORDS_BIG_ENDIAN
    3196            0 :  && (operand_equal_p (captures[0], captures[2], 0)
    3197            0 :  ? operand_equal_p (captures[1], captures[3], 0)
    3198            0 :  : operand_equal_p (captures[0], captures[3], 0) && operand_equal_p (captures[1], captures[2], 0))
    3199              : )
    3200              :     {
    3201            0 :       {
    3202            0 :  vec_perm_builder builder;
    3203            0 :           if (tree_to_vec_perm_builder (&builder, captures[4])
    3204              : )
    3205              :             {
    3206            0 :               {
    3207            0 :  poly_uint64 nelts = TYPE_VECTOR_SUBPARTS (type);
    3208            0 :  vec_perm_indices sel (builder, 2, nelts);
    3209            0 :  machine_mode vec_mode = TYPE_MODE (type);
    3210            0 :  machine_mode wide_mode;
    3211            0 :  scalar_mode wide_elt_mode;
    3212            0 :  poly_uint64 wide_nunits;
    3213            0 :  scalar_mode inner_mode = GET_MODE_INNER (vec_mode);
    3214            0 :                   if (VECTOR_MODE_P (vec_mode)
    3215            0 :  && sel.series_p (0, 2, 0, 2)
    3216            0 :  && sel.series_p (1, 2, nelts + 1, 2)
    3217            0 :  && GET_MODE_2XWIDER_MODE (inner_mode).exists (&wide_elt_mode)
    3218            0 :  && multiple_p (GET_MODE_NUNITS (vec_mode), 2, &wide_nunits)
    3219            0 :  && related_vector_mode (vec_mode, wide_elt_mode,
    3220            0 :  wide_nunits).exists (&wide_mode)
    3221              : )
    3222              :                     {
    3223            0 :                       {
    3224            0 :  tree stype
    3225            0 :  = lang_hooks.types.type_for_mode (GET_MODE_INNER (wide_mode),
    3226            0 :  TYPE_UNSIGNED (type));
    3227            0 :  tree ntype = build_vector_type_for_mode (stype, wide_mode);
    3228            0 :  const struct real_format *fmt_old = FLOAT_MODE_FORMAT (vec_mode);
    3229            0 :  const struct real_format *fmt_new = FLOAT_MODE_FORMAT (wide_mode);
    3230            0 :                           if (TYPE_MODE (stype) != BLKmode
    3231            0 :  && VECTOR_TYPE_P (ntype)
    3232            0 :  && fmt_old != NULL
    3233            0 :  && fmt_new != NULL
    3234              : )
    3235              :                             {
    3236            0 :                               {
    3237            0 :  if (known_eq (GET_MODE_NUNITS (wide_mode), 1)
    3238            0 :  && !target_supports_op_p (ntype, NEGATE_EXPR, optab_vector))
    3239              :  ntype = stype;
    3240            0 :                                   if (fmt_new->signbit_rw
    3241            0 :  == fmt_old->signbit_rw + GET_MODE_UNIT_BITSIZE (vec_mode)
    3242            0 :  && fmt_new->signbit_rw == fmt_new->signbit_ro
    3243            0 :  && targetm.can_change_mode_class (TYPE_MODE (ntype),
    3244            0 :  TYPE_MODE (type), ALL_REGS)
    3245            0 :  && ((optimize_vectors_before_lowering_p ()
    3246            0 :  && VECTOR_TYPE_P (ntype))
    3247            0 :  || target_supports_op_p (ntype, NEGATE_EXPR, optab_vector))
    3248              : )
    3249              :                                     {
    3250            0 :                                       if (plusminus == PLUS_EXPR
    3251              : )
    3252              :                                         {
    3253            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1017;
    3254            0 :                                           {
    3255            0 :                                             tree res_op0;
    3256            0 :                                             {
    3257            0 :                                               tree _o1[1], _r1;
    3258            0 :                                               {
    3259            0 :                                                 tree _o2[1], _r2;
    3260            0 :                                                 {
    3261            0 :                                                   tree _o3[1], _r3;
    3262            0 :                                                   _o3[0] = captures[3];
    3263            0 :                                                   if (TREE_TYPE (_o3[0]) != ntype)
    3264              :                                                     {
    3265            0 :                                                       _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o3[0]);
    3266              :                                                     }
    3267              :                                                   else
    3268              :                                                     _r3 = _o3[0];
    3269            0 :                                                   _o2[0] = _r3;
    3270              :                                                 }
    3271            0 :                                                 _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    3272            0 :                                                 _o1[0] = _r2;
    3273              :                                               }
    3274            0 :                                               if (TREE_TYPE (_o1[0]) != type)
    3275              :                                                 {
    3276            0 :                                                   _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    3277              :                                                 }
    3278              :                                               else
    3279              :                                                 _r1 = _o1[0];
    3280            0 :                                               res_op0 = _r1;
    3281              :                                             }
    3282            0 :                                             tree res_op1;
    3283            0 :                                             res_op1 = captures[2];
    3284            0 :                                             tree _r;
    3285            0 :                                             _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    3286            0 :                                             if (TREE_SIDE_EFFECTS (captures[0]))
    3287            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3288            0 :                                             if (TREE_SIDE_EFFECTS (captures[1]))
    3289            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3290            0 :                                             if (TREE_SIDE_EFFECTS (captures[4]))
    3291            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    3292            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 805, __FILE__, __LINE__, true);
    3293            0 :                                             return _r;
    3294              :                                           }
    3295            0 : next_after_fail1017:;
    3296              :                                         }
    3297              :                                       else
    3298              :                                         {
    3299            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1018;
    3300            0 :                                           {
    3301            0 :                                             tree res_op0;
    3302            0 :                                             res_op0 = captures[0];
    3303            0 :                                             tree res_op1;
    3304            0 :                                             {
    3305            0 :                                               tree _o1[1], _r1;
    3306            0 :                                               {
    3307            0 :                                                 tree _o2[1], _r2;
    3308            0 :                                                 {
    3309            0 :                                                   tree _o3[1], _r3;
    3310            0 :                                                   _o3[0] = captures[1];
    3311            0 :                                                   if (TREE_TYPE (_o3[0]) != ntype)
    3312              :                                                     {
    3313            0 :                                                       _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o3[0]);
    3314              :                                                     }
    3315              :                                                   else
    3316              :                                                     _r3 = _o3[0];
    3317            0 :                                                   _o2[0] = _r3;
    3318              :                                                 }
    3319            0 :                                                 _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    3320            0 :                                                 _o1[0] = _r2;
    3321              :                                               }
    3322            0 :                                               if (TREE_TYPE (_o1[0]) != type)
    3323              :                                                 {
    3324            0 :                                                   _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    3325              :                                                 }
    3326              :                                               else
    3327              :                                                 _r1 = _o1[0];
    3328            0 :                                               res_op1 = _r1;
    3329              :                                             }
    3330            0 :                                             tree _r;
    3331            0 :                                             _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    3332            0 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    3333            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    3334            0 :                                             if (TREE_SIDE_EFFECTS (captures[3]))
    3335            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    3336            0 :                                             if (TREE_SIDE_EFFECTS (captures[4]))
    3337            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    3338            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 806, __FILE__, __LINE__, true);
    3339            0 :                                             return _r;
    3340              :                                           }
    3341            0 : next_after_fail1018:;
    3342              :                                         }
    3343              :                                     }
    3344              :                               }
    3345              :                             }
    3346              :                       }
    3347              :                     }
    3348            0 :               }
    3349              :             }
    3350            0 :       }
    3351              :     }
    3352              :   return NULL_TREE;
    3353              : }
    3354              : 
    3355              : tree
    3356         1330 : generic_simplify_CONJ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3357              : {
    3358         1330 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3359         1330 :   switch (TREE_CODE (_p0))
    3360              :     {
    3361            0 :     CASE_CONVERT:
    3362            0 :       {
    3363            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3364            0 :         switch (TREE_CODE (_q20))
    3365              :           {
    3366            0 :           case CONJ_EXPR:
    3367            0 :             {
    3368            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3369            0 :               {
    3370            0 :                 tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    3371            0 :                 tree res = generic_simplify_530 (loc, type, _p0, captures);
    3372            0 :                 if (res) return res;
    3373              :               }
    3374            0 :               break;
    3375              :             }
    3376            0 :           case COMPLEX_EXPR:
    3377            0 :             {
    3378            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3379            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3380            0 :               {
    3381            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3382            0 :                 {
    3383            0 :  tree itype = TREE_TYPE (type);
    3384            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1141;
    3385            0 :                     {
    3386            0 :                       tree res_op0;
    3387            0 :                       {
    3388            0 :                         tree _o1[1], _r1;
    3389            0 :                         _o1[0] = captures[2];
    3390            0 :                         if (TREE_TYPE (_o1[0]) != itype)
    3391              :                           {
    3392            0 :                             _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
    3393              :                           }
    3394              :                         else
    3395              :                           _r1 = _o1[0];
    3396            0 :                         res_op0 = _r1;
    3397              :                       }
    3398            0 :                       tree res_op1;
    3399            0 :                       {
    3400            0 :                         tree _o1[1], _r1;
    3401            0 :                         {
    3402            0 :                           tree _o2[1], _r2;
    3403            0 :                           _o2[0] = captures[3];
    3404            0 :                           if (TREE_TYPE (_o2[0]) != itype)
    3405              :                             {
    3406            0 :                               _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
    3407              :                             }
    3408              :                           else
    3409              :                             _r2 = _o2[0];
    3410            0 :                           _o1[0] = _r2;
    3411              :                         }
    3412            0 :                         _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3413            0 :                         res_op1 = _r1;
    3414              :                       }
    3415            0 :                       tree _r;
    3416            0 :                       _r = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
    3417            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 868, __FILE__, __LINE__, true);
    3418            0 :                       return _r;
    3419              :                     }
    3420            0 : next_after_fail1141:;
    3421              :                 }
    3422              :               }
    3423            0 :               break;
    3424              :             }
    3425              :           default:;
    3426              :           }
    3427              :         break;
    3428              :       }
    3429            1 :     case CONJ_EXPR:
    3430            1 :       {
    3431            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3432            1 :         {
    3433            1 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3434            1 :           tree res = generic_simplify_530 (loc, type, _p0, captures);
    3435            1 :           if (res) return res;
    3436              :         }
    3437            0 :         break;
    3438              :       }
    3439           12 :     case COMPLEX_EXPR:
    3440           12 :       {
    3441           12 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3442           12 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3443           12 :         {
    3444           12 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    3445           12 :           {
    3446           12 :  tree itype = TREE_TYPE (type);
    3447           12 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1142;
    3448           12 :               {
    3449           12 :                 tree res_op0;
    3450           12 :                 {
    3451           12 :                   tree _o1[1], _r1;
    3452           12 :                   _o1[0] = captures[2];
    3453           12 :                   if (TREE_TYPE (_o1[0]) != itype)
    3454              :                     {
    3455            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
    3456              :                     }
    3457              :                   else
    3458              :                     _r1 = _o1[0];
    3459           12 :                   res_op0 = _r1;
    3460              :                 }
    3461           12 :                 tree res_op1;
    3462           12 :                 {
    3463           12 :                   tree _o1[1], _r1;
    3464           12 :                   {
    3465           12 :                     tree _o2[1], _r2;
    3466           12 :                     _o2[0] = captures[3];
    3467           12 :                     if (TREE_TYPE (_o2[0]) != itype)
    3468              :                       {
    3469            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
    3470              :                       }
    3471              :                     else
    3472              :                       _r2 = _o2[0];
    3473           12 :                     _o1[0] = _r2;
    3474              :                   }
    3475           12 :                   _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3476           12 :                   res_op1 = _r1;
    3477              :                 }
    3478           12 :                 tree _r;
    3479           12 :                 _r = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
    3480           12 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 868, __FILE__, __LINE__, true);
    3481           12 :                 return _r;
    3482              :               }
    3483            0 : next_after_fail1142:;
    3484              :           }
    3485              :         }
    3486            0 :         break;
    3487              :       }
    3488              :     default:;
    3489              :     }
    3490              :   return NULL_TREE;
    3491              : }
    3492              : 
    3493              : tree
    3494     59315439 : generic_simplify_POINTER_PLUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    3495              : {
    3496     59315439 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3497     59315439 :   if (integer_zerop (_p1))
    3498              :     {
    3499      3308739 :       {
    3500      3308739 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3501      3308739 :         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1160;
    3502      3308739 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1160;
    3503      3308739 :         {
    3504      3308739 :           tree res_op0;
    3505      3308739 :           res_op0 = captures[0];
    3506      3308739 :           tree _r;
    3507      3308739 :           _r = non_lvalue_loc (loc, res_op0);
    3508      3308739 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 869, __FILE__, __LINE__, true);
    3509      3308739 :           return _r;
    3510              :         }
    3511              : next_after_fail1160:;
    3512              :       }
    3513              :     }
    3514     56006700 :   switch (TREE_CODE (_p0))
    3515              :     {
    3516      4028327 :     case POINTER_PLUS_EXPR:
    3517      4028327 :       {
    3518      4028327 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3519      4028327 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3520      4028327 :         {
    3521      4028327 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    3522      4028327 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1161;
    3523      4028327 :           {
    3524      4028327 :             tree res_op0;
    3525      4028327 :             res_op0 = captures[1];
    3526      4028327 :             tree res_op1;
    3527      4028327 :             {
    3528      4028327 :               tree _o1[2], _r1;
    3529      4028327 :               _o1[0] = captures[2];
    3530      4028327 :               _o1[1] = captures[3];
    3531      4028327 :               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3532      4028327 :               res_op1 = _r1;
    3533              :             }
    3534      4028327 :             tree _r;
    3535      4028327 :             _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
    3536      4028327 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 880, __FILE__, __LINE__, true);
    3537      4028327 :             return _r;
    3538              :           }
    3539            0 : next_after_fail1161:;
    3540              :         }
    3541            0 :         break;
    3542              :       }
    3543     24923940 :     CASE_CONVERT:
    3544     24923940 :       {
    3545     24923940 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3546     24923940 :         switch (TREE_CODE (_q20))
    3547              :           {
    3548        27186 :           case POINTER_PLUS_EXPR:
    3549        27186 :             {
    3550        27186 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3551        27186 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3552        27186 :               {
    3553        27186 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    3554        27186 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1162;
    3555        27186 :                 {
    3556        27186 :                   tree res_op0;
    3557        27186 :                   {
    3558        27186 :                     tree _o1[1], _r1;
    3559        27186 :                     _o1[0] = captures[2];
    3560        27186 :                     if (TREE_TYPE (_o1[0]) != type)
    3561              :                       {
    3562        27080 :                         _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3563              :                       }
    3564              :                     else
    3565              :                       _r1 = _o1[0];
    3566        27186 :                     res_op0 = _r1;
    3567              :                   }
    3568        27186 :                   tree res_op1;
    3569        27186 :                   {
    3570        27186 :                     tree _o1[2], _r1;
    3571        27186 :                     _o1[0] = captures[3];
    3572        27186 :                     _o1[1] = captures[4];
    3573        27186 :                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3574        27186 :                     res_op1 = _r1;
    3575              :                   }
    3576        27186 :                   tree _r;
    3577        27186 :                   _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
    3578        27186 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 881, __FILE__, __LINE__, true);
    3579        27186 :                   return _r;
    3580              :                 }
    3581            0 : next_after_fail1162:;
    3582              :               }
    3583            0 :               break;
    3584              :             }
    3585              :           default:;
    3586              :           }
    3587              :         break;
    3588              :       }
    3589     51951187 :     default:;
    3590              :     }
    3591     51951187 : if (integer_zerop (_p0))
    3592              :   {
    3593          646 :     {
    3594          646 :       tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
    3595          646 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1163;
    3596          646 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1163;
    3597          646 :       {
    3598          646 :         tree res_op0;
    3599          646 :         {
    3600          646 :           tree _o1[1], _r1;
    3601          646 :           _o1[0] = captures[0];
    3602          646 :           if (TREE_TYPE (_o1[0]) != type)
    3603              :             {
    3604          646 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3605              :             }
    3606              :           else
    3607              :             _r1 = _o1[0];
    3608          646 :           res_op0 = _r1;
    3609              :         }
    3610          646 :         tree _r;
    3611          646 :         _r = non_lvalue_loc (loc, res_op0);
    3612          646 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
    3613          646 :         return _r;
    3614              :       }
    3615              : next_after_fail1163:;
    3616              :     }
    3617              :   }
    3618     51950541 :   switch (TREE_CODE (_p1))
    3619              :     {
    3620     11603539 :     CASE_CONVERT:
    3621     11603539 :       {
    3622     11603539 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3623     11603539 :         switch (TREE_CODE (_q30))
    3624              :           {
    3625       195205 :           case MINUS_EXPR:
    3626       195205 :             {
    3627       195205 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3628       195205 :               tree _q41 = TREE_OPERAND (_q30, 1);
    3629       195205 :               switch (TREE_CODE (_q40))
    3630              :                 {
    3631        90969 :                 CASE_CONVERT:
    3632        90969 :                   {
    3633        90969 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3634        90969 :                     switch (TREE_CODE (_q41))
    3635              :                       {
    3636         7960 :                       CASE_CONVERT:
    3637         7960 :                         {
    3638         7960 :                           tree _q70 = TREE_OPERAND (_q41, 0);
    3639         7960 :                           if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    3640              :                             {
    3641         4730 :                               {
    3642         4730 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q50 };
    3643         4730 :                                 if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2]))
    3644         4730 :  && ((
    3645              : 
    3646              :  && useless_type_conversion_p (type, TREE_TYPE (captures[3])))
    3647              :  || (
    3648              : 1
    3649         4730 :  && type == TREE_TYPE (captures[3])))
    3650              : )
    3651              :                                   {
    3652         3343 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1164;
    3653         3343 :                                     {
    3654         3343 :                                       tree _r;
    3655         3343 :                                       _r = captures[3];
    3656         3343 :                                       if (TREE_SIDE_EFFECTS (captures[0]))
    3657            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3658         3343 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 883, __FILE__, __LINE__, true);
    3659         3343 :                                       return _r;
    3660              :                                     }
    3661            0 : next_after_fail1164:;
    3662              :                                   }
    3663              :                               }
    3664              :                             }
    3665              :                           break;
    3666              :                         }
    3667              :                       default:;
    3668              :                       }
    3669              :                     break;
    3670              :                   }
    3671              :                 default:;
    3672              :                 }
    3673              :               break;
    3674              :             }
    3675          568 :           case POINTER_DIFF_EXPR:
    3676          568 :             {
    3677          568 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3678          568 :               tree _q41 = TREE_OPERAND (_q30, 1);
    3679          568 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
    3680              :                 {
    3681            7 :                   {
    3682            7 :                     tree captures[5] ATTRIBUTE_UNUSED = { _q41, _p1, _q30, _q40, _p0 };
    3683            7 :                     if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2]))
    3684              : )
    3685              :                       {
    3686            7 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1165;
    3687            7 :                         {
    3688            7 :                           tree res_op0;
    3689            7 :                           res_op0 = captures[3];
    3690            7 :                           tree _r;
    3691            7 :                           _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3692            7 :                           if (TREE_SIDE_EFFECTS (captures[4]))
    3693            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    3694            7 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 884, __FILE__, __LINE__, true);
    3695            7 :                           return _r;
    3696              :                         }
    3697            0 : next_after_fail1165:;
    3698              :                       }
    3699              :                   }
    3700              :                 }
    3701              :               break;
    3702              :             }
    3703              :           default:;
    3704              :           }
    3705              :         break;
    3706              :       }
    3707        27415 :     case MINUS_EXPR:
    3708        27415 :       {
    3709        27415 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3710        27415 :         tree _q31 = TREE_OPERAND (_p1, 1);
    3711        27415 :         switch (TREE_CODE (_q30))
    3712              :           {
    3713        23522 :           CASE_CONVERT:
    3714        23522 :             {
    3715        23522 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3716        23522 :               switch (TREE_CODE (_q31))
    3717              :                 {
    3718         7442 :                 CASE_CONVERT:
    3719         7442 :                   {
    3720         7442 :                     tree _q60 = TREE_OPERAND (_q31, 0);
    3721         7442 :                     if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    3722              :                       {
    3723           20 :                         {
    3724           20 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _p1, _q40 };
    3725           20 :                           if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2]))
    3726           20 :  && ((
    3727              : 
    3728              :  && useless_type_conversion_p (type, TREE_TYPE (captures[3])))
    3729              :  || (
    3730              : 1
    3731           20 :  && type == TREE_TYPE (captures[3])))
    3732              : )
    3733              :                             {
    3734            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1166;
    3735            0 :                               {
    3736            0 :                                 tree _r;
    3737            0 :                                 _r = captures[3];
    3738            0 :                                 if (TREE_SIDE_EFFECTS (captures[0]))
    3739            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3740            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 883, __FILE__, __LINE__, true);
    3741            0 :                                 return _r;
    3742              :                               }
    3743            0 : next_after_fail1166:;
    3744              :                             }
    3745              :                         }
    3746              :                       }
    3747              :                     break;
    3748              :                   }
    3749              :                 default:;
    3750              :                 }
    3751              :               break;
    3752              :             }
    3753          974 :           case INTEGER_CST:
    3754          974 :             {
    3755          974 :               switch (TREE_CODE (_q31))
    3756              :                 {
    3757           16 :                 case BIT_AND_EXPR:
    3758           16 :                   {
    3759           16 :                     tree _q50 = TREE_OPERAND (_q31, 0);
    3760           16 :                     tree _q51 = TREE_OPERAND (_q31, 1);
    3761           16 :                     switch (TREE_CODE (_q50))
    3762              :                       {
    3763           16 :                       CASE_CONVERT:
    3764           16 :                         {
    3765           16 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    3766           16 :                           if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    3767              :                             {
    3768            0 :                               switch (TREE_CODE (_q51))
    3769              :                                 {
    3770            0 :                                 case INTEGER_CST:
    3771            0 :                                   {
    3772            0 :                                     {
    3773            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q51 };
    3774            0 :                                       if (tree_int_cst_min_precision (captures[3], UNSIGNED) <= tree_ctz (captures[2])
    3775              : )
    3776              :                                         {
    3777            0 :                                           {
    3778            0 :  tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[3]));
    3779            0 :                                               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1167;
    3780            0 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1167;
    3781            0 :                                               {
    3782            0 :                                                 tree res_op0;
    3783            0 :                                                 {
    3784            0 :                                                   tree _o1[2], _r1;
    3785            0 :                                                   _o1[0] = captures[0];
    3786            0 :                                                   _o1[1] =  algn;
    3787            0 :                                                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3788            0 :                                                   res_op0 = _r1;
    3789              :                                                 }
    3790            0 :                                                 tree res_op1;
    3791            0 :                                                 res_op1 = captures[2];
    3792            0 :                                                 tree _r;
    3793            0 :                                                 _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
    3794            0 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 885, __FILE__, __LINE__, true);
    3795            0 :                                                 return _r;
    3796              :                                               }
    3797            0 : next_after_fail1167:;
    3798              :                                           }
    3799              :                                         }
    3800              :                                     }
    3801            0 :                                     break;
    3802              :                                   }
    3803              :                                 default:;
    3804              :                                 }
    3805              :                             }
    3806           16 :                           switch (TREE_CODE (_q60))
    3807              :                             {
    3808            0 :                             case POINTER_PLUS_EXPR:
    3809            0 :                               {
    3810            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    3811            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    3812            0 :                                 if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    3813              :                                   {
    3814            0 :                                     switch (TREE_CODE (_q71))
    3815              :                                       {
    3816            0 :                                       case INTEGER_CST:
    3817            0 :                                         {
    3818            0 :                                           switch (TREE_CODE (_q51))
    3819              :                                             {
    3820            0 :                                             case INTEGER_CST:
    3821            0 :                                               {
    3822            0 :                                                 {
    3823            0 :                                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q71, _q51 };
    3824            0 :                                                   {
    3825            0 :  auto mask_width = tree_int_cst_min_precision (captures[4], UNSIGNED);
    3826            0 :                                                       if (mask_width <= tree_ctz (captures[2]) && mask_width <= tree_ctz (captures[3])
    3827              : )
    3828              :                                                         {
    3829            0 :                                                           {
    3830            0 :  tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[4]));
    3831            0 :                                                               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1168;
    3832            0 :                                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1168;
    3833            0 :                                                               {
    3834            0 :                                                                 tree res_op0;
    3835            0 :                                                                 {
    3836            0 :                                                                   tree _o1[2], _r1;
    3837            0 :                                                                   _o1[0] = captures[0];
    3838            0 :                                                                   _o1[1] =  algn;
    3839            0 :                                                                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3840            0 :                                                                   res_op0 = _r1;
    3841              :                                                                 }
    3842            0 :                                                                 tree res_op1;
    3843            0 :                                                                 res_op1 = captures[2];
    3844            0 :                                                                 tree _r;
    3845            0 :                                                                 _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
    3846            0 :                                                                 if (TREE_SIDE_EFFECTS (captures[3]))
    3847            0 :                                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    3848            0 :                                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
    3849            0 :                                                                 return _r;
    3850              :                                                               }
    3851            0 : next_after_fail1168:;
    3852              :                                                           }
    3853              :                                                         }
    3854              :                                                   }
    3855              :                                                 }
    3856            0 :                                                 break;
    3857              :                                               }
    3858              :                                             default:;
    3859              :                                             }
    3860              :                                           break;
    3861              :                                         }
    3862              :                                       default:;
    3863              :                                       }
    3864              :                                   }
    3865              :                                 break;
    3866              :                               }
    3867              :                             default:;
    3868              :                             }
    3869              :                           break;
    3870              :                         }
    3871              :                       default:;
    3872              :                       }
    3873              :                     break;
    3874              :                   }
    3875              :                 default:;
    3876              :                 }
    3877              :               break;
    3878              :             }
    3879              :           default:;
    3880              :           }
    3881              :         break;
    3882              :       }
    3883            0 :     case POINTER_DIFF_EXPR:
    3884            0 :       {
    3885            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3886            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    3887            0 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
    3888              :           {
    3889            0 :             {
    3890            0 :               tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p1, _q30, _p0 };
    3891            0 :               if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2]))
    3892              : )
    3893              :                 {
    3894            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1169;
    3895            0 :                   {
    3896            0 :                     tree res_op0;
    3897            0 :                     res_op0 = captures[3];
    3898            0 :                     tree _r;
    3899            0 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3900            0 :                     if (TREE_SIDE_EFFECTS (captures[4]))
    3901            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    3902            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 884, __FILE__, __LINE__, true);
    3903            0 :                     return _r;
    3904              :                   }
    3905            0 : next_after_fail1169:;
    3906              :                 }
    3907              :             }
    3908              :           }
    3909              :         break;
    3910              :       }
    3911       638388 :     case NEGATE_EXPR:
    3912       638388 :       {
    3913       638388 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3914       638388 :         switch (TREE_CODE (_q30))
    3915              :           {
    3916           22 :           case BIT_AND_EXPR:
    3917           22 :             {
    3918           22 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3919           22 :               tree _q41 = TREE_OPERAND (_q30, 1);
    3920           22 :               switch (TREE_CODE (_q40))
    3921              :                 {
    3922           22 :                 CASE_CONVERT:
    3923           22 :                   {
    3924           22 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3925           22 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    3926              :                       {
    3927            1 :                         switch (TREE_CODE (_q41))
    3928              :                           {
    3929            1 :                           case INTEGER_CST:
    3930            1 :                             {
    3931            1 :                               {
    3932            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    3933            1 :                                 {
    3934            1 :  tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[1]));
    3935            1 :                                     if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1170;
    3936            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1170;
    3937            1 :                                     {
    3938            1 :                                       tree res_op0;
    3939            1 :                                       res_op0 = captures[0];
    3940            1 :                                       tree res_op1;
    3941            1 :                                       res_op1 =  algn;
    3942            1 :                                       tree _r;
    3943            1 :                                       _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    3944            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 887, __FILE__, __LINE__, true);
    3945            1 :                                       return _r;
    3946              :                                     }
    3947            0 : next_after_fail1170:;
    3948              :                                 }
    3949              :                               }
    3950            0 :                               break;
    3951              :                             }
    3952              :                           default:;
    3953              :                           }
    3954              :                       }
    3955           21 :                     switch (TREE_CODE (_q50))
    3956              :                       {
    3957            0 :                       case POINTER_PLUS_EXPR:
    3958            0 :                         {
    3959            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    3960            0 :                           tree _q61 = TREE_OPERAND (_q50, 1);
    3961            0 :                           if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    3962              :                             {
    3963            0 :                               switch (TREE_CODE (_q61))
    3964              :                                 {
    3965            0 :                                 case INTEGER_CST:
    3966            0 :                                   {
    3967            0 :                                     switch (TREE_CODE (_q41))
    3968              :                                       {
    3969            0 :                                       case INTEGER_CST:
    3970            0 :                                         {
    3971            0 :                                           {
    3972            0 :                                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q61, _q41 };
    3973            0 :                                             if (tree_int_cst_min_precision (captures[2], UNSIGNED) <= tree_ctz (captures[1])
    3974              : )
    3975              :                                               {
    3976            0 :                                                 {
    3977            0 :  tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[2]));
    3978            0 :                                                     if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1171;
    3979            0 :                                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1171;
    3980            0 :                                                     {
    3981            0 :                                                       tree res_op0;
    3982            0 :                                                       res_op0 = captures[0];
    3983            0 :                                                       tree res_op1;
    3984            0 :                                                       res_op1 =  algn;
    3985            0 :                                                       tree _r;
    3986            0 :                                                       _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    3987            0 :                                                       if (TREE_SIDE_EFFECTS (captures[1]))
    3988            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3989            0 :                                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
    3990            0 :                                                       return _r;
    3991              :                                                     }
    3992            0 : next_after_fail1171:;
    3993              :                                                 }
    3994              :                                               }
    3995              :                                           }
    3996            0 :                                           break;
    3997              :                                         }
    3998              :                                       default:;
    3999              :                                       }
    4000              :                                     break;
    4001              :                                   }
    4002              :                                 default:;
    4003              :                                 }
    4004              :                             }
    4005              :                           break;
    4006              :                         }
    4007              :                       default:;
    4008              :                       }
    4009              :                     break;
    4010              :                   }
    4011              :                 default:;
    4012              :                 }
    4013              :               break;
    4014              :             }
    4015              :           default:;
    4016              :           }
    4017              :         break;
    4018              :       }
    4019              :     default:;
    4020              :     }
    4021              :   return NULL_TREE;
    4022              : }
    4023              : 
    4024              : tree
    4025     40880027 : generic_simplify_NE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    4026              : {
    4027     40880027 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    4028     40880027 :   switch (TREE_CODE (_p1))
    4029              :     {
    4030         2251 :     case NEGATE_EXPR:
    4031         2251 :       {
    4032         2251 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4033         2251 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    4034              :           {
    4035            0 :             {
    4036            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4037            0 :               tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, NE_EXPR);
    4038            0 :               if (res) return res;
    4039              :             }
    4040              :           }
    4041              :         break;
    4042              :       }
    4043     40880027 :     default:;
    4044              :     }
    4045     40880027 :   switch (TREE_CODE (_p0))
    4046              :     {
    4047         6195 :     case NEGATE_EXPR:
    4048         6195 :       {
    4049         6195 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4050         6195 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4051              :           {
    4052           88 :             {
    4053           88 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4054           88 :               tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, NE_EXPR);
    4055           88 :               if (res) return res;
    4056              :             }
    4057              :           }
    4058              :         break;
    4059              :       }
    4060            0 :     case CEIL_MOD_EXPR:
    4061            0 :       {
    4062            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4063            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4064            0 :         if (integer_pow2p (_q21))
    4065              :           {
    4066            0 :             if (integer_zerop (_p1))
    4067              :               {
    4068            0 :                 {
    4069            0 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4070            0 :                   tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, NE_EXPR, CEIL_MOD_EXPR);
    4071            0 :                   if (res) return res;
    4072              :                 }
    4073              :               }
    4074              :           }
    4075              :         break;
    4076              :       }
    4077         1623 :     case FLOOR_MOD_EXPR:
    4078         1623 :       {
    4079         1623 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4080         1623 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4081         1623 :         if (integer_pow2p (_q21))
    4082              :           {
    4083           20 :             if (integer_zerop (_p1))
    4084              :               {
    4085           20 :                 {
    4086           20 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4087           20 :                   tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, NE_EXPR, FLOOR_MOD_EXPR);
    4088           20 :                   if (res) return res;
    4089              :                 }
    4090              :               }
    4091              :           }
    4092              :         break;
    4093              :       }
    4094            0 :     case ROUND_MOD_EXPR:
    4095            0 :       {
    4096            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4097            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4098            0 :         if (integer_pow2p (_q21))
    4099              :           {
    4100            0 :             if (integer_zerop (_p1))
    4101              :               {
    4102            0 :                 {
    4103            0 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4104            0 :                   tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, NE_EXPR, ROUND_MOD_EXPR);
    4105            0 :                   if (res) return res;
    4106              :                 }
    4107              :               }
    4108              :           }
    4109              :         break;
    4110              :       }
    4111        80585 :     case TRUNC_MOD_EXPR:
    4112        80585 :       {
    4113        80585 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4114        80585 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4115        80585 :         if (integer_pow2p (_q21))
    4116              :           {
    4117        20774 :             if (integer_zerop (_p1))
    4118              :               {
    4119        19332 :                 {
    4120        19332 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4121        19332 :                   tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, NE_EXPR, TRUNC_MOD_EXPR);
    4122        19332 :                   if (res) return res;
    4123              :                 }
    4124              :               }
    4125              :           }
    4126              :         break;
    4127              :       }
    4128      8297511 :     CASE_CONVERT:
    4129      8297511 :       {
    4130      8297511 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4131      8297511 :         switch (TREE_CODE (_p1))
    4132              :           {
    4133           69 :           case LSHIFT_EXPR:
    4134           69 :             {
    4135           69 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4136           69 :               tree _q41 = TREE_OPERAND (_p1, 1);
    4137           69 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    4138              :                 {
    4139            0 :                   {
    4140            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    4141            0 :                     tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4142            0 :                     if (res) return res;
    4143              :                   }
    4144              :                 }
    4145              :               break;
    4146              :             }
    4147      8297511 :           default:;
    4148              :           }
    4149      8297511 :       {
    4150      8297511 :         tree _p1_pops[1];
    4151      8297511 :         if (tree_nop_convert (_p1, _p1_pops))
    4152              :           {
    4153      3063005 :             tree _q40 = _p1_pops[0];
    4154      3063005 :             switch (TREE_CODE (_q40))
    4155              :               {
    4156            0 :               case LSHIFT_EXPR:
    4157            0 :                 {
    4158            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    4159            0 :                   tree _q51 = TREE_OPERAND (_q40, 1);
    4160            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4161              :                     {
    4162            0 :                       {
    4163            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
    4164            0 :                         tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4165            0 :                         if (res) return res;
    4166              :                       }
    4167              :                     }
    4168              :                   break;
    4169              :                 }
    4170              :               default:;
    4171              :               }
    4172              :           }
    4173              :       }
    4174      8297511 :         switch (TREE_CODE (_q20))
    4175              :           {
    4176            0 :           case EXACT_DIV_EXPR:
    4177            0 :             {
    4178            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4179            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4180            0 :               switch (TREE_CODE (_q31))
    4181              :                 {
    4182            0 :                 case INTEGER_CST:
    4183            0 :                   {
    4184            0 :                     switch (TREE_CODE (_p1))
    4185              :                       {
    4186            0 :                       CASE_CONVERT:
    4187            0 :                         {
    4188            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    4189            0 :                           switch (TREE_CODE (_q60))
    4190              :                             {
    4191            0 :                             case EXACT_DIV_EXPR:
    4192            0 :                               {
    4193            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    4194            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    4195            0 :                                 if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    4196              :                                   {
    4197            0 :                                     {
    4198            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
    4199            0 :                                       tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, NE_EXPR);
    4200            0 :                                       if (res) return res;
    4201              :                                     }
    4202              :                                   }
    4203              :                                 break;
    4204              :                               }
    4205              :                             default:;
    4206              :                             }
    4207              :                           break;
    4208              :                         }
    4209              :                       default:;
    4210              :                       }
    4211              :                     break;
    4212              :                   }
    4213              :                 default:;
    4214              :                 }
    4215              :               break;
    4216              :             }
    4217      8297511 :           default:;
    4218              :           }
    4219      8297511 :         switch (TREE_CODE (_p1))
    4220              :           {
    4221        20430 :           case PLUS_EXPR:
    4222        20430 :             {
    4223        20430 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4224        20430 :               tree _q41 = TREE_OPERAND (_p1, 1);
    4225        20430 :               switch (TREE_CODE (_q41))
    4226              :                 {
    4227          203 :                 CASE_CONVERT:
    4228          203 :                   {
    4229          203 :                     tree _q60 = TREE_OPERAND (_q41, 0);
    4230          203 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4231              :                       {
    4232            0 :                         {
    4233            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
    4234            0 :                           tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4235            0 :                           if (res) return res;
    4236              :                         }
    4237              :                       }
    4238              :                     break;
    4239              :                   }
    4240        20430 :                 default:;
    4241              :                 }
    4242        20430 :               switch (TREE_CODE (_q40))
    4243              :                 {
    4244          796 :                 CASE_CONVERT:
    4245          796 :                   {
    4246          796 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    4247          796 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4248              :                       {
    4249           13 :                         {
    4250           13 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
    4251           13 :                           tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4252           13 :                           if (res) return res;
    4253              :                         }
    4254              :                       }
    4255              :                     break;
    4256              :                   }
    4257        20425 :                 default:;
    4258              :                 }
    4259        20425 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    4260              :                 {
    4261            0 :                   {
    4262            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
    4263            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4264            0 :                     if (res) return res;
    4265              :                   }
    4266              :                 }
    4267        20425 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    4268              :                 {
    4269            0 :                   {
    4270            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
    4271            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4272            0 :                     if (res) return res;
    4273              :                   }
    4274              :                 }
    4275              :               break;
    4276              :             }
    4277      8297506 :           default:;
    4278              :           }
    4279      8297506 :       {
    4280      8297506 :         tree _p1_pops[1];
    4281      8297506 :         if (tree_nop_convert (_p1, _p1_pops))
    4282              :           {
    4283      3063005 :             tree _q40 = _p1_pops[0];
    4284      3063005 :             switch (TREE_CODE (_q40))
    4285              :               {
    4286          140 :               case PLUS_EXPR:
    4287          140 :                 {
    4288          140 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    4289          140 :                   tree _q51 = TREE_OPERAND (_q40, 1);
    4290          140 :                   switch (TREE_CODE (_q51))
    4291              :                     {
    4292            0 :                     CASE_CONVERT:
    4293            0 :                       {
    4294            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    4295            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    4296              :                           {
    4297            0 :                             {
    4298            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
    4299            0 :                               tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4300            0 :                               if (res) return res;
    4301              :                             }
    4302              :                           }
    4303              :                         break;
    4304              :                       }
    4305          140 :                     default:;
    4306              :                     }
    4307          140 :                   switch (TREE_CODE (_q50))
    4308              :                     {
    4309           73 :                     CASE_CONVERT:
    4310           73 :                       {
    4311           73 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    4312           73 :                         if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4313              :                           {
    4314            0 :                             {
    4315            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
    4316            0 :                               tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4317            0 :                               if (res) return res;
    4318              :                             }
    4319              :                           }
    4320              :                         break;
    4321              :                       }
    4322          140 :                     default:;
    4323              :                     }
    4324          140 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4325              :                     {
    4326            0 :                       {
    4327            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
    4328            0 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4329            0 :                         if (res) return res;
    4330              :                       }
    4331              :                     }
    4332          140 :                   if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4333              :                     {
    4334            0 :                       {
    4335            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
    4336            0 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4337            0 :                         if (res) return res;
    4338              :                       }
    4339              :                     }
    4340              :                   break;
    4341              :                 }
    4342              :               default:;
    4343              :               }
    4344              :           }
    4345              :       }
    4346      8297506 :         break;
    4347              :       }
    4348     40860670 :     default:;
    4349              :     }
    4350     40860670 : {
    4351     40860670 :   tree _p0_pops[1];
    4352     40860670 :   if (tree_nop_convert (_p0, _p0_pops))
    4353              :     {
    4354      4882508 :       tree _q20 = _p0_pops[0];
    4355      4882508 :       switch (TREE_CODE (_q20))
    4356              :         {
    4357           15 :         case LSHIFT_EXPR:
    4358           15 :           {
    4359           15 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4360           15 :             tree _q31 = TREE_OPERAND (_q20, 1);
    4361           15 :             switch (TREE_CODE (_p1))
    4362              :               {
    4363            1 :               CASE_CONVERT:
    4364            1 :                 {
    4365            1 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    4366            1 :                   if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    4367              :                     {
    4368            0 :                       {
    4369            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    4370            0 :                         tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4371            0 :                         if (res) return res;
    4372              :                       }
    4373              :                     }
    4374              :                   break;
    4375              :                 }
    4376           15 :               default:;
    4377              :               }
    4378           15 :             if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    4379              :               {
    4380            1 :                 {
    4381            1 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    4382            1 :                   tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4383            1 :                   if (res) return res;
    4384              :                 }
    4385              :               }
    4386              :             break;
    4387              :           }
    4388        33360 :         case PLUS_EXPR:
    4389        33360 :           {
    4390        33360 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4391        33360 :             tree _q31 = TREE_OPERAND (_q20, 1);
    4392        33360 :             switch (TREE_CODE (_q31))
    4393              :               {
    4394           37 :               CASE_CONVERT:
    4395           37 :                 {
    4396           37 :                   tree _q50 = TREE_OPERAND (_q31, 0);
    4397           37 :                   switch (TREE_CODE (_p1))
    4398              :                     {
    4399            0 :                     CASE_CONVERT:
    4400            0 :                       {
    4401            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    4402            0 :                         if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
    4403              :                           {
    4404            0 :                             {
    4405            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
    4406            0 :                               tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4407            0 :                               if (res) return res;
    4408              :                             }
    4409              :                           }
    4410              :                         break;
    4411              :                       }
    4412              :                     default:;
    4413              :                     }
    4414              :                   break;
    4415              :                 }
    4416        33360 :               default:;
    4417              :               }
    4418        33360 :             switch (TREE_CODE (_q30))
    4419              :               {
    4420        28649 :               CASE_CONVERT:
    4421        28649 :                 {
    4422        28649 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    4423        28649 :                   switch (TREE_CODE (_p1))
    4424              :                     {
    4425          415 :                     CASE_CONVERT:
    4426          415 :                       {
    4427          415 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    4428          415 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    4429              :                           {
    4430           90 :                             {
    4431           90 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
    4432           90 :                               tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4433           90 :                               if (res) return res;
    4434              :                             }
    4435              :                           }
    4436              :                         break;
    4437              :                       }
    4438        28559 :                     default:;
    4439              :                     }
    4440        28559 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    4441              :                     {
    4442           11 :                       {
    4443           11 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
    4444           11 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4445           11 :                         if (res) return res;
    4446              :                       }
    4447              :                     }
    4448              :                   break;
    4449              :                 }
    4450        33259 :               default:;
    4451              :               }
    4452        33259 :             switch (TREE_CODE (_q31))
    4453              :               {
    4454           37 :               CASE_CONVERT:
    4455           37 :                 {
    4456           37 :                   tree _q50 = TREE_OPERAND (_q31, 0);
    4457           37 :                   if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    4458              :                     {
    4459            0 :                       {
    4460            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
    4461            0 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4462            0 :                         if (res) return res;
    4463              :                       }
    4464              :                     }
    4465              :                   break;
    4466              :                 }
    4467        33259 :               default:;
    4468              :               }
    4469        33259 :             switch (TREE_CODE (_p1))
    4470              :               {
    4471          400 :               CASE_CONVERT:
    4472          400 :                 {
    4473          400 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    4474          400 :                   if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    4475              :                     {
    4476            0 :                       {
    4477            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    4478            0 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4479            0 :                         if (res) return res;
    4480              :                       }
    4481              :                     }
    4482          400 :                   if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    4483              :                     {
    4484           68 :                       {
    4485           68 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
    4486           68 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4487           68 :                         if (res) return res;
    4488              :                       }
    4489              :                     }
    4490              :                   break;
    4491              :                 }
    4492        33191 :               default:;
    4493              :               }
    4494        33191 :             if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    4495              :               {
    4496            0 :                 {
    4497            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    4498            0 :                   tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4499            0 :                   if (res) return res;
    4500              :                 }
    4501              :               }
    4502        33191 :             if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4503              :               {
    4504            0 :                 {
    4505            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
    4506            0 :                   tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4507            0 :                   if (res) return res;
    4508              :                 }
    4509              :               }
    4510              :             break;
    4511              :           }
    4512              :         default:;
    4513              :         }
    4514              :     }
    4515              : }
    4516     40860500 :   {
    4517     40860500 :     tree _p1_pops[1];
    4518     40860500 :     if (tree_nop_convert (_p1, _p1_pops))
    4519              :       {
    4520      3435659 :         tree _q30 = _p1_pops[0];
    4521      3435659 :         switch (TREE_CODE (_q30))
    4522              :           {
    4523            0 :           case LSHIFT_EXPR:
    4524            0 :             {
    4525            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4526            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4527            0 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    4528              :                 {
    4529            0 :                   {
    4530            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
    4531            0 :                     tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4532            0 :                     if (res) return res;
    4533              :                   }
    4534              :                 }
    4535              :               break;
    4536              :             }
    4537              :           default:;
    4538              :           }
    4539              :       }
    4540              :   }
    4541     40860500 :   switch (TREE_CODE (_p0))
    4542              :     {
    4543         5212 :     case LSHIFT_EXPR:
    4544         5212 :       {
    4545         5212 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4546         5212 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4547         5212 :         switch (TREE_CODE (_p1))
    4548              :           {
    4549           35 :           CASE_CONVERT:
    4550           35 :             {
    4551           35 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4552           35 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4553              :                 {
    4554            4 :                   {
    4555            4 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4556            4 :                     tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4557            4 :                     if (res) return res;
    4558              :                   }
    4559              :                 }
    4560              :               break;
    4561              :             }
    4562         5211 :           default:;
    4563              :           }
    4564         5211 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4565              :           {
    4566           27 :             {
    4567           27 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4568           27 :               tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4569           27 :               if (res) return res;
    4570              :             }
    4571              :           }
    4572         5207 :         if (tree_zero_one_valued_p (_q20))
    4573              :           {
    4574          484 :             switch (TREE_CODE (_q21))
    4575              :               {
    4576          120 :               case INTEGER_CST:
    4577          120 :                 {
    4578          120 :                   if (integer_zerop (_p1))
    4579              :                     {
    4580            5 :                       {
    4581            5 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4582            5 :                         if (tree_fits_shwi_p (captures[1])
    4583            5 :  && tree_to_shwi (captures[1]) > 0
    4584           10 :  && tree_to_shwi (captures[1]) < TYPE_PRECISION (TREE_TYPE (captures[0]))
    4585              : )
    4586              :                           {
    4587            5 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1501;
    4588            5 :                             {
    4589            5 :                               tree res_op0;
    4590            5 :                               res_op0 = captures[0];
    4591            5 :                               tree _r;
    4592            5 :                               _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4593            5 :                               if (TREE_SIDE_EFFECTS (captures[1]))
    4594            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4595            5 :                               if (TREE_SIDE_EFFECTS (captures[2]))
    4596            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    4597            5 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 970, __FILE__, __LINE__, true);
    4598            5 :                               return _r;
    4599              :                             }
    4600            0 : next_after_fail1501:;
    4601              :                           }
    4602              :                       }
    4603              :                     }
    4604              :                   break;
    4605              :                 }
    4606              :               default:;
    4607              :               }
    4608              :           }
    4609              :         break;
    4610              :       }
    4611     40860490 :     default:;
    4612              :     }
    4613     40860490 :   switch (TREE_CODE (_p1))
    4614              :     {
    4615          268 :     case LSHIFT_EXPR:
    4616          268 :       {
    4617          268 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4618          268 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4619          268 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4620              :           {
    4621            0 :             {
    4622            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    4623            0 :               tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4624            0 :               if (res) return res;
    4625              :             }
    4626              :           }
    4627              :         break;
    4628              :       }
    4629     40860490 :     default:;
    4630              :     }
    4631     40860490 :   switch (TREE_CODE (_p0))
    4632              :     {
    4633          155 :     case VIEW_CONVERT_EXPR:
    4634          155 :       {
    4635          155 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4636          155 :         if (tree_zero_one_valued_p (_q20))
    4637              :           {
    4638            0 :             if (integer_zerop (_p1))
    4639              :               {
    4640            0 :                 {
    4641            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    4642            0 :                   tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, NE_EXPR);
    4643            0 :                   if (res) return res;
    4644              :                 }
    4645              :               }
    4646              :           }
    4647              :         break;
    4648              :       }
    4649        95088 :     case MULT_EXPR:
    4650        95088 :       {
    4651        95088 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4652        95088 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4653        95088 :         switch (TREE_CODE (_p1))
    4654              :           {
    4655         2890 :           case MULT_EXPR:
    4656         2890 :             {
    4657         2890 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4658         2890 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4659         2890 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4660              :                 {
    4661         1635 :                   {
    4662         1635 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4663         1635 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, NE_EXPR);
    4664         1635 :                     if (res) return res;
    4665              :                   }
    4666              :                 }
    4667         2886 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4668              :                 {
    4669           53 :                   {
    4670           53 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    4671           53 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, NE_EXPR);
    4672           53 :                     if (res) return res;
    4673              :                   }
    4674              :                 }
    4675         2886 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4676              :                 {
    4677           22 :                   {
    4678           22 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    4679           22 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, NE_EXPR);
    4680           22 :                     if (res) return res;
    4681              :                   }
    4682              :                 }
    4683         2886 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4684              :                 {
    4685          257 :                   {
    4686          257 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    4687          257 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, NE_EXPR);
    4688          257 :                     if (res) return res;
    4689              :                   }
    4690              :                 }
    4691              :               break;
    4692              :             }
    4693        95084 :           default:;
    4694              :           }
    4695        95084 :         switch (TREE_CODE (_q21))
    4696              :           {
    4697        77554 :           case INTEGER_CST:
    4698        77554 :             {
    4699        77554 :               switch (TREE_CODE (_p1))
    4700              :                 {
    4701         2031 :                 case MULT_EXPR:
    4702         2031 :                   {
    4703         2031 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4704         2031 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    4705         2031 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4706              :                       {
    4707         1106 :                         {
    4708         1106 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4709         1106 :                           tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, NE_EXPR);
    4710         1106 :                           if (res) return res;
    4711              :                         }
    4712              :                       }
    4713              :                     break;
    4714              :                   }
    4715              :                 default:;
    4716              :                 }
    4717              :               break;
    4718              :             }
    4719              :           default:;
    4720              :           }
    4721              :         break;
    4722              :       }
    4723         2057 :     case EXACT_DIV_EXPR:
    4724         2057 :       {
    4725         2057 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4726         2057 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4727         2057 :         switch (TREE_CODE (_q21))
    4728              :           {
    4729         2057 :           case INTEGER_CST:
    4730         2057 :             {
    4731         2057 :               switch (TREE_CODE (_p1))
    4732              :                 {
    4733           22 :                 case EXACT_DIV_EXPR:
    4734           22 :                   {
    4735           22 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4736           22 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    4737           22 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4738              :                       {
    4739           12 :                         {
    4740           12 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    4741           12 :                           tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, NE_EXPR);
    4742           12 :                           if (res) return res;
    4743              :                         }
    4744              :                       }
    4745              :                     break;
    4746              :                   }
    4747              :                 default:;
    4748              :                 }
    4749              :               break;
    4750              :             }
    4751              :           default:;
    4752              :           }
    4753              :         break;
    4754              :       }
    4755        11310 :     case TRUNC_DIV_EXPR:
    4756        11310 :       {
    4757        11310 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4758        11310 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4759        11310 :         switch (TREE_CODE (_q21))
    4760              :           {
    4761         8559 :           case INTEGER_CST:
    4762         8559 :             {
    4763         8559 :               switch (TREE_CODE (_p1))
    4764              :                 {
    4765         2431 :                 case INTEGER_CST:
    4766         2431 :                   {
    4767         2431 :                     {
    4768         2431 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    4769         2431 :                       tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, NE_EXPR);
    4770         2431 :                       if (res) return res;
    4771              :                     }
    4772          326 :                     break;
    4773              :                   }
    4774              :                 default:;
    4775              :                 }
    4776              :               break;
    4777              :             }
    4778              :           default:;
    4779              :           }
    4780              :         break;
    4781              :       }
    4782        21001 :     case RSHIFT_EXPR:
    4783        21001 :       {
    4784        21001 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4785        21001 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4786        21001 :         switch (TREE_CODE (_q21))
    4787              :           {
    4788        18658 :           case INTEGER_CST:
    4789        18658 :             {
    4790        18658 :               if (integer_zerop (_p1))
    4791              :                 {
    4792         7721 :                   {
    4793         7721 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    4794         7721 :                     tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
    4795         7721 :                     if (res) return res;
    4796              :                   }
    4797              :                 }
    4798              :               break;
    4799              :             }
    4800              :           default:;
    4801              :           }
    4802              :         break;
    4803              :       }
    4804      1565423 :     case PLUS_EXPR:
    4805      1565423 :       {
    4806      1565423 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4807      1565423 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4808      1565423 :         switch (TREE_CODE (_p1))
    4809              :           {
    4810       189505 :           case PLUS_EXPR:
    4811       189505 :             {
    4812       189505 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4813       189505 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4814       189505 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4815              :                 {
    4816          869 :                   {
    4817          869 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4818         1738 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4819         1709 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    4820          757 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    4821              : )
    4822              :                       {
    4823          840 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1502;
    4824          840 :                         {
    4825          840 :                           tree res_op0;
    4826          840 :                           res_op0 = captures[0];
    4827          840 :                           tree res_op1;
    4828          840 :                           res_op1 = captures[2];
    4829          840 :                           tree _r;
    4830          840 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    4831          840 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    4832            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4833          840 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    4834          840 :                           return _r;
    4835              :                         }
    4836            0 : next_after_fail1502:;
    4837              :                       }
    4838              :                   }
    4839              :                 }
    4840       188665 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4841              :                 {
    4842            0 :                   {
    4843            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    4844            0 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4845            0 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    4846            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    4847              : )
    4848              :                       {
    4849            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1503;
    4850            0 :                         {
    4851            0 :                           tree res_op0;
    4852            0 :                           res_op0 = captures[0];
    4853            0 :                           tree res_op1;
    4854            0 :                           res_op1 = captures[2];
    4855            0 :                           tree _r;
    4856            0 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    4857            0 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    4858            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4859            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    4860            0 :                           return _r;
    4861              :                         }
    4862            0 : next_after_fail1503:;
    4863              :                       }
    4864              :                   }
    4865              :                 }
    4866       188665 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4867              :                 {
    4868          132 :                   {
    4869          132 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    4870          264 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4871          264 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    4872          132 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    4873              : )
    4874              :                       {
    4875          132 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1504;
    4876          132 :                         {
    4877          132 :                           tree res_op0;
    4878          132 :                           res_op0 = captures[0];
    4879          132 :                           tree res_op1;
    4880          132 :                           res_op1 = captures[2];
    4881          132 :                           tree _r;
    4882          132 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    4883          132 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    4884            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4885          132 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    4886          132 :                           return _r;
    4887              :                         }
    4888            0 : next_after_fail1504:;
    4889              :                       }
    4890              :                   }
    4891              :                 }
    4892       188533 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4893              :                 {
    4894       106899 :                   {
    4895       106899 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    4896       213798 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4897       213777 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    4898       106878 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    4899              : )
    4900              :                       {
    4901       106878 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1505;
    4902       106878 :                         {
    4903       106878 :                           tree res_op0;
    4904       106878 :                           res_op0 = captures[0];
    4905       106878 :                           tree res_op1;
    4906       106878 :                           res_op1 = captures[2];
    4907       106878 :                           tree _r;
    4908       106878 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    4909       106878 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    4910            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4911       106878 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    4912       106878 :                           return _r;
    4913              :                         }
    4914            0 : next_after_fail1505:;
    4915              :                       }
    4916              :                   }
    4917              :                 }
    4918              :               break;
    4919              :             }
    4920      1457573 :           default:;
    4921              :           }
    4922      1457573 :         switch (TREE_CODE (_q21))
    4923              :           {
    4924          747 :           CASE_CONVERT:
    4925          747 :             {
    4926          747 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4927          747 :               switch (TREE_CODE (_p1))
    4928              :                 {
    4929           88 :                 CASE_CONVERT:
    4930           88 :                   {
    4931           88 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    4932           88 :                     if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
    4933              :                       {
    4934            0 :                         {
    4935            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
    4936            0 :                           tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4937            0 :                           if (res) return res;
    4938              :                         }
    4939              :                       }
    4940              :                     break;
    4941              :                   }
    4942              :                 default:;
    4943              :                 }
    4944              :               break;
    4945              :             }
    4946      1457573 :           default:;
    4947              :           }
    4948      1457573 :         switch (TREE_CODE (_q20))
    4949              :           {
    4950       147702 :           CASE_CONVERT:
    4951       147702 :             {
    4952       147702 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4953       147702 :               switch (TREE_CODE (_p1))
    4954              :                 {
    4955         3706 :                 CASE_CONVERT:
    4956         3706 :                   {
    4957         3706 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    4958         3706 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    4959              :                       {
    4960          400 :                         {
    4961          400 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
    4962          400 :                           tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4963          400 :                           if (res) return res;
    4964              :                         }
    4965              :                       }
    4966              :                     break;
    4967              :                   }
    4968       147302 :                 default:;
    4969              :                 }
    4970       147302 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4971              :                 {
    4972            0 :                   {
    4973            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
    4974            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4975            0 :                     if (res) return res;
    4976              :                   }
    4977              :                 }
    4978              :               break;
    4979              :             }
    4980      1457173 :           default:;
    4981              :           }
    4982      1457173 :         switch (TREE_CODE (_q21))
    4983              :           {
    4984          747 :           CASE_CONVERT:
    4985          747 :             {
    4986          747 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4987          747 :               if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    4988              :                 {
    4989            0 :                   {
    4990            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
    4991            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4992            0 :                     if (res) return res;
    4993              :                   }
    4994              :                 }
    4995              :               break;
    4996              :             }
    4997      1457173 :           default:;
    4998              :           }
    4999      1457173 :         switch (TREE_CODE (_p1))
    5000              :           {
    5001        43449 :           CASE_CONVERT:
    5002        43449 :             {
    5003        43449 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5004        43449 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5005              :                 {
    5006            0 :                   {
    5007            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5008            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5009            0 :                     if (res) return res;
    5010              :                   }
    5011              :                 }
    5012        43449 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5013              :                 {
    5014            0 :                   {
    5015            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
    5016            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5017            0 :                     if (res) return res;
    5018              :                   }
    5019              :                 }
    5020              :               break;
    5021              :             }
    5022      1457173 :           default:;
    5023              :           }
    5024      1457173 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5025              :           {
    5026       108336 :             {
    5027       108336 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5028       108336 :               tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5029       108336 :               if (res) return res;
    5030              :             }
    5031              :           }
    5032      1349541 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5033              :           {
    5034        19209 :             {
    5035        19209 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
    5036        19209 :               tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5037        19209 :               if (res) return res;
    5038              :             }
    5039              :           }
    5040              :         break;
    5041              :       }
    5042       543636 :     case POINTER_PLUS_EXPR:
    5043       543636 :       {
    5044       543636 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5045       543636 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5046       543636 :         switch (TREE_CODE (_p1))
    5047              :           {
    5048        34748 :           case POINTER_PLUS_EXPR:
    5049        34748 :             {
    5050        34748 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5051        34748 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5052        34748 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5053              :                 {
    5054         8502 :                   {
    5055         8502 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5056         8502 :                     tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, NE_EXPR);
    5057         8502 :                     if (res) return res;
    5058              :                   }
    5059              :                 }
    5060              :               break;
    5061              :             }
    5062       535134 :           default:;
    5063              :           }
    5064       535134 :         switch (TREE_CODE (_q20))
    5065              :           {
    5066        77621 :           CASE_CONVERT:
    5067        77621 :             {
    5068        77621 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5069        77621 :               switch (TREE_CODE (_p1))
    5070              :                 {
    5071           95 :                 CASE_CONVERT:
    5072           95 :                   {
    5073           95 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    5074           95 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    5075              :                       {
    5076            0 :                         {
    5077            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
    5078            0 :                           tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5079            0 :                           if (res) return res;
    5080              :                         }
    5081              :                       }
    5082              :                     break;
    5083              :                   }
    5084        77621 :                 default:;
    5085              :                 }
    5086        77621 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    5087              :                 {
    5088           74 :                   {
    5089           74 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
    5090           74 :                     tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5091           74 :                     if (res) return res;
    5092              :                   }
    5093              :                 }
    5094              :               break;
    5095              :             }
    5096       535060 :           default:;
    5097              :           }
    5098       535060 :         switch (TREE_CODE (_p1))
    5099              :           {
    5100         3566 :           CASE_CONVERT:
    5101         3566 :             {
    5102         3566 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5103         3566 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5104              :                 {
    5105            0 :                   {
    5106            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5107            0 :                     tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5108            0 :                     if (res) return res;
    5109              :                   }
    5110              :                 }
    5111              :               break;
    5112              :             }
    5113       535060 :           default:;
    5114              :           }
    5115       535060 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5116              :           {
    5117        10770 :             {
    5118        10770 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5119        10770 :               tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5120        10770 :               if (res) return res;
    5121              :             }
    5122              :           }
    5123              :         break;
    5124              :       }
    5125       106028 :     case MINUS_EXPR:
    5126       106028 :       {
    5127       106028 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5128       106028 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5129       106028 :         switch (TREE_CODE (_p1))
    5130              :           {
    5131         5881 :           case MINUS_EXPR:
    5132         5881 :             {
    5133         5881 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5134         5881 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5135         5881 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5136              :                 {
    5137          173 :                   {
    5138          173 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5139          346 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5140          176 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5141            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5142              : )
    5143              :                       {
    5144            3 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1506;
    5145            3 :                         {
    5146            3 :                           tree res_op0;
    5147            3 :                           res_op0 = captures[0];
    5148            3 :                           tree res_op1;
    5149            3 :                           res_op1 = captures[2];
    5150            3 :                           tree _r;
    5151            3 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    5152            3 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5153            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5154            3 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
    5155            3 :                           return _r;
    5156              :                         }
    5157            0 : next_after_fail1506:;
    5158              :                       }
    5159              :                   }
    5160              :                 }
    5161         5878 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5162              :                 {
    5163          169 :                   {
    5164          169 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5165          338 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    5166          169 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    5167            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
    5168              : )
    5169              :                       {
    5170            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1507;
    5171            0 :                         {
    5172            0 :                           tree res_op0;
    5173            0 :                           res_op0 = captures[2];
    5174            0 :                           tree res_op1;
    5175            0 :                           res_op1 = captures[1];
    5176            0 :                           tree _r;
    5177            0 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    5178            0 :                           if (TREE_SIDE_EFFECTS (captures[0]))
    5179            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5180            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 905, __FILE__, __LINE__, true);
    5181            0 :                           return _r;
    5182              :                         }
    5183            0 : next_after_fail1507:;
    5184              :                       }
    5185              :                   }
    5186              :                 }
    5187              :               break;
    5188              :             }
    5189       106025 :           default:;
    5190              :           }
    5191       106025 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5192              :           {
    5193         1748 :             {
    5194         1748 :               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    5195         1748 :               tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, NE_EXPR);
    5196         1748 :               if (res) return res;
    5197              :             }
    5198              :           }
    5199              :         break;
    5200              :       }
    5201        26760 :     case POINTER_DIFF_EXPR:
    5202        26760 :       {
    5203        26760 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5204        26760 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5205        26760 :         switch (TREE_CODE (_p1))
    5206              :           {
    5207         2269 :           case POINTER_DIFF_EXPR:
    5208         2269 :             {
    5209         2269 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5210         2269 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5211         2269 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5212              :                 {
    5213            0 :                   {
    5214            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    5215            0 :                     tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, NE_EXPR);
    5216            0 :                     if (res) return res;
    5217              :                   }
    5218              :                 }
    5219         2269 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5220              :                 {
    5221            0 :                   {
    5222            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    5223            0 :                     tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, NE_EXPR);
    5224            0 :                     if (res) return res;
    5225              :                   }
    5226              :                 }
    5227              :               break;
    5228              :             }
    5229              :           default:;
    5230              :           }
    5231              :         break;
    5232              :       }
    5233     40602053 :     default:;
    5234              :     }
    5235     40602053 : {
    5236     40602053 :   tree _p0_pops[1];
    5237     40602053 :   if (tree_logical_inverted_value (_p0, _p0_pops))
    5238              :     {
    5239       728540 :       tree _q20 = _p0_pops[0];
    5240       728540 :       if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5241              :         {
    5242           24 :           if (tree_truth_valued_p (_p1))
    5243              :             {
    5244            0 :               {
    5245            0 :                 tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    5246            0 :                 tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, NE_EXPR);
    5247            0 :                 if (res) return res;
    5248              :               }
    5249              :             }
    5250              :         }
    5251              :     }
    5252              : }
    5253     40602053 : if (tree_truth_valued_p (_p0))
    5254              :   {
    5255      6394731 :     {
    5256      6394731 :       tree _p1_pops[1];
    5257      6394731 :       if (tree_logical_inverted_value (_p1, _p1_pops))
    5258              :         {
    5259         1139 :           tree _q30 = _p1_pops[0];
    5260         1139 :           if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5261              :             {
    5262            0 :               {
    5263            0 :                 tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5264            0 :                 tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, NE_EXPR);
    5265            0 :                 if (res) return res;
    5266              :               }
    5267              :             }
    5268              :         }
    5269              :     }
    5270              :   }
    5271     40602053 :   switch (TREE_CODE (_p1))
    5272              :     {
    5273       122930 :     case PLUS_EXPR:
    5274       122930 :       {
    5275       122930 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5276       122930 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5277       122930 :         switch (TREE_CODE (_q31))
    5278              :           {
    5279          342 :           CASE_CONVERT:
    5280          342 :             {
    5281          342 :               tree _q50 = TREE_OPERAND (_q31, 0);
    5282          342 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5283              :                 {
    5284            0 :                   {
    5285            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
    5286            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5287            0 :                     if (res) return res;
    5288              :                   }
    5289              :                 }
    5290              :               break;
    5291              :             }
    5292       122930 :           default:;
    5293              :           }
    5294       122930 :         switch (TREE_CODE (_q30))
    5295              :           {
    5296         6038 :           CASE_CONVERT:
    5297         6038 :             {
    5298         6038 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5299         6038 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    5300              :                 {
    5301            0 :                   {
    5302            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
    5303            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5304            0 :                     if (res) return res;
    5305              :                   }
    5306              :                 }
    5307              :               break;
    5308              :             }
    5309       122930 :           default:;
    5310              :           }
    5311       122930 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5312              :           {
    5313            0 :             {
    5314            0 :               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
    5315            0 :               tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5316            0 :               if (res) return res;
    5317              :             }
    5318              :           }
    5319       122930 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5320              :           {
    5321            8 :             {
    5322            8 :               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
    5323            8 :               tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5324            8 :               if (res) return res;
    5325              :             }
    5326              :           }
    5327              :         break;
    5328              :       }
    5329     40602045 :     default:;
    5330              :     }
    5331     40602045 : {
    5332     40602045 :   tree _p1_pops[1];
    5333     40602045 :   if (tree_nop_convert (_p1, _p1_pops))
    5334              :     {
    5335      3435257 :       tree _q30 = _p1_pops[0];
    5336      3435257 :       switch (TREE_CODE (_q30))
    5337              :         {
    5338         1103 :         case PLUS_EXPR:
    5339         1103 :           {
    5340         1103 :             tree _q40 = TREE_OPERAND (_q30, 0);
    5341         1103 :             tree _q41 = TREE_OPERAND (_q30, 1);
    5342         1103 :             switch (TREE_CODE (_q41))
    5343              :               {
    5344            3 :               CASE_CONVERT:
    5345            3 :                 {
    5346            3 :                   tree _q60 = TREE_OPERAND (_q41, 0);
    5347            3 :                   if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    5348              :                     {
    5349            0 :                       {
    5350            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
    5351            0 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    5352            0 :                         if (res) return res;
    5353              :                       }
    5354              :                     }
    5355              :                   break;
    5356              :                 }
    5357         1103 :               default:;
    5358              :               }
    5359         1103 :             switch (TREE_CODE (_q40))
    5360              :               {
    5361          547 :               CASE_CONVERT:
    5362          547 :                 {
    5363          547 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    5364          547 :                   if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5365              :                     {
    5366            0 :                       {
    5367            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
    5368            0 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    5369            0 :                         if (res) return res;
    5370              :                       }
    5371              :                     }
    5372              :                   break;
    5373              :                 }
    5374         1103 :               default:;
    5375              :               }
    5376         1103 :             if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    5377              :               {
    5378            0 :                 {
    5379            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
    5380            0 :                   tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    5381            0 :                   if (res) return res;
    5382              :                 }
    5383              :               }
    5384         1103 :             if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    5385              :               {
    5386            0 :                 {
    5387            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
    5388            0 :                   tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    5389            0 :                   if (res) return res;
    5390              :                 }
    5391              :               }
    5392              :             break;
    5393              :           }
    5394              :         default:;
    5395              :         }
    5396              :     }
    5397              : }
    5398     40602045 :   switch (TREE_CODE (_p0))
    5399              :     {
    5400      8297328 :     CASE_CONVERT:
    5401      8297328 :       {
    5402      8297328 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5403      8297328 :         switch (TREE_CODE (_p1))
    5404              :           {
    5405          179 :           case POINTER_PLUS_EXPR:
    5406          179 :             {
    5407          179 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5408          179 :               tree _q41 = TREE_OPERAND (_p1, 1);
    5409          179 :               switch (TREE_CODE (_q40))
    5410              :                 {
    5411           48 :                 CASE_CONVERT:
    5412           48 :                   {
    5413           48 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5414           48 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5415              :                       {
    5416            0 :                         {
    5417            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
    5418            0 :                           tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5419            0 :                           if (res) return res;
    5420              :                         }
    5421              :                       }
    5422              :                     break;
    5423              :                   }
    5424          179 :                 default:;
    5425              :                 }
    5426          179 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    5427              :                 {
    5428            0 :                   {
    5429            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
    5430            0 :                     tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5431            0 :                     if (res) return res;
    5432              :                   }
    5433              :                 }
    5434              :               break;
    5435              :             }
    5436      8297328 :           default:;
    5437              :           }
    5438      8297328 :       {
    5439      8297328 :         tree _p1_pops[1];
    5440      8297328 :         if (tree_nop_convert (_p1, _p1_pops))
    5441              :           {
    5442      3062847 :             tree _q40 = _p1_pops[0];
    5443      3062847 :             switch (TREE_CODE (_q40))
    5444              :               {
    5445           50 :               case POINTER_PLUS_EXPR:
    5446           50 :                 {
    5447           50 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    5448           50 :                   tree _q51 = TREE_OPERAND (_q40, 1);
    5449           50 :                   switch (TREE_CODE (_q50))
    5450              :                     {
    5451            8 :                     CASE_CONVERT:
    5452            8 :                       {
    5453            8 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    5454            8 :                         if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    5455              :                           {
    5456            0 :                             {
    5457            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
    5458            0 :                               tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5459            0 :                               if (res) return res;
    5460              :                             }
    5461              :                           }
    5462              :                         break;
    5463              :                       }
    5464           50 :                     default:;
    5465              :                     }
    5466           50 :                   if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5467              :                     {
    5468            0 :                       {
    5469            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
    5470            0 :                         tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5471            0 :                         if (res) return res;
    5472              :                       }
    5473              :                     }
    5474              :                   break;
    5475              :                 }
    5476              :               default:;
    5477              :               }
    5478              :           }
    5479              :       }
    5480      8297328 :         break;
    5481              :       }
    5482     40602045 :     default:;
    5483              :     }
    5484     40602045 : {
    5485     40602045 :   tree _p0_pops[1];
    5486     40602045 :   if (tree_nop_convert (_p0, _p0_pops))
    5487              :     {
    5488      4882338 :       tree _q20 = _p0_pops[0];
    5489      4882338 :       switch (TREE_CODE (_q20))
    5490              :         {
    5491          187 :         case POINTER_PLUS_EXPR:
    5492          187 :           {
    5493          187 :             tree _q30 = TREE_OPERAND (_q20, 0);
    5494          187 :             tree _q31 = TREE_OPERAND (_q20, 1);
    5495          187 :             switch (TREE_CODE (_q30))
    5496              :               {
    5497           52 :               CASE_CONVERT:
    5498           52 :                 {
    5499           52 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    5500           52 :                   switch (TREE_CODE (_p1))
    5501              :                     {
    5502           36 :                     CASE_CONVERT:
    5503           36 :                       {
    5504           36 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    5505           36 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    5506              :                           {
    5507            0 :                             {
    5508            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
    5509            0 :                               tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5510            0 :                               if (res) return res;
    5511              :                             }
    5512              :                           }
    5513              :                         break;
    5514              :                       }
    5515           52 :                     default:;
    5516              :                     }
    5517           52 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5518              :                     {
    5519            0 :                       {
    5520            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
    5521            0 :                         tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5522            0 :                         if (res) return res;
    5523              :                       }
    5524              :                     }
    5525              :                   break;
    5526              :                 }
    5527          187 :               default:;
    5528              :               }
    5529          187 :             switch (TREE_CODE (_p1))
    5530              :               {
    5531           52 :               CASE_CONVERT:
    5532           52 :                 {
    5533           52 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    5534           52 :                   if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    5535              :                     {
    5536            0 :                       {
    5537            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    5538            0 :                         tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5539            0 :                         if (res) return res;
    5540              :                       }
    5541              :                     }
    5542              :                   break;
    5543              :                 }
    5544          187 :               default:;
    5545              :               }
    5546          187 :             if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    5547              :               {
    5548            0 :                 {
    5549            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    5550            0 :                   tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5551            0 :                   if (res) return res;
    5552              :                 }
    5553              :               }
    5554              :             break;
    5555              :           }
    5556              :         default:;
    5557              :         }
    5558              :     }
    5559              : }
    5560     40602045 :   switch (TREE_CODE (_p1))
    5561              :     {
    5562        30211 :     case POINTER_PLUS_EXPR:
    5563        30211 :       {
    5564        30211 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5565        30211 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5566        30211 :         switch (TREE_CODE (_q30))
    5567              :           {
    5568         2724 :           CASE_CONVERT:
    5569         2724 :             {
    5570         2724 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5571         2724 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    5572              :                 {
    5573            0 :                   {
    5574            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
    5575            0 :                     tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5576            0 :                     if (res) return res;
    5577              :                   }
    5578              :                 }
    5579              :               break;
    5580              :             }
    5581        30211 :           default:;
    5582              :           }
    5583        30211 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5584              :           {
    5585            0 :             {
    5586            0 :               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
    5587            0 :               tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5588            0 :               if (res) return res;
    5589              :             }
    5590              :           }
    5591              :         break;
    5592              :       }
    5593     40602045 :     default:;
    5594              :     }
    5595     40602045 : {
    5596     40602045 :   tree _p1_pops[1];
    5597     40602045 :   if (tree_nop_convert (_p1, _p1_pops))
    5598              :     {
    5599      3435257 :       tree _q30 = _p1_pops[0];
    5600      3435257 :       switch (TREE_CODE (_q30))
    5601              :         {
    5602          389 :         case POINTER_PLUS_EXPR:
    5603          389 :           {
    5604          389 :             tree _q40 = TREE_OPERAND (_q30, 0);
    5605          389 :             tree _q41 = TREE_OPERAND (_q30, 1);
    5606          389 :             switch (TREE_CODE (_q40))
    5607              :               {
    5608            8 :               CASE_CONVERT:
    5609            8 :                 {
    5610            8 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    5611            8 :                   if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5612              :                     {
    5613            0 :                       {
    5614            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
    5615            0 :                         tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5616            0 :                         if (res) return res;
    5617              :                       }
    5618              :                     }
    5619              :                   break;
    5620              :                 }
    5621          389 :               default:;
    5622              :               }
    5623          389 :             if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    5624              :               {
    5625            0 :                 {
    5626            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
    5627            0 :                   tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5628            0 :                   if (res) return res;
    5629              :                 }
    5630              :               }
    5631              :             break;
    5632              :           }
    5633              :         default:;
    5634              :         }
    5635              :     }
    5636              : }
    5637     40602045 :   switch (TREE_CODE (_p0))
    5638              :     {
    5639       524290 :     case POINTER_PLUS_EXPR:
    5640       524290 :       {
    5641       524290 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5642       524290 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5643       524290 :         switch (TREE_CODE (_p1))
    5644              :           {
    5645        45280 :           case ADDR_EXPR:
    5646        45280 :             {
    5647        45280 :               {
    5648        45280 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    5649        45280 :                 tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    5650        45280 :                 if (res) return res;
    5651              :               }
    5652        33835 :               break;
    5653              :             }
    5654       512845 :           default:;
    5655              :           }
    5656       512845 :         switch (TREE_CODE (_q20))
    5657              :           {
    5658         4895 :           case ADDR_EXPR:
    5659         4895 :             {
    5660         4895 :               switch (TREE_CODE (_p1))
    5661              :                 {
    5662          265 :                 case POINTER_PLUS_EXPR:
    5663          265 :                   {
    5664          265 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5665          265 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5666          265 :                     switch (TREE_CODE (_q50))
    5667              :                       {
    5668            0 :                       case ADDR_EXPR:
    5669            0 :                         {
    5670            0 :                           {
    5671            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
    5672            0 :                             tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, NE_EXPR);
    5673            0 :                             if (res) return res;
    5674              :                           }
    5675            0 :                           break;
    5676              :                         }
    5677              :                       default:;
    5678              :                       }
    5679              :                     break;
    5680              :                   }
    5681              :                 default:;
    5682              :                 }
    5683              :               break;
    5684              :             }
    5685              :           default:;
    5686              :           }
    5687              :         break;
    5688              :       }
    5689       198534 :     case ADDR_EXPR:
    5690       198534 :       {
    5691       198534 :         switch (TREE_CODE (_p1))
    5692              :           {
    5693            0 :           case POINTER_PLUS_EXPR:
    5694            0 :             {
    5695            0 :               tree _q30 = TREE_OPERAND (_p1, 0);
    5696            0 :               tree _q31 = TREE_OPERAND (_p1, 1);
    5697            0 :               {
    5698            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
    5699            0 :                 tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    5700            0 :                 if (res) return res;
    5701              :               }
    5702            0 :               break;
    5703              :             }
    5704              :           default:;
    5705              :           }
    5706              :         break;
    5707              :       }
    5708     40590600 :     default:;
    5709              :     }
    5710     40590600 :   switch (TREE_CODE (_p1))
    5711              :     {
    5712        30836 :     case MINUS_EXPR:
    5713        30836 :       {
    5714        30836 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5715        30836 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5716        30836 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5717              :           {
    5718            0 :             {
    5719            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    5720            0 :               tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, NE_EXPR);
    5721            0 :               if (res) return res;
    5722              :             }
    5723              :           }
    5724              :         break;
    5725              :       }
    5726     40590600 :     default:;
    5727              :     }
    5728     40590600 :   switch (TREE_CODE (_p0))
    5729              :     {
    5730         9205 :     case TRUNC_DIV_EXPR:
    5731         9205 :       {
    5732         9205 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5733         9205 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5734         9205 :         if (integer_zerop (_p1))
    5735              :           {
    5736         1037 :             {
    5737         1037 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    5738         1037 :               tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
    5739         1037 :               if (res) return res;
    5740              :             }
    5741              :           }
    5742              :         break;
    5743              :       }
    5744      8297328 :     CASE_CONVERT:
    5745      8297328 :       {
    5746      8297328 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5747      8297328 :         switch (TREE_CODE (_p1))
    5748              :           {
    5749      3203984 :           CASE_CONVERT:
    5750      3203984 :             {
    5751      3203984 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5752      3203984 :               switch (TREE_CODE (_q40))
    5753              :                 {
    5754            0 :                 case MINUS_EXPR:
    5755            0 :                   {
    5756            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5757            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    5758            0 :                     switch (TREE_CODE (_q50))
    5759              :                       {
    5760            0 :                       case INTEGER_CST:
    5761            0 :                         {
    5762            0 :                           switch (TREE_CODE (_q51))
    5763              :                             {
    5764            0 :                             CASE_CONVERT:
    5765            0 :                               {
    5766            0 :                                 tree _q70 = TREE_OPERAND (_q51, 0);
    5767            0 :                                 if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    5768              :                                   {
    5769            0 :                                     {
    5770            0 :                                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    5771            0 :                                       tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5772            0 :                                       if (res) return res;
    5773              :                                     }
    5774              :                                   }
    5775              :                                 break;
    5776              :                               }
    5777              :                             default:;
    5778              :                             }
    5779              :                           break;
    5780              :                         }
    5781              :                       default:;
    5782              :                       }
    5783              :                     break;
    5784              :                   }
    5785              :                 default:;
    5786              :                 }
    5787              :               break;
    5788              :             }
    5789      8297328 :           default:;
    5790              :           }
    5791      8297328 :         switch (TREE_CODE (_q20))
    5792              :           {
    5793           99 :           case MINUS_EXPR:
    5794           99 :             {
    5795           99 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5796           99 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5797           99 :               switch (TREE_CODE (_q30))
    5798              :                 {
    5799           49 :                 case INTEGER_CST:
    5800           49 :                   {
    5801           49 :                     switch (TREE_CODE (_q31))
    5802              :                       {
    5803            0 :                       CASE_CONVERT:
    5804            0 :                         {
    5805            0 :                           tree _q50 = TREE_OPERAND (_q31, 0);
    5806            0 :                           switch (TREE_CODE (_p1))
    5807              :                             {
    5808            0 :                             CASE_CONVERT:
    5809            0 :                               {
    5810            0 :                                 tree _q70 = TREE_OPERAND (_p1, 0);
    5811            0 :                                 if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
    5812              :                                   {
    5813            0 :                                     {
    5814            0 :                                       tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    5815            0 :                                       tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5816            0 :                                       if (res) return res;
    5817              :                                     }
    5818              :                                   }
    5819              :                                 break;
    5820              :                               }
    5821            0 :                             default:;
    5822              :                             }
    5823            0 :                           if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    5824              :                             {
    5825            0 :                               {
    5826            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    5827            0 :                                 tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5828            0 :                                 if (res) return res;
    5829              :                               }
    5830              :                             }
    5831              :                           break;
    5832              :                         }
    5833           49 :                       default:;
    5834              :                       }
    5835           49 :                     switch (TREE_CODE (_p1))
    5836              :                       {
    5837            0 :                       CASE_CONVERT:
    5838            0 :                         {
    5839            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    5840            0 :                           if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    5841              :                             {
    5842            0 :                               {
    5843            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
    5844            0 :                                 tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5845            0 :                                 if (res) return res;
    5846              :                               }
    5847              :                             }
    5848              :                           break;
    5849              :                         }
    5850           49 :                       default:;
    5851              :                       }
    5852           49 :                     if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    5853              :                       {
    5854            0 :                         {
    5855            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
    5856            0 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5857            0 :                           if (res) return res;
    5858              :                         }
    5859              :                       }
    5860              :                     break;
    5861              :                   }
    5862              :                 default:;
    5863              :                 }
    5864              :               break;
    5865              :             }
    5866      8297328 :           default:;
    5867              :           }
    5868      8297328 :         switch (TREE_CODE (_p1))
    5869              :           {
    5870      3203984 :           CASE_CONVERT:
    5871      3203984 :             {
    5872      3203984 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5873      3203984 :               switch (TREE_CODE (_q40))
    5874              :                 {
    5875            0 :                 case MINUS_EXPR:
    5876            0 :                   {
    5877            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5878            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    5879            0 :                     switch (TREE_CODE (_q50))
    5880              :                       {
    5881            0 :                       case INTEGER_CST:
    5882            0 :                         {
    5883            0 :                           if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    5884              :                             {
    5885            0 :                               {
    5886            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    5887            0 :                                 tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5888            0 :                                 if (res) return res;
    5889              :                               }
    5890              :                             }
    5891              :                           break;
    5892              :                         }
    5893              :                       default:;
    5894              :                       }
    5895              :                     break;
    5896              :                   }
    5897              :                 default:;
    5898              :                 }
    5899              :               break;
    5900              :             }
    5901        21676 :           case MINUS_EXPR:
    5902        21676 :             {
    5903        21676 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5904        21676 :               tree _q41 = TREE_OPERAND (_p1, 1);
    5905        21676 :               switch (TREE_CODE (_q40))
    5906              :                 {
    5907          401 :                 case INTEGER_CST:
    5908          401 :                   {
    5909          401 :                     switch (TREE_CODE (_q41))
    5910              :                       {
    5911           20 :                       CASE_CONVERT:
    5912           20 :                         {
    5913           20 :                           tree _q60 = TREE_OPERAND (_q41, 0);
    5914           20 :                           if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    5915              :                             {
    5916            0 :                               {
    5917            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    5918            0 :                                 tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5919            0 :                                 if (res) return res;
    5920              :                               }
    5921              :                             }
    5922              :                           break;
    5923              :                         }
    5924          401 :                       default:;
    5925              :                       }
    5926          401 :                     if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    5927              :                       {
    5928            0 :                         {
    5929            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    5930            0 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5931            0 :                           if (res) return res;
    5932              :                         }
    5933              :                       }
    5934              :                     break;
    5935              :                   }
    5936              :                 default:;
    5937              :                 }
    5938              :               break;
    5939              :             }
    5940              :           default:;
    5941              :           }
    5942              :         break;
    5943              :       }
    5944       104317 :     case MINUS_EXPR:
    5945       104317 :       {
    5946       104317 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5947       104317 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5948       104317 :         switch (TREE_CODE (_q20))
    5949              :           {
    5950         2122 :           case INTEGER_CST:
    5951         2122 :             {
    5952         2122 :               switch (TREE_CODE (_q21))
    5953              :                 {
    5954          182 :                 CASE_CONVERT:
    5955          182 :                   {
    5956          182 :                     tree _q40 = TREE_OPERAND (_q21, 0);
    5957          182 :                     switch (TREE_CODE (_p1))
    5958              :                       {
    5959            0 :                       CASE_CONVERT:
    5960            0 :                         {
    5961            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    5962            0 :                           if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
    5963              :                             {
    5964            0 :                               {
    5965            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    5966            0 :                                 tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5967            0 :                                 if (res) return res;
    5968              :                               }
    5969              :                             }
    5970              :                           break;
    5971              :                         }
    5972          182 :                       default:;
    5973              :                       }
    5974          182 :                     if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5975              :                       {
    5976            0 :                         {
    5977            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    5978            0 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5979            0 :                           if (res) return res;
    5980              :                         }
    5981              :                       }
    5982              :                     break;
    5983              :                   }
    5984         2122 :                 default:;
    5985              :                 }
    5986         2122 :               switch (TREE_CODE (_p1))
    5987              :                 {
    5988          306 :                 CASE_CONVERT:
    5989          306 :                   {
    5990          306 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5991          306 :                     if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5992              :                       {
    5993            0 :                         {
    5994            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    5995            0 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5996            0 :                           if (res) return res;
    5997              :                         }
    5998              :                       }
    5999              :                     break;
    6000              :                   }
    6001         2122 :                 default:;
    6002              :                 }
    6003         2122 :               if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    6004              :                 {
    6005            1 :                   {
    6006            1 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6007            1 :                     tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    6008            1 :                     if (res) return res;
    6009              :                   }
    6010              :                 }
    6011              :               break;
    6012              :             }
    6013              :           default:;
    6014              :           }
    6015              :         break;
    6016              :       }
    6017     40590484 :     default:;
    6018              :     }
    6019     40590484 :   switch (TREE_CODE (_p1))
    6020              :     {
    6021      3603235 :     CASE_CONVERT:
    6022      3603235 :       {
    6023      3603235 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6024      3603235 :         switch (TREE_CODE (_q30))
    6025              :           {
    6026          556 :           case MINUS_EXPR:
    6027          556 :             {
    6028          556 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6029          556 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6030          556 :               switch (TREE_CODE (_q40))
    6031              :                 {
    6032           17 :                 case INTEGER_CST:
    6033           17 :                   {
    6034           17 :                     switch (TREE_CODE (_q41))
    6035              :                       {
    6036            0 :                       CASE_CONVERT:
    6037            0 :                         {
    6038            0 :                           tree _q60 = TREE_OPERAND (_q41, 0);
    6039            0 :                           if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    6040              :                             {
    6041            0 :                               {
    6042            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    6043            0 :                                 tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    6044            0 :                                 if (res) return res;
    6045              :                               }
    6046              :                             }
    6047              :                           break;
    6048              :                         }
    6049           17 :                       default:;
    6050              :                       }
    6051           17 :                     if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    6052              :                       {
    6053            0 :                         {
    6054            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    6055            0 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    6056            0 :                           if (res) return res;
    6057              :                         }
    6058              :                       }
    6059              :                     break;
    6060              :                   }
    6061              :                 default:;
    6062              :                 }
    6063              :               break;
    6064              :             }
    6065              :           default:;
    6066              :           }
    6067              :         break;
    6068              :       }
    6069        30836 :     case MINUS_EXPR:
    6070        30836 :       {
    6071        30836 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6072        30836 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6073        30836 :         switch (TREE_CODE (_q30))
    6074              :           {
    6075          608 :           case INTEGER_CST:
    6076          608 :             {
    6077          608 :               switch (TREE_CODE (_q31))
    6078              :                 {
    6079           32 :                 CASE_CONVERT:
    6080           32 :                   {
    6081           32 :                     tree _q50 = TREE_OPERAND (_q31, 0);
    6082           32 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    6083              :                       {
    6084            0 :                         {
    6085            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6086            0 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    6087            0 :                           if (res) return res;
    6088              :                         }
    6089              :                       }
    6090              :                     break;
    6091              :                   }
    6092          608 :                 default:;
    6093              :                 }
    6094          608 :               if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6095              :                 {
    6096            0 :                   {
    6097            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6098            0 :                     tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    6099            0 :                     if (res) return res;
    6100              :                   }
    6101              :                 }
    6102              :               break;
    6103              :             }
    6104              :           default:;
    6105              :           }
    6106              :         break;
    6107              :       }
    6108     40590484 :     default:;
    6109              :     }
    6110     40590484 :   switch (TREE_CODE (_p0))
    6111              :     {
    6112        18071 :     case LT_EXPR:
    6113        18071 :       {
    6114        18071 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6115        18071 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6116        18071 :         switch (TREE_CODE (_p1))
    6117              :           {
    6118           18 :           case GT_EXPR:
    6119           18 :             {
    6120           18 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6121           18 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6122           18 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6123              :                 {
    6124            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6125              :                     {
    6126            0 :                       {
    6127            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6128            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6129            0 :                         const enum tree_code cmp2 = GT_EXPR;
    6130            0 :                         const enum tree_code rcmp = NE_EXPR;
    6131            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6132            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6133            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6134            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6135              : )
    6136              :                           {
    6137            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1508;
    6138            0 :                             {
    6139            0 :                               tree res_op0;
    6140            0 :                               res_op0 = captures[0];
    6141            0 :                               tree res_op1;
    6142            0 :                               res_op1 = captures[1];
    6143            0 :                               tree _r;
    6144            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6145            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6146            0 :                               return _r;
    6147              :                             }
    6148            0 : next_after_fail1508:;
    6149              :                           }
    6150              :                       }
    6151              :                     }
    6152              :                 }
    6153              :               break;
    6154              :             }
    6155           23 :           case EQ_EXPR:
    6156           23 :             {
    6157           23 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6158           23 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6159           23 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6160              :                 {
    6161            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6162              :                     {
    6163            0 :                       {
    6164            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6165            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6166            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6167            0 :                         const enum tree_code rcmp = LE_EXPR;
    6168            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6169            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6170            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6171            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6172              : )
    6173              :                           {
    6174            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1509;
    6175            0 :                             {
    6176            0 :                               tree res_op0;
    6177            0 :                               res_op0 = captures[0];
    6178            0 :                               tree res_op1;
    6179            0 :                               res_op1 = captures[1];
    6180            0 :                               tree _r;
    6181            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6182            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6183            0 :                               return _r;
    6184              :                             }
    6185            0 : next_after_fail1509:;
    6186              :                           }
    6187              :                       }
    6188              :                     }
    6189              :                 }
    6190              :               break;
    6191              :             }
    6192           23 :           case NE_EXPR:
    6193           23 :             {
    6194           23 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6195           23 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6196           23 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6197              :                 {
    6198            9 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6199              :                     {
    6200            0 :                       {
    6201            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6202            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6203            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6204            0 :                         const enum tree_code rcmp = GT_EXPR;
    6205            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6206            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6207            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6208            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6209              : )
    6210              :                           {
    6211            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1510;
    6212            0 :                             {
    6213            0 :                               tree res_op0;
    6214            0 :                               res_op0 = captures[0];
    6215            0 :                               tree res_op1;
    6216            0 :                               res_op1 = captures[1];
    6217            0 :                               tree _r;
    6218            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6219            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6220            0 :                               return _r;
    6221              :                             }
    6222            0 : next_after_fail1510:;
    6223              :                           }
    6224              :                       }
    6225              :                     }
    6226              :                 }
    6227              :               break;
    6228              :             }
    6229              :           default:;
    6230              :           }
    6231              :         break;
    6232              :       }
    6233        11872 :     case LE_EXPR:
    6234        11872 :       {
    6235        11872 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6236        11872 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6237        11872 :         switch (TREE_CODE (_p1))
    6238              :           {
    6239           25 :           case GE_EXPR:
    6240           25 :             {
    6241           25 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6242           25 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6243           25 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6244              :                 {
    6245            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6246              :                     {
    6247            0 :                       {
    6248            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6249            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6250            0 :                         const enum tree_code cmp2 = GE_EXPR;
    6251            0 :                         const enum tree_code rcmp = NE_EXPR;
    6252            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6253            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6254            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6255            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6256              : )
    6257              :                           {
    6258            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1511;
    6259            0 :                             {
    6260            0 :                               tree res_op0;
    6261            0 :                               res_op0 = captures[0];
    6262            0 :                               tree res_op1;
    6263            0 :                               res_op1 = captures[1];
    6264            0 :                               tree _r;
    6265            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6266            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6267            0 :                               return _r;
    6268              :                             }
    6269            0 : next_after_fail1511:;
    6270              :                           }
    6271              :                       }
    6272              :                     }
    6273              :                 }
    6274              :               break;
    6275              :             }
    6276           41 :           case EQ_EXPR:
    6277           41 :             {
    6278           41 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6279           41 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6280           41 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6281              :                 {
    6282            9 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6283              :                     {
    6284            0 :                       {
    6285            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6286            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6287            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6288            0 :                         const enum tree_code rcmp = LT_EXPR;
    6289            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6290            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6291            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6292            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6293              : )
    6294              :                           {
    6295            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1512;
    6296            0 :                             {
    6297            0 :                               tree res_op0;
    6298            0 :                               res_op0 = captures[0];
    6299            0 :                               tree res_op1;
    6300            0 :                               res_op1 = captures[1];
    6301            0 :                               tree _r;
    6302            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6303            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6304            0 :                               return _r;
    6305              :                             }
    6306            0 : next_after_fail1512:;
    6307              :                           }
    6308              :                       }
    6309              :                     }
    6310              :                 }
    6311              :               break;
    6312              :             }
    6313           13 :           case NE_EXPR:
    6314           13 :             {
    6315           13 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6316           13 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6317           13 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6318              :                 {
    6319            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6320              :                     {
    6321            0 :                       {
    6322            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6323            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6324            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6325            0 :                         const enum tree_code rcmp = GE_EXPR;
    6326            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6327            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6328            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6329            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6330              : )
    6331              :                           {
    6332            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1513;
    6333            0 :                             {
    6334            0 :                               tree res_op0;
    6335            0 :                               res_op0 = captures[0];
    6336            0 :                               tree res_op1;
    6337            0 :                               res_op1 = captures[1];
    6338            0 :                               tree _r;
    6339            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6340            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6341            0 :                               return _r;
    6342              :                             }
    6343            0 : next_after_fail1513:;
    6344              :                           }
    6345              :                       }
    6346              :                     }
    6347              :                 }
    6348              :               break;
    6349              :             }
    6350              :           default:;
    6351              :           }
    6352              :         break;
    6353              :       }
    6354        35380 :     case GT_EXPR:
    6355        35380 :       {
    6356        35380 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6357        35380 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6358        35380 :         switch (TREE_CODE (_p1))
    6359              :           {
    6360           77 :           case GT_EXPR:
    6361           77 :             {
    6362           77 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6363           77 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6364           77 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6365              :                 {
    6366            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6367              :                     {
    6368            0 :                       {
    6369            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6370            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6371            0 :                         const enum tree_code cmp2 = GT_EXPR;
    6372            0 :                         const enum tree_code rcmp = NE_EXPR;
    6373            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6374            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6375            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6376            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6377              : )
    6378              :                           {
    6379            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1514;
    6380            0 :                             {
    6381            0 :                               tree res_op0;
    6382            0 :                               res_op0 = captures[0];
    6383            0 :                               tree res_op1;
    6384            0 :                               res_op1 = captures[1];
    6385            0 :                               tree _r;
    6386            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6387            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6388            0 :                               return _r;
    6389              :                             }
    6390            0 : next_after_fail1514:;
    6391              :                           }
    6392              :                       }
    6393            0 :                       {
    6394            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6395            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6396            0 :                         const enum tree_code cmp2 = GT_EXPR;
    6397            0 :                         const enum tree_code rcmp = NE_EXPR;
    6398            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6399            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6400            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6401            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6402              : )
    6403              :                           {
    6404            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1515;
    6405            0 :                             {
    6406            0 :                               tree res_op0;
    6407            0 :                               res_op0 = captures[0];
    6408            0 :                               tree res_op1;
    6409            0 :                               res_op1 = captures[1];
    6410            0 :                               tree _r;
    6411            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6412            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6413            0 :                               return _r;
    6414              :                             }
    6415            0 : next_after_fail1515:;
    6416              :                           }
    6417              :                       }
    6418              :                     }
    6419              :                 }
    6420              :               break;
    6421              :             }
    6422           29 :           case EQ_EXPR:
    6423           29 :             {
    6424           29 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6425           29 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6426           29 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6427              :                 {
    6428            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6429              :                     {
    6430            0 :                       {
    6431            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6432            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6433            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6434            0 :                         const enum tree_code rcmp = LE_EXPR;
    6435            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6436            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6437            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6438            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6439              : )
    6440              :                           {
    6441            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1516;
    6442            0 :                             {
    6443            0 :                               tree res_op0;
    6444            0 :                               res_op0 = captures[0];
    6445            0 :                               tree res_op1;
    6446            0 :                               res_op1 = captures[1];
    6447            0 :                               tree _r;
    6448            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6449            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6450            0 :                               return _r;
    6451              :                             }
    6452            0 : next_after_fail1516:;
    6453              :                           }
    6454              :                       }
    6455              :                     }
    6456              :                 }
    6457              :               break;
    6458              :             }
    6459           53 :           case NE_EXPR:
    6460           53 :             {
    6461           53 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6462           53 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6463           53 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6464              :                 {
    6465            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6466              :                     {
    6467            0 :                       {
    6468            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6469            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6470            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6471            0 :                         const enum tree_code rcmp = GT_EXPR;
    6472            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6473            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6474            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6475            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6476              : )
    6477              :                           {
    6478            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1517;
    6479            0 :                             {
    6480            0 :                               tree res_op0;
    6481            0 :                               res_op0 = captures[0];
    6482            0 :                               tree res_op1;
    6483            0 :                               res_op1 = captures[1];
    6484            0 :                               tree _r;
    6485            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6486            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6487            0 :                               return _r;
    6488              :                             }
    6489            0 : next_after_fail1517:;
    6490              :                           }
    6491              :                       }
    6492              :                     }
    6493              :                 }
    6494              :               break;
    6495              :             }
    6496           32 :           case LT_EXPR:
    6497           32 :             {
    6498           32 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6499           32 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6500           32 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6501              :                 {
    6502            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6503              :                     {
    6504            0 :                       {
    6505            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6506            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6507            0 :                         const enum tree_code cmp2 = GT_EXPR;
    6508            0 :                         const enum tree_code rcmp = NE_EXPR;
    6509            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6510            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6511            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6512            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6513              : )
    6514              :                           {
    6515            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1518;
    6516            0 :                             {
    6517            0 :                               tree res_op0;
    6518            0 :                               res_op0 = captures[0];
    6519            0 :                               tree res_op1;
    6520            0 :                               res_op1 = captures[1];
    6521            0 :                               tree _r;
    6522            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6523            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6524            0 :                               return _r;
    6525              :                             }
    6526            0 : next_after_fail1518:;
    6527              :                           }
    6528              :                       }
    6529              :                     }
    6530              :                 }
    6531              :               break;
    6532              :             }
    6533              :           default:;
    6534              :           }
    6535              :         break;
    6536              :       }
    6537         6123 :     case GE_EXPR:
    6538         6123 :       {
    6539         6123 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6540         6123 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6541         6123 :         switch (TREE_CODE (_p1))
    6542              :           {
    6543           76 :           case GE_EXPR:
    6544           76 :             {
    6545           76 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6546           76 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6547           76 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6548              :                 {
    6549            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6550              :                     {
    6551            0 :                       {
    6552            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6553            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6554            0 :                         const enum tree_code cmp2 = GE_EXPR;
    6555            0 :                         const enum tree_code rcmp = NE_EXPR;
    6556            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6557            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6558            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6559            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6560              : )
    6561              :                           {
    6562            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1519;
    6563            0 :                             {
    6564            0 :                               tree res_op0;
    6565            0 :                               res_op0 = captures[0];
    6566            0 :                               tree res_op1;
    6567            0 :                               res_op1 = captures[1];
    6568            0 :                               tree _r;
    6569            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6570            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6571            0 :                               return _r;
    6572              :                             }
    6573            0 : next_after_fail1519:;
    6574              :                           }
    6575              :                       }
    6576            0 :                       {
    6577            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6578            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6579            0 :                         const enum tree_code cmp2 = GE_EXPR;
    6580            0 :                         const enum tree_code rcmp = NE_EXPR;
    6581            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6582            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6583            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6584            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6585              : )
    6586              :                           {
    6587            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1520;
    6588            0 :                             {
    6589            0 :                               tree res_op0;
    6590            0 :                               res_op0 = captures[0];
    6591            0 :                               tree res_op1;
    6592            0 :                               res_op1 = captures[1];
    6593            0 :                               tree _r;
    6594            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6595            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6596            0 :                               return _r;
    6597              :                             }
    6598            0 : next_after_fail1520:;
    6599              :                           }
    6600              :                       }
    6601              :                     }
    6602              :                 }
    6603              :               break;
    6604              :             }
    6605           52 :           case EQ_EXPR:
    6606           52 :             {
    6607           52 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6608           52 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6609           52 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6610              :                 {
    6611            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6612              :                     {
    6613            0 :                       {
    6614            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6615            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6616            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6617            0 :                         const enum tree_code rcmp = LT_EXPR;
    6618            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6619            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6620            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6621            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6622              : )
    6623              :                           {
    6624            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1521;
    6625            0 :                             {
    6626            0 :                               tree res_op0;
    6627            0 :                               res_op0 = captures[0];
    6628            0 :                               tree res_op1;
    6629            0 :                               res_op1 = captures[1];
    6630            0 :                               tree _r;
    6631            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6632            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6633            0 :                               return _r;
    6634              :                             }
    6635            0 : next_after_fail1521:;
    6636              :                           }
    6637              :                       }
    6638              :                     }
    6639              :                 }
    6640              :               break;
    6641              :             }
    6642           11 :           case NE_EXPR:
    6643           11 :             {
    6644           11 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6645           11 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6646           11 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6647              :                 {
    6648            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6649              :                     {
    6650            0 :                       {
    6651            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6652            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6653            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6654            0 :                         const enum tree_code rcmp = GE_EXPR;
    6655            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6656            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6657            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6658            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6659              : )
    6660              :                           {
    6661            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1522;
    6662            0 :                             {
    6663            0 :                               tree res_op0;
    6664            0 :                               res_op0 = captures[0];
    6665            0 :                               tree res_op1;
    6666            0 :                               res_op1 = captures[1];
    6667            0 :                               tree _r;
    6668            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6669            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6670            0 :                               return _r;
    6671              :                             }
    6672            0 : next_after_fail1522:;
    6673              :                           }
    6674              :                       }
    6675              :                     }
    6676              :                 }
    6677              :               break;
    6678              :             }
    6679           16 :           case LE_EXPR:
    6680           16 :             {
    6681           16 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6682           16 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6683           16 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6684              :                 {
    6685            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6686              :                     {
    6687            0 :                       {
    6688            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6689            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6690            0 :                         const enum tree_code cmp2 = GE_EXPR;
    6691            0 :                         const enum tree_code rcmp = NE_EXPR;
    6692            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6693            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6694            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6695            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6696              : )
    6697              :                           {
    6698            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1523;
    6699            0 :                             {
    6700            0 :                               tree res_op0;
    6701            0 :                               res_op0 = captures[0];
    6702            0 :                               tree res_op1;
    6703            0 :                               res_op1 = captures[1];
    6704            0 :                               tree _r;
    6705            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6706            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6707            0 :                               return _r;
    6708              :                             }
    6709            0 : next_after_fail1523:;
    6710              :                           }
    6711              :                       }
    6712              :                     }
    6713              :                 }
    6714              :               break;
    6715              :             }
    6716              :           default:;
    6717              :           }
    6718              :         break;
    6719              :       }
    6720        63220 :     case EQ_EXPR:
    6721        63220 :       {
    6722        63220 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6723        63220 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6724        63220 :         switch (TREE_CODE (_p1))
    6725              :           {
    6726            5 :           case LT_EXPR:
    6727            5 :             {
    6728            5 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6729            5 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6730            5 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6731              :                 {
    6732            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6733              :                     {
    6734            0 :                       {
    6735            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6736            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6737            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6738            0 :                         const enum tree_code rcmp = LE_EXPR;
    6739            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6740            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6741            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6742            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6743              : )
    6744              :                           {
    6745            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1524;
    6746            0 :                             {
    6747            0 :                               tree res_op0;
    6748            0 :                               res_op0 = captures[0];
    6749            0 :                               tree res_op1;
    6750            0 :                               res_op1 = captures[1];
    6751            0 :                               tree _r;
    6752            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6753            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6754            0 :                               return _r;
    6755              :                             }
    6756            0 : next_after_fail1524:;
    6757              :                           }
    6758              :                       }
    6759              :                     }
    6760              :                 }
    6761              :               break;
    6762              :             }
    6763           42 :           case LE_EXPR:
    6764           42 :             {
    6765           42 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6766           42 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6767           42 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6768              :                 {
    6769            7 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6770              :                     {
    6771            0 :                       {
    6772            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6773            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6774            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6775            0 :                         const enum tree_code rcmp = LT_EXPR;
    6776            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6777            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6778            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6779            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6780              : )
    6781              :                           {
    6782            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1525;
    6783            0 :                             {
    6784            0 :                               tree res_op0;
    6785            0 :                               res_op0 = captures[0];
    6786            0 :                               tree res_op1;
    6787            0 :                               res_op1 = captures[1];
    6788            0 :                               tree _r;
    6789            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6790            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6791            0 :                               return _r;
    6792              :                             }
    6793            0 : next_after_fail1525:;
    6794              :                           }
    6795              :                       }
    6796              :                     }
    6797              :                 }
    6798              :               break;
    6799              :             }
    6800            7 :           case GT_EXPR:
    6801            7 :             {
    6802            7 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6803            7 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6804            7 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6805              :                 {
    6806            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6807              :                     {
    6808            0 :                       {
    6809            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6810            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6811            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6812            0 :                         const enum tree_code rcmp = LE_EXPR;
    6813            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6814            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6815            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6816            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6817              : )
    6818              :                           {
    6819            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1526;
    6820            0 :                             {
    6821            0 :                               tree res_op0;
    6822            0 :                               res_op0 = captures[0];
    6823            0 :                               tree res_op1;
    6824            0 :                               res_op1 = captures[1];
    6825            0 :                               tree _r;
    6826            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6827            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6828            0 :                               return _r;
    6829              :                             }
    6830            0 : next_after_fail1526:;
    6831              :                           }
    6832              :                       }
    6833              :                     }
    6834              :                 }
    6835              :               break;
    6836              :             }
    6837           14 :           case GE_EXPR:
    6838           14 :             {
    6839           14 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6840           14 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6841           14 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6842              :                 {
    6843            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6844              :                     {
    6845            0 :                       {
    6846            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6847            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6848            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6849            0 :                         const enum tree_code rcmp = LT_EXPR;
    6850            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6851            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6852            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6853            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6854              : )
    6855              :                           {
    6856            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1527;
    6857            0 :                             {
    6858            0 :                               tree res_op0;
    6859            0 :                               res_op0 = captures[0];
    6860            0 :                               tree res_op1;
    6861            0 :                               res_op1 = captures[1];
    6862            0 :                               tree _r;
    6863            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6864            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6865            0 :                               return _r;
    6866              :                             }
    6867            0 : next_after_fail1527:;
    6868              :                           }
    6869              :                       }
    6870              :                     }
    6871              :                 }
    6872              :               break;
    6873              :             }
    6874              :           default:;
    6875              :           }
    6876              :         break;
    6877              :       }
    6878        68520 :     case NE_EXPR:
    6879        68520 :       {
    6880        68520 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6881        68520 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6882        68520 :         switch (TREE_CODE (_p1))
    6883              :           {
    6884            7 :           case LT_EXPR:
    6885            7 :             {
    6886            7 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6887            7 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6888            7 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6889              :                 {
    6890            7 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6891              :                     {
    6892            0 :                       {
    6893            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6894            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6895            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6896            0 :                         const enum tree_code rcmp = GT_EXPR;
    6897            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6898            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6899            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6900            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6901              : )
    6902              :                           {
    6903            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1528;
    6904            0 :                             {
    6905            0 :                               tree res_op0;
    6906            0 :                               res_op0 = captures[0];
    6907            0 :                               tree res_op1;
    6908            0 :                               res_op1 = captures[1];
    6909            0 :                               tree _r;
    6910            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6911            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6912            0 :                               return _r;
    6913              :                             }
    6914            0 : next_after_fail1528:;
    6915              :                           }
    6916              :                       }
    6917              :                     }
    6918              :                 }
    6919              :               break;
    6920              :             }
    6921          302 :           case LE_EXPR:
    6922          302 :             {
    6923          302 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6924          302 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6925          302 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6926              :                 {
    6927            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6928              :                     {
    6929            0 :                       {
    6930            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6931            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6932            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6933            0 :                         const enum tree_code rcmp = GE_EXPR;
    6934            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6935            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6936            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6937            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6938              : )
    6939              :                           {
    6940            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1529;
    6941            0 :                             {
    6942            0 :                               tree res_op0;
    6943            0 :                               res_op0 = captures[0];
    6944            0 :                               tree res_op1;
    6945            0 :                               res_op1 = captures[1];
    6946            0 :                               tree _r;
    6947            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6948            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6949            0 :                               return _r;
    6950              :                             }
    6951            0 : next_after_fail1529:;
    6952              :                           }
    6953              :                       }
    6954              :                     }
    6955              :                 }
    6956              :               break;
    6957              :             }
    6958          323 :           case GT_EXPR:
    6959          323 :             {
    6960          323 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6961          323 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6962          323 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6963              :                 {
    6964            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6965              :                     {
    6966            0 :                       {
    6967            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6968            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6969            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6970            0 :                         const enum tree_code rcmp = GT_EXPR;
    6971            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6972            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6973            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6974            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6975              : )
    6976              :                           {
    6977            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1530;
    6978            0 :                             {
    6979            0 :                               tree res_op0;
    6980            0 :                               res_op0 = captures[0];
    6981            0 :                               tree res_op1;
    6982            0 :                               res_op1 = captures[1];
    6983            0 :                               tree _r;
    6984            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6985            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6986            0 :                               return _r;
    6987              :                             }
    6988            0 : next_after_fail1530:;
    6989              :                           }
    6990              :                       }
    6991              :                     }
    6992              :                 }
    6993              :               break;
    6994              :             }
    6995            2 :           case GE_EXPR:
    6996            2 :             {
    6997            2 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6998            2 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6999            2 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7000              :                 {
    7001            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7002              :                     {
    7003            0 :                       {
    7004            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7005            0 :                         const enum tree_code cmp1 = LE_EXPR;
    7006            0 :                         const enum tree_code cmp2 = NE_EXPR;
    7007            0 :                         const enum tree_code rcmp = GE_EXPR;
    7008            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7009            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7010            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    7011            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7012              : )
    7013              :                           {
    7014            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1531;
    7015            0 :                             {
    7016            0 :                               tree res_op0;
    7017            0 :                               res_op0 = captures[0];
    7018            0 :                               tree res_op1;
    7019            0 :                               res_op1 = captures[1];
    7020            0 :                               tree _r;
    7021            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7022            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    7023            0 :                               return _r;
    7024              :                             }
    7025            0 : next_after_fail1531:;
    7026              :                           }
    7027              :                       }
    7028              :                     }
    7029              :                 }
    7030              :               break;
    7031              :             }
    7032              :           default:;
    7033              :           }
    7034              :         break;
    7035              :       }
    7036         8678 :     case MIN_EXPR:
    7037         8678 :       {
    7038         8678 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7039         8678 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7040         8678 :         switch (TREE_CODE (_p1))
    7041              :           {
    7042            0 :           case MAX_EXPR:
    7043            0 :             {
    7044            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7045            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7046            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7047              :                 {
    7048            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7049              :                     {
    7050            0 :                       {
    7051            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7052            0 :                         if (!HONOR_NANS (captures[0])
    7053              : )
    7054              :                           {
    7055            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1532;
    7056            0 :                             {
    7057            0 :                               tree res_op0;
    7058            0 :                               res_op0 = captures[0];
    7059            0 :                               tree res_op1;
    7060            0 :                               res_op1 = captures[1];
    7061            0 :                               tree _r;
    7062            0 :                               _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    7063            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    7064            0 :                               return _r;
    7065              :                             }
    7066            0 : next_after_fail1532:;
    7067              :                           }
    7068              :                       }
    7069              :                     }
    7070              :                 }
    7071            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7072              :                 {
    7073            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7074              :                     {
    7075            0 :                       {
    7076            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7077            0 :                         if (!HONOR_NANS (captures[0])
    7078              : )
    7079              :                           {
    7080            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1533;
    7081            0 :                             {
    7082            0 :                               tree res_op0;
    7083            0 :                               res_op0 = captures[0];
    7084            0 :                               tree res_op1;
    7085            0 :                               res_op1 = captures[1];
    7086            0 :                               tree _r;
    7087            0 :                               _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    7088            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    7089            0 :                               return _r;
    7090              :                             }
    7091            0 : next_after_fail1533:;
    7092              :                           }
    7093              :                       }
    7094              :                     }
    7095              :                 }
    7096              :               break;
    7097              :             }
    7098         8678 :           default:;
    7099              :           }
    7100         8678 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7101              :           {
    7102            0 :             {
    7103            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7104            0 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
    7105            0 :               if (res) return res;
    7106              :             }
    7107              :           }
    7108         8678 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    7109              :           {
    7110          616 :             {
    7111          616 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7112          616 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
    7113          616 :               if (res) return res;
    7114              :             }
    7115              :           }
    7116              :         break;
    7117              :       }
    7118         8146 :     case MAX_EXPR:
    7119         8146 :       {
    7120         8146 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7121         8146 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7122         8146 :         switch (TREE_CODE (_p1))
    7123              :           {
    7124            0 :           case MIN_EXPR:
    7125            0 :             {
    7126            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7127            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7128            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7129              :                 {
    7130            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7131              :                     {
    7132            0 :                       {
    7133            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7134            0 :                         if (!HONOR_NANS (captures[0])
    7135              : )
    7136              :                           {
    7137            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1534;
    7138            0 :                             {
    7139            0 :                               tree res_op0;
    7140            0 :                               res_op0 = captures[0];
    7141            0 :                               tree res_op1;
    7142            0 :                               res_op1 = captures[1];
    7143            0 :                               tree _r;
    7144            0 :                               _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    7145            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    7146            0 :                               return _r;
    7147              :                             }
    7148            0 : next_after_fail1534:;
    7149              :                           }
    7150              :                       }
    7151              :                     }
    7152              :                 }
    7153            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7154              :                 {
    7155            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7156              :                     {
    7157            0 :                       {
    7158            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7159            0 :                         if (!HONOR_NANS (captures[0])
    7160              : )
    7161              :                           {
    7162            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1535;
    7163            0 :                             {
    7164            0 :                               tree res_op0;
    7165            0 :                               res_op0 = captures[0];
    7166            0 :                               tree res_op1;
    7167            0 :                               res_op1 = captures[1];
    7168            0 :                               tree _r;
    7169            0 :                               _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    7170            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    7171            0 :                               return _r;
    7172              :                             }
    7173            0 : next_after_fail1535:;
    7174              :                           }
    7175              :                       }
    7176              :                     }
    7177              :                 }
    7178              :               break;
    7179              :             }
    7180         8146 :           default:;
    7181              :           }
    7182         8146 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7183              :           {
    7184            0 :             {
    7185            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7186            0 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
    7187            0 :               if (res) return res;
    7188              :             }
    7189              :           }
    7190         8146 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    7191              :           {
    7192          425 :             {
    7193          425 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7194          425 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
    7195          425 :               if (res) return res;
    7196              :             }
    7197              :           }
    7198              :         break;
    7199              :       }
    7200     40590355 :     default:;
    7201              :     }
    7202     40590355 : if (tree_with_possible_nonzero_bits (_p0))
    7203              :   {
    7204     15693717 :     if (tree_with_known_nonzero_bits (_p1))
    7205              :       {
    7206     14199508 :         {
    7207     14199508 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    7208     14199508 :           tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
    7209     14199508 :           if (res) return res;
    7210              :         }
    7211              :       }
    7212              :   }
    7213     40527557 : if (tree_with_known_nonzero_bits (_p0))
    7214              :   {
    7215     11474377 :     if (tree_with_possible_nonzero_bits (_p1))
    7216              :       {
    7217     11424629 :         {
    7218     11424629 :           tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
    7219     11424629 :           tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
    7220     11424629 :           if (res) return res;
    7221              :         }
    7222              :       }
    7223              :   }
    7224     40526155 :   switch (TREE_CODE (_p1))
    7225              :     {
    7226          164 :     case MIN_EXPR:
    7227          164 :       {
    7228          164 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7229          164 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7230          164 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    7231              :           {
    7232            0 :             {
    7233            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    7234            0 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
    7235            0 :               if (res) return res;
    7236              :             }
    7237              :           }
    7238          164 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    7239              :           {
    7240            0 :             {
    7241            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    7242            0 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
    7243            0 :               if (res) return res;
    7244              :             }
    7245              :           }
    7246              :         break;
    7247              :       }
    7248         1673 :     case MAX_EXPR:
    7249         1673 :       {
    7250         1673 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7251         1673 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7252         1673 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    7253              :           {
    7254            0 :             {
    7255            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    7256            0 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
    7257            0 :               if (res) return res;
    7258              :             }
    7259              :           }
    7260         1673 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    7261              :           {
    7262            0 :             {
    7263            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    7264            0 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
    7265            0 :               if (res) return res;
    7266              :             }
    7267              :           }
    7268              :         break;
    7269              :       }
    7270     40526155 :     default:;
    7271              :     }
    7272     40526155 :   switch (TREE_CODE (_p0))
    7273              :     {
    7274         8678 :     case MIN_EXPR:
    7275         8678 :       {
    7276         8678 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7277         8678 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7278         8678 :         switch (TREE_CODE (_q21))
    7279              :           {
    7280          683 :           case INTEGER_CST:
    7281          683 :             {
    7282          683 :               switch (TREE_CODE (_p1))
    7283              :                 {
    7284            0 :                 case INTEGER_CST:
    7285            0 :                   {
    7286            0 :                     {
    7287            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7288            0 :                       tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, NE_EXPR);
    7289            0 :                       if (res) return res;
    7290              :                     }
    7291            0 :                     break;
    7292              :                   }
    7293              :                 default:;
    7294              :                 }
    7295              :               break;
    7296              :             }
    7297              :           default:;
    7298              :           }
    7299              :         break;
    7300              :       }
    7301         8017 :     case MAX_EXPR:
    7302         8017 :       {
    7303         8017 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7304         8017 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7305         8017 :         switch (TREE_CODE (_q21))
    7306              :           {
    7307         6959 :           case INTEGER_CST:
    7308         6959 :             {
    7309         6959 :               switch (TREE_CODE (_p1))
    7310              :                 {
    7311          683 :                 case INTEGER_CST:
    7312          683 :                   {
    7313          683 :                     {
    7314          683 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7315          683 :                       tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, NE_EXPR);
    7316          683 :                       if (res) return res;
    7317              :                     }
    7318            0 :                     break;
    7319              :                   }
    7320              :                 default:;
    7321              :                 }
    7322              :               break;
    7323              :             }
    7324         7334 :           default:;
    7325              :           }
    7326         7334 :         if (integer_zerop (_p1))
    7327              :           {
    7328           34 :             {
    7329           34 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7330           34 :               tree res = generic_simplify_230 (loc, type, _p0, _p1, captures, NE_EXPR);
    7331           34 :               if (res) return res;
    7332              :             }
    7333              :           }
    7334              :         break;
    7335              :       }
    7336      1335278 :     case BIT_AND_EXPR:
    7337      1335278 :       {
    7338      1335278 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7339      1335278 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7340      1335278 :         switch (TREE_CODE (_q20))
    7341              :           {
    7342         3686 :           case LSHIFT_EXPR:
    7343         3686 :             {
    7344         3686 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7345         3686 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7346         3686 :               if (integer_pow2p (_q30))
    7347              :                 {
    7348         3666 :                   if (integer_pow2p (_q21))
    7349              :                     {
    7350            5 :                       if (integer_zerop (_p1))
    7351              :                         {
    7352            5 :                           {
    7353            5 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
    7354            5 :                             tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    7355            5 :                             if (res) return res;
    7356              :                           }
    7357              :                         }
    7358              :                     }
    7359              :                 }
    7360         3681 :               switch (TREE_CODE (_q31))
    7361              :                 {
    7362           13 :                 case INTEGER_CST:
    7363           13 :                   {
    7364           13 :                     switch (TREE_CODE (_q21))
    7365              :                       {
    7366           13 :                       case INTEGER_CST:
    7367           13 :                         {
    7368           13 :                           switch (TREE_CODE (_p1))
    7369              :                             {
    7370           13 :                             case INTEGER_CST:
    7371           13 :                               {
    7372           13 :                                 {
    7373           13 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    7374           13 :                                   tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, NE_EXPR);
    7375           13 :                                   if (res) return res;
    7376              :                                 }
    7377            0 :                                 break;
    7378              :                               }
    7379              :                             default:;
    7380              :                             }
    7381              :                           break;
    7382              :                         }
    7383              :                       default:;
    7384              :                       }
    7385              :                     break;
    7386              :                   }
    7387         3668 :                 default:;
    7388              :                 }
    7389         3668 :               if (integer_onep (_q30))
    7390              :                 {
    7391         3660 :                   if (integer_pow2p (_q21))
    7392              :                     {
    7393            0 :                       if (integer_zerop (_p1))
    7394              :                         {
    7395            0 :                           {
    7396            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q21 };
    7397            0 :                             tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    7398            0 :                             if (res) return res;
    7399              :                           }
    7400              :                         }
    7401              :                     }
    7402              :                 }
    7403              :               break;
    7404              :             }
    7405         4887 :           case RSHIFT_EXPR:
    7406         4887 :             {
    7407         4887 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7408         4887 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7409         4887 :               if (integer_pow2p (_q30))
    7410              :                 {
    7411           33 :                   if (integer_pow2p (_q21))
    7412              :                     {
    7413            1 :                       if (integer_zerop (_p1))
    7414              :                         {
    7415            1 :                           {
    7416            1 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
    7417            1 :                             tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    7418            1 :                             if (res) return res;
    7419              :                           }
    7420              :                         }
    7421              :                     }
    7422              :                 }
    7423         4886 :               switch (TREE_CODE (_q31))
    7424              :                 {
    7425          329 :                 case INTEGER_CST:
    7426          329 :                   {
    7427          329 :                     switch (TREE_CODE (_q21))
    7428              :                       {
    7429          305 :                       case INTEGER_CST:
    7430          305 :                         {
    7431          305 :                           switch (TREE_CODE (_p1))
    7432              :                             {
    7433          280 :                             case INTEGER_CST:
    7434          280 :                               {
    7435          280 :                                 {
    7436          280 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    7437          280 :                                   tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, NE_EXPR);
    7438          280 :                                   if (res) return res;
    7439              :                                 }
    7440           14 :                                 break;
    7441              :                               }
    7442              :                             default:;
    7443              :                             }
    7444              :                           break;
    7445              :                         }
    7446              :                       default:;
    7447              :                       }
    7448              :                     break;
    7449              :                   }
    7450              :                 default:;
    7451              :                 }
    7452              :               break;
    7453              :             }
    7454      1334993 :           default:;
    7455              :           }
    7456      1334993 :       {
    7457      1334993 :         tree _q20_pops[1];
    7458      1334993 :         if (tree_nop_convert (_q20, _q20_pops))
    7459              :           {
    7460       136883 :             tree _q30 = _q20_pops[0];
    7461       136883 :             switch (TREE_CODE (_q30))
    7462              :               {
    7463        37188 :               case LSHIFT_EXPR:
    7464        37188 :                 {
    7465        37188 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    7466        37188 :                   tree _q41 = TREE_OPERAND (_q30, 1);
    7467        37188 :                   if (integer_onep (_q40))
    7468              :                     {
    7469        37188 :                       if (integer_pow2p (_q21))
    7470              :                         {
    7471            0 :                           if (integer_zerop (_p1))
    7472              :                             {
    7473            0 :                               {
    7474            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q41, _q21 };
    7475            0 :                                 tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    7476            0 :                                 if (res) return res;
    7477              :                               }
    7478              :                             }
    7479              :                         }
    7480              :                     }
    7481              :                   break;
    7482              :                 }
    7483              :               default:;
    7484              :               }
    7485              :           }
    7486              :       }
    7487      1334993 :         break;
    7488              :       }
    7489         5202 :     case LSHIFT_EXPR:
    7490         5202 :       {
    7491         5202 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7492         5202 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7493         5202 :         switch (TREE_CODE (_q20))
    7494              :           {
    7495          538 :           case INTEGER_CST:
    7496          538 :             {
    7497          538 :               switch (TREE_CODE (_p1))
    7498              :                 {
    7499          159 :                 case INTEGER_CST:
    7500          159 :                   {
    7501          159 :                     {
    7502          159 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7503          159 :                       tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, NE_EXPR);
    7504          159 :                       if (res) return res;
    7505              :                     }
    7506           88 :                     break;
    7507              :                   }
    7508              :                 default:;
    7509              :                 }
    7510              :               break;
    7511              :             }
    7512              :           default:;
    7513              :           }
    7514              :         break;
    7515              :       }
    7516          414 :     case LROTATE_EXPR:
    7517          414 :       {
    7518          414 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7519          414 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7520          414 :         switch (TREE_CODE (_p1))
    7521              :           {
    7522            0 :           case LROTATE_EXPR:
    7523            0 :             {
    7524            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7525            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7526            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7527              :                 {
    7528            0 :                   {
    7529            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    7530            0 :                     tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
    7531            0 :                     if (res) return res;
    7532              :                   }
    7533              :                 }
    7534              :               break;
    7535              :             }
    7536          414 :           default:;
    7537              :           }
    7538          414 :         switch (TREE_CODE (_q21))
    7539              :           {
    7540          112 :           case INTEGER_CST:
    7541          112 :             {
    7542          112 :               switch (TREE_CODE (_p1))
    7543              :                 {
    7544          112 :                 case INTEGER_CST:
    7545          112 :                   {
    7546          112 :                     {
    7547          112 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7548          112 :                       tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
    7549          112 :                       if (res) return res;
    7550              :                     }
    7551            0 :                     break;
    7552              :                   }
    7553              :                 default:;
    7554              :                 }
    7555              :               break;
    7556              :             }
    7557          302 :           default:;
    7558              :           }
    7559          302 :         switch (TREE_CODE (_p1))
    7560              :           {
    7561          197 :           case INTEGER_CST:
    7562          197 :             {
    7563          197 :               {
    7564          197 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7565          197 :                 tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
    7566          197 :                 if (res) return res;
    7567              :               }
    7568          197 :               break;
    7569              :             }
    7570              :           default:;
    7571              :           }
    7572              :         break;
    7573              :       }
    7574          491 :     case RROTATE_EXPR:
    7575          491 :       {
    7576          491 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7577          491 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7578          491 :         switch (TREE_CODE (_p1))
    7579              :           {
    7580            0 :           case RROTATE_EXPR:
    7581            0 :             {
    7582            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7583            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7584            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7585              :                 {
    7586            0 :                   {
    7587            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    7588            0 :                     tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
    7589            0 :                     if (res) return res;
    7590              :                   }
    7591              :                 }
    7592              :               break;
    7593              :             }
    7594          491 :           default:;
    7595              :           }
    7596          491 :         switch (TREE_CODE (_q21))
    7597              :           {
    7598          281 :           case INTEGER_CST:
    7599          281 :             {
    7600          281 :               switch (TREE_CODE (_p1))
    7601              :                 {
    7602           12 :                 case INTEGER_CST:
    7603           12 :                   {
    7604           12 :                     {
    7605           12 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7606           12 :                       tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
    7607           12 :                       if (res) return res;
    7608              :                     }
    7609            0 :                     break;
    7610              :                   }
    7611              :                 default:;
    7612              :                 }
    7613              :               break;
    7614              :             }
    7615          479 :           default:;
    7616              :           }
    7617          479 :         switch (TREE_CODE (_p1))
    7618              :           {
    7619          194 :           case INTEGER_CST:
    7620          194 :             {
    7621          194 :               {
    7622          194 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7623          194 :                 tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
    7624          194 :                 if (res) return res;
    7625              :               }
    7626          194 :               break;
    7627              :             }
    7628              :           default:;
    7629              :           }
    7630              :         break;
    7631              :       }
    7632          260 :     case VEC_COND_EXPR:
    7633          260 :       {
    7634          260 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7635          260 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7636          260 :         tree _q22 = TREE_OPERAND (_p0, 2);
    7637          260 :         switch (TREE_CODE (_p1))
    7638              :           {
    7639            8 :           case VEC_COND_EXPR:
    7640            8 :             {
    7641            8 :               tree _q60 = TREE_OPERAND (_p1, 0);
    7642            8 :               tree _q61 = TREE_OPERAND (_p1, 1);
    7643            8 :               tree _q62 = TREE_OPERAND (_p1, 2);
    7644            8 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7645              :                 {
    7646            0 :                   {
    7647            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    7648            0 :                     if (VECTOR_TYPE_P (type)
    7649            0 :  && (TREE_CODE_CLASS (NE_EXPR) != tcc_comparison
    7650            0 :  || types_match (type, TREE_TYPE (captures[2]))
    7651            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7652              :  || (optimize_vectors_before_lowering_p ()
    7653            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7654              : )
    7655              :                       {
    7656            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1536;
    7657            0 :                         {
    7658            0 :                           tree res_op0;
    7659            0 :                           res_op0 = captures[1];
    7660            0 :                           tree res_op1;
    7661            0 :                           {
    7662            0 :                             tree _o1[2], _r1;
    7663            0 :                             _o1[0] = captures[2];
    7664            0 :                             _o1[1] = captures[5];
    7665            0 :                             _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    7666            0 :                             if (EXPR_P (_r1))
    7667            0 :                               goto next_after_fail1536;
    7668            0 :                             res_op1 = _r1;
    7669              :                           }
    7670            0 :                           tree res_op2;
    7671            0 :                           {
    7672            0 :                             tree _o1[2], _r1;
    7673            0 :                             _o1[0] = captures[3];
    7674            0 :                             _o1[1] = captures[6];
    7675            0 :                             _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    7676            0 :                             if (EXPR_P (_r1))
    7677            0 :                               goto next_after_fail1536;
    7678            0 :                             res_op2 = _r1;
    7679              :                           }
    7680            0 :                           tree _r;
    7681            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7682            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
    7683            0 :                           return _r;
    7684              :                         }
    7685            0 : next_after_fail1536:;
    7686              :                       }
    7687              :                   }
    7688              :                 }
    7689              :               break;
    7690              :             }
    7691          260 :           default:;
    7692              :           }
    7693          260 :         {
    7694          260 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    7695          260 :           if (VECTOR_TYPE_P (type)
    7696          260 :  && (TREE_CODE_CLASS (NE_EXPR) != tcc_comparison
    7697          258 :  || types_match (type, TREE_TYPE (captures[2]))
    7698          258 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7699              :  || (optimize_vectors_before_lowering_p ()
    7700           27 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7701              : )
    7702              :             {
    7703          258 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1537;
    7704          258 :               {
    7705          258 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1537;
    7706           80 :                 tree res_op0;
    7707           80 :                 res_op0 = captures[1];
    7708           80 :                 tree res_op1;
    7709           80 :                 {
    7710           80 :                   tree _o1[2], _r1;
    7711           80 :                   _o1[0] = captures[2];
    7712           80 :                   _o1[1] = unshare_expr (captures[4]);
    7713           80 :                   _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    7714           80 :                   if (EXPR_P (_r1))
    7715            8 :                     goto next_after_fail1537;
    7716           72 :                   res_op1 = _r1;
    7717              :                 }
    7718           72 :                 tree res_op2;
    7719           72 :                 {
    7720           72 :                   tree _o1[2], _r1;
    7721           72 :                   _o1[0] = captures[3];
    7722           72 :                   _o1[1] = captures[4];
    7723           72 :                   _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    7724           72 :                   if (EXPR_P (_r1))
    7725            0 :                     goto next_after_fail1537;
    7726           72 :                   res_op2 = _r1;
    7727              :                 }
    7728           72 :                 tree _r;
    7729           72 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7730           72 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
    7731           72 :                 return _r;
    7732              :               }
    7733          188 : next_after_fail1537:;
    7734              :             }
    7735              :         }
    7736          188 :         break;
    7737              :       }
    7738      2758856 :     case CALL_EXPR:
    7739      2758856 :       switch (get_call_combined_fn (_p0))
    7740              :         {
    7741            2 :         case CFN_BUILT_IN_BSWAP128:
    7742            2 :           if (call_expr_nargs (_p0) == 1)
    7743              :     {
    7744            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7745            2 :               switch (TREE_CODE (_p1))
    7746              :                 {
    7747            0 :                 case INTEGER_CST:
    7748            0 :                   {
    7749            0 :                     {
    7750            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7751            0 :                       tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP128);
    7752            0 :                       if (res) return res;
    7753              :                     }
    7754            0 :                     break;
    7755              :                   }
    7756            1 :                 case CALL_EXPR:
    7757            1 :                   switch (get_call_combined_fn (_p1))
    7758              :                     {
    7759            0 :                     case CFN_BUILT_IN_BSWAP128:
    7760            0 :                       if (call_expr_nargs (_p1) == 1)
    7761              :     {
    7762            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7763            0 :                           {
    7764            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    7765            0 :                             tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP128);
    7766            0 :                             if (res) return res;
    7767              :                           }
    7768              :                         }
    7769              :                       break;
    7770              :                     default:;
    7771              :                     }
    7772              :                   break;
    7773              :                 default:;
    7774              :                 }
    7775              :             }
    7776              :           break;
    7777           11 :         case CFN_BUILT_IN_BSWAP16:
    7778           11 :           if (call_expr_nargs (_p0) == 1)
    7779              :     {
    7780           11 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7781           11 :               switch (TREE_CODE (_p1))
    7782              :                 {
    7783            9 :                 case INTEGER_CST:
    7784            9 :                   {
    7785            9 :                     {
    7786            9 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7787            9 :                       tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP16);
    7788            9 :                       if (res) return res;
    7789              :                     }
    7790            9 :                     break;
    7791              :                   }
    7792            1 :                 case CALL_EXPR:
    7793            1 :                   switch (get_call_combined_fn (_p1))
    7794              :                     {
    7795            1 :                     case CFN_BUILT_IN_BSWAP16:
    7796            1 :                       if (call_expr_nargs (_p1) == 1)
    7797              :     {
    7798            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7799            1 :                           {
    7800            1 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    7801            1 :                             tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP16);
    7802            1 :                             if (res) return res;
    7803              :                           }
    7804              :                         }
    7805              :                       break;
    7806              :                     default:;
    7807              :                     }
    7808              :                   break;
    7809              :                 default:;
    7810              :                 }
    7811              :             }
    7812              :           break;
    7813            7 :         case CFN_BUILT_IN_BSWAP32:
    7814            7 :           if (call_expr_nargs (_p0) == 1)
    7815              :     {
    7816            7 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7817            7 :               switch (TREE_CODE (_p1))
    7818              :                 {
    7819            3 :                 case INTEGER_CST:
    7820            3 :                   {
    7821            3 :                     {
    7822            3 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7823            3 :                       tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP32);
    7824            3 :                       if (res) return res;
    7825              :                     }
    7826            3 :                     break;
    7827              :                   }
    7828            3 :                 case CALL_EXPR:
    7829            3 :                   switch (get_call_combined_fn (_p1))
    7830              :                     {
    7831            3 :                     case CFN_BUILT_IN_BSWAP32:
    7832            3 :                       if (call_expr_nargs (_p1) == 1)
    7833              :     {
    7834            3 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7835            3 :                           {
    7836            3 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    7837            3 :                             tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP32);
    7838            3 :                             if (res) return res;
    7839              :                           }
    7840              :                         }
    7841              :                       break;
    7842              :                     default:;
    7843              :                     }
    7844              :                   break;
    7845              :                 default:;
    7846              :                 }
    7847              :             }
    7848              :           break;
    7849            7 :         case CFN_BUILT_IN_BSWAP64:
    7850            7 :           if (call_expr_nargs (_p0) == 1)
    7851              :     {
    7852            7 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7853            7 :               switch (TREE_CODE (_p1))
    7854              :                 {
    7855            3 :                 case INTEGER_CST:
    7856            3 :                   {
    7857            3 :                     {
    7858            3 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7859            3 :                       tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP64);
    7860            3 :                       if (res) return res;
    7861              :                     }
    7862            3 :                     break;
    7863              :                   }
    7864            3 :                 case CALL_EXPR:
    7865            3 :                   switch (get_call_combined_fn (_p1))
    7866              :                     {
    7867            3 :                     case CFN_BUILT_IN_BSWAP64:
    7868            3 :                       if (call_expr_nargs (_p1) == 1)
    7869              :     {
    7870            3 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7871            3 :                           {
    7872            3 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    7873            3 :                             tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP64);
    7874            3 :                             if (res) return res;
    7875              :                           }
    7876              :                         }
    7877              :                       break;
    7878              :                     default:;
    7879              :                     }
    7880              :                   break;
    7881              :                 default:;
    7882              :                 }
    7883              :             }
    7884              :           break;
    7885              :         default:;
    7886              :         }
    7887              :       break;
    7888     40524913 :     default:;
    7889              :     }
    7890     40524913 :   switch (TREE_CODE (_p1))
    7891              :     {
    7892           16 :     case VEC_COND_EXPR:
    7893           16 :       {
    7894           16 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7895           16 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7896           16 :         tree _q32 = TREE_OPERAND (_p1, 2);
    7897           16 :         {
    7898           16 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    7899           16 :           if (VECTOR_TYPE_P (type)
    7900           16 :  && (TREE_CODE_CLASS (NE_EXPR) != tcc_comparison
    7901           16 :  || types_match (type, TREE_TYPE (captures[3]))
    7902           16 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    7903              :  || (optimize_vectors_before_lowering_p ()
    7904            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    7905              : )
    7906              :             {
    7907           16 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1538;
    7908           16 :               {
    7909           16 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1538;
    7910            0 :                 tree res_op0;
    7911            0 :                 res_op0 = captures[2];
    7912            0 :                 tree res_op1;
    7913            0 :                 {
    7914            0 :                   tree _o1[2], _r1;
    7915            0 :                   _o1[0] = unshare_expr (captures[0]);
    7916            0 :                   _o1[1] = captures[3];
    7917            0 :                   _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    7918            0 :                   if (EXPR_P (_r1))
    7919            0 :                     goto next_after_fail1538;
    7920            0 :                   res_op1 = _r1;
    7921              :                 }
    7922            0 :                 tree res_op2;
    7923            0 :                 {
    7924            0 :                   tree _o1[2], _r1;
    7925            0 :                   _o1[0] = captures[0];
    7926            0 :                   _o1[1] = captures[4];
    7927            0 :                   _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    7928            0 :                   if (EXPR_P (_r1))
    7929            0 :                     goto next_after_fail1538;
    7930            0 :                   res_op2 = _r1;
    7931              :                 }
    7932            0 :                 tree _r;
    7933            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7934            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
    7935            0 :                 return _r;
    7936              :               }
    7937           16 : next_after_fail1538:;
    7938              :             }
    7939              :         }
    7940           16 :         break;
    7941              :       }
    7942     40524913 :     default:;
    7943              :     }
    7944     40524913 :   switch (TREE_CODE (_p0))
    7945              :     {
    7946        96593 :     case COND_EXPR:
    7947        96593 :       {
    7948        96593 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7949        96593 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7950        96593 :         tree _q22 = TREE_OPERAND (_p0, 2);
    7951        96593 :         switch (TREE_CODE (_p1))
    7952              :           {
    7953          276 :           case COND_EXPR:
    7954          276 :             {
    7955          276 :               tree _q60 = TREE_OPERAND (_p1, 0);
    7956          276 :               tree _q61 = TREE_OPERAND (_p1, 1);
    7957          276 :               tree _q62 = TREE_OPERAND (_p1, 2);
    7958          276 :               if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    7959              :                 {
    7960           72 :                   if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    7961              :                     {
    7962           72 :                       {
    7963           72 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    7964           72 :                         const enum tree_code eqne = NE_EXPR;
    7965           72 :                         if (!HONOR_NANS (captures[1])
    7966           56 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    7967           49 :  && types_match (type, TREE_TYPE (captures[0]))
    7968           49 :  && expr_no_side_effects_p (captures[1])
    7969          114 :  && expr_no_side_effects_p (captures[2])
    7970              : )
    7971              :                           {
    7972           42 :                             if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1539;
    7973           42 :                             if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1539;
    7974           42 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1539;
    7975           42 :                             {
    7976           42 :                               tree res_op0;
    7977           42 :                               {
    7978           42 :                                 tree _o1[2], _r1;
    7979           42 :                                 {
    7980           42 :                                   tree _o2[2], _r2;
    7981           42 :                                   _o2[0] = captures[0];
    7982           42 :                                   _o2[1] = captures[3];
    7983           42 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    7984           42 :                                   _o1[0] = _r2;
    7985              :                                 }
    7986           42 :                                 {
    7987           42 :                                   tree _o2[2], _r2;
    7988           42 :                                   _o2[0] = captures[1];
    7989           42 :                                   _o2[1] = captures[2];
    7990           42 :                                   _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
    7991           42 :                                   _o1[1] = _r2;
    7992              :                                 }
    7993           42 :                                 _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    7994           42 :                                 res_op0 = _r1;
    7995              :                               }
    7996           42 :                               tree res_op1;
    7997           42 :                               res_op1 =  constant_boolean_node (eqne == NE_EXPR, type);
    7998           42 :                               tree res_op2;
    7999           42 :                               res_op2 =  constant_boolean_node (eqne != NE_EXPR, type);
    8000           42 :                               tree _r;
    8001           42 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    8002           42 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 964, __FILE__, __LINE__, true);
    8003           42 :                               return _r;
    8004              :                             }
    8005           30 : next_after_fail1539:;
    8006              :                           }
    8007              :                       }
    8008              :                     }
    8009              :                 }
    8010          234 :               if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
    8011              :                 {
    8012            0 :                   if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
    8013              :                     {
    8014            0 :                       {
    8015            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    8016            0 :                         const enum tree_code eqne = NE_EXPR;
    8017            0 :                         if (!HONOR_NANS (captures[1])
    8018            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    8019            0 :  && types_match (type, TREE_TYPE (captures[0]))
    8020            0 :  && expr_no_side_effects_p (captures[1])
    8021            0 :  && expr_no_side_effects_p (captures[2])
    8022              : )
    8023              :                           {
    8024            0 :                             if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1540;
    8025            0 :                             if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1540;
    8026            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1540;
    8027            0 :                             {
    8028            0 :                               tree res_op0;
    8029            0 :                               {
    8030            0 :                                 tree _o1[2], _r1;
    8031            0 :                                 {
    8032            0 :                                   tree _o2[2], _r2;
    8033            0 :                                   _o2[0] = captures[0];
    8034            0 :                                   _o2[1] = captures[3];
    8035            0 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    8036            0 :                                   _o1[0] = _r2;
    8037              :                                 }
    8038            0 :                                 {
    8039            0 :                                   tree _o2[2], _r2;
    8040            0 :                                   _o2[0] = captures[1];
    8041            0 :                                   _o2[1] = captures[2];
    8042            0 :                                   _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
    8043            0 :                                   _o1[1] = _r2;
    8044              :                                 }
    8045            0 :                                 _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8046            0 :                                 res_op0 = _r1;
    8047              :                               }
    8048            0 :                               tree res_op1;
    8049            0 :                               res_op1 =  constant_boolean_node (eqne != NE_EXPR, type);
    8050            0 :                               tree res_op2;
    8051            0 :                               res_op2 =  constant_boolean_node (eqne == NE_EXPR, type);
    8052            0 :                               tree _r;
    8053            0 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    8054            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 965, __FILE__, __LINE__, true);
    8055            0 :                               return _r;
    8056              :                             }
    8057            0 : next_after_fail1540:;
    8058              :                           }
    8059              :                       }
    8060              :                     }
    8061              :                 }
    8062              :               break;
    8063              :             }
    8064              :           default:;
    8065              :           }
    8066              :         break;
    8067              :       }
    8068          188 :     case VEC_COND_EXPR:
    8069          188 :       {
    8070          188 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8071          188 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8072          188 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8073          188 :         switch (TREE_CODE (_p1))
    8074              :           {
    8075            8 :           case VEC_COND_EXPR:
    8076            8 :             {
    8077            8 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8078            8 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8079            8 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8080            8 :               if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    8081              :                 {
    8082            0 :                   if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    8083              :                     {
    8084            0 :                       {
    8085            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    8086            0 :                         const enum tree_code eqne = NE_EXPR;
    8087            0 :                         if (!HONOR_NANS (captures[1])
    8088            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    8089            0 :  && types_match (type, TREE_TYPE (captures[0]))
    8090            0 :  && expr_no_side_effects_p (captures[1])
    8091            0 :  && expr_no_side_effects_p (captures[2])
    8092              : )
    8093              :                           {
    8094            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1541;
    8095            0 :                             {
    8096            0 :                               tree res_op0;
    8097            0 :                               {
    8098            0 :                                 tree _o1[2], _r1;
    8099            0 :                                 {
    8100            0 :                                   tree _o2[2], _r2;
    8101            0 :                                   _o2[0] = captures[0];
    8102            0 :                                   _o2[1] = captures[3];
    8103            0 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    8104            0 :                                   _o1[0] = _r2;
    8105              :                                 }
    8106            0 :                                 {
    8107            0 :                                   tree _o2[2], _r2;
    8108            0 :                                   _o2[0] = captures[1];
    8109            0 :                                   _o2[1] = captures[2];
    8110            0 :                                   _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
    8111            0 :                                   _o1[1] = _r2;
    8112              :                                 }
    8113            0 :                                 _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8114            0 :                                 res_op0 = _r1;
    8115              :                               }
    8116            0 :                               tree res_op1;
    8117            0 :                               res_op1 =  constant_boolean_node (eqne == NE_EXPR, type);
    8118            0 :                               tree res_op2;
    8119            0 :                               res_op2 =  constant_boolean_node (eqne != NE_EXPR, type);
    8120            0 :                               tree _r;
    8121            0 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8122            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 964, __FILE__, __LINE__, true);
    8123            0 :                               return _r;
    8124              :                             }
    8125            0 : next_after_fail1541:;
    8126              :                           }
    8127              :                       }
    8128              :                     }
    8129              :                 }
    8130            8 :               if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
    8131              :                 {
    8132            8 :                   if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
    8133              :                     {
    8134            8 :                       {
    8135            8 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    8136            8 :                         const enum tree_code eqne = NE_EXPR;
    8137            8 :                         if (!HONOR_NANS (captures[1])
    8138            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    8139            0 :  && types_match (type, TREE_TYPE (captures[0]))
    8140            0 :  && expr_no_side_effects_p (captures[1])
    8141            8 :  && expr_no_side_effects_p (captures[2])
    8142              : )
    8143              :                           {
    8144            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1542;
    8145            0 :                             {
    8146            0 :                               tree res_op0;
    8147            0 :                               {
    8148            0 :                                 tree _o1[2], _r1;
    8149            0 :                                 {
    8150            0 :                                   tree _o2[2], _r2;
    8151            0 :                                   _o2[0] = captures[0];
    8152            0 :                                   _o2[1] = captures[3];
    8153            0 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    8154            0 :                                   _o1[0] = _r2;
    8155              :                                 }
    8156            0 :                                 {
    8157            0 :                                   tree _o2[2], _r2;
    8158            0 :                                   _o2[0] = captures[1];
    8159            0 :                                   _o2[1] = captures[2];
    8160            0 :                                   _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
    8161            0 :                                   _o1[1] = _r2;
    8162              :                                 }
    8163            0 :                                 _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8164            0 :                                 res_op0 = _r1;
    8165              :                               }
    8166            0 :                               tree res_op1;
    8167            0 :                               res_op1 =  constant_boolean_node (eqne != NE_EXPR, type);
    8168            0 :                               tree res_op2;
    8169            0 :                               res_op2 =  constant_boolean_node (eqne == NE_EXPR, type);
    8170            0 :                               tree _r;
    8171            0 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8172            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 965, __FILE__, __LINE__, true);
    8173            0 :                               return _r;
    8174              :                             }
    8175            0 : next_after_fail1542:;
    8176              :                           }
    8177              :                       }
    8178              :                     }
    8179              :                 }
    8180              :               break;
    8181              :             }
    8182              :           default:;
    8183              :           }
    8184              :         break;
    8185              :       }
    8186        18071 :     case LT_EXPR:
    8187        18071 :       {
    8188        18071 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8189        18071 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8190        18071 :         if (integer_zerop (_p1))
    8191              :           {
    8192        16571 :             {
    8193        16571 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8194        16571 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
    8195        16571 :               if (res) return res;
    8196              :             }
    8197              :           }
    8198        15137 :         if (integer_truep (_p1))
    8199              :           {
    8200          547 :             {
    8201          547 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8202          547 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
    8203          547 :               if (res) return res;
    8204              :             }
    8205              :           }
    8206              :         break;
    8207              :       }
    8208        11872 :     case LE_EXPR:
    8209        11872 :       {
    8210        11872 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8211        11872 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8212        11872 :         if (integer_zerop (_p1))
    8213              :           {
    8214         9311 :             {
    8215         9311 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8216         9311 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
    8217         9311 :               if (res) return res;
    8218              :             }
    8219              :           }
    8220        11080 :         if (integer_truep (_p1))
    8221              :           {
    8222          461 :             {
    8223          461 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8224          461 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
    8225          461 :               if (res) return res;
    8226              :             }
    8227              :           }
    8228              :         break;
    8229              :       }
    8230        63220 :     case EQ_EXPR:
    8231        63220 :       {
    8232        63220 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8233        63220 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8234        63220 :         if (integer_zerop (_p1))
    8235              :           {
    8236        35581 :             {
    8237        35581 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8238        35581 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
    8239        35581 :               if (res) return res;
    8240              :             }
    8241              :           }
    8242        62099 :         if (integer_truep (_p1))
    8243              :           {
    8244        21941 :             {
    8245        21941 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8246        21941 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
    8247        21941 :               if (res) return res;
    8248              :             }
    8249              :           }
    8250              :         break;
    8251              :       }
    8252        68520 :     case NE_EXPR:
    8253        68520 :       {
    8254        68520 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8255        68520 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8256        68520 :         if (integer_zerop (_p1))
    8257              :           {
    8258        56702 :             {
    8259        56702 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8260        56702 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
    8261        56702 :               if (res) return res;
    8262              :             }
    8263              :           }
    8264        34349 :         if (integer_truep (_p1))
    8265              :           {
    8266          141 :             {
    8267          141 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8268          141 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
    8269          141 :               if (res) return res;
    8270              :             }
    8271              :           }
    8272              :         break;
    8273              :       }
    8274         6123 :     case GE_EXPR:
    8275         6123 :       {
    8276         6123 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8277         6123 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8278         6123 :         if (integer_zerop (_p1))
    8279              :           {
    8280         4174 :             {
    8281         4174 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8282         4174 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
    8283         4174 :               if (res) return res;
    8284              :             }
    8285              :           }
    8286         5465 :         if (integer_truep (_p1))
    8287              :           {
    8288          478 :             {
    8289          478 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8290          478 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
    8291          478 :               if (res) return res;
    8292              :             }
    8293              :           }
    8294              :         break;
    8295              :       }
    8296        35380 :     case GT_EXPR:
    8297        35380 :       {
    8298        35380 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8299        35380 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8300        35380 :         if (integer_zerop (_p1))
    8301              :           {
    8302        33314 :             {
    8303        33314 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8304        33314 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
    8305        33314 :               if (res) return res;
    8306              :             }
    8307              :           }
    8308        29394 :         if (integer_truep (_p1))
    8309              :           {
    8310          320 :             {
    8311          320 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8312          320 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
    8313          320 :               if (res) return res;
    8314              :             }
    8315              :           }
    8316              :         break;
    8317              :       }
    8318       128161 :     case UNORDERED_EXPR:
    8319       128161 :       {
    8320       128161 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8321       128161 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8322       128161 :         if (integer_zerop (_p1))
    8323              :           {
    8324       125953 :             {
    8325       125953 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8326       125953 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
    8327       125953 :               if (res) return res;
    8328              :             }
    8329              :           }
    8330       127771 :         if (integer_truep (_p1))
    8331              :           {
    8332           42 :             {
    8333           42 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8334           42 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
    8335           42 :               if (res) return res;
    8336              :             }
    8337              :           }
    8338              :         break;
    8339              :       }
    8340          125 :     case ORDERED_EXPR:
    8341          125 :       {
    8342          125 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8343          125 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8344          125 :         if (integer_zerop (_p1))
    8345              :           {
    8346           42 :             {
    8347           42 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8348           42 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
    8349           42 :               if (res) return res;
    8350              :             }
    8351              :           }
    8352           83 :         if (integer_truep (_p1))
    8353              :           {
    8354            0 :             {
    8355            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8356            0 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
    8357            0 :               if (res) return res;
    8358              :             }
    8359              :           }
    8360              :         break;
    8361              :       }
    8362          225 :     case UNLT_EXPR:
    8363          225 :       {
    8364          225 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8365          225 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8366          225 :         if (integer_zerop (_p1))
    8367              :           {
    8368           28 :             {
    8369           28 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8370           28 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
    8371           28 :               if (res) return res;
    8372              :             }
    8373              :           }
    8374          197 :         if (integer_truep (_p1))
    8375              :           {
    8376          169 :             {
    8377          169 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8378          169 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
    8379          169 :               if (res) return res;
    8380              :             }
    8381              :           }
    8382              :         break;
    8383              :       }
    8384         1442 :     case UNLE_EXPR:
    8385         1442 :       {
    8386         1442 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8387         1442 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8388         1442 :         if (integer_zerop (_p1))
    8389              :           {
    8390          104 :             {
    8391          104 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8392          104 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
    8393          104 :               if (res) return res;
    8394              :             }
    8395              :           }
    8396         1338 :         if (integer_truep (_p1))
    8397              :           {
    8398         1310 :             {
    8399         1310 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8400         1310 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
    8401         1310 :               if (res) return res;
    8402              :             }
    8403              :           }
    8404              :         break;
    8405              :       }
    8406         2800 :     case UNGT_EXPR:
    8407         2800 :       {
    8408         2800 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8409         2800 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8410         2800 :         if (integer_zerop (_p1))
    8411              :           {
    8412           96 :             {
    8413           96 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8414           96 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
    8415           96 :               if (res) return res;
    8416              :             }
    8417              :           }
    8418         2704 :         if (integer_truep (_p1))
    8419              :           {
    8420         2556 :             {
    8421         2556 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8422         2556 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
    8423         2556 :               if (res) return res;
    8424              :             }
    8425              :           }
    8426              :         break;
    8427              :       }
    8428          403 :     case UNGE_EXPR:
    8429          403 :       {
    8430          403 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8431          403 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8432          403 :         if (integer_zerop (_p1))
    8433              :           {
    8434           16 :             {
    8435           16 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8436           16 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
    8437           16 :               if (res) return res;
    8438              :             }
    8439              :           }
    8440          387 :         if (integer_truep (_p1))
    8441              :           {
    8442          219 :             {
    8443          219 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8444          219 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
    8445          219 :               if (res) return res;
    8446              :             }
    8447              :           }
    8448              :         break;
    8449              :       }
    8450          175 :     case UNEQ_EXPR:
    8451          175 :       {
    8452          175 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8453          175 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8454          175 :         if (integer_zerop (_p1))
    8455              :           {
    8456            0 :             {
    8457            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8458            0 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
    8459            0 :               if (res) return res;
    8460              :             }
    8461              :           }
    8462          175 :         if (integer_truep (_p1))
    8463              :           {
    8464          132 :             {
    8465          132 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8466          132 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
    8467          132 :               if (res) return res;
    8468              :             }
    8469              :           }
    8470              :         break;
    8471              :       }
    8472           27 :     case LTGT_EXPR:
    8473           27 :       {
    8474           27 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8475           27 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8476           27 :         if (integer_zerop (_p1))
    8477              :           {
    8478            6 :             {
    8479            6 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8480            6 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
    8481            6 :               if (res) return res;
    8482              :             }
    8483              :           }
    8484           27 :         if (integer_truep (_p1))
    8485              :           {
    8486            0 :             {
    8487            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8488            0 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
    8489            0 :               if (res) return res;
    8490              :             }
    8491              :           }
    8492              :         break;
    8493              :       }
    8494       104316 :     case MINUS_EXPR:
    8495       104316 :       {
    8496       104316 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8497       104316 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8498       104316 :         if (integer_zerop (_p1))
    8499              :           {
    8500        34699 :             {
    8501        34699 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8502        34699 :               tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, NE_EXPR);
    8503        34699 :               if (res) return res;
    8504              :             }
    8505              :           }
    8506              :         break;
    8507              :       }
    8508        26760 :     case POINTER_DIFF_EXPR:
    8509        26760 :       {
    8510        26760 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8511        26760 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8512        26760 :         if (integer_zerop (_p1))
    8513              :           {
    8514        14795 :             {
    8515        14795 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8516        14795 :               tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, NE_EXPR);
    8517        14795 :               if (res) return res;
    8518              :             }
    8519              :           }
    8520              :         break;
    8521              :       }
    8522        95074 :     case MULT_EXPR:
    8523        95074 :       {
    8524        95074 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8525        95074 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8526        95074 :         switch (TREE_CODE (_q21))
    8527              :           {
    8528        77544 :           case INTEGER_CST:
    8529        77544 :             {
    8530        77544 :               switch (TREE_CODE (_p1))
    8531              :                 {
    8532        51770 :                 case INTEGER_CST:
    8533        51770 :                   {
    8534        51770 :                     {
    8535        51770 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8536        51770 :                       tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, NE_EXPR);
    8537        51770 :                       if (res) return res;
    8538              :                     }
    8539        35241 :                     break;
    8540              :                   }
    8541        61015 :                 default:;
    8542              :                 }
    8543        61015 :             if (integer_zerop (_p1))
    8544              :               {
    8545        12614 :                 {
    8546        12614 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    8547        12614 :                   tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8548        12614 :                   if (res) return res;
    8549              :                 }
    8550              :               }
    8551              :               break;
    8552              :             }
    8553              :           default:;
    8554              :           }
    8555              :         break;
    8556              :       }
    8557     40390474 :     default:;
    8558              :     }
    8559     40390474 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8560              :     {
    8561       123843 :       {
    8562       123843 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8563       123843 :         tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, NE_EXPR);
    8564       123843 :         if (res) return res;
    8565              :       }
    8566              :     }
    8567     40273316 :   switch (TREE_CODE (_p0))
    8568              :     {
    8569      8199781 :     CASE_CONVERT:
    8570      8199781 :       {
    8571      8199781 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8572      8199781 :         switch (TREE_CODE (_p1))
    8573              :           {
    8574      3106498 :           CASE_CONVERT:
    8575      3106498 :             {
    8576      3106498 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8577      3106498 :               {
    8578      3106498 :                 tree _q40_pops[1];
    8579      3106498 :                 if (tree_maybe_bit_not (_q40, _q40_pops))
    8580              :                   {
    8581            0 :                     tree _q50 = _q40_pops[0];
    8582            0 :                     {
    8583            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    8584            0 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, NE_EXPR);
    8585            0 :                       if (res) return res;
    8586              :                     }
    8587              :                   }
    8588              :               }
    8589      3106498 :               break;
    8590              :             }
    8591      8199781 :           default:;
    8592              :           }
    8593      8199781 :         {
    8594      8199781 :           tree _q20_pops[1];
    8595      8199781 :           if (tree_maybe_bit_not (_q20, _q20_pops))
    8596              :             {
    8597        12515 :               tree _q30 = _q20_pops[0];
    8598        12515 :               switch (TREE_CODE (_p1))
    8599              :                 {
    8600            0 :                 CASE_CONVERT:
    8601            0 :                   {
    8602            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    8603            0 :                     {
    8604            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    8605            0 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, NE_EXPR);
    8606            0 :                       if (res) return res;
    8607              :                     }
    8608            0 :                     break;
    8609              :                   }
    8610              :                 default:;
    8611              :                 }
    8612              :             }
    8613              :         }
    8614      8199781 :         break;
    8615              :       }
    8616     40273316 :     default:;
    8617              :     }
    8618     40273316 :   {
    8619     40273316 :     tree _p1_pops[1];
    8620     40273316 :     if (tree_maybe_bit_not (_p1, _p1_pops))
    8621              :       {
    8622     30097569 :         tree _q30 = _p1_pops[0];
    8623     30097569 :         {
    8624     30097569 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    8625     30097569 :           tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, NE_EXPR);
    8626     30097569 :           if (res) return res;
    8627              :         }
    8628              :       }
    8629              :   }
    8630     40273316 :   switch (TREE_CODE (_p0))
    8631              :     {
    8632        13363 :     case BIT_NOT_EXPR:
    8633        13363 :       {
    8634        13363 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8635        13363 :         switch (TREE_CODE (_p1))
    8636              :           {
    8637           11 :           case BIT_NOT_EXPR:
    8638           11 :             {
    8639           11 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8640           11 :               {
    8641           11 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
    8642           11 :                 tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, NE_EXPR);
    8643           11 :                 if (res) return res;
    8644              :               }
    8645            0 :               break;
    8646              :             }
    8647        13352 :           default:;
    8648              :           }
    8649        13352 :       {
    8650        13352 :         tree _p1_pops[1];
    8651        13352 :         if (tree_nop_convert (_p1, _p1_pops))
    8652              :           {
    8653           80 :             tree _q40 = _p1_pops[0];
    8654           80 :             switch (TREE_CODE (_q40))
    8655              :               {
    8656            0 :               case BIT_NOT_EXPR:
    8657            0 :                 {
    8658            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    8659            0 :                   {
    8660            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
    8661            0 :                     tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, NE_EXPR);
    8662            0 :                     if (res) return res;
    8663              :                   }
    8664            0 :                   break;
    8665              :                 }
    8666              :               default:;
    8667              :               }
    8668              :           }
    8669              :       }
    8670        13352 :       if (CONSTANT_CLASS_P (_p1))
    8671              :         {
    8672        12166 :           {
    8673        12166 :             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8674        12166 :             tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8675        12166 :             if (res) return res;
    8676              :           }
    8677              :         }
    8678              :         break;
    8679              :       }
    8680     40261139 :     default:;
    8681              :     }
    8682     40261139 : {
    8683     40261139 :   tree _p0_pops[1];
    8684     40261139 :   if (tree_maybe_bit_not (_p0, _p0_pops))
    8685              :     {
    8686       283163 :       tree _q20 = _p0_pops[0];
    8687       283163 :       {
    8688       283163 :         tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
    8689       283163 :         tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, NE_EXPR);
    8690       283163 :         if (res) return res;
    8691              :       }
    8692              :     }
    8693              : }
    8694     40261137 : {
    8695     40261137 :   tree _p0_pops[1];
    8696     40261137 :   if (tree_nop_convert (_p0, _p0_pops))
    8697              :     {
    8698      4784882 :       tree _q20 = _p0_pops[0];
    8699      4784882 :       switch (TREE_CODE (_q20))
    8700              :         {
    8701            1 :         case BIT_NOT_EXPR:
    8702            1 :           {
    8703            1 :             tree _q30 = TREE_OPERAND (_q20, 0);
    8704            1 :             switch (TREE_CODE (_p1))
    8705              :               {
    8706            0 :               case BIT_NOT_EXPR:
    8707            0 :                 {
    8708            0 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    8709            0 :                   {
    8710            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
    8711            0 :                     tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, NE_EXPR);
    8712            0 :                     if (res) return res;
    8713              :                   }
    8714            0 :                   break;
    8715              :                 }
    8716            1 :               default:;
    8717              :               }
    8718            1 :           {
    8719            1 :             tree _p1_pops[1];
    8720            1 :             if (tree_nop_convert (_p1, _p1_pops))
    8721              :               {
    8722            0 :                 tree _q50 = _p1_pops[0];
    8723            0 :                 switch (TREE_CODE (_q50))
    8724              :                   {
    8725            0 :                   case BIT_NOT_EXPR:
    8726            0 :                     {
    8727            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    8728            0 :                       {
    8729            0 :                         tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
    8730            0 :                         tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, NE_EXPR);
    8731            0 :                         if (res) return res;
    8732              :                       }
    8733            0 :                       break;
    8734              :                     }
    8735              :                   default:;
    8736              :                   }
    8737              :               }
    8738              :           }
    8739            1 :           if (CONSTANT_CLASS_P (_p1))
    8740              :             {
    8741            1 :               {
    8742            1 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    8743            1 :                 tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8744            1 :                 if (res) return res;
    8745              :               }
    8746              :             }
    8747              :             break;
    8748              :           }
    8749              :         default:;
    8750              :         }
    8751              :     }
    8752              : }
    8753     40261136 :   switch (TREE_CODE (_p1))
    8754              :     {
    8755       693480 :     case REAL_CST:
    8756       693480 :       {
    8757       693480 :         {
    8758       693480 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8759       693480 :           tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, NE_EXPR);
    8760       693480 :           if (res) return res;
    8761              :         }
    8762       626216 :         break;
    8763              :       }
    8764     40193872 :     default:;
    8765              :     }
    8766     40193872 :   switch (TREE_CODE (_p0))
    8767              :     {
    8768      1330335 :     case PLUS_EXPR:
    8769      1330335 :       {
    8770      1330335 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8771      1330335 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8772      1330335 :         switch (TREE_CODE (_q21))
    8773              :           {
    8774         3850 :           case REAL_CST:
    8775         3850 :             {
    8776         3850 :               switch (TREE_CODE (_p1))
    8777              :                 {
    8778         3069 :                 case REAL_CST:
    8779         3069 :                   {
    8780         3069 :                     {
    8781         3069 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8782         3069 :                       tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR);
    8783         3069 :                       if (res) return res;
    8784              :                     }
    8785         3069 :                     break;
    8786              :                   }
    8787              :                 default:;
    8788              :                 }
    8789              :               break;
    8790              :             }
    8791              :           default:;
    8792              :           }
    8793              :         break;
    8794              :       }
    8795        69613 :     case MINUS_EXPR:
    8796        69613 :       {
    8797        69613 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8798        69613 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8799        69613 :         switch (TREE_CODE (_q21))
    8800              :           {
    8801         3215 :           case REAL_CST:
    8802         3215 :             {
    8803         3215 :               switch (TREE_CODE (_p1))
    8804              :                 {
    8805         2849 :                 case REAL_CST:
    8806         2849 :                   {
    8807         2849 :                     {
    8808         2849 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8809         2849 :                       tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, MINUS_EXPR, NE_EXPR);
    8810         2849 :                       if (res) return res;
    8811              :                     }
    8812         2849 :                     break;
    8813              :                   }
    8814              :                 default:;
    8815              :                 }
    8816              :               break;
    8817              :             }
    8818        69613 :           default:;
    8819              :           }
    8820        69613 :         switch (TREE_CODE (_q20))
    8821              :           {
    8822           87 :           case REAL_CST:
    8823           87 :             {
    8824           87 :               switch (TREE_CODE (_p1))
    8825              :                 {
    8826           44 :                 case REAL_CST:
    8827           44 :                   {
    8828           44 :                     {
    8829           44 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8830           44 :                       tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, NE_EXPR);
    8831           44 :                       if (res) return res;
    8832              :                     }
    8833           44 :                     break;
    8834              :                   }
    8835              :                 default:;
    8836              :                 }
    8837              :               break;
    8838              :             }
    8839              :           default:;
    8840              :           }
    8841              :         break;
    8842              :       }
    8843         9956 :     case FLOAT_EXPR:
    8844         9956 :       {
    8845         9956 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8846         9956 :         switch (TREE_CODE (_p1))
    8847              :           {
    8848         1115 :           case FLOAT_EXPR:
    8849         1115 :             {
    8850         1115 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8851         1115 :               {
    8852         1115 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8853         1115 :                 tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8854         1115 :                 if (res) return res;
    8855              :               }
    8856          971 :               break;
    8857              :             }
    8858         1808 :           case REAL_CST:
    8859         1808 :             {
    8860         1808 :               {
    8861         1808 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8862         1808 :                 tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8863         1808 :                 if (res) return res;
    8864              :               }
    8865         1687 :               break;
    8866              :             }
    8867              :           default:;
    8868              :           }
    8869              :         break;
    8870              :       }
    8871         2045 :     case EXACT_DIV_EXPR:
    8872         2045 :       {
    8873         2045 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8874         2045 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8875         2045 :         switch (TREE_CODE (_p1))
    8876              :           {
    8877           36 :           case INTEGER_CST:
    8878           36 :             {
    8879           36 :               {
    8880           36 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8881           36 :                 tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR);
    8882           36 :                 if (res) return res;
    8883              :               }
    8884            0 :               break;
    8885              :             }
    8886              :           default:;
    8887              :           }
    8888              :         break;
    8889              :       }
    8890         6195 :     case NEGATE_EXPR:
    8891         6195 :       {
    8892         6195 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8893         6195 :         switch (TREE_CODE (_p1))
    8894              :           {
    8895            4 :           case NEGATE_EXPR:
    8896            4 :             {
    8897            4 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8898            4 :               {
    8899            4 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    8900            4 :                 tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8901            4 :                 if (res) return res;
    8902              :               }
    8903            0 :               break;
    8904              :             }
    8905         6191 :           default:;
    8906              :           }
    8907         6191 :       if (CONSTANT_CLASS_P (_p1))
    8908              :         {
    8909          580 :           {
    8910          580 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8911          580 :             tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8912          580 :             if (res) return res;
    8913              :           }
    8914              :         }
    8915              :         break;
    8916              :       }
    8917         1940 :     case ABS_EXPR:
    8918         1940 :       {
    8919         1940 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8920         1940 :         if (zerop (_p1))
    8921              :           {
    8922           72 :             {
    8923           72 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8924           72 :               const enum tree_code eqne = NE_EXPR;
    8925           72 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1543;
    8926           72 :               {
    8927           72 :                 tree res_op0;
    8928           72 :                 res_op0 = captures[0];
    8929           72 :                 tree res_op1;
    8930           72 :                 res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    8931           72 :                 tree _r;
    8932           72 :                 _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
    8933           72 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    8934            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    8935           72 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
    8936           72 :                 return _r;
    8937              :               }
    8938            0 : next_after_fail1543:;
    8939              :             }
    8940              :           }
    8941              :         break;
    8942              :       }
    8943         1698 :     case ABSU_EXPR:
    8944         1698 :       {
    8945         1698 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8946         1698 :         if (zerop (_p1))
    8947              :           {
    8948           65 :             {
    8949           65 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8950           65 :               const enum tree_code eqne = NE_EXPR;
    8951           65 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1544;
    8952           65 :               {
    8953           65 :                 tree res_op0;
    8954           65 :                 res_op0 = captures[0];
    8955           65 :                 tree res_op1;
    8956           65 :                 res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    8957           65 :                 tree _r;
    8958           65 :                 _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
    8959           65 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    8960            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    8961           65 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
    8962           65 :                 return _r;
    8963              :               }
    8964            0 : next_after_fail1544:;
    8965              :             }
    8966              :           }
    8967              :         break;
    8968              :       }
    8969      8199697 :     CASE_CONVERT:
    8970      8199697 :       {
    8971      8199697 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8972      8199697 :         switch (TREE_CODE (_p1))
    8973              :           {
    8974      3106498 :           CASE_CONVERT:
    8975      3106498 :             {
    8976      3106498 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8977      3106498 :               {
    8978      3106498 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8979      3106498 :                 tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, NE_EXPR);
    8980      3106498 :                 if (res) return res;
    8981              :               }
    8982      2905813 :               break;
    8983              :             }
    8984      7999012 :           default:;
    8985              :           }
    8986      7999012 :         {
    8987      7999012 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
    8988      7999012 :           tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, NE_EXPR);
    8989      7999012 :           if (res) return res;
    8990              :         }
    8991      4593370 :         switch (TREE_CODE (_q20))
    8992              :           {
    8993           12 :           case BIT_IOR_EXPR:
    8994           12 :             {
    8995           12 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8996           12 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8997           12 :               switch (TREE_CODE (_q31))
    8998              :                 {
    8999            0 :                 case INTEGER_CST:
    9000            0 :                   {
    9001            0 :                     switch (TREE_CODE (_p1))
    9002              :                       {
    9003            0 :                       case INTEGER_CST:
    9004            0 :                         {
    9005            0 :                           {
    9006            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
    9007            0 :                             tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, NE_EXPR);
    9008            0 :                             if (res) return res;
    9009              :                           }
    9010            0 :                           break;
    9011              :                         }
    9012              :                       default:;
    9013              :                       }
    9014              :                     break;
    9015              :                   }
    9016              :                 default:;
    9017              :                 }
    9018              :               break;
    9019              :             }
    9020              :           default:;
    9021              :           }
    9022              :         break;
    9023              :       }
    9024     14942292 :     case SSA_NAME:
    9025     14942292 :       {
    9026     14942292 :         switch (TREE_CODE (_p1))
    9027              :           {
    9028       313601 :           case ADDR_EXPR:
    9029       313601 :             {
    9030       313601 :               {
    9031       313601 :                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9032       313601 :                 tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, NE_EXPR);
    9033       313601 :                 if (res) return res;
    9034              :               }
    9035       313599 :               break;
    9036              :             }
    9037              :           default:;
    9038              :           }
    9039              :         break;
    9040              :       }
    9041       238060 :     case BIT_IOR_EXPR:
    9042       238060 :       {
    9043       238060 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9044       238060 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9045       238060 :         switch (TREE_CODE (_q21))
    9046              :           {
    9047          970 :           case INTEGER_CST:
    9048          970 :             {
    9049          970 :               switch (TREE_CODE (_p1))
    9050              :                 {
    9051          233 :                 case INTEGER_CST:
    9052          233 :                   {
    9053          233 :                     {
    9054          233 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    9055          233 :                       tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, NE_EXPR);
    9056          233 :                       if (res) return res;
    9057              :                     }
    9058          233 :                     break;
    9059              :                   }
    9060              :                 default:;
    9061              :                 }
    9062              :               break;
    9063              :             }
    9064              :           default:;
    9065              :           }
    9066              :         break;
    9067              :       }
    9068        28972 :     case BIT_XOR_EXPR:
    9069        28972 :       {
    9070        28972 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9071        28972 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9072        28972 :         if (integer_zerop (_p1))
    9073              :           {
    9074        24647 :             {
    9075        24647 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9076        24647 :               tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, NE_EXPR);
    9077        24647 :               if (res) return res;
    9078              :             }
    9079              :           }
    9080         4325 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9081              :           {
    9082            1 :             {
    9083            1 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9084            1 :               tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, NE_EXPR);
    9085            1 :               if (res) return res;
    9086              :             }
    9087              :           }
    9088         4324 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9089              :           {
    9090            2 :             {
    9091            2 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9092            2 :               tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, NE_EXPR);
    9093            2 :               if (res) return res;
    9094              :             }
    9095              :           }
    9096              :         break;
    9097              :       }
    9098      2752764 :     case CALL_EXPR:
    9099      2752764 :       switch (get_call_combined_fn (_p0))
    9100              :         {
    9101           42 :         case CFN_BUILT_IN_SQRTF:
    9102           42 :           if (call_expr_nargs (_p0) == 1)
    9103              :     {
    9104           42 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9105           42 :               switch (TREE_CODE (_p1))
    9106              :                 {
    9107            0 :                 case REAL_CST:
    9108            0 :                   {
    9109            0 :                     {
    9110            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9111            0 :                       tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, NE_EXPR);
    9112            0 :                       if (res) return res;
    9113              :                     }
    9114            0 :                     break;
    9115              :                   }
    9116           42 :                 case CALL_EXPR:
    9117           42 :                   switch (get_call_combined_fn (_p1))
    9118              :                     {
    9119            0 :                     case CFN_BUILT_IN_SQRTF:
    9120            0 :                       if (call_expr_nargs (_p1) == 1)
    9121              :     {
    9122            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9123            0 :                           {
    9124            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9125            0 :                             tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, NE_EXPR);
    9126            0 :                             if (res) return res;
    9127              :                           }
    9128              :                         }
    9129              :                       break;
    9130              :                     default:;
    9131              :                     }
    9132              :                   break;
    9133              :                 default:;
    9134              :                 }
    9135              :             }
    9136              :           break;
    9137           42 :         case CFN_BUILT_IN_SQRTL:
    9138           42 :           if (call_expr_nargs (_p0) == 1)
    9139              :     {
    9140           42 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9141           42 :               switch (TREE_CODE (_p1))
    9142              :                 {
    9143            0 :                 case REAL_CST:
    9144            0 :                   {
    9145            0 :                     {
    9146            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9147            0 :                       tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, NE_EXPR);
    9148            0 :                       if (res) return res;
    9149              :                     }
    9150            0 :                     break;
    9151              :                   }
    9152           42 :                 case CALL_EXPR:
    9153           42 :                   switch (get_call_combined_fn (_p1))
    9154              :                     {
    9155            0 :                     case CFN_BUILT_IN_SQRTL:
    9156            0 :                       if (call_expr_nargs (_p1) == 1)
    9157              :     {
    9158            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9159            0 :                           {
    9160            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9161            0 :                             tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, NE_EXPR);
    9162            0 :                             if (res) return res;
    9163              :                           }
    9164              :                         }
    9165              :                       break;
    9166              :                     default:;
    9167              :                     }
    9168              :                   break;
    9169              :                 default:;
    9170              :                 }
    9171              :             }
    9172              :           break;
    9173           46 :         case CFN_BUILT_IN_SQRT:
    9174           46 :           if (call_expr_nargs (_p0) == 1)
    9175              :     {
    9176           46 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9177           46 :               switch (TREE_CODE (_p1))
    9178              :                 {
    9179            2 :                 case REAL_CST:
    9180            2 :                   {
    9181            2 :                     {
    9182            2 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9183            2 :                       tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, NE_EXPR);
    9184            2 :                       if (res) return res;
    9185              :                     }
    9186            2 :                     break;
    9187              :                   }
    9188           43 :                 case CALL_EXPR:
    9189           43 :                   switch (get_call_combined_fn (_p1))
    9190              :                     {
    9191            0 :                     case CFN_BUILT_IN_SQRT:
    9192            0 :                       if (call_expr_nargs (_p1) == 1)
    9193              :     {
    9194            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9195            0 :                           {
    9196            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9197            0 :                             tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, NE_EXPR);
    9198            0 :                             if (res) return res;
    9199              :                           }
    9200              :                         }
    9201              :                       break;
    9202              :                     default:;
    9203              :                     }
    9204              :                   break;
    9205              :                 default:;
    9206              :                 }
    9207              :             }
    9208              :           break;
    9209            0 :         case CFN_SQRT:
    9210            0 :           if (call_expr_nargs (_p0) == 1)
    9211              :     {
    9212            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9213            0 :               switch (TREE_CODE (_p1))
    9214              :                 {
    9215            0 :                 case REAL_CST:
    9216            0 :                   {
    9217            0 :                     {
    9218            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9219            0 :                       tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_SQRT, NE_EXPR);
    9220            0 :                       if (res) return res;
    9221              :                     }
    9222            0 :                     break;
    9223              :                   }
    9224            0 :                 case CALL_EXPR:
    9225            0 :                   switch (get_call_combined_fn (_p1))
    9226              :                     {
    9227            0 :                     case CFN_SQRT:
    9228            0 :                       if (call_expr_nargs (_p1) == 1)
    9229              :     {
    9230            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9231            0 :                           {
    9232            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9233            0 :                             tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_SQRT, NE_EXPR);
    9234            0 :                             if (res) return res;
    9235              :                           }
    9236              :                         }
    9237              :                       break;
    9238              :                     default:;
    9239              :                     }
    9240              :                   break;
    9241              :                 default:;
    9242              :                 }
    9243              :             }
    9244              :           break;
    9245              :         default:;
    9246              :         }
    9247              :       break;
    9248     36561889 :     default:;
    9249              :     }
    9250     36561889 :   switch (TREE_CODE (_p1))
    9251              :     {
    9252          840 :     case BIT_XOR_EXPR:
    9253          840 :       {
    9254          840 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9255          840 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9256          840 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9257              :           {
    9258            0 :             {
    9259            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    9260            0 :               tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, NE_EXPR);
    9261            0 :               if (res) return res;
    9262              :             }
    9263              :           }
    9264          840 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    9265              :           {
    9266            0 :             {
    9267            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    9268            0 :               tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, NE_EXPR);
    9269            0 :               if (res) return res;
    9270              :             }
    9271              :           }
    9272              :         break;
    9273              :       }
    9274     36561889 :     default:;
    9275              :     }
    9276     36561889 :   switch (TREE_CODE (_p0))
    9277              :     {
    9278      1334981 :     case BIT_AND_EXPR:
    9279      1334981 :       {
    9280      1334981 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9281      1334981 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9282      1334981 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9283              :           {
    9284          179 :             {
    9285          179 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9286          179 :               tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
    9287          179 :               if (res) return res;
    9288              :             }
    9289              :           }
    9290      1334953 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9291              :           {
    9292         4425 :             {
    9293         4425 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9294         4425 :               tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
    9295         4425 :               if (res) return res;
    9296              :             }
    9297              :           }
    9298              :         break;
    9299              :       }
    9300     36561861 :     default:;
    9301              :     }
    9302     36561861 :   switch (TREE_CODE (_p1))
    9303              :     {
    9304        15638 :     case BIT_AND_EXPR:
    9305        15638 :       {
    9306        15638 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9307        15638 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9308        15638 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9309              :           {
    9310            0 :             {
    9311            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    9312            0 :               tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
    9313            0 :               if (res) return res;
    9314              :             }
    9315              :           }
    9316        15638 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    9317              :           {
    9318            0 :             {
    9319            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    9320            0 :               tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
    9321            0 :               if (res) return res;
    9322              :             }
    9323              :           }
    9324              :         break;
    9325              :       }
    9326     36561861 :     default:;
    9327              :     }
    9328     36561861 :   switch (TREE_CODE (_p0))
    9329              :     {
    9330      4593370 :     CASE_CONVERT:
    9331      4593370 :       {
    9332      4593370 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9333      4593370 :         switch (TREE_CODE (_q20))
    9334              :           {
    9335            0 :           case BIT_AND_EXPR:
    9336            0 :             {
    9337            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9338            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9339            0 :               switch (TREE_CODE (_q30))
    9340              :                 {
    9341            0 :                 CASE_CONVERT:
    9342            0 :                   {
    9343            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    9344            0 :                     switch (TREE_CODE (_q31))
    9345              :                       {
    9346            0 :                       case INTEGER_CST:
    9347            0 :                         {
    9348            0 :                           switch (TREE_CODE (_p1))
    9349              :                             {
    9350            0 :                             CASE_CONVERT:
    9351            0 :                               {
    9352            0 :                                 tree _q70 = TREE_OPERAND (_p1, 0);
    9353            0 :                                 if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    9354              :                                   {
    9355            0 :                                     {
    9356            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q31 };
    9357            0 :                                       tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, NE_EXPR);
    9358            0 :                                       if (res) return res;
    9359              :                                     }
    9360              :                                   }
    9361              :                                 break;
    9362              :                               }
    9363              :                             default:;
    9364              :                             }
    9365              :                           break;
    9366              :                         }
    9367              :                       default:;
    9368              :                       }
    9369              :                     break;
    9370              :                   }
    9371              :                 default:;
    9372              :                 }
    9373              :               break;
    9374              :             }
    9375      4593370 :           default:;
    9376              :           }
    9377      4593370 :         switch (TREE_CODE (_p1))
    9378              :           {
    9379      2905813 :           CASE_CONVERT:
    9380      2905813 :             {
    9381      2905813 :               tree _q40 = TREE_OPERAND (_p1, 0);
    9382      2905813 :               switch (TREE_CODE (_q40))
    9383              :                 {
    9384            0 :                 case BIT_AND_EXPR:
    9385            0 :                   {
    9386            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    9387            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    9388            0 :                     switch (TREE_CODE (_q50))
    9389              :                       {
    9390            0 :                       CASE_CONVERT:
    9391            0 :                         {
    9392            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    9393            0 :                           if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    9394              :                             {
    9395            0 :                               switch (TREE_CODE (_q51))
    9396              :                                 {
    9397            0 :                                 case INTEGER_CST:
    9398            0 :                                   {
    9399            0 :                                     {
    9400            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q51 };
    9401            0 :                                       tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, NE_EXPR);
    9402            0 :                                       if (res) return res;
    9403              :                                     }
    9404            0 :                                     break;
    9405              :                                   }
    9406              :                                 default:;
    9407              :                                 }
    9408              :                             }
    9409              :                           break;
    9410              :                         }
    9411              :                       default:;
    9412              :                       }
    9413              :                     break;
    9414              :                   }
    9415              :                 default:;
    9416              :                 }
    9417              :               break;
    9418              :             }
    9419              :           default:;
    9420              :           }
    9421              :         break;
    9422              :       }
    9423       238060 :     case BIT_IOR_EXPR:
    9424       238060 :       {
    9425       238060 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9426       238060 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9427       238060 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9428              :           {
    9429          128 :             {
    9430          128 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9431          128 :               tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, NE_EXPR);
    9432          128 :               if (res) return res;
    9433              :             }
    9434              :           }
    9435       238052 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9436              :           {
    9437          253 :             {
    9438          253 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9439          253 :               tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, NE_EXPR);
    9440          253 :               if (res) return res;
    9441              :             }
    9442              :           }
    9443              :         break;
    9444              :       }
    9445     36561853 :     default:;
    9446              :     }
    9447     36561853 :   switch (TREE_CODE (_p1))
    9448              :     {
    9449          550 :     case BIT_IOR_EXPR:
    9450          550 :       {
    9451          550 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9452          550 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9453          550 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    9454              :           {
    9455            0 :             {
    9456            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    9457            0 :               tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, NE_EXPR);
    9458            0 :               if (res) return res;
    9459              :             }
    9460              :           }
    9461          550 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9462              :           {
    9463            0 :             {
    9464            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
    9465            0 :               tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, NE_EXPR);
    9466            0 :               if (res) return res;
    9467              :             }
    9468              :           }
    9469              :         break;
    9470              :       }
    9471     36561853 :     default:;
    9472              :     }
    9473     36561853 :   switch (TREE_CODE (_p0))
    9474              :     {
    9475      4593370 :     CASE_CONVERT:
    9476      4593370 :       {
    9477      4593370 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9478      4593370 :         switch (TREE_CODE (_q20))
    9479              :           {
    9480            8 :           case BIT_XOR_EXPR:
    9481            8 :             {
    9482            8 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9483            8 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9484            8 :               switch (TREE_CODE (_q31))
    9485              :                 {
    9486            0 :                 case INTEGER_CST:
    9487            0 :                   {
    9488            0 :                     switch (TREE_CODE (_p1))
    9489              :                       {
    9490            0 :                       case INTEGER_CST:
    9491            0 :                         {
    9492            0 :                           {
    9493            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
    9494            0 :                             tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, NE_EXPR);
    9495            0 :                             if (res) return res;
    9496              :                           }
    9497            0 :                           break;
    9498              :                         }
    9499              :                       default:;
    9500              :                       }
    9501              :                     break;
    9502              :                   }
    9503              :                 default:;
    9504              :                 }
    9505              :               break;
    9506              :             }
    9507              :           default:;
    9508              :           }
    9509              :         break;
    9510              :       }
    9511         4322 :     case BIT_XOR_EXPR:
    9512         4322 :       {
    9513         4322 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9514         4322 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9515         4322 :         switch (TREE_CODE (_q21))
    9516              :           {
    9517          884 :           case INTEGER_CST:
    9518          884 :             {
    9519          884 :               switch (TREE_CODE (_p1))
    9520              :                 {
    9521           10 :                 case INTEGER_CST:
    9522           10 :                   {
    9523           10 :                     {
    9524           10 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    9525           10 :                       tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, NE_EXPR);
    9526           10 :                       if (res) return res;
    9527              :                     }
    9528            0 :                     break;
    9529              :                   }
    9530              :                 default:;
    9531              :                 }
    9532              :               break;
    9533              :             }
    9534              :           default:;
    9535              :           }
    9536              :         break;
    9537              :       }
    9538     36561843 :     default:;
    9539              :     }
    9540     36561843 : {
    9541     36561843 :   tree _p0_pops[1];
    9542     36561843 :   if (tree_nop_convert (_p0, _p0_pops))
    9543              :     {
    9544      3880322 :       tree _q20 = _p0_pops[0];
    9545      3880322 :       if (integer_zerop (_p1))
    9546              :         {
    9547       886916 :           {
    9548       886916 :             tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    9549       886916 :             tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, NE_EXPR);
    9550       886916 :             if (res) return res;
    9551              :           }
    9552              :         }
    9553              :     }
    9554              : }
    9555     36056310 :   if (integer_zerop (_p1))
    9556              :     {
    9557     20562204 :       {
    9558     20562204 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    9559     20562204 :         tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, NE_EXPR);
    9560     20562204 :         if (res) return res;
    9561              :       }
    9562              :     }
    9563     35871168 :   switch (TREE_CODE (_p0))
    9564              :     {
    9565      1334953 :     case BIT_AND_EXPR:
    9566      1334953 :       {
    9567      1334953 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9568      1334953 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9569      1334953 :         switch (TREE_CODE (_p1))
    9570              :           {
    9571        14171 :           case BIT_AND_EXPR:
    9572        14171 :             {
    9573        14171 :               tree _q50 = TREE_OPERAND (_p1, 0);
    9574        14171 :               tree _q51 = TREE_OPERAND (_p1, 1);
    9575        14171 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    9576              :                 {
    9577        13926 :                   {
    9578        13926 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9579        13926 :                     tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, NE_EXPR);
    9580        13926 :                     if (res) return res;
    9581              :                   }
    9582              :                 }
    9583          245 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    9584              :                 {
    9585            2 :                   {
    9586            2 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
    9587            2 :                     tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, NE_EXPR);
    9588            2 :                     if (res) return res;
    9589              :                   }
    9590              :                 }
    9591          243 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    9592              :                 {
    9593            1 :                   {
    9594            1 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
    9595            1 :                     tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, NE_EXPR);
    9596            1 :                     if (res) return res;
    9597              :                   }
    9598              :                 }
    9599          242 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9600              :                 {
    9601            7 :                   {
    9602            7 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
    9603            7 :                     tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, NE_EXPR);
    9604            7 :                     if (res) return res;
    9605              :                   }
    9606              :                 }
    9607              :               break;
    9608              :             }
    9609      1321017 :           default:;
    9610              :           }
    9611      1321017 :         if (integer_pow2p (_q21))
    9612              :           {
    9613       648560 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9614              :               {
    9615          579 :                 {
    9616          579 :                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9617          579 :                   tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    9618          579 :                   if (res) return res;
    9619              :                 }
    9620              :               }
    9621              :           }
    9622      1320442 :         switch (TREE_CODE (_q20))
    9623              :           {
    9624       191426 :           CASE_CONVERT:
    9625       191426 :             {
    9626       191426 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9627       191426 :               if (integer_pow2p (_q21))
    9628              :                 {
    9629        94886 :                   if (integer_zerop (_p1))
    9630              :                     {
    9631        94791 :                       {
    9632        94791 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
    9633        94791 :                         tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
    9634        94791 :                         if (res) return res;
    9635              :                       }
    9636              :                     }
    9637              :                 }
    9638              :               break;
    9639              :             }
    9640      1316570 :           default:;
    9641              :           }
    9642      1316570 :         if (integer_pow2p (_q21))
    9643              :           {
    9644       644113 :             if (integer_zerop (_p1))
    9645              :               {
    9646       640689 :                 {
    9647       640689 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _q21 };
    9648       640689 :                   tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
    9649       640689 :                   if (res) return res;
    9650              :                 }
    9651              :               }
    9652              :           }
    9653              :         break;
    9654              :       }
    9655         5412 :     case GE_EXPR:
    9656         5412 :       {
    9657         5412 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9658         5412 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9659         5412 :         if (integer_zerop (_q21))
    9660              :           {
    9661          961 :             switch (TREE_CODE (_p1))
    9662              :               {
    9663            1 :               case GE_EXPR:
    9664            1 :                 {
    9665            1 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    9666            1 :                   tree _q51 = TREE_OPERAND (_p1, 1);
    9667            1 :                   if (integer_zerop (_q51))
    9668              :                     {
    9669            1 :                       {
    9670            1 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    9671            1 :                         tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR, LT_EXPR);
    9672            1 :                         if (res) return res;
    9673              :                       }
    9674              :                     }
    9675              :                   break;
    9676              :                 }
    9677            3 :               case LT_EXPR:
    9678            3 :                 {
    9679            3 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    9680            3 :                   tree _q51 = TREE_OPERAND (_p1, 1);
    9681            3 :                   if (integer_zerop (_q51))
    9682              :                     {
    9683            3 :                       {
    9684            3 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
    9685            3 :                         tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
    9686            3 :                         if (res) return res;
    9687              :                       }
    9688              :                     }
    9689              :                   break;
    9690              :                 }
    9691              :               default:;
    9692              :               }
    9693              :           }
    9694              :         break;
    9695              :       }
    9696        15081 :     case LT_EXPR:
    9697        15081 :       {
    9698        15081 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9699        15081 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9700        15081 :         if (integer_zerop (_q21))
    9701              :           {
    9702         8476 :             switch (TREE_CODE (_p1))
    9703              :               {
    9704           66 :               case LT_EXPR:
    9705           66 :                 {
    9706           66 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    9707           66 :                   tree _q51 = TREE_OPERAND (_p1, 1);
    9708           66 :                   if (integer_zerop (_q51))
    9709              :                     {
    9710           66 :                       {
    9711           66 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    9712           66 :                         tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LT_EXPR);
    9713           66 :                         if (res) return res;
    9714              :                       }
    9715              :                     }
    9716              :                   break;
    9717              :                 }
    9718           17 :               case GE_EXPR:
    9719           17 :                 {
    9720           17 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    9721           17 :                   tree _q51 = TREE_OPERAND (_p1, 1);
    9722           17 :                   if (integer_zerop (_q51))
    9723              :                     {
    9724           17 :                       {
    9725           17 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    9726           17 :                         tree res = generic_simplify_281 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
    9727           17 :                         if (res) return res;
    9728              :                       }
    9729              :                     }
    9730              :                   break;
    9731              :                 }
    9732              :               default:;
    9733              :               }
    9734              :           }
    9735              :         break;
    9736              :       }
    9737       238052 :     case BIT_IOR_EXPR:
    9738       238052 :       {
    9739       238052 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9740       238052 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9741       238052 :         switch (TREE_CODE (_q21))
    9742              :           {
    9743          261 :           CASE_CONVERT:
    9744          261 :             {
    9745          261 :               tree _q40 = TREE_OPERAND (_q21, 0);
    9746          261 :               switch (TREE_CODE (_q40))
    9747              :                 {
    9748            0 :                 case NE_EXPR:
    9749            0 :                   {
    9750            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    9751            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    9752            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9753              :                       {
    9754            0 :                         if (integer_zerop (_q51))
    9755              :                           {
    9756            0 :                             if (integer_zerop (_p1))
    9757              :                               {
    9758            0 :                                 {
    9759            0 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    9760            0 :                                   tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, NE_EXPR);
    9761            0 :                                   if (res) return res;
    9762              :                                 }
    9763              :                               }
    9764              :                           }
    9765              :                       }
    9766              :                     break;
    9767              :                   }
    9768              :                 default:;
    9769              :                 }
    9770              :               break;
    9771              :             }
    9772       238052 :           default:;
    9773              :           }
    9774       238052 :         switch (TREE_CODE (_q20))
    9775              :           {
    9776          800 :           CASE_CONVERT:
    9777          800 :             {
    9778          800 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9779          800 :               switch (TREE_CODE (_q30))
    9780              :                 {
    9781            0 :                 case NE_EXPR:
    9782            0 :                   {
    9783            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    9784            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    9785            0 :                     if (integer_zerop (_q41))
    9786              :                       {
    9787            0 :                         if ((_q21 == _q40 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q40, 0) && types_match (_q21, _q40)))
    9788              :                           {
    9789            0 :                             if (integer_zerop (_p1))
    9790              :                               {
    9791            0 :                                 {
    9792            0 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    9793            0 :                                   tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, NE_EXPR);
    9794            0 :                                   if (res) return res;
    9795              :                                 }
    9796              :                               }
    9797              :                           }
    9798              :                       }
    9799              :                     break;
    9800              :                   }
    9801              :                 default:;
    9802              :                 }
    9803              :               break;
    9804              :             }
    9805       238052 :           default:;
    9806              :           }
    9807       238052 :         switch (TREE_CODE (_q21))
    9808              :           {
    9809           24 :           case NE_EXPR:
    9810           24 :             {
    9811           24 :               tree _q40 = TREE_OPERAND (_q21, 0);
    9812           24 :               tree _q41 = TREE_OPERAND (_q21, 1);
    9813           24 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    9814              :                 {
    9815            0 :                   if (integer_zerop (_q41))
    9816              :                     {
    9817            0 :                       if (integer_zerop (_p1))
    9818              :                         {
    9819            0 :                           {
    9820            0 :                             tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    9821            0 :                             tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, NE_EXPR);
    9822            0 :                             if (res) return res;
    9823              :                           }
    9824              :                         }
    9825              :                     }
    9826              :                 }
    9827              :               break;
    9828              :             }
    9829       238052 :           default:;
    9830              :           }
    9831       238052 :         switch (TREE_CODE (_q20))
    9832              :           {
    9833            2 :           case NE_EXPR:
    9834            2 :             {
    9835            2 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9836            2 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9837            2 :               if (integer_zerop (_q31))
    9838              :                 {
    9839            1 :                   if ((_q21 == _q30 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q30, 0) && types_match (_q21, _q30)))
    9840              :                     {
    9841            0 :                       if (integer_zerop (_p1))
    9842              :                         {
    9843            0 :                           {
    9844            0 :                             tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    9845            0 :                             tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, NE_EXPR);
    9846            0 :                             if (res) return res;
    9847              :                           }
    9848              :                         }
    9849              :                     }
    9850              :                 }
    9851              :               break;
    9852              :             }
    9853              :           default:;
    9854              :           }
    9855              :         break;
    9856              :       }
    9857      4087837 :     CASE_CONVERT:
    9858      4087837 :       {
    9859      4087837 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9860      4087837 :         switch (TREE_CODE (_q20))
    9861              :           {
    9862      2761645 :           case ADDR_EXPR:
    9863      2761645 :             {
    9864      2761645 :               switch (TREE_CODE (_p1))
    9865              :                 {
    9866      2732354 :                 CASE_CONVERT:
    9867      2732354 :                   {
    9868      2732354 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    9869      2732354 :                     switch (TREE_CODE (_q40))
    9870              :                       {
    9871      2732354 :                       case ADDR_EXPR:
    9872      2732354 :                         {
    9873      2732354 :                           {
    9874      2732354 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    9875      2732354 :                             tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, NE_EXPR);
    9876      2732354 :                             if (res) return res;
    9877              :                           }
    9878           33 :                           break;
    9879              :                         }
    9880              :                       default:;
    9881              :                       }
    9882              :                     break;
    9883              :                   }
    9884        21243 :                 case ADDR_EXPR:
    9885        21243 :                   {
    9886        21243 :                     {
    9887        21243 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9888        21243 :                       tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, NE_EXPR);
    9889        21243 :                       if (res) return res;
    9890              :                     }
    9891         7935 :                     break;
    9892              :                   }
    9893              :                 default:;
    9894              :                 }
    9895              :               break;
    9896              :             }
    9897              :           default:;
    9898              :           }
    9899              :         break;
    9900              :       }
    9901        61897 :     case ADDR_EXPR:
    9902        61897 :       {
    9903        61897 :         switch (TREE_CODE (_p1))
    9904              :           {
    9905          203 :           CASE_CONVERT:
    9906          203 :             {
    9907          203 :               tree _q30 = TREE_OPERAND (_p1, 0);
    9908          203 :               switch (TREE_CODE (_q30))
    9909              :                 {
    9910          203 :                 case ADDR_EXPR:
    9911          203 :                   {
    9912          203 :                     {
    9913          203 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
    9914          203 :                       tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, NE_EXPR);
    9915          203 :                       if (res) return res;
    9916              :                     }
    9917          143 :                     break;
    9918              :                   }
    9919              :                 default:;
    9920              :                 }
    9921              :               break;
    9922              :             }
    9923        53507 :           case ADDR_EXPR:
    9924        53507 :             {
    9925        53507 :               {
    9926        53507 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
    9927        53507 :                 tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, NE_EXPR);
    9928        53507 :                 if (res) return res;
    9929              :               }
    9930         3446 :               break;
    9931              :             }
    9932              :           default:;
    9933              :           }
    9934              :         break;
    9935              :       }
    9936     33044476 :     default:;
    9937              :     }
    9938     33044476 :   {
    9939     33044476 :     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9940     33044476 :     tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, NE_EXPR);
    9941     33044476 :     if (res) return res;
    9942              :   }
    9943     33035381 :   switch (TREE_CODE (_p0))
    9944              :     {
    9945      1342208 :     CASE_CONVERT:
    9946      1342208 :       {
    9947      1342208 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9948      1342208 :         switch (TREE_CODE (_p1))
    9949              :           {
    9950       839074 :           case INTEGER_CST:
    9951       839074 :             {
    9952       839074 :               {
    9953       839074 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9954       839074 :                 tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, NE_EXPR);
    9955       839074 :                 if (res) return res;
    9956              :               }
    9957       830366 :               break;
    9958              :             }
    9959      1333500 :           default:;
    9960              :           }
    9961      1333500 :         switch (TREE_CODE (_q20))
    9962              :           {
    9963            8 :           case NE_EXPR:
    9964            8 :             {
    9965            8 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9966            8 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9967            8 :               switch (TREE_CODE (_q31))
    9968              :                 {
    9969            8 :                 case INTEGER_CST:
    9970            8 :                   {
    9971            8 :                     if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    9972              :                       {
    9973            0 :                         {
    9974            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    9975            0 :                           tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    9976            0 :                           if (res) return res;
    9977              :                         }
    9978              :                       }
    9979              :                     break;
    9980              :                   }
    9981              :                 default:;
    9982              :                 }
    9983              :               break;
    9984              :             }
    9985            0 :           case EQ_EXPR:
    9986            0 :             {
    9987            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9988            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9989            0 :               switch (TREE_CODE (_q31))
    9990              :                 {
    9991            0 :                 case INTEGER_CST:
    9992            0 :                   {
    9993            0 :                     if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    9994              :                       {
    9995            0 :                         {
    9996            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    9997            0 :                           tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
    9998            0 :                           if (res) return res;
    9999              :                         }
   10000              :                       }
   10001              :                     break;
   10002              :                   }
   10003              :                 default:;
   10004              :                 }
   10005              :               break;
   10006              :             }
   10007              :           default:;
   10008              :           }
   10009              :         break;
   10010              :       }
   10011     33026673 :     default:;
   10012              :     }
   10013     33026673 :   switch (TREE_CODE (_p1))
   10014              :     {
   10015       572683 :     CASE_CONVERT:
   10016       572683 :       {
   10017       572683 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10018       572683 :         switch (TREE_CODE (_q30))
   10019              :           {
   10020            0 :           case NE_EXPR:
   10021            0 :             {
   10022            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
   10023            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
   10024            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
   10025              :                 {
   10026            0 :                   switch (TREE_CODE (_q41))
   10027              :                     {
   10028            0 :                     case INTEGER_CST:
   10029            0 :                       {
   10030            0 :                         {
   10031            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
   10032            0 :                           tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
   10033            0 :                           if (res) return res;
   10034              :                         }
   10035            0 :                         break;
   10036              :                       }
   10037              :                     default:;
   10038              :                     }
   10039              :                 }
   10040              :               break;
   10041              :             }
   10042            0 :           case EQ_EXPR:
   10043            0 :             {
   10044            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
   10045            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
   10046            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
   10047              :                 {
   10048            0 :                   switch (TREE_CODE (_q41))
   10049              :                     {
   10050            0 :                     case INTEGER_CST:
   10051            0 :                       {
   10052            0 :                         {
   10053            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
   10054            0 :                           tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
   10055            0 :                           if (res) return res;
   10056              :                         }
   10057            0 :                         break;
   10058              :                       }
   10059              :                     default:;
   10060              :                     }
   10061              :                 }
   10062              :               break;
   10063              :             }
   10064              :           default:;
   10065              :           }
   10066              :         break;
   10067              :       }
   10068     33026673 :     default:;
   10069              :     }
   10070     33026673 : if (integer_zerop (_p1))
   10071              :   {
   10072     20351387 :     {
   10073     20351387 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10074     20351387 :       if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
   10075     20351387 :  && types_match (type, TREE_TYPE (captures[0]))
   10076              : )
   10077              :         {
   10078      3356726 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1545;
   10079      3356726 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1545;
   10080      3356726 :           {
   10081      3356726 :             tree res_op0;
   10082      3356726 :             res_op0 = captures[0];
   10083      3356726 :             tree _r;
   10084      3356726 :             _r = non_lvalue_loc (loc, res_op0);
   10085      3356726 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 971, __FILE__, __LINE__, true);
   10086      3356726 :             return _r;
   10087              :           }
   10088              : next_after_fail1545:;
   10089              :         }
   10090              :     }
   10091              :   }
   10092     29669947 :   switch (TREE_CODE (_p0))
   10093              :     {
   10094      1036235 :     case BIT_AND_EXPR:
   10095      1036235 :       {
   10096      1036235 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10097      1036235 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10098      1036235 :         switch (TREE_CODE (_q21))
   10099              :           {
   10100         2052 :           case VECTOR_CST:
   10101         2052 :             {
   10102         2052 :               if (integer_zerop (_p1))
   10103              :                 {
   10104         2052 :                   {
   10105         2052 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
   10106         2052 :                     const enum tree_code cmp = NE_EXPR;
   10107         2052 :                     const enum tree_code icmp = GT_EXPR;
   10108         2052 :                     {
   10109         2052 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   10110         2052 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   10111              : )
   10112              :                           {
   10113           13 :                             {
   10114           13 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   10115           13 :  ? optab_vector : optab_default;
   10116           13 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   10117           13 :                                 if (target_supports_op_p (utype, icmp, optab)
   10118           13 :  || (optimize_vectors_before_lowering_p ()
   10119            7 :  && (!target_supports_op_p (type, cmp, optab)
   10120            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   10121              : )
   10122              :                                   {
   10123            7 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   10124              : )
   10125              :                                       {
   10126            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1546;
   10127            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1546;
   10128            0 :                                         {
   10129            0 :                                           tree res_op0;
   10130            0 :                                           res_op0 = captures[1];
   10131            0 :                                           tree res_op1;
   10132            0 :                                           res_op1 =  csts;
   10133            0 :                                           tree _r;
   10134            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10135            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10136            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10137            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
   10138            0 :                                           return _r;
   10139              :                                         }
   10140         2045 : next_after_fail1546:;
   10141              :                                       }
   10142              :                                     else
   10143              :                                       {
   10144            7 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1547;
   10145            7 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1547;
   10146            7 :                                         {
   10147            7 :                                           tree res_op0;
   10148            7 :                                           {
   10149            7 :                                             tree _o1[1], _r1;
   10150            7 :                                             _o1[0] = captures[1];
   10151            7 :                                             if (TREE_TYPE (_o1[0]) != utype)
   10152              :                                               {
   10153            7 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   10154              :                                               }
   10155              :                                             else
   10156              :                                               _r1 = _o1[0];
   10157            7 :                                             res_op0 = _r1;
   10158              :                                           }
   10159            7 :                                           tree res_op1;
   10160            7 :                                           res_op1 =  csts;
   10161            7 :                                           tree _r;
   10162            7 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10163            7 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10164            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10165            7 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
   10166            7 :                                           return _r;
   10167              :                                         }
   10168         2045 : next_after_fail1547:;
   10169              :                                       }
   10170              :                                   }
   10171              :                             }
   10172              :                           }
   10173              :                     }
   10174              :                   }
   10175              :                 }
   10176              :               break;
   10177              :             }
   10178       842351 :           case INTEGER_CST:
   10179       842351 :             {
   10180       842351 :               if (integer_zerop (_p1))
   10181              :                 {
   10182       804236 :                   {
   10183       804236 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
   10184       804236 :                     const enum tree_code cmp = NE_EXPR;
   10185       804236 :                     const enum tree_code icmp = GT_EXPR;
   10186       804236 :                     {
   10187       804236 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   10188       804236 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   10189              : )
   10190              :                           {
   10191         1261 :                             {
   10192         1261 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   10193         1261 :  ? optab_vector : optab_default;
   10194         1261 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   10195         1261 :                                 if (target_supports_op_p (utype, icmp, optab)
   10196         1261 :  || (optimize_vectors_before_lowering_p ()
   10197         1092 :  && (!target_supports_op_p (type, cmp, optab)
   10198            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   10199              : )
   10200              :                                   {
   10201         1092 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   10202              : )
   10203              :                                       {
   10204          989 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1548;
   10205          989 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1548;
   10206          989 :                                         {
   10207          989 :                                           tree res_op0;
   10208          989 :                                           res_op0 = captures[1];
   10209          989 :                                           tree res_op1;
   10210          989 :                                           res_op1 =  csts;
   10211          989 :                                           tree _r;
   10212          989 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10213          989 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10214            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10215          989 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
   10216          989 :                                           return _r;
   10217              :                                         }
   10218       803144 : next_after_fail1548:;
   10219              :                                       }
   10220              :                                     else
   10221              :                                       {
   10222          103 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1549;
   10223          103 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1549;
   10224          103 :                                         {
   10225          103 :                                           tree res_op0;
   10226          103 :                                           {
   10227          103 :                                             tree _o1[1], _r1;
   10228          103 :                                             _o1[0] = captures[1];
   10229          103 :                                             if (TREE_TYPE (_o1[0]) != utype)
   10230              :                                               {
   10231          103 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   10232              :                                               }
   10233              :                                             else
   10234              :                                               _r1 = _o1[0];
   10235          103 :                                             res_op0 = _r1;
   10236              :                                           }
   10237          103 :                                           tree res_op1;
   10238          103 :                                           res_op1 =  csts;
   10239          103 :                                           tree _r;
   10240          103 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10241          103 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10242            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10243          103 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
   10244          103 :                                           return _r;
   10245              :                                         }
   10246       803144 : next_after_fail1549:;
   10247              :                                       }
   10248              :                                   }
   10249              :                             }
   10250              :                           }
   10251              :                     }
   10252              :                   }
   10253              :                 }
   10254              :               break;
   10255              :             }
   10256      1035136 :           default:;
   10257              :           }
   10258      1035136 :         switch (TREE_CODE (_q20))
   10259              :           {
   10260            0 :           case VECTOR_CST:
   10261            0 :             {
   10262            0 :               if (integer_zerop (_p1))
   10263              :                 {
   10264            0 :                   {
   10265            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
   10266            0 :                     const enum tree_code cmp = NE_EXPR;
   10267            0 :                     const enum tree_code icmp = GT_EXPR;
   10268            0 :                     {
   10269            0 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   10270            0 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   10271              : )
   10272              :                           {
   10273            0 :                             {
   10274            0 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   10275            0 :  ? optab_vector : optab_default;
   10276            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   10277            0 :                                 if (target_supports_op_p (utype, icmp, optab)
   10278            0 :  || (optimize_vectors_before_lowering_p ()
   10279            0 :  && (!target_supports_op_p (type, cmp, optab)
   10280            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   10281              : )
   10282              :                                   {
   10283            0 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   10284              : )
   10285              :                                       {
   10286            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1550;
   10287            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1550;
   10288            0 :                                         {
   10289            0 :                                           tree res_op0;
   10290            0 :                                           res_op0 = captures[1];
   10291            0 :                                           tree res_op1;
   10292            0 :                                           res_op1 =  csts;
   10293            0 :                                           tree _r;
   10294            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10295            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10296            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10297            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
   10298            0 :                                           return _r;
   10299              :                                         }
   10300            0 : next_after_fail1550:;
   10301              :                                       }
   10302              :                                     else
   10303              :                                       {
   10304            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1551;
   10305            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1551;
   10306            0 :                                         {
   10307            0 :                                           tree res_op0;
   10308            0 :                                           {
   10309            0 :                                             tree _o1[1], _r1;
   10310            0 :                                             _o1[0] = captures[1];
   10311            0 :                                             if (TREE_TYPE (_o1[0]) != utype)
   10312              :                                               {
   10313            0 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   10314              :                                               }
   10315              :                                             else
   10316              :                                               _r1 = _o1[0];
   10317            0 :                                             res_op0 = _r1;
   10318              :                                           }
   10319            0 :                                           tree res_op1;
   10320            0 :                                           res_op1 =  csts;
   10321            0 :                                           tree _r;
   10322            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10323            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10324            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10325            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
   10326            0 :                                           return _r;
   10327              :                                         }
   10328            0 : next_after_fail1551:;
   10329              :                                       }
   10330              :                                   }
   10331              :                             }
   10332              :                           }
   10333              :                     }
   10334              :                   }
   10335              :                 }
   10336              :               break;
   10337              :             }
   10338            0 :           case INTEGER_CST:
   10339            0 :             {
   10340            0 :               if (integer_zerop (_p1))
   10341              :                 {
   10342            0 :                   {
   10343            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
   10344            0 :                     const enum tree_code cmp = NE_EXPR;
   10345            0 :                     const enum tree_code icmp = GT_EXPR;
   10346            0 :                     {
   10347            0 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   10348            0 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   10349              : )
   10350              :                           {
   10351            0 :                             {
   10352            0 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   10353            0 :  ? optab_vector : optab_default;
   10354            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   10355            0 :                                 if (target_supports_op_p (utype, icmp, optab)
   10356            0 :  || (optimize_vectors_before_lowering_p ()
   10357            0 :  && (!target_supports_op_p (type, cmp, optab)
   10358            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   10359              : )
   10360              :                                   {
   10361            0 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   10362              : )
   10363              :                                       {
   10364            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1552;
   10365            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1552;
   10366            0 :                                         {
   10367            0 :                                           tree res_op0;
   10368            0 :                                           res_op0 = captures[1];
   10369            0 :                                           tree res_op1;
   10370            0 :                                           res_op1 =  csts;
   10371            0 :                                           tree _r;
   10372            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10373            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10374            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10375            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
   10376            0 :                                           return _r;
   10377              :                                         }
   10378            0 : next_after_fail1552:;
   10379              :                                       }
   10380              :                                     else
   10381              :                                       {
   10382            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1553;
   10383            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1553;
   10384            0 :                                         {
   10385            0 :                                           tree res_op0;
   10386            0 :                                           {
   10387            0 :                                             tree _o1[1], _r1;
   10388            0 :                                             _o1[0] = captures[1];
   10389            0 :                                             if (TREE_TYPE (_o1[0]) != utype)
   10390              :                                               {
   10391            0 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   10392              :                                               }
   10393              :                                             else
   10394              :                                               _r1 = _o1[0];
   10395            0 :                                             res_op0 = _r1;
   10396              :                                           }
   10397            0 :                                           tree res_op1;
   10398            0 :                                           res_op1 =  csts;
   10399            0 :                                           tree _r;
   10400            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10401            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10402            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10403            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
   10404            0 :                                           return _r;
   10405              :                                         }
   10406            0 : next_after_fail1553:;
   10407              :                                       }
   10408              :                                   }
   10409              :                             }
   10410              :                           }
   10411              :                     }
   10412              :                   }
   10413              :                 }
   10414              :               break;
   10415              :             }
   10416              :           default:;
   10417              :           }
   10418              :         break;
   10419              :       }
   10420        20822 :     case RSHIFT_EXPR:
   10421        20822 :       {
   10422        20822 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10423        20822 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10424        20822 :         switch (TREE_CODE (_q20))
   10425              :           {
   10426            1 :           case MULT_EXPR:
   10427            1 :             {
   10428            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10429            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10430            1 :               switch (TREE_CODE (_q30))
   10431              :                 {
   10432            1 :                 CASE_CONVERT:
   10433            1 :                   {
   10434            1 :                     tree _q40 = TREE_OPERAND (_q30, 0);
   10435            1 :                     switch (TREE_CODE (_q31))
   10436              :                       {
   10437            1 :                       CASE_CONVERT:
   10438            1 :                         {
   10439            1 :                           tree _q60 = TREE_OPERAND (_q31, 0);
   10440            1 :                           switch (TREE_CODE (_q21))
   10441              :                             {
   10442            1 :                             case INTEGER_CST:
   10443            1 :                               {
   10444            1 :                                 if (integer_zerop (_p1))
   10445              :                                   {
   10446            1 :                                     {
   10447            1 :                                       tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q60, _q21 };
   10448            1 :                                       tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, NE_EXPR);
   10449            1 :                                       if (res) return res;
   10450              :                                     }
   10451              :                                   }
   10452              :                                 break;
   10453              :                               }
   10454              :                             default:;
   10455              :                             }
   10456              :                           break;
   10457              :                         }
   10458              :                       default:;
   10459              :                       }
   10460              :                     break;
   10461              :                   }
   10462              :                 default:;
   10463              :                 }
   10464              :               break;
   10465              :             }
   10466              :           default:;
   10467              :           }
   10468              :         break;
   10469              :       }
   10470      1330282 :     case PLUS_EXPR:
   10471      1330282 :       {
   10472      1330282 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10473      1330282 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10474      1330282 :         switch (TREE_CODE (_q21))
   10475              :           {
   10476      1220325 :           case INTEGER_CST:
   10477      1220325 :             {
   10478      1220325 :               switch (TREE_CODE (_p1))
   10479              :                 {
   10480       722204 :                 case INTEGER_CST:
   10481       722204 :                   {
   10482       722204 :                     {
   10483       722204 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   10484       722204 :                       tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, NE_EXPR);
   10485       722204 :                       if (res) return res;
   10486              :                     }
   10487          355 :                     break;
   10488              :                   }
   10489              :                 default:;
   10490              :                 }
   10491              :               break;
   10492              :             }
   10493              :           default:;
   10494              :           }
   10495              :         break;
   10496              :       }
   10497        69613 :     case MINUS_EXPR:
   10498        69613 :       {
   10499        69613 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10500        69613 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10501        69613 :         switch (TREE_CODE (_q21))
   10502              :           {
   10503          193 :           case INTEGER_CST:
   10504          193 :             {
   10505          193 :               switch (TREE_CODE (_p1))
   10506              :                 {
   10507           72 :                 case INTEGER_CST:
   10508           72 :                   {
   10509           72 :                     {
   10510           72 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   10511           72 :                       tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, NE_EXPR);
   10512           72 :                       if (res) return res;
   10513              :                     }
   10514           72 :                     break;
   10515              :                   }
   10516              :                 default:;
   10517              :                 }
   10518              :               break;
   10519              :             }
   10520        69613 :           default:;
   10521              :           }
   10522        69613 :         switch (TREE_CODE (_q20))
   10523              :           {
   10524         1719 :           case INTEGER_CST:
   10525         1719 :             {
   10526         1719 :               switch (TREE_CODE (_p1))
   10527              :                 {
   10528           73 :                 case INTEGER_CST:
   10529           73 :                   {
   10530           73 :                     {
   10531           73 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
   10532           73 :                       tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
   10533           73 :                       if (res) return res;
   10534              :                     }
   10535            0 :                     break;
   10536              :                   }
   10537              :                 default:;
   10538              :                 }
   10539              :               break;
   10540              :             }
   10541              :           default:;
   10542              :           }
   10543              :         break;
   10544              :       }
   10545      2750560 :     case CALL_EXPR:
   10546      2750560 :       switch (get_call_combined_fn (_p0))
   10547              :         {
   10548          224 :         case CFN_BUILT_IN_CLZ:
   10549          224 :           if (call_expr_nargs (_p0) == 1)
   10550              :     {
   10551          224 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10552          224 :               switch (TREE_CODE (_p1))
   10553              :                 {
   10554          210 :                 case INTEGER_CST:
   10555          210 :                   {
   10556          210 :                     {
   10557          210 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10558          210 :                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZ);
   10559          210 :                       if (res) return res;
   10560              :                     }
   10561          135 :                     break;
   10562              :                   }
   10563              :                 default:;
   10564              :                 }
   10565              :             }
   10566              :           break;
   10567          246 :         case CFN_BUILT_IN_CTZ:
   10568          246 :           if (call_expr_nargs (_p0) == 1)
   10569              :     {
   10570          246 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10571          246 :               switch (TREE_CODE (_p1))
   10572              :                 {
   10573          200 :                 case INTEGER_CST:
   10574          200 :                   {
   10575          200 :                     {
   10576          200 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10577          200 :                       tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZ);
   10578          200 :                       if (res) return res;
   10579              :                     }
   10580            0 :                     break;
   10581              :                   }
   10582              :                 default:;
   10583              :                 }
   10584              :             }
   10585              :           break;
   10586           31 :         case CFN_BUILT_IN_FFS:
   10587           31 :           if (call_expr_nargs (_p0) == 1)
   10588              :     {
   10589           31 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10590           31 :               switch (TREE_CODE (_p1))
   10591              :                 {
   10592           11 :                 case INTEGER_CST:
   10593           11 :                   {
   10594           11 :                     {
   10595           11 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10596           11 :                       tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFS);
   10597           11 :                       if (res) return res;
   10598              :                     }
   10599            0 :                     break;
   10600              :                   }
   10601              :                 default:;
   10602              :                 }
   10603              :             }
   10604              :           break;
   10605            0 :         case CFN_REDUC_IOR:
   10606            0 :           if (call_expr_nargs (_p0) == 1)
   10607              :     {
   10608            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10609            0 :               if (integer_zerop (_p1))
   10610              :                 {
   10611            0 :                   {
   10612            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10613            0 :                     tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, NE_EXPR);
   10614            0 :                     if (res) return res;
   10615              :                   }
   10616              :                 }
   10617              :             }
   10618              :           break;
   10619            0 :         case CFN_BUILT_IN_FFSIMAX:
   10620            0 :           if (call_expr_nargs (_p0) == 1)
   10621              :     {
   10622            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10623            0 :               switch (TREE_CODE (_p1))
   10624              :                 {
   10625            0 :                 case INTEGER_CST:
   10626            0 :                   {
   10627            0 :                     {
   10628            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10629            0 :                       tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSIMAX);
   10630            0 :                       if (res) return res;
   10631              :                     }
   10632            0 :                     break;
   10633              :                   }
   10634              :                 default:;
   10635              :                 }
   10636              :             }
   10637              :           break;
   10638           13 :         case CFN_BUILT_IN_POPCOUNT:
   10639           13 :           if (call_expr_nargs (_p0) == 1)
   10640              :     {
   10641           13 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10642           13 :               if (integer_zerop (_p1))
   10643              :                 {
   10644            1 :                   {
   10645            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10646            1 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT);
   10647            1 :                     if (res) return res;
   10648              :                   }
   10649              :                 }
   10650              :             }
   10651              :           break;
   10652           87 :         case CFN_BUILT_IN_CLZL:
   10653           87 :           if (call_expr_nargs (_p0) == 1)
   10654              :     {
   10655           87 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10656           87 :               switch (TREE_CODE (_p1))
   10657              :                 {
   10658           79 :                 case INTEGER_CST:
   10659           79 :                   {
   10660           79 :                     {
   10661           79 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10662           79 :                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZL);
   10663           79 :                       if (res) return res;
   10664              :                     }
   10665           43 :                     break;
   10666              :                   }
   10667              :                 default:;
   10668              :                 }
   10669              :             }
   10670              :           break;
   10671           85 :         case CFN_BUILT_IN_CTZL:
   10672           85 :           if (call_expr_nargs (_p0) == 1)
   10673              :     {
   10674           85 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10675           85 :               switch (TREE_CODE (_p1))
   10676              :                 {
   10677           77 :                 case INTEGER_CST:
   10678           77 :                   {
   10679           77 :                     {
   10680           77 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10681           77 :                       tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZL);
   10682           77 :                       if (res) return res;
   10683              :                     }
   10684           16 :                     break;
   10685              :                   }
   10686              :                 default:;
   10687              :                 }
   10688              :             }
   10689              :           break;
   10690            8 :         case CFN_BUILT_IN_FFSL:
   10691            8 :           if (call_expr_nargs (_p0) == 1)
   10692              :     {
   10693            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10694            8 :               switch (TREE_CODE (_p1))
   10695              :                 {
   10696            0 :                 case INTEGER_CST:
   10697            0 :                   {
   10698            0 :                     {
   10699            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10700            0 :                       tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSL);
   10701            0 :                       if (res) return res;
   10702              :                     }
   10703            0 :                     break;
   10704              :                   }
   10705              :                 default:;
   10706              :                 }
   10707              :             }
   10708              :           break;
   10709           11 :         case CFN_BUILT_IN_POPCOUNTLL:
   10710           11 :           if (call_expr_nargs (_p0) == 1)
   10711              :     {
   10712           11 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10713           11 :               if (integer_zerop (_p1))
   10714              :                 {
   10715            1 :                   {
   10716            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10717            1 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL);
   10718            1 :                     if (res) return res;
   10719              :                   }
   10720              :                 }
   10721              :             }
   10722              :           break;
   10723            0 :         case CFN_BUILT_IN_CTZIMAX:
   10724            0 :           if (call_expr_nargs (_p0) == 1)
   10725              :     {
   10726            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10727            0 :               switch (TREE_CODE (_p1))
   10728              :                 {
   10729            0 :                 case INTEGER_CST:
   10730            0 :                   {
   10731            0 :                     {
   10732            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10733            0 :                       tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
   10734            0 :                       if (res) return res;
   10735              :                     }
   10736            0 :                     break;
   10737              :                   }
   10738              :                 default:;
   10739              :                 }
   10740              :             }
   10741              :           break;
   10742            0 :         case CFN_POPCOUNT:
   10743            0 :           if (call_expr_nargs (_p0) == 1)
   10744              :     {
   10745            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10746            0 :               if (integer_zerop (_p1))
   10747              :                 {
   10748            0 :                   {
   10749            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10750            0 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_POPCOUNT);
   10751            0 :                     if (res) return res;
   10752              :                   }
   10753              :                 }
   10754              :             }
   10755              :           break;
   10756            0 :         case CFN_CLZ:
   10757            0 :           if (call_expr_nargs (_p0) == 1)
   10758              :     {
   10759            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10760            0 :               switch (TREE_CODE (_p1))
   10761              :                 {
   10762            0 :                 case INTEGER_CST:
   10763            0 :                   {
   10764            0 :                     {
   10765            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10766            0 :                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_CLZ);
   10767            0 :                       if (res) return res;
   10768              :                     }
   10769            0 :                     break;
   10770              :                   }
   10771              :                 default:;
   10772              :                 }
   10773              :             }
   10774            0 :           if (call_expr_nargs (_p0) == 2)
   10775              :     {
   10776            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10777            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10778            0 :               switch (TREE_CODE (_p1))
   10779              :                 {
   10780            0 :                 case INTEGER_CST:
   10781            0 :                   {
   10782            0 :                     {
   10783            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   10784            0 :                       tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
   10785            0 :                       if (res) return res;
   10786              :                     }
   10787            0 :                     break;
   10788              :                   }
   10789              :                 default:;
   10790              :                 }
   10791              :             }
   10792              :           break;
   10793            0 :         case CFN_CTZ:
   10794            0 :           if (call_expr_nargs (_p0) == 1)
   10795              :     {
   10796            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10797            0 :               switch (TREE_CODE (_p1))
   10798              :                 {
   10799            0 :                 case INTEGER_CST:
   10800            0 :                   {
   10801            0 :                     {
   10802            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10803            0 :                       tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_CTZ);
   10804            0 :                       if (res) return res;
   10805              :                     }
   10806            0 :                     break;
   10807              :                   }
   10808              :                 default:;
   10809              :                 }
   10810              :             }
   10811            0 :           if (call_expr_nargs (_p0) == 2)
   10812              :     {
   10813            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10814            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10815            0 :               switch (TREE_CODE (_p1))
   10816              :                 {
   10817            0 :                 case INTEGER_CST:
   10818            0 :                   {
   10819            0 :                     {
   10820            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   10821            0 :                       tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, NE_EXPR);
   10822            0 :                       if (res) return res;
   10823              :                     }
   10824            0 :                     break;
   10825              :                   }
   10826              :                 default:;
   10827              :                 }
   10828              :             }
   10829              :           break;
   10830            0 :         case CFN_FFS:
   10831            0 :           if (call_expr_nargs (_p0) == 1)
   10832              :     {
   10833            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10834            0 :               switch (TREE_CODE (_p1))
   10835              :                 {
   10836            0 :                 case INTEGER_CST:
   10837            0 :                   {
   10838            0 :                     {
   10839            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10840            0 :                       tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_FFS);
   10841            0 :                       if (res) return res;
   10842              :                     }
   10843            0 :                     break;
   10844              :                   }
   10845              :                 default:;
   10846              :                 }
   10847              :             }
   10848              :           break;
   10849            0 :         case CFN_BUILT_IN_POPCOUNTIMAX:
   10850            0 :           if (call_expr_nargs (_p0) == 1)
   10851              :     {
   10852            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10853            0 :               if (integer_zerop (_p1))
   10854              :                 {
   10855            0 :                   {
   10856            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10857            0 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
   10858            0 :                     if (res) return res;
   10859              :                   }
   10860              :                 }
   10861              :             }
   10862              :           break;
   10863            0 :         case CFN_BUILT_IN_CLZIMAX:
   10864            0 :           if (call_expr_nargs (_p0) == 1)
   10865              :     {
   10866            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10867            0 :               switch (TREE_CODE (_p1))
   10868              :                 {
   10869            0 :                 case INTEGER_CST:
   10870            0 :                   {
   10871            0 :                     {
   10872            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10873            0 :                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZIMAX);
   10874            0 :                       if (res) return res;
   10875              :                     }
   10876            0 :                     break;
   10877              :                   }
   10878              :                 default:;
   10879              :                 }
   10880              :             }
   10881              :           break;
   10882           12 :         case CFN_BUILT_IN_POPCOUNTL:
   10883           12 :           if (call_expr_nargs (_p0) == 1)
   10884              :     {
   10885           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10886           12 :               if (integer_zerop (_p1))
   10887              :                 {
   10888            1 :                   {
   10889            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10890            1 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL);
   10891            1 :                     if (res) return res;
   10892              :                   }
   10893              :                 }
   10894              :             }
   10895              :           break;
   10896           52 :         case CFN_BUILT_IN_CLZLL:
   10897           52 :           if (call_expr_nargs (_p0) == 1)
   10898              :     {
   10899           52 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10900           52 :               switch (TREE_CODE (_p1))
   10901              :                 {
   10902           42 :                 case INTEGER_CST:
   10903           42 :                   {
   10904           42 :                     {
   10905           42 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10906           42 :                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZLL);
   10907           42 :                       if (res) return res;
   10908              :                     }
   10909           18 :                     break;
   10910              :                   }
   10911              :                 default:;
   10912              :                 }
   10913              :             }
   10914              :           break;
   10915           74 :         case CFN_BUILT_IN_CTZLL:
   10916           74 :           if (call_expr_nargs (_p0) == 1)
   10917              :     {
   10918           74 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10919           74 :               switch (TREE_CODE (_p1))
   10920              :                 {
   10921           64 :                 case INTEGER_CST:
   10922           64 :                   {
   10923           64 :                     {
   10924           64 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10925           64 :                       tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZLL);
   10926           64 :                       if (res) return res;
   10927              :                     }
   10928           16 :                     break;
   10929              :                   }
   10930              :                 default:;
   10931              :                 }
   10932              :             }
   10933              :           break;
   10934           11 :         case CFN_BUILT_IN_FFSLL:
   10935           11 :           if (call_expr_nargs (_p0) == 1)
   10936              :     {
   10937           11 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10938           11 :               switch (TREE_CODE (_p1))
   10939              :                 {
   10940            1 :                 case INTEGER_CST:
   10941            1 :                   {
   10942            1 :                     {
   10943            1 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10944            1 :                       tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSLL);
   10945            1 :                       if (res) return res;
   10946              :                     }
   10947            0 :                     break;
   10948              :                   }
   10949              :                 default:;
   10950              :                 }
   10951              :             }
   10952              :           break;
   10953              :         default:;
   10954              :         }
   10955              :       break;
   10956              :     default:;
   10957              :     }
   10958              :   return NULL_TREE;
   10959              : }
   10960              : 
   10961              : tree
   10962       774857 : generic_simplify_BIT_FIELD_REF (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1, tree _p2)
   10963              : {
   10964       774857 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10965       774857 :   switch (TREE_CODE (_p0))
   10966              :     {
   10967            8 :     case BIT_FIELD_REF:
   10968            8 :       {
   10969            8 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10970            8 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10971            8 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10972            8 :         {
   10973            8 :           tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
   10974            8 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1928;
   10975            8 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1928;
   10976            8 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1928;
   10977            8 :           {
   10978            8 :             tree res_op0;
   10979            8 :             res_op0 = captures[0];
   10980            8 :             tree res_op1;
   10981            8 :             res_op1 = captures[3];
   10982            8 :             tree res_op2;
   10983            8 :             res_op2 =  const_binop (PLUS_EXPR, bitsizetype, captures[2], captures[4]);
   10984            8 :             tree _r;
   10985            8 :             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   10986            8 :             if (TREE_SIDE_EFFECTS (captures[1]))
   10987            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   10988            8 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1060, __FILE__, __LINE__, true);
   10989            8 :             return _r;
   10990              :           }
   10991            0 : next_after_fail1928:;
   10992              :         }
   10993            0 :         break;
   10994              :       }
   10995            3 :     case VIEW_CONVERT_EXPR:
   10996            3 :       {
   10997            3 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10998            3 :         {
   10999            3 :           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
   11000            6 :           if (! INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
   11001            6 :  || type_has_mode_precision_p (TREE_TYPE (captures[0]))
   11002              : )
   11003              :             {
   11004            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1929;
   11005            0 :               {
   11006            0 :                 tree res_op0;
   11007            0 :                 res_op0 = captures[0];
   11008            0 :                 tree res_op1;
   11009            0 :                 res_op1 = captures[1];
   11010            0 :                 tree res_op2;
   11011            0 :                 res_op2 = captures[2];
   11012            0 :                 tree _r;
   11013            0 :                 _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11014            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
   11015            0 :                 return _r;
   11016              :               }
   11017            0 : next_after_fail1929:;
   11018              :             }
   11019              :         }
   11020            3 :         break;
   11021              :       }
   11022       774849 :     default:;
   11023              :     }
   11024       774849 :   if (integer_zerop (_p2))
   11025              :     {
   11026       247823 :       {
   11027       247823 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11028       247823 :         if (tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (captures[0])))
   11029              : )
   11030              :           {
   11031         2534 :             if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1930;
   11032         2534 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1930;
   11033         2534 :             {
   11034         2534 :               tree res_op0;
   11035         2534 :               res_op0 = captures[0];
   11036         2534 :               tree _r;
   11037         2534 :               _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11038         2534 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11039            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11040         2534 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
   11041         2534 :               return _r;
   11042              :             }
   11043       245289 : next_after_fail1930:;
   11044              :           }
   11045              :       }
   11046              :     }
   11047       772315 :   {
   11048       772315 :     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
   11049       772315 :     if (TREE_CODE (TREE_TYPE (captures[0])) == COMPLEX_TYPE
   11050       772315 :  && tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))
   11051              : )
   11052              :       {
   11053            2 :         if (integer_zerop (captures[2])
   11054              : )
   11055              :           {
   11056            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1931;
   11057            0 :             {
   11058            0 :               tree res_op0;
   11059            0 :               {
   11060            0 :                 tree _o1[1], _r1;
   11061            0 :                 _o1[0] = captures[0];
   11062            0 :                 _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
   11063            0 :                 res_op0 = _r1;
   11064              :               }
   11065            0 :               tree _r;
   11066            0 :               _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11067            0 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11068            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11069            0 :               if (TREE_SIDE_EFFECTS (captures[2]))
   11070            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11071            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1063, __FILE__, __LINE__, true);
   11072            0 :               return _r;
   11073              :             }
   11074            0 : next_after_fail1931:;
   11075              :           }
   11076              :         else
   11077              :           {
   11078            2 :             if (tree_int_cst_equal (captures[2], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))
   11079              : )
   11080              :               {
   11081            0 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1932;
   11082            0 :                 {
   11083            0 :                   tree res_op0;
   11084            0 :                   {
   11085            0 :                     tree _o1[1], _r1;
   11086            0 :                     _o1[0] = captures[0];
   11087            0 :                     _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
   11088            0 :                     res_op0 = _r1;
   11089              :                   }
   11090            0 :                   tree _r;
   11091            0 :                   _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11092            0 :                   if (TREE_SIDE_EFFECTS (captures[1]))
   11093            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11094            0 :                   if (TREE_SIDE_EFFECTS (captures[2]))
   11095            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11096            0 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1064, __FILE__, __LINE__, true);
   11097            0 :                   return _r;
   11098              :                 }
   11099            0 : next_after_fail1932:;
   11100              :               }
   11101              :           }
   11102              :       }
   11103              :     else
   11104              :       {
   11105      1544564 :         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
   11106        20557 :  && INTEGRAL_TYPE_P (type)
   11107              :  && (!
   11108              : 
   11109              :  || is_gimple_reg (captures[0]))
   11110       791892 :  && ((compare_tree_int (captures[1], TYPE_PRECISION (TREE_TYPE (captures[0]))) == 0
   11111            0 :  && integer_zerop (captures[2]))
   11112              :  || (BYTES_BIG_ENDIAN == WORDS_BIG_ENDIAN
   11113              :  && canonicalize_math_after_vectorization_p ()
   11114              :  && TYPE_PRECISION (TREE_TYPE (captures[0])) % BITS_PER_UNIT == 0
   11115              :  && TYPE_PRECISION (type) % BITS_PER_UNIT == 0
   11116              :  && compare_tree_int (captures[2], (BYTES_BIG_ENDIAN
   11117              :  ? (TYPE_PRECISION (TREE_TYPE (captures[0]))
   11118              :  - TYPE_PRECISION (type))
   11119              :  : 0)) == 0))
   11120              : )
   11121              :           {
   11122            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1933;
   11123            0 :             {
   11124            0 :               tree res_op0;
   11125            0 :               res_op0 = captures[0];
   11126            0 :               tree _r;
   11127            0 :               _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   11128            0 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11129            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11130            0 :               if (TREE_SIDE_EFFECTS (captures[2]))
   11131            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11132            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
   11133            0 :               return _r;
   11134              :             }
   11135            0 : next_after_fail1933:;
   11136              :           }
   11137              :       }
   11138              :   }
   11139       772315 :   switch (TREE_CODE (_p0))
   11140              :     {
   11141         1383 :     case CONSTRUCTOR:
   11142         1383 :       {
   11143         1383 :         {
   11144         1383 :           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
   11145         1383 :           if (VECTOR_TYPE_P (TREE_TYPE (captures[0]))
   11146         1383 :  && tree_fits_uhwi_p (TYPE_SIZE (type))
   11147         2766 :  && ((tree_to_uhwi (TYPE_SIZE (type))
   11148         1383 :  == tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))
   11149            0 :  || (VECTOR_TYPE_P (type)
   11150            0 :  && (tree_to_uhwi (TYPE_SIZE (TREE_TYPE (type)))
   11151            0 :  == tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))))
   11152              : )
   11153              :             {
   11154         1383 :               {
   11155         1383 :  tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
   11156              :  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
   11157         1383 :  tree eltype = TREE_TYPE (TREE_TYPE (ctor));
   11158         1383 :  unsigned HOST_WIDE_INT width = tree_to_uhwi (TYPE_SIZE (eltype));
   11159         1383 :  unsigned HOST_WIDE_INT n = tree_to_uhwi (captures[1]);
   11160         1383 :  unsigned HOST_WIDE_INT idx = tree_to_uhwi (captures[2]);
   11161         1383 :                   if (n != 0
   11162         1383 :  && (idx % width) == 0
   11163         1383 :  && (n % width) == 0
   11164         2766 :  && known_le ((idx + n) / width,
   11165              :  TYPE_VECTOR_SUBPARTS (TREE_TYPE (ctor)))
   11166              : )
   11167              :                     {
   11168         1383 :                       {
   11169         1383 :  idx = idx / width;
   11170         1383 :  n = n / width;
   11171         1383 :  poly_uint64 k = 1;
   11172         1383 :  if (CONSTRUCTOR_NELTS (ctor) != 0)
   11173              :  {
   11174         1383 :  tree cons_elem = TREE_TYPE (CONSTRUCTOR_ELT (ctor, 0)->value);
   11175         1383 :  if (TREE_CODE (cons_elem) == VECTOR_TYPE)
   11176         1383 :  k = TYPE_VECTOR_SUBPARTS (cons_elem);
   11177              :  }
   11178         1383 :  unsigned HOST_WIDE_INT elt, count, const_k;
   11179         1383 :                           if (multiple_p (idx, k, &elt) && multiple_p (n, k, &count)
   11180              : )
   11181              :                             {
   11182            6 :                               if (CONSTRUCTOR_NELTS (ctor) == 0
   11183              : )
   11184              :                                 {
   11185            0 :                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1934;
   11186            0 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1934;
   11187            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1934;
   11188            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1934;
   11189            0 :                                   {
   11190            0 :                                     tree _r;
   11191            0 :                                     _r =  build_zero_cst (type);
   11192            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
   11193         1383 :                                     return _r;
   11194              :                                   }
   11195              : next_after_fail1934:;
   11196              :                                 }
   11197              :                               else
   11198              :                                 {
   11199            6 :                                   if (count == 1
   11200              : )
   11201              :                                     {
   11202            6 :                                       if (elt < CONSTRUCTOR_NELTS (ctor)
   11203              : )
   11204              :                                         {
   11205            6 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1935;
   11206            6 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1935;
   11207            6 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1935;
   11208            6 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1935;
   11209            6 :                                           {
   11210            6 :                                             tree res_op0;
   11211            6 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, elt)->value;
   11212            6 :                                             tree _r;
   11213            6 :                                             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11214            6 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
   11215            6 :                                             return _r;
   11216              :                                           }
   11217              : next_after_fail1935:;
   11218              :                                         }
   11219              :                                       else
   11220              :                                         {
   11221            0 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1936;
   11222            0 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1936;
   11223            0 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1936;
   11224            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1936;
   11225            0 :                                           {
   11226            0 :                                             tree _r;
   11227            0 :                                             _r =  build_zero_cst (type);
   11228            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1068, __FILE__, __LINE__, true);
   11229            0 :                                             return _r;
   11230              :                                           }
   11231              : next_after_fail1936:;
   11232              :                                         }
   11233              :                                     }
   11234              :                                   else
   11235              :                                     {
   11236            0 :                                       if (single_use (captures[0])
   11237              : )
   11238              :                                         {
   11239            0 :                                           {
   11240            0 :  vec<constructor_elt, va_gc> *vals;
   11241            0 :  vec_alloc (vals, count);
   11242            0 :  bool constant_p = true;
   11243            0 :  tree res;
   11244            0 :  for (unsigned i = 0;
   11245            0 :  i < count && elt + i < CONSTRUCTOR_NELTS (ctor); ++i)
   11246              :  {
   11247            0 :  tree e = CONSTRUCTOR_ELT (ctor, elt + i)->value;
   11248            0 :  CONSTRUCTOR_APPEND_ELT (vals, NULL_TREE, e);
   11249            0 :  if (!CONSTANT_CLASS_P (e))
   11250            0 :  constant_p = false;
   11251              :  }
   11252            0 :  tree evtype = (types_match (TREE_TYPE (type),
   11253            0 :  TREE_TYPE (TREE_TYPE (ctor)))
   11254            0 :  ? type
   11255            0 :  : build_vector_type (TREE_TYPE (TREE_TYPE (ctor)),
   11256            0 :  count * k));
   11257            0 :  res = (constant_p ? build_vector_from_ctor (evtype, vals)
   11258              :  : (
   11259              : 
   11260            0 :  ? NULL_TREE : build_constructor (evtype, vals)));
   11261            0 :                                               if (res
   11262              : )
   11263              :                                                 {
   11264            0 :                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1937;
   11265            0 :                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1937;
   11266            0 :                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1937;
   11267            0 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1937;
   11268            0 :                                                   {
   11269            0 :                                                     tree res_op0;
   11270            0 :                                                     res_op0 =  res;
   11271            0 :                                                     tree _r;
   11272            0 :                                                     _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11273            0 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
   11274            0 :                                                     return _r;
   11275              :                                                   }
   11276            0 : next_after_fail1937:;
   11277              :                                                 }
   11278              :                                           }
   11279              :                                         }
   11280              :                                     }
   11281              :                                 }
   11282              :                             }
   11283              :                           else
   11284              :                             {
   11285         1377 :                               if (k.is_constant (&const_k)
   11286         1377 :  && idx + n <= (idx / const_k + 1) * const_k
   11287              : )
   11288              :                                 {
   11289         1377 :                                   if (CONSTRUCTOR_NELTS (ctor) <= idx / const_k
   11290              : )
   11291              :                                     {
   11292            0 :                                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1938;
   11293            0 :                                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1938;
   11294            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1938;
   11295            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1938;
   11296            0 :                                       {
   11297            0 :                                         tree _r;
   11298            0 :                                         _r =  build_zero_cst (type);
   11299            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
   11300            0 :                                         return _r;
   11301              :                                       }
   11302              : next_after_fail1938:;
   11303              :                                     }
   11304              :                                   else
   11305              :                                     {
   11306         1377 :                                       if (n == const_k
   11307              : )
   11308              :                                         {
   11309            0 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1939;
   11310            0 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1939;
   11311            0 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1939;
   11312            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1939;
   11313            0 :                                           {
   11314            0 :                                             tree res_op0;
   11315            0 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
   11316            0 :                                             tree _r;
   11317            0 :                                             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11318            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
   11319            0 :                                             return _r;
   11320              :                                           }
   11321              : next_after_fail1939:;
   11322              :                                         }
   11323              :                                       else
   11324              :                                         {
   11325         1377 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1940;
   11326         1377 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1940;
   11327         1377 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1940;
   11328         1377 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1940;
   11329         1377 :                                           {
   11330         1377 :                                             tree res_op0;
   11331         1377 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
   11332         1377 :                                             tree res_op1;
   11333         1377 :                                             res_op1 = captures[1];
   11334         1377 :                                             tree res_op2;
   11335         1377 :                                             res_op2 =  bitsize_int ((idx % const_k) * width);
   11336         1377 :                                             tree _r;
   11337         1377 :                                             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11338         1377 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
   11339         1377 :                                             return _r;
   11340              :                                           }
   11341              : next_after_fail1940:;
   11342              :                                         }
   11343              :                                     }
   11344              :                                 }
   11345              :                             }
   11346              :                       }
   11347              :                     }
   11348              :               }
   11349              :             }
   11350              :         }
   11351            0 :         break;
   11352              :       }
   11353            0 :     case VEC_PERM_EXPR:
   11354            0 :       {
   11355            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11356            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11357            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11358            0 :         switch (TREE_CODE (_q22))
   11359              :           {
   11360            0 :           case VECTOR_CST:
   11361            0 :             {
   11362            0 :               {
   11363            0 :                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _p2 };
   11364            0 :                 {
   11365            0 :  tree elem_type = TREE_TYPE (TREE_TYPE (captures[0]));
   11366            0 :  poly_uint64 elem_size = tree_to_poly_uint64 (TYPE_SIZE (elem_type));
   11367            0 :  poly_uint64 size = tree_to_poly_uint64 (TYPE_SIZE (type));
   11368            0 :  unsigned HOST_WIDE_INT nelts, idx;
   11369            0 :  unsigned HOST_WIDE_INT nelts_op = 0;
   11370            0 :                     if (constant_multiple_p (tree_to_poly_uint64 (captures[5]), elem_size, &idx)
   11371            0 :  && VECTOR_CST_NELTS (captures[3]).is_constant (&nelts)
   11372            0 :  && (known_eq (size, elem_size)
   11373            0 :  || (constant_multiple_p (size, elem_size, &nelts_op)
   11374            0 :  && pow2p_hwi (nelts_op)))
   11375              : )
   11376              :                       {
   11377            0 :                         {
   11378            0 :  bool ok = true;
   11379            0 :  if (known_eq (size, elem_size))
   11380            0 :  idx = TREE_INT_CST_LOW (VECTOR_CST_ELT (captures[3], idx)) % (2 * nelts);
   11381              :  else
   11382              :  {
   11383            0 :  unsigned start
   11384            0 :  = TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx)) % (2 * nelts);
   11385            0 :  unsigned end
   11386            0 :  = (TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + nelts_op - 1))
   11387            0 :  % (2 * nelts));
   11388            0 :  if ((start < nelts) != (end < nelts))
   11389              :  ok = false;
   11390              :  else
   11391            0 :  for (unsigned HOST_WIDE_INT i = 1; i != nelts_op; i++)
   11392              :  {
   11393            0 :  if ((TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + i))
   11394            0 :  % (2 * nelts) - 1)
   11395            0 :  != (TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + i - 1))
   11396            0 :  % (2 * nelts)))
   11397              :  {
   11398              :  ok = false;
   11399              :  break;
   11400              :  }
   11401              :  }
   11402            0 :  if (start % nelts_op)
   11403              :  ok = false;
   11404            0 :  idx = start;
   11405              :  }
   11406            0 :                             if (ok
   11407              : )
   11408              :                               {
   11409            0 :                                 if (idx < nelts
   11410              : )
   11411              :                                   {
   11412            0 :                                     if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1941;
   11413            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1941;
   11414            0 :                                     {
   11415            0 :                                       tree res_op0;
   11416            0 :                                       res_op0 = captures[1];
   11417            0 :                                       tree res_op1;
   11418            0 :                                       res_op1 = captures[4];
   11419            0 :                                       tree res_op2;
   11420            0 :                                       res_op2 =  bitsize_int (idx * elem_size);
   11421            0 :                                       tree _r;
   11422            0 :                                       _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11423            0 :                                       if (TREE_SIDE_EFFECTS (captures[2]))
   11424            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11425            0 :                                       if (TREE_SIDE_EFFECTS (captures[5]))
   11426            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   11427            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
   11428            0 :                                       return _r;
   11429              :                                     }
   11430            0 : next_after_fail1941:;
   11431              :                                   }
   11432              :                                 else
   11433              :                                   {
   11434            0 :                                     if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1942;
   11435            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1942;
   11436            0 :                                     {
   11437            0 :                                       tree res_op0;
   11438            0 :                                       res_op0 = captures[2];
   11439            0 :                                       tree res_op1;
   11440            0 :                                       res_op1 = captures[4];
   11441            0 :                                       tree res_op2;
   11442            0 :                                       res_op2 =  bitsize_int ((idx - nelts) * elem_size);
   11443            0 :                                       tree _r;
   11444            0 :                                       _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11445            0 :                                       if (TREE_SIDE_EFFECTS (captures[1]))
   11446            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11447            0 :                                       if (TREE_SIDE_EFFECTS (captures[5]))
   11448            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   11449            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
   11450            0 :                                       return _r;
   11451              :                                     }
   11452            0 : next_after_fail1942:;
   11453              :                                   }
   11454              :                               }
   11455              :                         }
   11456              :                       }
   11457              :                 }
   11458              :               }
   11459            0 :               break;
   11460              :             }
   11461              :           default:;
   11462              :           }
   11463              :         break;
   11464              :       }
   11465            0 :     case BIT_INSERT_EXPR:
   11466            0 :       {
   11467            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11468            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11469            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11470            0 :         {
   11471            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
   11472            0 :           {
   11473            0 :  unsigned HOST_WIDE_INT isize;
   11474            0 :  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])))
   11475            0 :  isize = TYPE_PRECISION (TREE_TYPE (captures[1]));
   11476              :  else
   11477            0 :  isize = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (captures[1])));
   11478            0 :               if ((!INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
   11479            0 :  || type_has_mode_precision_p (TREE_TYPE (captures[1])))
   11480            0 :  && wi::leu_p (wi::to_wide (captures[2]), wi::to_wide (captures[4]))
   11481            0 :  && wi::leu_p (wi::to_wide (captures[4]) + wi::to_wide (captures[3]),
   11482            0 :  wi::to_wide (captures[2]) + isize)
   11483              : )
   11484              :                 {
   11485            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1943;
   11486            0 :                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1943;
   11487            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1943;
   11488            0 :                   {
   11489            0 :                     tree res_op0;
   11490            0 :                     res_op0 = captures[1];
   11491            0 :                     tree res_op1;
   11492            0 :                     res_op1 = captures[3];
   11493            0 :                     tree res_op2;
   11494            0 :                     res_op2 =  wide_int_to_tree (bitsizetype,
   11495            0 :  wi::to_wide (captures[4])
   11496            0 :  - wi::to_wide (captures[2]));
   11497            0 :                     tree _r;
   11498            0 :                     _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11499            0 :                     if (TREE_SIDE_EFFECTS (captures[0]))
   11500            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11501            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
   11502            0 :                     return _r;
   11503              :                   }
   11504            0 : next_after_fail1943:;
   11505              :                 }
   11506              :               else
   11507              :                 {
   11508            0 :                   if (wi::eq_p (wi::to_wide (captures[2]), wi::to_wide (captures[4]))
   11509            0 :  && compare_tree_int (captures[3], isize) == 0
   11510              : )
   11511              :                     {
   11512            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1944;
   11513            0 :                       {
   11514            0 :                         tree res_op0;
   11515            0 :                         res_op0 = captures[1];
   11516            0 :                         tree _r;
   11517            0 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   11518            0 :                         if (TREE_SIDE_EFFECTS (captures[0]))
   11519            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11520            0 :                         if (TREE_SIDE_EFFECTS (captures[2]))
   11521            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11522            0 :                         if (TREE_SIDE_EFFECTS (captures[3]))
   11523            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
   11524            0 :                         if (TREE_SIDE_EFFECTS (captures[4]))
   11525            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
   11526            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
   11527            0 :                         return _r;
   11528              :                       }
   11529            0 : next_after_fail1944:;
   11530              :                     }
   11531              :                   else
   11532              :                     {
   11533            0 :                       if (wi::geu_p (wi::to_wide (captures[2]),
   11534            0 :  wi::to_wide (captures[4]) + wi::to_wide (captures[3]))
   11535            0 :  || wi::geu_p (wi::to_wide (captures[4]),
   11536            0 :  wi::to_wide (captures[2]) + isize)
   11537              : )
   11538              :                         {
   11539            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1945;
   11540            0 :                           {
   11541            0 :                             tree res_op0;
   11542            0 :                             res_op0 = captures[0];
   11543            0 :                             tree res_op1;
   11544            0 :                             res_op1 = captures[3];
   11545            0 :                             tree res_op2;
   11546            0 :                             res_op2 = captures[4];
   11547            0 :                             tree _r;
   11548            0 :                             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11549            0 :                             if (TREE_SIDE_EFFECTS (captures[1]))
   11550            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11551            0 :                             if (TREE_SIDE_EFFECTS (captures[2]))
   11552            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11553            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1077, __FILE__, __LINE__, true);
   11554            0 :                             return _r;
   11555              :                           }
   11556            0 : next_after_fail1945:;
   11557              :                         }
   11558              :                     }
   11559              :                 }
   11560              :           }
   11561              :         }
   11562            0 :         break;
   11563              :       }
   11564              :     default:;
   11565              :     }
   11566              :   return NULL_TREE;
   11567              : }
   11568              : #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.