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.0 % 7060 4021
Test Date: 2026-02-28 14:20:25 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    132472144 : tree_negate_expr_p (tree t)
      11              : {
      12    132472144 :   const tree type = TREE_TYPE (t);
      13    132472144 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14    132472144 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15    127141841 :   switch (TREE_CODE (t))
      16              :     {
      17      7732130 :     case INTEGER_CST:
      18      7732130 :       {
      19      7732130 :         {
      20      7732130 :           if ((INTEGRAL_TYPE_P (type)
      21      7732130 :  && TYPE_UNSIGNED (type))
      22      9919377 :  || (!TYPE_OVERFLOW_SANITIZED (type)
      23      2184512 :  && may_negate_without_overflow_p (t))
      24              : )
      25              :             {
      26      7716286 :               {
      27      7716286 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 14, __FILE__, __LINE__, false);
      28      7716286 :                 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       464364 :         break;
      43              :       }
      44       464364 :     case NEGATE_EXPR:
      45       464364 :       {
      46       464364 :         tree _p0 = TREE_OPERAND (t, 0);
      47       464364 :         {
      48       464364 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      49       464364 :           if (!TYPE_OVERFLOW_SANITIZED (type)
      50              : )
      51              :             {
      52       464344 :               {
      53       464344 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 16, __FILE__, __LINE__, false);
      54       464344 :                 return true;
      55              :               }
      56              :             }
      57              :         }
      58              :         break;
      59              :       }
      60       727363 :     case REAL_CST:
      61       727363 :       {
      62       727363 :         {
      63       727363 :           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          429 :     case VECTOR_CST:
      75          429 :       {
      76          429 :         {
      77          429 :           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      1216091 :     case MINUS_EXPR:
      89      1216091 :       {
      90      1216091 :         tree _p0 = TREE_OPERAND (t, 0);
      91      1216091 :         tree _p1 = TREE_OPERAND (t, 1);
      92      1216091 :         {
      93      1216091 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      94      1216091 :           if ((ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type))
      95      2116276 :  || (FLOAT_TYPE_P (type)
      96       633504 :  && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
      97       633504 :  && !HONOR_SIGNED_ZEROS (type))
      98              : )
      99              :             {
     100       316479 :               {
     101       316479 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 19, __FILE__, __LINE__, false);
     102       316479 :                 return true;
     103              :               }
     104              :             }
     105              :         }
     106       899612 :         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       219726 : 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       219726 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     171       219726 :   if (!TYPE_SATURATING (type)
     172              : )
     173              :     {
     174       219726 :       if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
     175       219726 :  && !TYPE_OVERFLOW_SANITIZED (type)
     176              : )
     177              :         {
     178       217589 :           {
     179       217589 :  tree t1 = type;
     180       217589 :  if (INTEGRAL_TYPE_P (type)
     181       365780 :  && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
     182         2323 :  t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]);
     183       217589 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail86;
     184       217589 :               {
     185       217589 :                 tree res_op0;
     186       217589 :                 {
     187       217589 :                   tree _o1[2], _r1;
     188       217589 :                   {
     189       217589 :                     tree _o2[1], _r2;
     190       217589 :                     _o2[0] = captures[0];
     191       217589 :                     if (TREE_TYPE (_o2[0]) != t1)
     192              :                       {
     193         2022 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
     194              :                       }
     195              :                     else
     196              :                       _r2 = _o2[0];
     197       217589 :                     _o1[0] = _r2;
     198              :                   }
     199       217589 :                   {
     200       217589 :                     tree _o2[1], _r2;
     201       217589 :                     _o2[0] = captures[1];
     202       217589 :                     if (TREE_TYPE (_o2[0]) != t1)
     203              :                       {
     204         1813 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
     205              :                       }
     206              :                     else
     207              :                       _r2 = _o2[0];
     208       217589 :                     _o1[1] = _r2;
     209              :                   }
     210       217589 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     211       217589 :                   res_op0 = _r1;
     212              :                 }
     213       217589 :                 tree _r;
     214       217589 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     215       217589 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 63, __FILE__, __LINE__, true);
     216       217589 :                 return _r;
     217              :               }
     218            0 : next_after_fail86:;
     219              :           }
     220              :         }
     221              :     }
     222              :   return NULL_TREE;
     223              : }
     224              : 
     225              : tree
     226         9079 : 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         9079 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     231         9079 :   if (!TYPE_SATURATING (type)
     232         9079 :  && (!FLOAT_TYPE_P (type) || flag_associative_math)
     233              : )
     234              :     {
     235         8913 :       if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
     236              : )
     237              :         {
     238            4 :           if ((!ANY_INTEGRAL_TYPE_P (type)
     239         8909 :  || TYPE_OVERFLOW_WRAPS (type)
     240         3310 :  || (INTEGRAL_TYPE_P (type)
     241         3310 :  && ((tree_expr_nonzero_p (captures[0])
     242          136 :  && expr_not_equal_to (captures[0],
     243         9049 :  wi::minus_one (TYPE_PRECISION (type)),
     244              :  gimple_match_ctx (captures[1])))
     245              :  || (plusminus == PLUS_EXPR
     246         3174 :  ? expr_not_equal_to (captures[2],
     247         8931 :  wi::max_value (TYPE_PRECISION (type), SIGNED),
     248              :  gimple_match_ctx (captures[1]))
     249         3156 :  : (expr_not_equal_to (captures[2],
     250        12069 :  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        18219 :  + 1, gimple_match_ctx (captures[1])))))))
     255        12087 :  && single_use (captures[1])
     256              : )
     257              :             {
     258         8859 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail107;
     259         8859 :               {
     260         8859 :                 tree res_op0;
     261         8859 :                 {
     262         8859 :                   tree _o1[2], _r1;
     263         8859 :                   _o1[0] =  build_one_cst (type);
     264         8859 :                   _o1[1] = captures[2];
     265         8859 :                   _r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     266         8859 :                   res_op0 = _r1;
     267              :                 }
     268         8859 :                 tree res_op1;
     269         8859 :                 res_op1 = captures[0];
     270         8859 :                 tree _r;
     271         8859 :                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
     272         8859 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 84, __FILE__, __LINE__, true);
     273         8859 :                 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         2528 : 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         2528 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1072         5056 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1073         3274 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    1074         4194 :  && 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         1365 : 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         1365 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1129         1365 :   if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1130          374 :  && TREE_CODE (TREE_TYPE (captures[0])) != COMPLEX_TYPE
    1131         1717 :  && (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       133664 : 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       133664 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1251       262506 :   if (! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1252       133701 :  || ! tree_expr_maybe_nan_p (captures[0])
    1253              : )
    1254              :     {
    1255       128879 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail422;
    1256       128879 :       {
    1257       128879 :         tree _r;
    1258       128879 :         _r =  constant_boolean_node (true, type);
    1259       128879 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1260            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1261       128879 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 334, __FILE__, __LINE__, true);
    1262       128879 :         return _r;
    1263              :       }
    1264            0 : next_after_fail422:;
    1265              :     }
    1266              :   else
    1267              :     {
    1268         4785 :       if (cmp != EQ_EXPR
    1269         4785 :  && (! 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        18944 : 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        18944 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1296        18944 :   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     21532672 : 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     21532672 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1360     41918483 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1361     15211033 :  && !(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     21532672 :  && single_use (captures[0])
    1367              : )
    1368              :     {
    1369     15211033 :       if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[0]))
    1370      5724577 :  && (TREE_CODE (captures[3]) == INTEGER_CST
    1371      1971185 :  || captures[2] != captures[3])
    1372      3753392 :  && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1373              :  || cmp == NE_EXPR
    1374      1523417 :  || cmp == EQ_EXPR)
    1375      2696133 :  && !POINTER_TYPE_P (TREE_TYPE (captures[1]))
    1376     17875165 :  && (TREE_CODE (TREE_TYPE (captures[1])) != BOOLEAN_TYPE
    1377         1646 :  || TREE_CODE (TREE_TYPE (captures[3])) == BOOLEAN_TYPE)
    1378              : )
    1379              :         {
    1380      2664104 :           if (TREE_CODE (captures[2]) == INTEGER_CST
    1381              : )
    1382              :             {
    1383      2664104 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail486;
    1384      2664104 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail486;
    1385      2664104 :               {
    1386      2664104 :                 tree res_op0;
    1387      2664104 :                 res_op0 = captures[1];
    1388      2664104 :                 tree res_op1;
    1389      2664104 :                 res_op1 =  force_fit_type (TREE_TYPE (captures[1]),
    1390      2664104 :  wide_int::from (wi::to_wide (captures[2]),
    1391      2664104 :  MAX (TYPE_PRECISION (TREE_TYPE (captures[2])),
    1392              :  TYPE_PRECISION (TREE_TYPE (captures[1]))),
    1393      2664104 :  TYPE_SIGN (TREE_TYPE (captures[2]))),
    1394      2664104 :  0, TREE_OVERFLOW (captures[2]));
    1395      2664104 :                 tree _r;
    1396      2664104 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1397      2664104 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 390, __FILE__, __LINE__, true);
    1398      2664104 :                 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     12546929 :           if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
    1431              : )
    1432              :             {
    1433      8549637 :               if ((cmp == EQ_EXPR || cmp == NE_EXPR
    1434      3299357 :  || TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    1435       570369 :  || (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1436       485357 :  && TYPE_UNSIGNED (TREE_TYPE (captures[1]))))
    1437     11763982 :  && (types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]))
    1438      8464607 :  || ((TYPE_PRECISION (TREE_TYPE (captures[1]))
    1439      8464607 :  >= TYPE_PRECISION (TREE_TYPE (captures[3])))
    1440            0 :  && (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    1441            0 :  == TYPE_UNSIGNED (TREE_TYPE (captures[3]))))
    1442      8464607 :  || (TREE_CODE (captures[2]) == INTEGER_CST
    1443      7338721 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1444      7338721 :  && int_fits_type_p (captures[2], TREE_TYPE (captures[1]))))
    1445              : )
    1446              :                 {
    1447      7298271 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail488;
    1448      7298271 :                   {
    1449      7298271 :                     tree res_op0;
    1450      7298271 :                     res_op0 = captures[1];
    1451      7298271 :                     tree res_op1;
    1452      7298271 :                     {
    1453      7298271 :                       tree _o1[1], _r1;
    1454      7298271 :                       _o1[0] = captures[3];
    1455      7298271 :                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1456              :                         {
    1457      7298253 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1458              :                         }
    1459              :                       else
    1460              :                         _r1 = _o1[0];
    1461      7298271 :                       res_op1 = _r1;
    1462              :                     }
    1463      7298271 :                     tree _r;
    1464      7298271 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1465      7298271 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 392, __FILE__, __LINE__, true);
    1466      7298271 :                     return _r;
    1467              :                   }
    1468            0 : next_after_fail488:;
    1469              :                 }
    1470              :               else
    1471              :                 {
    1472      1251366 :                   if (TREE_CODE (captures[2]) == INTEGER_CST
    1473        89823 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1474      1341189 :  && !int_fits_type_p (captures[2], TREE_TYPE (captures[1]))
    1475              : )
    1476              :                     {
    1477        43890 :                       {
    1478        43890 :  tree min = lower_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
    1479        43890 :  tree max = upper_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
    1480        43890 :  bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, captures[2]));
    1481        43890 :  bool below = integer_nonzerop (const_binop (LT_EXPR, type, captures[2], min));
    1482        43890 :                           if (above || below
    1483              : )
    1484              :                             {
    1485        37808 :                               if (cmp == EQ_EXPR || cmp == NE_EXPR
    1486              : )
    1487              :                                 {
    1488        24898 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail489;
    1489        24898 :                                   {
    1490        24898 :                                     tree _r;
    1491        24898 :                                     _r =  constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
    1492        24898 :                                     if (TREE_SIDE_EFFECTS (captures[1]))
    1493           10 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1494        24898 :                                     if (TREE_SIDE_EFFECTS (captures[2]))
    1495            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1496        24898 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 393, __FILE__, __LINE__, true);
    1497        24898 :                                     return _r;
    1498              :                                   }
    1499            0 : next_after_fail489:;
    1500              :                                 }
    1501              :                               else
    1502              :                                 {
    1503        12910 :                                   if (cmp == LT_EXPR || cmp == LE_EXPR
    1504              : )
    1505              :                                     {
    1506        12238 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail490;
    1507        12238 :                                       {
    1508        12238 :                                         tree _r;
    1509        12238 :                                         _r =  constant_boolean_node (above ? true : false, type);
    1510        12238 :                                         if (TREE_SIDE_EFFECTS (captures[1]))
    1511           10 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1512        12238 :                                         if (TREE_SIDE_EFFECTS (captures[2]))
    1513            0 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1514        12238 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 394, __FILE__, __LINE__, true);
    1515        12238 :                                         return _r;
    1516              :                                       }
    1517            0 : next_after_fail490:;
    1518              :                                     }
    1519              :                                   else
    1520              :                                     {
    1521          672 :                                       if (cmp == GT_EXPR || cmp == GE_EXPR
    1522              : )
    1523              :                                         {
    1524          672 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail491;
    1525          672 :                                           {
    1526          672 :                                             tree _r;
    1527          926 :                                             _r =  constant_boolean_node (above ? false : true, type);
    1528          672 :                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1529            4 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1530          672 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    1531            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1532          672 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 395, __FILE__, __LINE__, true);
    1533          672 :                                             return _r;
    1534              :                                           }
    1535            0 : next_after_fail491:;
    1536              :                                         }
    1537              :                                     }
    1538              :                                 }
    1539              :                             }
    1540              :                       }
    1541              :                     }
    1542              :                 }
    1543              :             }
    1544              :         }
    1545              :     }
    1546              :   else
    1547              :     {
    1548     12114356 :       if (FLOAT_TYPE_P (TREE_TYPE (captures[1]))
    1549      1084782 :  && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1550       542391 :  == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1])))
    1551      7406183 :  && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1552       542272 :  == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[3])))
    1553              : )
    1554              :         {
    1555       542272 :           {
    1556       542272 :  tree type1 = TREE_TYPE (captures[3]);
    1557       542272 :  if (TREE_CODE (captures[3]) == REAL_CST && !DECIMAL_FLOAT_TYPE_P (type1))
    1558              :  {
    1559       340177 :  REAL_VALUE_TYPE orig = TREE_REAL_CST (captures[3]);
    1560       340177 :  if (TYPE_PRECISION (type1) > TYPE_PRECISION (float_type_node)
    1561       340177 :  && exact_real_truncate (TYPE_MODE (float_type_node), &orig))
    1562       176033 :  type1 = float_type_node;
    1563       340177 :  if (TYPE_PRECISION (type1) > TYPE_PRECISION (double_type_node)
    1564       340177 :  && exact_real_truncate (TYPE_MODE (double_type_node), &orig))
    1565          292 :  type1 = double_type_node;
    1566              :  }
    1567       542272 :  tree newtype
    1568       542272 :  = (element_precision (TREE_TYPE (captures[1])) > element_precision (type1)
    1569       542272 :  ? TREE_TYPE (captures[1]) : type1);
    1570       542272 :               if (element_precision (TREE_TYPE (captures[0])) > element_precision (newtype)
    1571       542272 :  && (!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      2360336 : 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      2360336 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1747            0 :   if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type))
    1748      2360336 :  && TYPE_UNSIGNED (type)
    1749              : )
    1750              :     {
    1751      2351175 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail587;
    1752      2351175 :       {
    1753      2351175 :         tree res_op0;
    1754      2351175 :         res_op0 = captures[0];
    1755      2351175 :         tree res_op1;
    1756      2351175 :         res_op1 = captures[1];
    1757      2351175 :         tree _r;
    1758      2351175 :         _r = fold_build2_loc (loc, trunc_divmod, type, res_op0, res_op1);
    1759      2351175 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 479, __FILE__, __LINE__, true);
    1760      2351175 :         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       155769 : 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       155769 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1818       155769 :   {
    1819       155769 :  tree from_type = TREE_TYPE (captures[0]);
    1820       155769 :  tree c1_type = TREE_TYPE (captures[1]), c2_type = TREE_TYPE (captures[2]);
    1821       155769 :  enum tree_code code = ERROR_MARK;
    1822       155769 :  if (integer_zerop (captures[1])
    1823        61283 :  && INTEGRAL_TYPE_P (from_type)
    1824        60793 :  && (cmp == GE_EXPR || cmp == LT_EXPR)
    1825        16111 :  && TYPE_UNSIGNED (from_type)
    1826         2064 :  && !TYPE_UNSIGNED (c1_type)
    1827         2064 :  && TYPE_PRECISION (from_type) == TYPE_PRECISION (c1_type)
    1828          587 :  && int_fits_type_p (captures[2], from_type)
    1829       156356 :  && (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       155764 :  && INTEGRAL_TYPE_P (from_type)
    1840       155274 :  && int_fits_type_p (captures[2], from_type)
    1841       155273 :  && (types_match (c1_type, from_type)
    1842         5916 :  || (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       149944 :  && (types_match (c2_type, from_type)
    1846        58080 :  || (TYPE_PRECISION (c2_type) > TYPE_PRECISION (from_type)
    1847        18759 :  && (TYPE_UNSIGNED (from_type)
    1848          698 :  || TYPE_SIGN (c2_type) == TYPE_SIGN (from_type)))))
    1849              :  {
    1850       109426 :  if (cmp != EQ_EXPR)
    1851       109414 :  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       155757 :       if (code == MAX_EXPR
    1856              : )
    1857              :         {
    1858        19344 :           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail609;
    1859        19344 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail609;
    1860        19344 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail609;
    1861        19344 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail609;
    1862        19344 :           {
    1863        19344 :             tree res_op0;
    1864        19344 :             {
    1865        19344 :               tree _o1[2], _r1;
    1866        19344 :               _o1[0] = captures[0];
    1867        19344 :               {
    1868        19344 :                 tree _o2[1], _r2;
    1869        19344 :                 _o2[0] = captures[2];
    1870        19344 :                 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        19344 :                 _o1[1] = _r2;
    1877              :               }
    1878        19344 :               _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1879        19344 :               res_op0 = _r1;
    1880              :             }
    1881        19344 :             tree _r;
    1882        19344 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1883        19344 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 501, __FILE__, __LINE__, true);
    1884        19344 :             return _r;
    1885              :           }
    1886              : next_after_fail609:;
    1887              :         }
    1888              :       else
    1889              :         {
    1890       136425 :           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       136170 :               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     10154292 : 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     10154292 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1999     10154292 :   {
    2000     10154292 :  tree cst = uniform_integer_cst_p (captures[1]);
    2001     10154292 :       if (tree_int_cst_sgn (cst) == 1
    2002              : )
    2003              :         {
    2004      4102549 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail662;
    2005      4102549 :           {
    2006      4102549 :             tree res_op0;
    2007      4102549 :             res_op0 = captures[0];
    2008      4102549 :             tree res_op1;
    2009      4102549 :             res_op1 =  build_uniform_cst (TREE_TYPE (captures[1]),
    2010      4102549 :  wide_int_to_tree (TREE_TYPE (cst),
    2011      4102549 :  wi::to_wide (cst) - 1));
    2012      4102549 :             tree _r;
    2013      4102549 :             _r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
    2014      4102549 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2015            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2016      4102549 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 552, __FILE__, __LINE__, true);
    2017      4102549 :             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      2582241 : 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      2582241 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2061      5164468 :   if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3])
    2062      5164456 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    2063              : )
    2064              :     {
    2065       877809 :       {
    2066       877809 :  tree res = int_const_binop (rop, captures[3], captures[2]);
    2067       877809 :           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       865196 :               if (single_use (captures[0])
    2090              : )
    2091              :                 {
    2092       865196 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail709;
    2093       865196 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail709;
    2094       865196 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail709;
    2095       865196 :                   {
    2096       865196 :                     tree res_op0;
    2097       865196 :                     res_op0 = captures[1];
    2098       865196 :                     tree res_op1;
    2099       865196 :                     res_op1 =  res;
    2100       865196 :                     tree _r;
    2101       865196 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2102       865196 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 582, __FILE__, __LINE__, true);
    2103       865196 :                     return _r;
    2104              :                   }
    2105              : next_after_fail709:;
    2106              :                 }
    2107              :             }
    2108              :       }
    2109              :     }
    2110              :   else
    2111              :     {
    2112      1704432 :       if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
    2113              : )
    2114              :         {
    2115      1704309 :           {
    2116      1704309 :  wide_int max = wi::max_value (TREE_TYPE (captures[1]));
    2117      1704309 :  wide_int min = wi::min_value (TREE_TYPE (captures[1]));
    2118      1704309 :  wide_int c2 = rop == PLUS_EXPR
    2119      1704309 :  ? wi::add (wi::to_wide (captures[3]), wi::to_wide (captures[2]))
    2120      1704309 :  : wi::sub (wi::to_wide (captures[3]), wi::to_wide (captures[2]));
    2121      1632061 :               if (((cmp == LE_EXPR || cmp == GT_EXPR) && wi::eq_p (c2, max))
    2122      3317531 :  || ((cmp == LT_EXPR || cmp == GE_EXPR) && wi::eq_p (c2, min))
    2123              : )
    2124              :                 {
    2125        18997 :                   {
    2126        18997 :  wide_int c1 = rop == PLUS_EXPR
    2127        18997 :  ? wi::add (wi::bit_not (c2), wi::to_wide (captures[2]))
    2128        37994 :  : wi::sub (wi::bit_not (c2), wi::to_wide (captures[2]));
    2129        18997 :  tree c1_cst = wide_int_to_tree (TREE_TYPE (captures[1]), c1);
    2130        18997 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail710;
    2131        18997 :                       if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail710;
    2132        18997 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail710;
    2133        18997 :                       {
    2134        18997 :                         tree res_op0;
    2135        18997 :                         res_op0 = captures[1];
    2136        18997 :                         tree res_op1;
    2137        18997 :                         res_op1 =  c1_cst;
    2138        18997 :                         tree _r;
    2139        18997 :                         _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    2140        18997 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 583, __FILE__, __LINE__, true);
    2141        18997 :                         return _r;
    2142              :                       }
    2143            0 : next_after_fail710:;
    2144        18997 :                   }
    2145              :                 }
    2146      1704311 :           }
    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        27318 : 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        27318 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2178        27318 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
    2179              : )
    2180              :     {
    2181        27318 :       {
    2182        27318 :  tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
    2183        27318 :           if (mask
    2184              : )
    2185              :             {
    2186        27311 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail744;
    2187        27311 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail744;
    2188        27311 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail744;
    2189        27311 :               {
    2190        27311 :                 tree res_op0;
    2191        27311 :                 {
    2192        27311 :                   tree _o1[2], _r1;
    2193        27311 :                   {
    2194        27311 :                     tree _o2[1], _r2;
    2195        27311 :                     _o2[0] = captures[2];
    2196        27311 :                     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        27311 :                     _o1[0] = _r2;
    2203              :                   }
    2204        27311 :                   _o1[1] = captures[4];
    2205        27311 :                   _r1 = fold_build2_loc (loc, shift, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2206        27311 :                   res_op0 = _r1;
    2207              :                 }
    2208        27311 :                 tree res_op1;
    2209        27311 :                 res_op1 =  mask;
    2210        27311 :                 tree _r;
    2211        27311 :                 _r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
    2212        27311 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 611, __FILE__, __LINE__, true);
    2213        27311 :                 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      2505508 : 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      2505508 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2266      2505508 :   if (INTEGRAL_TYPE_P (type)
    2267      2052851 :  && op != MULT_EXPR
    2268      2052851 :  && op != RDIV_EXPR
    2269      1363307 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2270      1363307 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2271      1363307 :  && type_has_mode_precision_p (TREE_TYPE (captures[2]))
    2272      1362932 :  && type_has_mode_precision_p (TREE_TYPE (captures[4]))
    2273      1362178 :  && type_has_mode_precision_p (type)
    2274      1358325 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
    2275            0 :  && types_match (captures[2], type)
    2276      2505508 :  && (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      2493445 :       if (FLOAT_TYPE_P (type)
    2352      2517571 :  && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    2353        12063 :  == DECIMAL_FLOAT_TYPE_P (type)
    2354              : )
    2355              :         {
    2356        12040 :           {
    2357        12040 :  tree arg0 = strip_float_extensions (captures[2]);
    2358        12040 :  tree arg1 = strip_float_extensions (captures[4]);
    2359        12040 :  tree itype = TREE_TYPE (captures[0]);
    2360        12040 :  tree ty1 = TREE_TYPE (arg0);
    2361        12040 :  tree ty2 = TREE_TYPE (arg1);
    2362        12040 :  enum tree_code code = TREE_CODE (itype);
    2363            0 :               if (FLOAT_TYPE_P (ty1)
    2364        12040 :  && FLOAT_TYPE_P (ty2)
    2365              : )
    2366              :                 {
    2367        12040 :                   {
    2368        12040 :  tree newtype = type;
    2369        12040 :  if (TYPE_MODE (ty1) == SDmode
    2370        12031 :  || TYPE_MODE (ty2) == SDmode
    2371        24071 :  || TYPE_MODE (type) == SDmode)
    2372            9 :  newtype = dfloat32_type_node;
    2373        12040 :  if (TYPE_MODE (ty1) == DDmode
    2374        12034 :  || TYPE_MODE (ty2) == DDmode
    2375        24074 :  || TYPE_MODE (type) == DDmode)
    2376            6 :  newtype = dfloat64_type_node;
    2377        12040 :  if (TYPE_MODE (ty1) == TDmode
    2378        12040 :  || TYPE_MODE (ty2) == TDmode
    2379        24080 :  || TYPE_MODE (type) == TDmode)
    2380           15 :  newtype = dfloat128_type_node;
    2381        12040 :                       if ((newtype == dfloat32_type_node
    2382        12040 :  || newtype == dfloat64_type_node
    2383        12040 :  || newtype == dfloat128_type_node)
    2384           15 :  && newtype == type
    2385        12046 :  && 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        12034 :                           {
    2426        12034 :  if (element_precision (ty1) > element_precision (newtype))
    2427          745 :  newtype = ty1;
    2428        12034 :  if (element_precision (ty2) > element_precision (newtype))
    2429            1 :  newtype = ty2;
    2430        12034 :                               if (element_precision (newtype) < element_precision (itype)
    2431        10736 :  && (!VECTOR_MODE_P (TYPE_MODE (newtype))
    2432            0 :  || target_supports_op_p (newtype, op, optab_default))
    2433        10736 :  && (flag_unsafe_math_optimizations
    2434        10724 :  || (element_precision (newtype) == element_precision (type)
    2435        10720 :  && real_can_shorten_arithmetic (element_mode (itype),
    2436              :  element_mode (type))
    2437         3878 :  && !excess_precision_type (newtype)))
    2438        12707 :  && !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        98310 : 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        98310 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2577        98310 :   if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2578        22344 :  && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
    2579        22344 :  && tree_fits_uhwi_p (captures[4])
    2580        22344 :  && tree_to_uhwi (captures[4]) > 0
    2581       120654 :  && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
    2582              : )
    2583              :     {
    2584        22344 :       {
    2585        22344 :  unsigned int shiftc = tree_to_uhwi (captures[4]);
    2586        22344 :  unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
    2587        22344 :  unsigned HOST_WIDE_INT newmask, zerobits = 0;
    2588        22344 :  tree shift_type = TREE_TYPE (captures[2]);
    2589        22344 :  unsigned int prec;
    2590        22344 :  if (shift == LSHIFT_EXPR)
    2591            0 :  zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
    2592        22344 :  else if (shift == RSHIFT_EXPR
    2593        22344 :  && type_has_mode_precision_p (shift_type))
    2594              :  {
    2595        22344 :  prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
    2596        22344 :  tree arg00 = captures[3];
    2597        22344 :  if (captures[2] != captures[3]
    2598        22344 :  && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
    2599              :  {
    2600        21937 :  tree inner_type = TREE_TYPE (captures[3]);
    2601        21937 :  if (type_has_mode_precision_p (inner_type)
    2602        21937 :  && 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        22344 :  zerobits = HOST_WIDE_INT_M1U;
    2610        22344 :  if (shiftc < prec)
    2611              :  {
    2612        22344 :  zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
    2613        22344 :  zerobits <<= prec - shiftc;
    2614              :  }
    2615        22344 :  if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    2616        22344 :  && 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        22330 :           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        22344 :               {
    2643        22344 :  newmask = mask | zerobits;
    2644        22344 :                   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        38974 : generic_simplify_503 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2794              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2795              : {
    2796        38974 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2797        38974 :   if (!HONOR_SIGN_DEPENDENT_ROUNDING (type)
    2798        38974 :  && !HONOR_SIGNED_ZEROS (type)
    2799              : )
    2800              :     {
    2801        38974 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail893;
    2802        38974 :       {
    2803        38974 :         tree res_op0;
    2804        38974 :         {
    2805        38974 :           tree _o1[1], _r1;
    2806        38974 :           _o1[0] = captures[1];
    2807        38974 :           _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    2808        38974 :           res_op0 = _r1;
    2809              :         }
    2810        38974 :         tree res_op1;
    2811        38974 :         res_op1 = captures[0];
    2812        38974 :         tree _r;
    2813        38974 :         _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    2814        38974 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 706, __FILE__, __LINE__, true);
    2815        38974 :         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     60059973 : 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     60059973 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3497     60059973 :   if (integer_zerop (_p1))
    3498              :     {
    3499      3307811 :       {
    3500      3307811 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3501      3307811 :         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1160;
    3502      3307811 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1160;
    3503      3307811 :         {
    3504      3307811 :           tree res_op0;
    3505      3307811 :           res_op0 = captures[0];
    3506      3307811 :           tree _r;
    3507      3307811 :           _r = non_lvalue_loc (loc, res_op0);
    3508      3307811 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 869, __FILE__, __LINE__, true);
    3509      3307811 :           return _r;
    3510              :         }
    3511              : next_after_fail1160:;
    3512              :       }
    3513              :     }
    3514     56752162 :   switch (TREE_CODE (_p0))
    3515              :     {
    3516      4034786 :     case POINTER_PLUS_EXPR:
    3517      4034786 :       {
    3518      4034786 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3519      4034786 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3520      4034786 :         {
    3521      4034786 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    3522      4034786 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1161;
    3523      4034786 :           {
    3524      4034786 :             tree res_op0;
    3525      4034786 :             res_op0 = captures[1];
    3526      4034786 :             tree res_op1;
    3527      4034786 :             {
    3528      4034786 :               tree _o1[2], _r1;
    3529      4034786 :               _o1[0] = captures[2];
    3530      4034786 :               _o1[1] = captures[3];
    3531      4034786 :               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3532      4034786 :               res_op1 = _r1;
    3533              :             }
    3534      4034786 :             tree _r;
    3535      4034786 :             _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
    3536      4034786 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 880, __FILE__, __LINE__, true);
    3537      4034786 :             return _r;
    3538              :           }
    3539            0 : next_after_fail1161:;
    3540              :         }
    3541            0 :         break;
    3542              :       }
    3543     25485428 :     CASE_CONVERT:
    3544     25485428 :       {
    3545     25485428 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3546     25485428 :         switch (TREE_CODE (_q20))
    3547              :           {
    3548        23350 :           case POINTER_PLUS_EXPR:
    3549        23350 :             {
    3550        23350 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3551        23350 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3552        23350 :               {
    3553        23350 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    3554        23350 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1162;
    3555        23350 :                 {
    3556        23350 :                   tree res_op0;
    3557        23350 :                   {
    3558        23350 :                     tree _o1[2], _r1;
    3559        23350 :                     _o1[0] = captures[2];
    3560        23350 :                     {
    3561        23350 :                       tree _o2[2], _r2;
    3562        23350 :                       _o2[0] = captures[3];
    3563        23350 :                       _o2[1] = captures[4];
    3564        23350 :                       _r2 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    3565        23350 :                       _o1[1] = _r2;
    3566              :                     }
    3567        23350 :                     _r1 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3568        23350 :                     res_op0 = _r1;
    3569              :                   }
    3570        23350 :                   tree _r;
    3571        23350 :                   _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3572        23350 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 881, __FILE__, __LINE__, true);
    3573        23350 :                   return _r;
    3574              :                 }
    3575            0 : next_after_fail1162:;
    3576              :               }
    3577            0 :               break;
    3578              :             }
    3579              :           default:;
    3580              :           }
    3581              :         break;
    3582              :       }
    3583     52694026 :     default:;
    3584              :     }
    3585     52694026 : if (integer_zerop (_p0))
    3586              :   {
    3587          646 :     {
    3588          646 :       tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
    3589          646 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1163;
    3590          646 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1163;
    3591          646 :       {
    3592          646 :         tree res_op0;
    3593          646 :         {
    3594          646 :           tree _o1[1], _r1;
    3595          646 :           _o1[0] = captures[0];
    3596          646 :           if (TREE_TYPE (_o1[0]) != type)
    3597              :             {
    3598          646 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3599              :             }
    3600              :           else
    3601              :             _r1 = _o1[0];
    3602          646 :           res_op0 = _r1;
    3603              :         }
    3604          646 :         tree _r;
    3605          646 :         _r = non_lvalue_loc (loc, res_op0);
    3606          646 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
    3607          646 :         return _r;
    3608              :       }
    3609              : next_after_fail1163:;
    3610              :     }
    3611              :   }
    3612     52693380 :   switch (TREE_CODE (_p1))
    3613              :     {
    3614     11696946 :     CASE_CONVERT:
    3615     11696946 :       {
    3616     11696946 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3617     11696946 :         switch (TREE_CODE (_q30))
    3618              :           {
    3619       195710 :           case MINUS_EXPR:
    3620       195710 :             {
    3621       195710 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3622       195710 :               tree _q41 = TREE_OPERAND (_q30, 1);
    3623       195710 :               switch (TREE_CODE (_q40))
    3624              :                 {
    3625        91132 :                 CASE_CONVERT:
    3626        91132 :                   {
    3627        91132 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3628        91132 :                     switch (TREE_CODE (_q41))
    3629              :                       {
    3630         7973 :                       CASE_CONVERT:
    3631         7973 :                         {
    3632         7973 :                           tree _q70 = TREE_OPERAND (_q41, 0);
    3633         7973 :                           if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    3634              :                             {
    3635         4760 :                               {
    3636         4760 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q50 };
    3637         4760 :                                 if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2]))
    3638         4760 :  && ((
    3639              : 
    3640              :  && useless_type_conversion_p (type, TREE_TYPE (captures[3])))
    3641              :  || (
    3642              : 1
    3643         4760 :  && type == TREE_TYPE (captures[3])))
    3644              : )
    3645              :                                   {
    3646         3371 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1164;
    3647         3371 :                                     {
    3648         3371 :                                       tree _r;
    3649         3371 :                                       _r = captures[3];
    3650         3371 :                                       if (TREE_SIDE_EFFECTS (captures[0]))
    3651            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3652         3371 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 883, __FILE__, __LINE__, true);
    3653         3371 :                                       return _r;
    3654              :                                     }
    3655            0 : next_after_fail1164:;
    3656              :                                   }
    3657              :                               }
    3658              :                             }
    3659              :                           break;
    3660              :                         }
    3661              :                       default:;
    3662              :                       }
    3663              :                     break;
    3664              :                   }
    3665              :                 default:;
    3666              :                 }
    3667              :               break;
    3668              :             }
    3669          568 :           case POINTER_DIFF_EXPR:
    3670          568 :             {
    3671          568 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3672          568 :               tree _q41 = TREE_OPERAND (_q30, 1);
    3673          568 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
    3674              :                 {
    3675            7 :                   {
    3676            7 :                     tree captures[5] ATTRIBUTE_UNUSED = { _q41, _p1, _q30, _q40, _p0 };
    3677            7 :                     if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2]))
    3678              : )
    3679              :                       {
    3680            7 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1165;
    3681            7 :                         {
    3682            7 :                           tree res_op0;
    3683            7 :                           res_op0 = captures[3];
    3684            7 :                           tree _r;
    3685            7 :                           _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3686            7 :                           if (TREE_SIDE_EFFECTS (captures[4]))
    3687            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    3688            7 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 884, __FILE__, __LINE__, true);
    3689            7 :                           return _r;
    3690              :                         }
    3691            0 : next_after_fail1165:;
    3692              :                       }
    3693              :                   }
    3694              :                 }
    3695              :               break;
    3696              :             }
    3697              :           default:;
    3698              :           }
    3699              :         break;
    3700              :       }
    3701        27465 :     case MINUS_EXPR:
    3702        27465 :       {
    3703        27465 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3704        27465 :         tree _q31 = TREE_OPERAND (_p1, 1);
    3705        27465 :         switch (TREE_CODE (_q30))
    3706              :           {
    3707        23574 :           CASE_CONVERT:
    3708        23574 :             {
    3709        23574 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3710        23574 :               switch (TREE_CODE (_q31))
    3711              :                 {
    3712         7562 :                 CASE_CONVERT:
    3713         7562 :                   {
    3714         7562 :                     tree _q60 = TREE_OPERAND (_q31, 0);
    3715         7562 :                     if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    3716              :                       {
    3717           20 :                         {
    3718           20 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _p1, _q40 };
    3719           20 :                           if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2]))
    3720           20 :  && ((
    3721              : 
    3722              :  && useless_type_conversion_p (type, TREE_TYPE (captures[3])))
    3723              :  || (
    3724              : 1
    3725           20 :  && type == TREE_TYPE (captures[3])))
    3726              : )
    3727              :                             {
    3728            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1166;
    3729            0 :                               {
    3730            0 :                                 tree _r;
    3731            0 :                                 _r = captures[3];
    3732            0 :                                 if (TREE_SIDE_EFFECTS (captures[0]))
    3733            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3734            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 883, __FILE__, __LINE__, true);
    3735            0 :                                 return _r;
    3736              :                               }
    3737            0 : next_after_fail1166:;
    3738              :                             }
    3739              :                         }
    3740              :                       }
    3741              :                     break;
    3742              :                   }
    3743              :                 default:;
    3744              :                 }
    3745              :               break;
    3746              :             }
    3747          972 :           case INTEGER_CST:
    3748          972 :             {
    3749          972 :               switch (TREE_CODE (_q31))
    3750              :                 {
    3751           16 :                 case BIT_AND_EXPR:
    3752           16 :                   {
    3753           16 :                     tree _q50 = TREE_OPERAND (_q31, 0);
    3754           16 :                     tree _q51 = TREE_OPERAND (_q31, 1);
    3755           16 :                     switch (TREE_CODE (_q50))
    3756              :                       {
    3757           16 :                       CASE_CONVERT:
    3758           16 :                         {
    3759           16 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    3760           16 :                           if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    3761              :                             {
    3762            0 :                               switch (TREE_CODE (_q51))
    3763              :                                 {
    3764            0 :                                 case INTEGER_CST:
    3765            0 :                                   {
    3766            0 :                                     {
    3767            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q51 };
    3768            0 :                                       if (tree_int_cst_min_precision (captures[3], UNSIGNED) <= tree_ctz (captures[2])
    3769              : )
    3770              :                                         {
    3771            0 :                                           {
    3772            0 :  tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[3]));
    3773            0 :                                               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1167;
    3774            0 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1167;
    3775            0 :                                               {
    3776            0 :                                                 tree res_op0;
    3777            0 :                                                 {
    3778            0 :                                                   tree _o1[2], _r1;
    3779            0 :                                                   _o1[0] = captures[0];
    3780            0 :                                                   _o1[1] =  algn;
    3781            0 :                                                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3782            0 :                                                   res_op0 = _r1;
    3783              :                                                 }
    3784            0 :                                                 tree res_op1;
    3785            0 :                                                 res_op1 = captures[2];
    3786            0 :                                                 tree _r;
    3787            0 :                                                 _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
    3788            0 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 885, __FILE__, __LINE__, true);
    3789            0 :                                                 return _r;
    3790              :                                               }
    3791            0 : next_after_fail1167:;
    3792              :                                           }
    3793              :                                         }
    3794              :                                     }
    3795            0 :                                     break;
    3796              :                                   }
    3797              :                                 default:;
    3798              :                                 }
    3799              :                             }
    3800           16 :                           switch (TREE_CODE (_q60))
    3801              :                             {
    3802            0 :                             case POINTER_PLUS_EXPR:
    3803            0 :                               {
    3804            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    3805            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    3806            0 :                                 if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    3807              :                                   {
    3808            0 :                                     switch (TREE_CODE (_q71))
    3809              :                                       {
    3810            0 :                                       case INTEGER_CST:
    3811            0 :                                         {
    3812            0 :                                           switch (TREE_CODE (_q51))
    3813              :                                             {
    3814            0 :                                             case INTEGER_CST:
    3815            0 :                                               {
    3816            0 :                                                 {
    3817            0 :                                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q71, _q51 };
    3818            0 :                                                   {
    3819            0 :  auto mask_width = tree_int_cst_min_precision (captures[4], UNSIGNED);
    3820            0 :                                                       if (mask_width <= tree_ctz (captures[2]) && mask_width <= tree_ctz (captures[3])
    3821              : )
    3822              :                                                         {
    3823            0 :                                                           {
    3824            0 :  tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[4]));
    3825            0 :                                                               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1168;
    3826            0 :                                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1168;
    3827            0 :                                                               {
    3828            0 :                                                                 tree res_op0;
    3829            0 :                                                                 {
    3830            0 :                                                                   tree _o1[2], _r1;
    3831            0 :                                                                   _o1[0] = captures[0];
    3832            0 :                                                                   _o1[1] =  algn;
    3833            0 :                                                                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3834            0 :                                                                   res_op0 = _r1;
    3835              :                                                                 }
    3836            0 :                                                                 tree res_op1;
    3837            0 :                                                                 res_op1 = captures[2];
    3838            0 :                                                                 tree _r;
    3839            0 :                                                                 _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
    3840            0 :                                                                 if (TREE_SIDE_EFFECTS (captures[3]))
    3841            0 :                                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    3842            0 :                                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
    3843            0 :                                                                 return _r;
    3844              :                                                               }
    3845            0 : next_after_fail1168:;
    3846              :                                                           }
    3847              :                                                         }
    3848              :                                                   }
    3849              :                                                 }
    3850            0 :                                                 break;
    3851              :                                               }
    3852              :                                             default:;
    3853              :                                             }
    3854              :                                           break;
    3855              :                                         }
    3856              :                                       default:;
    3857              :                                       }
    3858              :                                   }
    3859              :                                 break;
    3860              :                               }
    3861              :                             default:;
    3862              :                             }
    3863              :                           break;
    3864              :                         }
    3865              :                       default:;
    3866              :                       }
    3867              :                     break;
    3868              :                   }
    3869              :                 default:;
    3870              :                 }
    3871              :               break;
    3872              :             }
    3873              :           default:;
    3874              :           }
    3875              :         break;
    3876              :       }
    3877            0 :     case POINTER_DIFF_EXPR:
    3878            0 :       {
    3879            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3880            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    3881            0 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
    3882              :           {
    3883            0 :             {
    3884            0 :               tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p1, _q30, _p0 };
    3885            0 :               if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2]))
    3886              : )
    3887              :                 {
    3888            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1169;
    3889            0 :                   {
    3890            0 :                     tree res_op0;
    3891            0 :                     res_op0 = captures[3];
    3892            0 :                     tree _r;
    3893            0 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3894            0 :                     if (TREE_SIDE_EFFECTS (captures[4]))
    3895            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    3896            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 884, __FILE__, __LINE__, true);
    3897            0 :                     return _r;
    3898              :                   }
    3899            0 : next_after_fail1169:;
    3900              :                 }
    3901              :             }
    3902              :           }
    3903              :         break;
    3904              :       }
    3905       639632 :     case NEGATE_EXPR:
    3906       639632 :       {
    3907       639632 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3908       639632 :         switch (TREE_CODE (_q30))
    3909              :           {
    3910           22 :           case BIT_AND_EXPR:
    3911           22 :             {
    3912           22 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3913           22 :               tree _q41 = TREE_OPERAND (_q30, 1);
    3914           22 :               switch (TREE_CODE (_q40))
    3915              :                 {
    3916           22 :                 CASE_CONVERT:
    3917           22 :                   {
    3918           22 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3919           22 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    3920              :                       {
    3921            1 :                         switch (TREE_CODE (_q41))
    3922              :                           {
    3923            1 :                           case INTEGER_CST:
    3924            1 :                             {
    3925            1 :                               {
    3926            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    3927            1 :                                 {
    3928            1 :  tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[1]));
    3929            1 :                                     if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1170;
    3930            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1170;
    3931            1 :                                     {
    3932            1 :                                       tree res_op0;
    3933            1 :                                       res_op0 = captures[0];
    3934            1 :                                       tree res_op1;
    3935            1 :                                       res_op1 =  algn;
    3936            1 :                                       tree _r;
    3937            1 :                                       _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    3938            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 887, __FILE__, __LINE__, true);
    3939            1 :                                       return _r;
    3940              :                                     }
    3941            0 : next_after_fail1170:;
    3942              :                                 }
    3943              :                               }
    3944            0 :                               break;
    3945              :                             }
    3946              :                           default:;
    3947              :                           }
    3948              :                       }
    3949           21 :                     switch (TREE_CODE (_q50))
    3950              :                       {
    3951            0 :                       case POINTER_PLUS_EXPR:
    3952            0 :                         {
    3953            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    3954            0 :                           tree _q61 = TREE_OPERAND (_q50, 1);
    3955            0 :                           if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    3956              :                             {
    3957            0 :                               switch (TREE_CODE (_q61))
    3958              :                                 {
    3959            0 :                                 case INTEGER_CST:
    3960            0 :                                   {
    3961            0 :                                     switch (TREE_CODE (_q41))
    3962              :                                       {
    3963            0 :                                       case INTEGER_CST:
    3964            0 :                                         {
    3965            0 :                                           {
    3966            0 :                                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q61, _q41 };
    3967            0 :                                             if (tree_int_cst_min_precision (captures[2], UNSIGNED) <= tree_ctz (captures[1])
    3968              : )
    3969              :                                               {
    3970            0 :                                                 {
    3971            0 :  tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[2]));
    3972            0 :                                                     if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1171;
    3973            0 :                                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1171;
    3974            0 :                                                     {
    3975            0 :                                                       tree res_op0;
    3976            0 :                                                       res_op0 = captures[0];
    3977            0 :                                                       tree res_op1;
    3978            0 :                                                       res_op1 =  algn;
    3979            0 :                                                       tree _r;
    3980            0 :                                                       _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    3981            0 :                                                       if (TREE_SIDE_EFFECTS (captures[1]))
    3982            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3983            0 :                                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 888, __FILE__, __LINE__, true);
    3984            0 :                                                       return _r;
    3985              :                                                     }
    3986            0 : next_after_fail1171:;
    3987              :                                                 }
    3988              :                                               }
    3989              :                                           }
    3990            0 :                                           break;
    3991              :                                         }
    3992              :                                       default:;
    3993              :                                       }
    3994              :                                     break;
    3995              :                                   }
    3996              :                                 default:;
    3997              :                                 }
    3998              :                             }
    3999              :                           break;
    4000              :                         }
    4001              :                       default:;
    4002              :                       }
    4003              :                     break;
    4004              :                   }
    4005              :                 default:;
    4006              :                 }
    4007              :               break;
    4008              :             }
    4009              :           default:;
    4010              :           }
    4011              :         break;
    4012              :       }
    4013              :     default:;
    4014              :     }
    4015              :   return NULL_TREE;
    4016              : }
    4017              : 
    4018              : tree
    4019     40891298 : generic_simplify_NE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    4020              : {
    4021     40891298 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    4022     40891298 :   switch (TREE_CODE (_p1))
    4023              :     {
    4024         2251 :     case NEGATE_EXPR:
    4025         2251 :       {
    4026         2251 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4027         2251 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    4028              :           {
    4029            0 :             {
    4030            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4031            0 :               tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, NE_EXPR);
    4032            0 :               if (res) return res;
    4033              :             }
    4034              :           }
    4035              :         break;
    4036              :       }
    4037     40891298 :     default:;
    4038              :     }
    4039     40891298 :   switch (TREE_CODE (_p0))
    4040              :     {
    4041         6151 :     case NEGATE_EXPR:
    4042         6151 :       {
    4043         6151 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4044         6151 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4045              :           {
    4046           88 :             {
    4047           88 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4048           88 :               tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, NE_EXPR);
    4049           88 :               if (res) return res;
    4050              :             }
    4051              :           }
    4052              :         break;
    4053              :       }
    4054            0 :     case CEIL_MOD_EXPR:
    4055            0 :       {
    4056            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4057            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4058            0 :         if (integer_pow2p (_q21))
    4059              :           {
    4060            0 :             if (integer_zerop (_p1))
    4061              :               {
    4062            0 :                 {
    4063            0 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4064            0 :                   tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, NE_EXPR, CEIL_MOD_EXPR);
    4065            0 :                   if (res) return res;
    4066              :                 }
    4067              :               }
    4068              :           }
    4069              :         break;
    4070              :       }
    4071         1623 :     case FLOOR_MOD_EXPR:
    4072         1623 :       {
    4073         1623 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4074         1623 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4075         1623 :         if (integer_pow2p (_q21))
    4076              :           {
    4077           20 :             if (integer_zerop (_p1))
    4078              :               {
    4079           20 :                 {
    4080           20 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4081           20 :                   tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, NE_EXPR, FLOOR_MOD_EXPR);
    4082           20 :                   if (res) return res;
    4083              :                 }
    4084              :               }
    4085              :           }
    4086              :         break;
    4087              :       }
    4088            0 :     case ROUND_MOD_EXPR:
    4089            0 :       {
    4090            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4091            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4092            0 :         if (integer_pow2p (_q21))
    4093              :           {
    4094            0 :             if (integer_zerop (_p1))
    4095              :               {
    4096            0 :                 {
    4097            0 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4098            0 :                   tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, NE_EXPR, ROUND_MOD_EXPR);
    4099            0 :                   if (res) return res;
    4100              :                 }
    4101              :               }
    4102              :           }
    4103              :         break;
    4104              :       }
    4105        80551 :     case TRUNC_MOD_EXPR:
    4106        80551 :       {
    4107        80551 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4108        80551 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4109        80551 :         if (integer_pow2p (_q21))
    4110              :           {
    4111        20804 :             if (integer_zerop (_p1))
    4112              :               {
    4113        19362 :                 {
    4114        19362 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4115        19362 :                   tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, NE_EXPR, TRUNC_MOD_EXPR);
    4116        19362 :                   if (res) return res;
    4117              :                 }
    4118              :               }
    4119              :           }
    4120              :         break;
    4121              :       }
    4122      8301138 :     CASE_CONVERT:
    4123      8301138 :       {
    4124      8301138 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4125      8301138 :         switch (TREE_CODE (_p1))
    4126              :           {
    4127           69 :           case LSHIFT_EXPR:
    4128           69 :             {
    4129           69 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4130           69 :               tree _q41 = TREE_OPERAND (_p1, 1);
    4131           69 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    4132              :                 {
    4133            0 :                   {
    4134            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    4135            0 :                     tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4136            0 :                     if (res) return res;
    4137              :                   }
    4138              :                 }
    4139              :               break;
    4140              :             }
    4141      8301138 :           default:;
    4142              :           }
    4143      8301138 :       {
    4144      8301138 :         tree _p1_pops[1];
    4145      8301138 :         if (tree_nop_convert (_p1, _p1_pops))
    4146              :           {
    4147      3063107 :             tree _q40 = _p1_pops[0];
    4148      3063107 :             switch (TREE_CODE (_q40))
    4149              :               {
    4150            0 :               case LSHIFT_EXPR:
    4151            0 :                 {
    4152            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    4153            0 :                   tree _q51 = TREE_OPERAND (_q40, 1);
    4154            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4155              :                     {
    4156            0 :                       {
    4157            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
    4158            0 :                         tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4159            0 :                         if (res) return res;
    4160              :                       }
    4161              :                     }
    4162              :                   break;
    4163              :                 }
    4164              :               default:;
    4165              :               }
    4166              :           }
    4167              :       }
    4168      8301138 :         switch (TREE_CODE (_q20))
    4169              :           {
    4170            0 :           case EXACT_DIV_EXPR:
    4171            0 :             {
    4172            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4173            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4174            0 :               switch (TREE_CODE (_q31))
    4175              :                 {
    4176            0 :                 case INTEGER_CST:
    4177            0 :                   {
    4178            0 :                     switch (TREE_CODE (_p1))
    4179              :                       {
    4180            0 :                       CASE_CONVERT:
    4181            0 :                         {
    4182            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    4183            0 :                           switch (TREE_CODE (_q60))
    4184              :                             {
    4185            0 :                             case EXACT_DIV_EXPR:
    4186            0 :                               {
    4187            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    4188            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    4189            0 :                                 if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    4190              :                                   {
    4191            0 :                                     {
    4192            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
    4193            0 :                                       tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, NE_EXPR);
    4194            0 :                                       if (res) return res;
    4195              :                                     }
    4196              :                                   }
    4197              :                                 break;
    4198              :                               }
    4199              :                             default:;
    4200              :                             }
    4201              :                           break;
    4202              :                         }
    4203              :                       default:;
    4204              :                       }
    4205              :                     break;
    4206              :                   }
    4207              :                 default:;
    4208              :                 }
    4209              :               break;
    4210              :             }
    4211      8301138 :           default:;
    4212              :           }
    4213      8301138 :         switch (TREE_CODE (_p1))
    4214              :           {
    4215        20303 :           case PLUS_EXPR:
    4216        20303 :             {
    4217        20303 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4218        20303 :               tree _q41 = TREE_OPERAND (_p1, 1);
    4219        20303 :               switch (TREE_CODE (_q41))
    4220              :                 {
    4221          203 :                 CASE_CONVERT:
    4222          203 :                   {
    4223          203 :                     tree _q60 = TREE_OPERAND (_q41, 0);
    4224          203 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4225              :                       {
    4226            0 :                         {
    4227            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
    4228            0 :                           tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4229            0 :                           if (res) return res;
    4230              :                         }
    4231              :                       }
    4232              :                     break;
    4233              :                   }
    4234        20303 :                 default:;
    4235              :                 }
    4236        20303 :               switch (TREE_CODE (_q40))
    4237              :                 {
    4238          796 :                 CASE_CONVERT:
    4239          796 :                   {
    4240          796 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    4241          796 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4242              :                       {
    4243           13 :                         {
    4244           13 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
    4245           13 :                           tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4246           13 :                           if (res) return res;
    4247              :                         }
    4248              :                       }
    4249              :                     break;
    4250              :                   }
    4251        20298 :                 default:;
    4252              :                 }
    4253        20298 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    4254              :                 {
    4255            0 :                   {
    4256            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
    4257            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4258            0 :                     if (res) return res;
    4259              :                   }
    4260              :                 }
    4261        20298 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    4262              :                 {
    4263            0 :                   {
    4264            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
    4265            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4266            0 :                     if (res) return res;
    4267              :                   }
    4268              :                 }
    4269              :               break;
    4270              :             }
    4271      8301133 :           default:;
    4272              :           }
    4273      8301133 :       {
    4274      8301133 :         tree _p1_pops[1];
    4275      8301133 :         if (tree_nop_convert (_p1, _p1_pops))
    4276              :           {
    4277      3063107 :             tree _q40 = _p1_pops[0];
    4278      3063107 :             switch (TREE_CODE (_q40))
    4279              :               {
    4280          140 :               case PLUS_EXPR:
    4281          140 :                 {
    4282          140 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    4283          140 :                   tree _q51 = TREE_OPERAND (_q40, 1);
    4284          140 :                   switch (TREE_CODE (_q51))
    4285              :                     {
    4286            0 :                     CASE_CONVERT:
    4287            0 :                       {
    4288            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    4289            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    4290              :                           {
    4291            0 :                             {
    4292            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
    4293            0 :                               tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4294            0 :                               if (res) return res;
    4295              :                             }
    4296              :                           }
    4297              :                         break;
    4298              :                       }
    4299          140 :                     default:;
    4300              :                     }
    4301          140 :                   switch (TREE_CODE (_q50))
    4302              :                     {
    4303           73 :                     CASE_CONVERT:
    4304           73 :                       {
    4305           73 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    4306           73 :                         if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4307              :                           {
    4308            0 :                             {
    4309            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
    4310            0 :                               tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4311            0 :                               if (res) return res;
    4312              :                             }
    4313              :                           }
    4314              :                         break;
    4315              :                       }
    4316          140 :                     default:;
    4317              :                     }
    4318          140 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4319              :                     {
    4320            0 :                       {
    4321            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
    4322            0 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4323            0 :                         if (res) return res;
    4324              :                       }
    4325              :                     }
    4326          140 :                   if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4327              :                     {
    4328            0 :                       {
    4329            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
    4330            0 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4331            0 :                         if (res) return res;
    4332              :                       }
    4333              :                     }
    4334              :                   break;
    4335              :                 }
    4336              :               default:;
    4337              :               }
    4338              :           }
    4339              :       }
    4340      8301133 :         break;
    4341              :       }
    4342     40871911 :     default:;
    4343              :     }
    4344     40871911 : {
    4345     40871911 :   tree _p0_pops[1];
    4346     40871911 :   if (tree_nop_convert (_p0, _p0_pops))
    4347              :     {
    4348      4902200 :       tree _q20 = _p0_pops[0];
    4349      4902200 :       switch (TREE_CODE (_q20))
    4350              :         {
    4351           15 :         case LSHIFT_EXPR:
    4352           15 :           {
    4353           15 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4354           15 :             tree _q31 = TREE_OPERAND (_q20, 1);
    4355           15 :             switch (TREE_CODE (_p1))
    4356              :               {
    4357            1 :               CASE_CONVERT:
    4358            1 :                 {
    4359            1 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    4360            1 :                   if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    4361              :                     {
    4362            0 :                       {
    4363            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    4364            0 :                         tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4365            0 :                         if (res) return res;
    4366              :                       }
    4367              :                     }
    4368              :                   break;
    4369              :                 }
    4370           15 :               default:;
    4371              :               }
    4372           15 :             if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    4373              :               {
    4374            1 :                 {
    4375            1 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    4376            1 :                   tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4377            1 :                   if (res) return res;
    4378              :                 }
    4379              :               }
    4380              :             break;
    4381              :           }
    4382        33388 :         case PLUS_EXPR:
    4383        33388 :           {
    4384        33388 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4385        33388 :             tree _q31 = TREE_OPERAND (_q20, 1);
    4386        33388 :             switch (TREE_CODE (_q31))
    4387              :               {
    4388           37 :               CASE_CONVERT:
    4389           37 :                 {
    4390           37 :                   tree _q50 = TREE_OPERAND (_q31, 0);
    4391           37 :                   switch (TREE_CODE (_p1))
    4392              :                     {
    4393            0 :                     CASE_CONVERT:
    4394            0 :                       {
    4395            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    4396            0 :                         if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
    4397              :                           {
    4398            0 :                             {
    4399            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
    4400            0 :                               tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4401            0 :                               if (res) return res;
    4402              :                             }
    4403              :                           }
    4404              :                         break;
    4405              :                       }
    4406              :                     default:;
    4407              :                     }
    4408              :                   break;
    4409              :                 }
    4410        33388 :               default:;
    4411              :               }
    4412        33388 :             switch (TREE_CODE (_q30))
    4413              :               {
    4414        28657 :               CASE_CONVERT:
    4415        28657 :                 {
    4416        28657 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    4417        28657 :                   switch (TREE_CODE (_p1))
    4418              :                     {
    4419          415 :                     CASE_CONVERT:
    4420          415 :                       {
    4421          415 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    4422          415 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    4423              :                           {
    4424           90 :                             {
    4425           90 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
    4426           90 :                               tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4427           90 :                               if (res) return res;
    4428              :                             }
    4429              :                           }
    4430              :                         break;
    4431              :                       }
    4432        28567 :                     default:;
    4433              :                     }
    4434        28567 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    4435              :                     {
    4436           11 :                       {
    4437           11 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
    4438           11 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4439           11 :                         if (res) return res;
    4440              :                       }
    4441              :                     }
    4442              :                   break;
    4443              :                 }
    4444        33287 :               default:;
    4445              :               }
    4446        33287 :             switch (TREE_CODE (_q31))
    4447              :               {
    4448           37 :               CASE_CONVERT:
    4449           37 :                 {
    4450           37 :                   tree _q50 = TREE_OPERAND (_q31, 0);
    4451           37 :                   if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    4452              :                     {
    4453            0 :                       {
    4454            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
    4455            0 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4456            0 :                         if (res) return res;
    4457              :                       }
    4458              :                     }
    4459              :                   break;
    4460              :                 }
    4461        33287 :               default:;
    4462              :               }
    4463        33287 :             switch (TREE_CODE (_p1))
    4464              :               {
    4465          400 :               CASE_CONVERT:
    4466          400 :                 {
    4467          400 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    4468          400 :                   if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    4469              :                     {
    4470            0 :                       {
    4471            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    4472            0 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4473            0 :                         if (res) return res;
    4474              :                       }
    4475              :                     }
    4476          400 :                   if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    4477              :                     {
    4478           68 :                       {
    4479           68 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
    4480           68 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4481           68 :                         if (res) return res;
    4482              :                       }
    4483              :                     }
    4484              :                   break;
    4485              :                 }
    4486        33219 :               default:;
    4487              :               }
    4488        33219 :             if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    4489              :               {
    4490            0 :                 {
    4491            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    4492            0 :                   tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4493            0 :                   if (res) return res;
    4494              :                 }
    4495              :               }
    4496        33219 :             if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4497              :               {
    4498            0 :                 {
    4499            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
    4500            0 :                   tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    4501            0 :                   if (res) return res;
    4502              :                 }
    4503              :               }
    4504              :             break;
    4505              :           }
    4506              :         default:;
    4507              :         }
    4508              :     }
    4509              : }
    4510     40871741 :   {
    4511     40871741 :     tree _p1_pops[1];
    4512     40871741 :     if (tree_nop_convert (_p1, _p1_pops))
    4513              :       {
    4514      3436594 :         tree _q30 = _p1_pops[0];
    4515      3436594 :         switch (TREE_CODE (_q30))
    4516              :           {
    4517            0 :           case LSHIFT_EXPR:
    4518            0 :             {
    4519            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4520            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4521            0 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    4522              :                 {
    4523            0 :                   {
    4524            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
    4525            0 :                     tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4526            0 :                     if (res) return res;
    4527              :                   }
    4528              :                 }
    4529              :               break;
    4530              :             }
    4531              :           default:;
    4532              :           }
    4533              :       }
    4534              :   }
    4535     40871741 :   switch (TREE_CODE (_p0))
    4536              :     {
    4537         5212 :     case LSHIFT_EXPR:
    4538         5212 :       {
    4539         5212 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4540         5212 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4541         5212 :         switch (TREE_CODE (_p1))
    4542              :           {
    4543           35 :           CASE_CONVERT:
    4544           35 :             {
    4545           35 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4546           35 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4547              :                 {
    4548            4 :                   {
    4549            4 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4550            4 :                     tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4551            4 :                     if (res) return res;
    4552              :                   }
    4553              :                 }
    4554              :               break;
    4555              :             }
    4556         5211 :           default:;
    4557              :           }
    4558         5211 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4559              :           {
    4560           27 :             {
    4561           27 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4562           27 :               tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4563           27 :               if (res) return res;
    4564              :             }
    4565              :           }
    4566         5207 :         if (tree_zero_one_valued_p (_q20))
    4567              :           {
    4568          484 :             switch (TREE_CODE (_q21))
    4569              :               {
    4570          120 :               case INTEGER_CST:
    4571          120 :                 {
    4572          120 :                   if (integer_zerop (_p1))
    4573              :                     {
    4574            5 :                       {
    4575            5 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4576            5 :                         if (tree_fits_shwi_p (captures[1])
    4577            5 :  && tree_to_shwi (captures[1]) > 0
    4578           10 :  && tree_to_shwi (captures[1]) < TYPE_PRECISION (TREE_TYPE (captures[0]))
    4579              : )
    4580              :                           {
    4581            5 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1501;
    4582            5 :                             {
    4583            5 :                               tree res_op0;
    4584            5 :                               res_op0 = captures[0];
    4585            5 :                               tree _r;
    4586            5 :                               _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4587            5 :                               if (TREE_SIDE_EFFECTS (captures[1]))
    4588            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4589            5 :                               if (TREE_SIDE_EFFECTS (captures[2]))
    4590            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    4591            5 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 970, __FILE__, __LINE__, true);
    4592            5 :                               return _r;
    4593              :                             }
    4594            0 : next_after_fail1501:;
    4595              :                           }
    4596              :                       }
    4597              :                     }
    4598              :                   break;
    4599              :                 }
    4600              :               default:;
    4601              :               }
    4602              :           }
    4603              :         break;
    4604              :       }
    4605     40871731 :     default:;
    4606              :     }
    4607     40871731 :   switch (TREE_CODE (_p1))
    4608              :     {
    4609          268 :     case LSHIFT_EXPR:
    4610          268 :       {
    4611          268 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4612          268 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4613          268 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4614              :           {
    4615            0 :             {
    4616            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    4617            0 :               tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
    4618            0 :               if (res) return res;
    4619              :             }
    4620              :           }
    4621              :         break;
    4622              :       }
    4623     40871731 :     default:;
    4624              :     }
    4625     40871731 :   switch (TREE_CODE (_p0))
    4626              :     {
    4627           55 :     case VIEW_CONVERT_EXPR:
    4628           55 :       {
    4629           55 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4630           55 :         if (tree_zero_one_valued_p (_q20))
    4631              :           {
    4632            0 :             if (integer_zerop (_p1))
    4633              :               {
    4634            0 :                 {
    4635            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    4636            0 :                   tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, NE_EXPR);
    4637            0 :                   if (res) return res;
    4638              :                 }
    4639              :               }
    4640              :           }
    4641              :         break;
    4642              :       }
    4643        94963 :     case MULT_EXPR:
    4644        94963 :       {
    4645        94963 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4646        94963 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4647        94963 :         switch (TREE_CODE (_p1))
    4648              :           {
    4649         2891 :           case MULT_EXPR:
    4650         2891 :             {
    4651         2891 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4652         2891 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4653         2891 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4654              :                 {
    4655         1636 :                   {
    4656         1636 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4657         1636 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, NE_EXPR);
    4658         1636 :                     if (res) return res;
    4659              :                   }
    4660              :                 }
    4661         2887 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4662              :                 {
    4663           53 :                   {
    4664           53 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    4665           53 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, NE_EXPR);
    4666           53 :                     if (res) return res;
    4667              :                   }
    4668              :                 }
    4669         2887 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4670              :                 {
    4671           22 :                   {
    4672           22 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    4673           22 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, NE_EXPR);
    4674           22 :                     if (res) return res;
    4675              :                   }
    4676              :                 }
    4677         2887 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4678              :                 {
    4679          257 :                   {
    4680          257 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    4681          257 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, NE_EXPR);
    4682          257 :                     if (res) return res;
    4683              :                   }
    4684              :                 }
    4685              :               break;
    4686              :             }
    4687        94959 :           default:;
    4688              :           }
    4689        94959 :         switch (TREE_CODE (_q21))
    4690              :           {
    4691        77452 :           case INTEGER_CST:
    4692        77452 :             {
    4693        77452 :               switch (TREE_CODE (_p1))
    4694              :                 {
    4695         2032 :                 case MULT_EXPR:
    4696         2032 :                   {
    4697         2032 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4698         2032 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    4699         2032 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4700              :                       {
    4701         1107 :                         {
    4702         1107 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4703         1107 :                           tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, NE_EXPR);
    4704         1107 :                           if (res) return res;
    4705              :                         }
    4706              :                       }
    4707              :                     break;
    4708              :                   }
    4709              :                 default:;
    4710              :                 }
    4711              :               break;
    4712              :             }
    4713              :           default:;
    4714              :           }
    4715              :         break;
    4716              :       }
    4717         2049 :     case EXACT_DIV_EXPR:
    4718         2049 :       {
    4719         2049 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4720         2049 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4721         2049 :         switch (TREE_CODE (_q21))
    4722              :           {
    4723         2049 :           case INTEGER_CST:
    4724         2049 :             {
    4725         2049 :               switch (TREE_CODE (_p1))
    4726              :                 {
    4727           22 :                 case EXACT_DIV_EXPR:
    4728           22 :                   {
    4729           22 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4730           22 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    4731           22 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4732              :                       {
    4733           12 :                         {
    4734           12 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    4735           12 :                           tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, NE_EXPR);
    4736           12 :                           if (res) return res;
    4737              :                         }
    4738              :                       }
    4739              :                     break;
    4740              :                   }
    4741              :                 default:;
    4742              :                 }
    4743              :               break;
    4744              :             }
    4745              :           default:;
    4746              :           }
    4747              :         break;
    4748              :       }
    4749        11310 :     case TRUNC_DIV_EXPR:
    4750        11310 :       {
    4751        11310 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4752        11310 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4753        11310 :         switch (TREE_CODE (_q21))
    4754              :           {
    4755         8559 :           case INTEGER_CST:
    4756         8559 :             {
    4757         8559 :               switch (TREE_CODE (_p1))
    4758              :                 {
    4759         2431 :                 case INTEGER_CST:
    4760         2431 :                   {
    4761         2431 :                     {
    4762         2431 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    4763         2431 :                       tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, NE_EXPR);
    4764         2431 :                       if (res) return res;
    4765              :                     }
    4766          326 :                     break;
    4767              :                   }
    4768              :                 default:;
    4769              :                 }
    4770              :               break;
    4771              :             }
    4772              :           default:;
    4773              :           }
    4774              :         break;
    4775              :       }
    4776        20953 :     case RSHIFT_EXPR:
    4777        20953 :       {
    4778        20953 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4779        20953 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4780        20953 :         switch (TREE_CODE (_q21))
    4781              :           {
    4782        18631 :           case INTEGER_CST:
    4783        18631 :             {
    4784        18631 :               if (integer_zerop (_p1))
    4785              :                 {
    4786         7708 :                   {
    4787         7708 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    4788         7708 :                     tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
    4789         7708 :                     if (res) return res;
    4790              :                   }
    4791              :                 }
    4792              :               break;
    4793              :             }
    4794              :           default:;
    4795              :           }
    4796              :         break;
    4797              :       }
    4798      1557920 :     case PLUS_EXPR:
    4799      1557920 :       {
    4800      1557920 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4801      1557920 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4802      1557920 :         switch (TREE_CODE (_p1))
    4803              :           {
    4804       188674 :           case PLUS_EXPR:
    4805       188674 :             {
    4806       188674 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4807       188674 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4808       188674 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4809              :                 {
    4810          857 :                   {
    4811          857 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4812         1714 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4813         1685 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    4814          745 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    4815              : )
    4816              :                       {
    4817          828 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1502;
    4818          828 :                         {
    4819          828 :                           tree res_op0;
    4820          828 :                           res_op0 = captures[0];
    4821          828 :                           tree res_op1;
    4822          828 :                           res_op1 = captures[2];
    4823          828 :                           tree _r;
    4824          828 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    4825          828 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    4826            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4827          828 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    4828          828 :                           return _r;
    4829              :                         }
    4830            0 : next_after_fail1502:;
    4831              :                       }
    4832              :                   }
    4833              :                 }
    4834       187846 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4835              :                 {
    4836            0 :                   {
    4837            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    4838            0 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4839            0 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    4840            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    4841              : )
    4842              :                       {
    4843            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1503;
    4844            0 :                         {
    4845            0 :                           tree res_op0;
    4846            0 :                           res_op0 = captures[0];
    4847            0 :                           tree res_op1;
    4848            0 :                           res_op1 = captures[2];
    4849            0 :                           tree _r;
    4850            0 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    4851            0 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    4852            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4853            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    4854            0 :                           return _r;
    4855              :                         }
    4856            0 : next_after_fail1503:;
    4857              :                       }
    4858              :                   }
    4859              :                 }
    4860       187846 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4861              :                 {
    4862          132 :                   {
    4863          132 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    4864          264 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4865          264 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    4866          132 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    4867              : )
    4868              :                       {
    4869          132 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1504;
    4870          132 :                         {
    4871          132 :                           tree res_op0;
    4872          132 :                           res_op0 = captures[0];
    4873          132 :                           tree res_op1;
    4874          132 :                           res_op1 = captures[2];
    4875          132 :                           tree _r;
    4876          132 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    4877          132 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    4878            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4879          132 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    4880          132 :                           return _r;
    4881              :                         }
    4882            0 : next_after_fail1504:;
    4883              :                       }
    4884              :                   }
    4885              :                 }
    4886       187714 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4887              :                 {
    4888       106576 :                   {
    4889       106576 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    4890       213152 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4891       213131 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    4892       106555 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    4893              : )
    4894              :                       {
    4895       106555 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1505;
    4896       106555 :                         {
    4897       106555 :                           tree res_op0;
    4898       106555 :                           res_op0 = captures[0];
    4899       106555 :                           tree res_op1;
    4900       106555 :                           res_op1 = captures[2];
    4901       106555 :                           tree _r;
    4902       106555 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    4903       106555 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    4904            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4905       106555 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    4906       106555 :                           return _r;
    4907              :                         }
    4908            0 : next_after_fail1505:;
    4909              :                       }
    4910              :                   }
    4911              :                 }
    4912              :               break;
    4913              :             }
    4914      1450405 :           default:;
    4915              :           }
    4916      1450405 :         switch (TREE_CODE (_q21))
    4917              :           {
    4918          747 :           CASE_CONVERT:
    4919          747 :             {
    4920          747 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4921          747 :               switch (TREE_CODE (_p1))
    4922              :                 {
    4923           88 :                 CASE_CONVERT:
    4924           88 :                   {
    4925           88 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    4926           88 :                     if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
    4927              :                       {
    4928            0 :                         {
    4929            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
    4930            0 :                           tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4931            0 :                           if (res) return res;
    4932              :                         }
    4933              :                       }
    4934              :                     break;
    4935              :                   }
    4936              :                 default:;
    4937              :                 }
    4938              :               break;
    4939              :             }
    4940      1450405 :           default:;
    4941              :           }
    4942      1450405 :         switch (TREE_CODE (_q20))
    4943              :           {
    4944       147049 :           CASE_CONVERT:
    4945       147049 :             {
    4946       147049 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4947       147049 :               switch (TREE_CODE (_p1))
    4948              :                 {
    4949         3733 :                 CASE_CONVERT:
    4950         3733 :                   {
    4951         3733 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    4952         3733 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    4953              :                       {
    4954          399 :                         {
    4955          399 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
    4956          399 :                           tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4957          399 :                           if (res) return res;
    4958              :                         }
    4959              :                       }
    4960              :                     break;
    4961              :                   }
    4962       146650 :                 default:;
    4963              :                 }
    4964       146650 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4965              :                 {
    4966            0 :                   {
    4967            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
    4968            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4969            0 :                     if (res) return res;
    4970              :                   }
    4971              :                 }
    4972              :               break;
    4973              :             }
    4974      1450006 :           default:;
    4975              :           }
    4976      1450006 :         switch (TREE_CODE (_q21))
    4977              :           {
    4978          747 :           CASE_CONVERT:
    4979          747 :             {
    4980          747 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4981          747 :               if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    4982              :                 {
    4983            0 :                   {
    4984            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
    4985            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    4986            0 :                     if (res) return res;
    4987              :                   }
    4988              :                 }
    4989              :               break;
    4990              :             }
    4991      1450006 :           default:;
    4992              :           }
    4993      1450006 :         switch (TREE_CODE (_p1))
    4994              :           {
    4995        43612 :           CASE_CONVERT:
    4996        43612 :             {
    4997        43612 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4998        43612 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4999              :                 {
    5000            0 :                   {
    5001            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5002            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5003            0 :                     if (res) return res;
    5004              :                   }
    5005              :                 }
    5006        43612 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5007              :                 {
    5008            0 :                   {
    5009            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
    5010            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5011            0 :                     if (res) return res;
    5012              :                   }
    5013              :                 }
    5014              :               break;
    5015              :             }
    5016      1450006 :           default:;
    5017              :           }
    5018      1450006 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5019              :           {
    5020       105829 :             {
    5021       105829 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5022       105829 :               tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5023       105829 :               if (res) return res;
    5024              :             }
    5025              :           }
    5026      1344877 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5027              :           {
    5028        19183 :             {
    5029        19183 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
    5030        19183 :               tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5031        19183 :               if (res) return res;
    5032              :             }
    5033              :           }
    5034              :         break;
    5035              :       }
    5036       548591 :     case POINTER_PLUS_EXPR:
    5037       548591 :       {
    5038       548591 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5039       548591 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5040       548591 :         switch (TREE_CODE (_p1))
    5041              :           {
    5042        34611 :           case POINTER_PLUS_EXPR:
    5043        34611 :             {
    5044        34611 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5045        34611 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5046        34611 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5047              :                 {
    5048         8502 :                   {
    5049         8502 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5050         8502 :                     tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, NE_EXPR);
    5051         8502 :                     if (res) return res;
    5052              :                   }
    5053              :                 }
    5054              :               break;
    5055              :             }
    5056       540089 :           default:;
    5057              :           }
    5058       540089 :         switch (TREE_CODE (_q20))
    5059              :           {
    5060        77098 :           CASE_CONVERT:
    5061        77098 :             {
    5062        77098 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5063        77098 :               switch (TREE_CODE (_p1))
    5064              :                 {
    5065           95 :                 CASE_CONVERT:
    5066           95 :                   {
    5067           95 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    5068           95 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    5069              :                       {
    5070            0 :                         {
    5071            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
    5072            0 :                           tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5073            0 :                           if (res) return res;
    5074              :                         }
    5075              :                       }
    5076              :                     break;
    5077              :                   }
    5078        77098 :                 default:;
    5079              :                 }
    5080        77098 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    5081              :                 {
    5082           71 :                   {
    5083           71 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
    5084           71 :                     tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5085           71 :                     if (res) return res;
    5086              :                   }
    5087              :                 }
    5088              :               break;
    5089              :             }
    5090       540018 :           default:;
    5091              :           }
    5092       540018 :         switch (TREE_CODE (_p1))
    5093              :           {
    5094         3555 :           CASE_CONVERT:
    5095         3555 :             {
    5096         3555 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5097         3555 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5098              :                 {
    5099            0 :                   {
    5100            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5101            0 :                     tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5102            0 :                     if (res) return res;
    5103              :                   }
    5104              :                 }
    5105              :               break;
    5106              :             }
    5107       540018 :           default:;
    5108              :           }
    5109       540018 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5110              :           {
    5111        10771 :             {
    5112        10771 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5113        10771 :               tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5114        10771 :               if (res) return res;
    5115              :             }
    5116              :           }
    5117              :         break;
    5118              :       }
    5119       107563 :     case MINUS_EXPR:
    5120       107563 :       {
    5121       107563 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5122       107563 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5123       107563 :         switch (TREE_CODE (_p1))
    5124              :           {
    5125         5881 :           case MINUS_EXPR:
    5126         5881 :             {
    5127         5881 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5128         5881 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5129         5881 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5130              :                 {
    5131          173 :                   {
    5132          173 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5133          346 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5134          176 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5135            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5136              : )
    5137              :                       {
    5138            3 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1506;
    5139            3 :                         {
    5140            3 :                           tree res_op0;
    5141            3 :                           res_op0 = captures[0];
    5142            3 :                           tree res_op1;
    5143            3 :                           res_op1 = captures[2];
    5144            3 :                           tree _r;
    5145            3 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    5146            3 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5147            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5148            3 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
    5149            3 :                           return _r;
    5150              :                         }
    5151            0 : next_after_fail1506:;
    5152              :                       }
    5153              :                   }
    5154              :                 }
    5155         5878 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5156              :                 {
    5157          169 :                   {
    5158          169 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5159          338 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    5160          169 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    5161            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
    5162              : )
    5163              :                       {
    5164            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1507;
    5165            0 :                         {
    5166            0 :                           tree res_op0;
    5167            0 :                           res_op0 = captures[2];
    5168            0 :                           tree res_op1;
    5169            0 :                           res_op1 = captures[1];
    5170            0 :                           tree _r;
    5171            0 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    5172            0 :                           if (TREE_SIDE_EFFECTS (captures[0]))
    5173            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5174            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 905, __FILE__, __LINE__, true);
    5175            0 :                           return _r;
    5176              :                         }
    5177            0 : next_after_fail1507:;
    5178              :                       }
    5179              :                   }
    5180              :                 }
    5181              :               break;
    5182              :             }
    5183       107560 :           default:;
    5184              :           }
    5185       107560 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5186              :           {
    5187         1748 :             {
    5188         1748 :               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    5189         1748 :               tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, NE_EXPR);
    5190         1748 :               if (res) return res;
    5191              :             }
    5192              :           }
    5193              :         break;
    5194              :       }
    5195        26658 :     case POINTER_DIFF_EXPR:
    5196        26658 :       {
    5197        26658 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5198        26658 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5199        26658 :         switch (TREE_CODE (_p1))
    5200              :           {
    5201         2269 :           case POINTER_DIFF_EXPR:
    5202         2269 :             {
    5203         2269 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5204         2269 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5205         2269 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5206              :                 {
    5207            0 :                   {
    5208            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    5209            0 :                     tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, NE_EXPR);
    5210            0 :                     if (res) return res;
    5211              :                   }
    5212              :                 }
    5213         2269 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5214              :                 {
    5215            0 :                   {
    5216            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    5217            0 :                     tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, NE_EXPR);
    5218            0 :                     if (res) return res;
    5219              :                   }
    5220              :                 }
    5221              :               break;
    5222              :             }
    5223              :           default:;
    5224              :           }
    5225              :         break;
    5226              :       }
    5227     40616150 :     default:;
    5228              :     }
    5229     40616150 : {
    5230     40616150 :   tree _p0_pops[1];
    5231     40616150 :   if (tree_logical_inverted_value (_p0, _p0_pops))
    5232              :     {
    5233       727463 :       tree _q20 = _p0_pops[0];
    5234       727463 :       if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5235              :         {
    5236           24 :           if (tree_truth_valued_p (_p1))
    5237              :             {
    5238            0 :               {
    5239            0 :                 tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    5240            0 :                 tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, NE_EXPR);
    5241            0 :                 if (res) return res;
    5242              :               }
    5243              :             }
    5244              :         }
    5245              :     }
    5246              : }
    5247     40616150 : if (tree_truth_valued_p (_p0))
    5248              :   {
    5249      6375695 :     {
    5250      6375695 :       tree _p1_pops[1];
    5251      6375695 :       if (tree_logical_inverted_value (_p1, _p1_pops))
    5252              :         {
    5253         1115 :           tree _q30 = _p1_pops[0];
    5254         1115 :           if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5255              :             {
    5256            0 :               {
    5257            0 :                 tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5258            0 :                 tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, NE_EXPR);
    5259            0 :                 if (res) return res;
    5260              :               }
    5261              :             }
    5262              :         }
    5263              :     }
    5264              :   }
    5265     40616150 :   switch (TREE_CODE (_p1))
    5266              :     {
    5267       122113 :     case PLUS_EXPR:
    5268       122113 :       {
    5269       122113 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5270       122113 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5271       122113 :         switch (TREE_CODE (_q31))
    5272              :           {
    5273          346 :           CASE_CONVERT:
    5274          346 :             {
    5275          346 :               tree _q50 = TREE_OPERAND (_q31, 0);
    5276          346 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5277              :                 {
    5278            0 :                   {
    5279            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
    5280            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5281            0 :                     if (res) return res;
    5282              :                   }
    5283              :                 }
    5284              :               break;
    5285              :             }
    5286       122113 :           default:;
    5287              :           }
    5288       122113 :         switch (TREE_CODE (_q30))
    5289              :           {
    5290         6010 :           CASE_CONVERT:
    5291         6010 :             {
    5292         6010 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5293         6010 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    5294              :                 {
    5295            0 :                   {
    5296            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
    5297            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5298            0 :                     if (res) return res;
    5299              :                   }
    5300              :                 }
    5301              :               break;
    5302              :             }
    5303       122113 :           default:;
    5304              :           }
    5305       122113 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5306              :           {
    5307            0 :             {
    5308            0 :               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
    5309            0 :               tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5310            0 :               if (res) return res;
    5311              :             }
    5312              :           }
    5313       122113 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5314              :           {
    5315            8 :             {
    5316            8 :               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
    5317            8 :               tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, NE_EXPR);
    5318            8 :               if (res) return res;
    5319              :             }
    5320              :           }
    5321              :         break;
    5322              :       }
    5323     40616142 :     default:;
    5324              :     }
    5325     40616142 : {
    5326     40616142 :   tree _p1_pops[1];
    5327     40616142 :   if (tree_nop_convert (_p1, _p1_pops))
    5328              :     {
    5329      3436193 :       tree _q30 = _p1_pops[0];
    5330      3436193 :       switch (TREE_CODE (_q30))
    5331              :         {
    5332         1109 :         case PLUS_EXPR:
    5333         1109 :           {
    5334         1109 :             tree _q40 = TREE_OPERAND (_q30, 0);
    5335         1109 :             tree _q41 = TREE_OPERAND (_q30, 1);
    5336         1109 :             switch (TREE_CODE (_q41))
    5337              :               {
    5338            3 :               CASE_CONVERT:
    5339            3 :                 {
    5340            3 :                   tree _q60 = TREE_OPERAND (_q41, 0);
    5341            3 :                   if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    5342              :                     {
    5343            0 :                       {
    5344            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
    5345            0 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    5346            0 :                         if (res) return res;
    5347              :                       }
    5348              :                     }
    5349              :                   break;
    5350              :                 }
    5351         1109 :               default:;
    5352              :               }
    5353         1109 :             switch (TREE_CODE (_q40))
    5354              :               {
    5355          553 :               CASE_CONVERT:
    5356          553 :                 {
    5357          553 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    5358          553 :                   if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5359              :                     {
    5360            0 :                       {
    5361            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
    5362            0 :                         tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    5363            0 :                         if (res) return res;
    5364              :                       }
    5365              :                     }
    5366              :                   break;
    5367              :                 }
    5368         1109 :               default:;
    5369              :               }
    5370         1109 :             if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    5371              :               {
    5372            0 :                 {
    5373            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
    5374            0 :                   tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    5375            0 :                   if (res) return res;
    5376              :                 }
    5377              :               }
    5378         1109 :             if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    5379              :               {
    5380            0 :                 {
    5381            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
    5382            0 :                   tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    5383            0 :                   if (res) return res;
    5384              :                 }
    5385              :               }
    5386              :             break;
    5387              :           }
    5388              :         default:;
    5389              :         }
    5390              :     }
    5391              : }
    5392     40616142 :   switch (TREE_CODE (_p0))
    5393              :     {
    5394      8300955 :     CASE_CONVERT:
    5395      8300955 :       {
    5396      8300955 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5397      8300955 :         switch (TREE_CODE (_p1))
    5398              :           {
    5399          334 :           case POINTER_PLUS_EXPR:
    5400          334 :             {
    5401          334 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5402          334 :               tree _q41 = TREE_OPERAND (_p1, 1);
    5403          334 :               switch (TREE_CODE (_q40))
    5404              :                 {
    5405           48 :                 CASE_CONVERT:
    5406           48 :                   {
    5407           48 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5408           48 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5409              :                       {
    5410            0 :                         {
    5411            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
    5412            0 :                           tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5413            0 :                           if (res) return res;
    5414              :                         }
    5415              :                       }
    5416              :                     break;
    5417              :                   }
    5418          334 :                 default:;
    5419              :                 }
    5420          334 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    5421              :                 {
    5422            0 :                   {
    5423            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
    5424            0 :                     tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5425            0 :                     if (res) return res;
    5426              :                   }
    5427              :                 }
    5428              :               break;
    5429              :             }
    5430      8300955 :           default:;
    5431              :           }
    5432      8300955 :       {
    5433      8300955 :         tree _p1_pops[1];
    5434      8300955 :         if (tree_nop_convert (_p1, _p1_pops))
    5435              :           {
    5436      3062949 :             tree _q40 = _p1_pops[0];
    5437      3062949 :             switch (TREE_CODE (_q40))
    5438              :               {
    5439           50 :               case POINTER_PLUS_EXPR:
    5440           50 :                 {
    5441           50 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    5442           50 :                   tree _q51 = TREE_OPERAND (_q40, 1);
    5443           50 :                   switch (TREE_CODE (_q50))
    5444              :                     {
    5445            8 :                     CASE_CONVERT:
    5446            8 :                       {
    5447            8 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    5448            8 :                         if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    5449              :                           {
    5450            0 :                             {
    5451            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
    5452            0 :                               tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5453            0 :                               if (res) return res;
    5454              :                             }
    5455              :                           }
    5456              :                         break;
    5457              :                       }
    5458           50 :                     default:;
    5459              :                     }
    5460           50 :                   if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5461              :                     {
    5462            0 :                       {
    5463            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
    5464            0 :                         tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5465            0 :                         if (res) return res;
    5466              :                       }
    5467              :                     }
    5468              :                   break;
    5469              :                 }
    5470              :               default:;
    5471              :               }
    5472              :           }
    5473              :       }
    5474      8300955 :         break;
    5475              :       }
    5476     40616142 :     default:;
    5477              :     }
    5478     40616142 : {
    5479     40616142 :   tree _p0_pops[1];
    5480     40616142 :   if (tree_nop_convert (_p0, _p0_pops))
    5481              :     {
    5482      4902030 :       tree _q20 = _p0_pops[0];
    5483      4902030 :       switch (TREE_CODE (_q20))
    5484              :         {
    5485         1845 :         case POINTER_PLUS_EXPR:
    5486         1845 :           {
    5487         1845 :             tree _q30 = TREE_OPERAND (_q20, 0);
    5488         1845 :             tree _q31 = TREE_OPERAND (_q20, 1);
    5489         1845 :             switch (TREE_CODE (_q30))
    5490              :               {
    5491           52 :               CASE_CONVERT:
    5492           52 :                 {
    5493           52 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    5494           52 :                   switch (TREE_CODE (_p1))
    5495              :                     {
    5496           36 :                     CASE_CONVERT:
    5497           36 :                       {
    5498           36 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    5499           36 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    5500              :                           {
    5501            0 :                             {
    5502            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
    5503            0 :                               tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5504            0 :                               if (res) return res;
    5505              :                             }
    5506              :                           }
    5507              :                         break;
    5508              :                       }
    5509           52 :                     default:;
    5510              :                     }
    5511           52 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5512              :                     {
    5513            0 :                       {
    5514            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
    5515            0 :                         tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5516            0 :                         if (res) return res;
    5517              :                       }
    5518              :                     }
    5519              :                   break;
    5520              :                 }
    5521         1845 :               default:;
    5522              :               }
    5523         1845 :             switch (TREE_CODE (_p1))
    5524              :               {
    5525           52 :               CASE_CONVERT:
    5526           52 :                 {
    5527           52 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    5528           52 :                   if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    5529              :                     {
    5530            0 :                       {
    5531            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    5532            0 :                         tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5533            0 :                         if (res) return res;
    5534              :                       }
    5535              :                     }
    5536              :                   break;
    5537              :                 }
    5538         1845 :               default:;
    5539              :               }
    5540         1845 :             if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    5541              :               {
    5542            3 :                 {
    5543            3 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    5544            3 :                   tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5545            3 :                   if (res) return res;
    5546              :                 }
    5547              :               }
    5548              :             break;
    5549              :           }
    5550              :         default:;
    5551              :         }
    5552              :     }
    5553              : }
    5554     40616139 :   switch (TREE_CODE (_p1))
    5555              :     {
    5556        30219 :     case POINTER_PLUS_EXPR:
    5557        30219 :       {
    5558        30219 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5559        30219 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5560        30219 :         switch (TREE_CODE (_q30))
    5561              :           {
    5562         2714 :           CASE_CONVERT:
    5563         2714 :             {
    5564         2714 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5565         2714 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    5566              :                 {
    5567            0 :                   {
    5568            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
    5569            0 :                     tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5570            0 :                     if (res) return res;
    5571              :                   }
    5572              :                 }
    5573              :               break;
    5574              :             }
    5575        30219 :           default:;
    5576              :           }
    5577        30219 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5578              :           {
    5579            0 :             {
    5580            0 :               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
    5581            0 :               tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, NE_EXPR);
    5582            0 :               if (res) return res;
    5583              :             }
    5584              :           }
    5585              :         break;
    5586              :       }
    5587     40616139 :     default:;
    5588              :     }
    5589     40616139 : {
    5590     40616139 :   tree _p1_pops[1];
    5591     40616139 :   if (tree_nop_convert (_p1, _p1_pops))
    5592              :     {
    5593      3436193 :       tree _q30 = _p1_pops[0];
    5594      3436193 :       switch (TREE_CODE (_q30))
    5595              :         {
    5596          389 :         case POINTER_PLUS_EXPR:
    5597          389 :           {
    5598          389 :             tree _q40 = TREE_OPERAND (_q30, 0);
    5599          389 :             tree _q41 = TREE_OPERAND (_q30, 1);
    5600          389 :             switch (TREE_CODE (_q40))
    5601              :               {
    5602            8 :               CASE_CONVERT:
    5603            8 :                 {
    5604            8 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    5605            8 :                   if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5606              :                     {
    5607            0 :                       {
    5608            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
    5609            0 :                         tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5610            0 :                         if (res) return res;
    5611              :                       }
    5612              :                     }
    5613              :                   break;
    5614              :                 }
    5615          389 :               default:;
    5616              :               }
    5617          389 :             if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    5618              :               {
    5619            0 :                 {
    5620            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
    5621            0 :                   tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    5622            0 :                   if (res) return res;
    5623              :                 }
    5624              :               }
    5625              :             break;
    5626              :           }
    5627              :         default:;
    5628              :         }
    5629              :     }
    5630              : }
    5631     40616139 :   switch (TREE_CODE (_p0))
    5632              :     {
    5633       529247 :     case POINTER_PLUS_EXPR:
    5634       529247 :       {
    5635       529247 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5636       529247 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5637       529247 :         switch (TREE_CODE (_p1))
    5638              :           {
    5639        45066 :           case ADDR_EXPR:
    5640        45066 :             {
    5641        45066 :               {
    5642        45066 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    5643        45066 :                 tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    5644        45066 :                 if (res) return res;
    5645              :               }
    5646        33683 :               break;
    5647              :             }
    5648       517864 :           default:;
    5649              :           }
    5650       517864 :         switch (TREE_CODE (_q20))
    5651              :           {
    5652         4883 :           case ADDR_EXPR:
    5653         4883 :             {
    5654         4883 :               switch (TREE_CODE (_p1))
    5655              :                 {
    5656          264 :                 case POINTER_PLUS_EXPR:
    5657          264 :                   {
    5658          264 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5659          264 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5660          264 :                     switch (TREE_CODE (_q50))
    5661              :                       {
    5662            0 :                       case ADDR_EXPR:
    5663            0 :                         {
    5664            0 :                           {
    5665            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
    5666            0 :                             tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, NE_EXPR);
    5667            0 :                             if (res) return res;
    5668              :                           }
    5669            0 :                           break;
    5670              :                         }
    5671              :                       default:;
    5672              :                       }
    5673              :                     break;
    5674              :                   }
    5675              :                 default:;
    5676              :                 }
    5677              :               break;
    5678              :             }
    5679              :           default:;
    5680              :           }
    5681              :         break;
    5682              :       }
    5683       197938 :     case ADDR_EXPR:
    5684       197938 :       {
    5685       197938 :         switch (TREE_CODE (_p1))
    5686              :           {
    5687            0 :           case POINTER_PLUS_EXPR:
    5688            0 :             {
    5689            0 :               tree _q30 = TREE_OPERAND (_p1, 0);
    5690            0 :               tree _q31 = TREE_OPERAND (_p1, 1);
    5691            0 :               {
    5692            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
    5693            0 :                 tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    5694            0 :                 if (res) return res;
    5695              :               }
    5696            0 :               break;
    5697              :             }
    5698              :           default:;
    5699              :           }
    5700              :         break;
    5701              :       }
    5702     40604756 :     default:;
    5703              :     }
    5704     40604756 :   switch (TREE_CODE (_p1))
    5705              :     {
    5706        30841 :     case MINUS_EXPR:
    5707        30841 :       {
    5708        30841 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5709        30841 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5710        30841 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5711              :           {
    5712            0 :             {
    5713            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    5714            0 :               tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, NE_EXPR);
    5715            0 :               if (res) return res;
    5716              :             }
    5717              :           }
    5718              :         break;
    5719              :       }
    5720     40604756 :     default:;
    5721              :     }
    5722     40604756 :   switch (TREE_CODE (_p0))
    5723              :     {
    5724         9205 :     case TRUNC_DIV_EXPR:
    5725         9205 :       {
    5726         9205 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5727         9205 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5728         9205 :         if (integer_zerop (_p1))
    5729              :           {
    5730         1037 :             {
    5731         1037 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    5732         1037 :               tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
    5733         1037 :               if (res) return res;
    5734              :             }
    5735              :           }
    5736              :         break;
    5737              :       }
    5738      8300952 :     CASE_CONVERT:
    5739      8300952 :       {
    5740      8300952 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5741      8300952 :         switch (TREE_CODE (_p1))
    5742              :           {
    5743      3204202 :           CASE_CONVERT:
    5744      3204202 :             {
    5745      3204202 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5746      3204202 :               switch (TREE_CODE (_q40))
    5747              :                 {
    5748            0 :                 case MINUS_EXPR:
    5749            0 :                   {
    5750            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5751            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    5752            0 :                     switch (TREE_CODE (_q50))
    5753              :                       {
    5754            0 :                       case INTEGER_CST:
    5755            0 :                         {
    5756            0 :                           switch (TREE_CODE (_q51))
    5757              :                             {
    5758            0 :                             CASE_CONVERT:
    5759            0 :                               {
    5760            0 :                                 tree _q70 = TREE_OPERAND (_q51, 0);
    5761            0 :                                 if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    5762              :                                   {
    5763            0 :                                     {
    5764            0 :                                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    5765            0 :                                       tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5766            0 :                                       if (res) return res;
    5767              :                                     }
    5768              :                                   }
    5769              :                                 break;
    5770              :                               }
    5771              :                             default:;
    5772              :                             }
    5773              :                           break;
    5774              :                         }
    5775              :                       default:;
    5776              :                       }
    5777              :                     break;
    5778              :                   }
    5779              :                 default:;
    5780              :                 }
    5781              :               break;
    5782              :             }
    5783      8300952 :           default:;
    5784              :           }
    5785      8300952 :         switch (TREE_CODE (_q20))
    5786              :           {
    5787           99 :           case MINUS_EXPR:
    5788           99 :             {
    5789           99 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5790           99 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5791           99 :               switch (TREE_CODE (_q30))
    5792              :                 {
    5793           49 :                 case INTEGER_CST:
    5794           49 :                   {
    5795           49 :                     switch (TREE_CODE (_q31))
    5796              :                       {
    5797            0 :                       CASE_CONVERT:
    5798            0 :                         {
    5799            0 :                           tree _q50 = TREE_OPERAND (_q31, 0);
    5800            0 :                           switch (TREE_CODE (_p1))
    5801              :                             {
    5802            0 :                             CASE_CONVERT:
    5803            0 :                               {
    5804            0 :                                 tree _q70 = TREE_OPERAND (_p1, 0);
    5805            0 :                                 if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
    5806              :                                   {
    5807            0 :                                     {
    5808            0 :                                       tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    5809            0 :                                       tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5810            0 :                                       if (res) return res;
    5811              :                                     }
    5812              :                                   }
    5813              :                                 break;
    5814              :                               }
    5815            0 :                             default:;
    5816              :                             }
    5817            0 :                           if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    5818              :                             {
    5819            0 :                               {
    5820            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    5821            0 :                                 tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5822            0 :                                 if (res) return res;
    5823              :                               }
    5824              :                             }
    5825              :                           break;
    5826              :                         }
    5827           49 :                       default:;
    5828              :                       }
    5829           49 :                     switch (TREE_CODE (_p1))
    5830              :                       {
    5831            0 :                       CASE_CONVERT:
    5832            0 :                         {
    5833            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    5834            0 :                           if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    5835              :                             {
    5836            0 :                               {
    5837            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
    5838            0 :                                 tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5839            0 :                                 if (res) return res;
    5840              :                               }
    5841              :                             }
    5842              :                           break;
    5843              :                         }
    5844           49 :                       default:;
    5845              :                       }
    5846           49 :                     if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    5847              :                       {
    5848            0 :                         {
    5849            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
    5850            0 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5851            0 :                           if (res) return res;
    5852              :                         }
    5853              :                       }
    5854              :                     break;
    5855              :                   }
    5856              :                 default:;
    5857              :                 }
    5858              :               break;
    5859              :             }
    5860      8300952 :           default:;
    5861              :           }
    5862      8300952 :         switch (TREE_CODE (_p1))
    5863              :           {
    5864      3204202 :           CASE_CONVERT:
    5865      3204202 :             {
    5866      3204202 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5867      3204202 :               switch (TREE_CODE (_q40))
    5868              :                 {
    5869            0 :                 case MINUS_EXPR:
    5870            0 :                   {
    5871            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5872            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    5873            0 :                     switch (TREE_CODE (_q50))
    5874              :                       {
    5875            0 :                       case INTEGER_CST:
    5876            0 :                         {
    5877            0 :                           if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    5878              :                             {
    5879            0 :                               {
    5880            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    5881            0 :                                 tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5882            0 :                                 if (res) return res;
    5883              :                               }
    5884              :                             }
    5885              :                           break;
    5886              :                         }
    5887              :                       default:;
    5888              :                       }
    5889              :                     break;
    5890              :                   }
    5891              :                 default:;
    5892              :                 }
    5893              :               break;
    5894              :             }
    5895        21676 :           case MINUS_EXPR:
    5896        21676 :             {
    5897        21676 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5898        21676 :               tree _q41 = TREE_OPERAND (_p1, 1);
    5899        21676 :               switch (TREE_CODE (_q40))
    5900              :                 {
    5901          401 :                 case INTEGER_CST:
    5902          401 :                   {
    5903          401 :                     switch (TREE_CODE (_q41))
    5904              :                       {
    5905           20 :                       CASE_CONVERT:
    5906           20 :                         {
    5907           20 :                           tree _q60 = TREE_OPERAND (_q41, 0);
    5908           20 :                           if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    5909              :                             {
    5910            0 :                               {
    5911            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    5912            0 :                                 tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5913            0 :                                 if (res) return res;
    5914              :                               }
    5915              :                             }
    5916              :                           break;
    5917              :                         }
    5918          401 :                       default:;
    5919              :                       }
    5920          401 :                     if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    5921              :                       {
    5922            0 :                         {
    5923            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    5924            0 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5925            0 :                           if (res) return res;
    5926              :                         }
    5927              :                       }
    5928              :                     break;
    5929              :                   }
    5930              :                 default:;
    5931              :                 }
    5932              :               break;
    5933              :             }
    5934              :           default:;
    5935              :           }
    5936              :         break;
    5937              :       }
    5938       105852 :     case MINUS_EXPR:
    5939       105852 :       {
    5940       105852 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5941       105852 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5942       105852 :         switch (TREE_CODE (_q20))
    5943              :           {
    5944         2119 :           case INTEGER_CST:
    5945         2119 :             {
    5946         2119 :               switch (TREE_CODE (_q21))
    5947              :                 {
    5948          182 :                 CASE_CONVERT:
    5949          182 :                   {
    5950          182 :                     tree _q40 = TREE_OPERAND (_q21, 0);
    5951          182 :                     switch (TREE_CODE (_p1))
    5952              :                       {
    5953            0 :                       CASE_CONVERT:
    5954            0 :                         {
    5955            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    5956            0 :                           if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
    5957              :                             {
    5958            0 :                               {
    5959            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    5960            0 :                                 tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5961            0 :                                 if (res) return res;
    5962              :                               }
    5963              :                             }
    5964              :                           break;
    5965              :                         }
    5966          182 :                       default:;
    5967              :                       }
    5968          182 :                     if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5969              :                       {
    5970            0 :                         {
    5971            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    5972            0 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5973            0 :                           if (res) return res;
    5974              :                         }
    5975              :                       }
    5976              :                     break;
    5977              :                   }
    5978         2119 :                 default:;
    5979              :                 }
    5980         2119 :               switch (TREE_CODE (_p1))
    5981              :                 {
    5982          306 :                 CASE_CONVERT:
    5983          306 :                   {
    5984          306 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5985          306 :                     if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5986              :                       {
    5987            0 :                         {
    5988            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    5989            0 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    5990            0 :                           if (res) return res;
    5991              :                         }
    5992              :                       }
    5993              :                     break;
    5994              :                   }
    5995         2119 :                 default:;
    5996              :                 }
    5997         2119 :               if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5998              :                 {
    5999            1 :                   {
    6000            1 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6001            1 :                     tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    6002            1 :                     if (res) return res;
    6003              :                   }
    6004              :                 }
    6005              :               break;
    6006              :             }
    6007              :           default:;
    6008              :           }
    6009              :         break;
    6010              :       }
    6011     40604640 :     default:;
    6012              :     }
    6013     40604640 :   switch (TREE_CODE (_p1))
    6014              :     {
    6015      3604497 :     CASE_CONVERT:
    6016      3604497 :       {
    6017      3604497 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6018      3604497 :         switch (TREE_CODE (_q30))
    6019              :           {
    6020          556 :           case MINUS_EXPR:
    6021          556 :             {
    6022          556 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6023          556 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6024          556 :               switch (TREE_CODE (_q40))
    6025              :                 {
    6026           17 :                 case INTEGER_CST:
    6027           17 :                   {
    6028           17 :                     switch (TREE_CODE (_q41))
    6029              :                       {
    6030            0 :                       CASE_CONVERT:
    6031            0 :                         {
    6032            0 :                           tree _q60 = TREE_OPERAND (_q41, 0);
    6033            0 :                           if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    6034              :                             {
    6035            0 :                               {
    6036            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    6037            0 :                                 tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    6038            0 :                                 if (res) return res;
    6039              :                               }
    6040              :                             }
    6041              :                           break;
    6042              :                         }
    6043           17 :                       default:;
    6044              :                       }
    6045           17 :                     if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    6046              :                       {
    6047            0 :                         {
    6048            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    6049            0 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    6050            0 :                           if (res) return res;
    6051              :                         }
    6052              :                       }
    6053              :                     break;
    6054              :                   }
    6055              :                 default:;
    6056              :                 }
    6057              :               break;
    6058              :             }
    6059              :           default:;
    6060              :           }
    6061              :         break;
    6062              :       }
    6063        30841 :     case MINUS_EXPR:
    6064        30841 :       {
    6065        30841 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6066        30841 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6067        30841 :         switch (TREE_CODE (_q30))
    6068              :           {
    6069          600 :           case INTEGER_CST:
    6070          600 :             {
    6071          600 :               switch (TREE_CODE (_q31))
    6072              :                 {
    6073           32 :                 CASE_CONVERT:
    6074           32 :                   {
    6075           32 :                     tree _q50 = TREE_OPERAND (_q31, 0);
    6076           32 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    6077              :                       {
    6078            0 :                         {
    6079            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6080            0 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    6081            0 :                           if (res) return res;
    6082              :                         }
    6083              :                       }
    6084              :                     break;
    6085              :                   }
    6086          600 :                 default:;
    6087              :                 }
    6088          600 :               if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6089              :                 {
    6090            0 :                   {
    6091            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6092            0 :                     tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    6093            0 :                     if (res) return res;
    6094              :                   }
    6095              :                 }
    6096              :               break;
    6097              :             }
    6098              :           default:;
    6099              :           }
    6100              :         break;
    6101              :       }
    6102     40604640 :     default:;
    6103              :     }
    6104     40604640 :   switch (TREE_CODE (_p0))
    6105              :     {
    6106        18024 :     case LT_EXPR:
    6107        18024 :       {
    6108        18024 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6109        18024 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6110        18024 :         switch (TREE_CODE (_p1))
    6111              :           {
    6112           18 :           case GT_EXPR:
    6113           18 :             {
    6114           18 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6115           18 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6116           18 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6117              :                 {
    6118            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6119              :                     {
    6120            0 :                       {
    6121            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6122            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6123            0 :                         const enum tree_code cmp2 = GT_EXPR;
    6124            0 :                         const enum tree_code rcmp = NE_EXPR;
    6125            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6126            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6127            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6128            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6129              : )
    6130              :                           {
    6131            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1508;
    6132            0 :                             {
    6133            0 :                               tree res_op0;
    6134            0 :                               res_op0 = captures[0];
    6135            0 :                               tree res_op1;
    6136            0 :                               res_op1 = captures[1];
    6137            0 :                               tree _r;
    6138            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6139            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6140            0 :                               return _r;
    6141              :                             }
    6142            0 : next_after_fail1508:;
    6143              :                           }
    6144              :                       }
    6145              :                     }
    6146              :                 }
    6147              :               break;
    6148              :             }
    6149           23 :           case EQ_EXPR:
    6150           23 :             {
    6151           23 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6152           23 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6153           23 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6154              :                 {
    6155            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6156              :                     {
    6157            0 :                       {
    6158            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6159            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6160            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6161            0 :                         const enum tree_code rcmp = LE_EXPR;
    6162            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6163            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6164            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6165            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6166              : )
    6167              :                           {
    6168            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1509;
    6169            0 :                             {
    6170            0 :                               tree res_op0;
    6171            0 :                               res_op0 = captures[0];
    6172            0 :                               tree res_op1;
    6173            0 :                               res_op1 = captures[1];
    6174            0 :                               tree _r;
    6175            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6176            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6177            0 :                               return _r;
    6178              :                             }
    6179            0 : next_after_fail1509:;
    6180              :                           }
    6181              :                       }
    6182              :                     }
    6183              :                 }
    6184              :               break;
    6185              :             }
    6186           23 :           case NE_EXPR:
    6187           23 :             {
    6188           23 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6189           23 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6190           23 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6191              :                 {
    6192            9 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6193              :                     {
    6194            0 :                       {
    6195            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6196            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6197            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6198            0 :                         const enum tree_code rcmp = GT_EXPR;
    6199            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6200            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6201            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6202            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6203              : )
    6204              :                           {
    6205            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1510;
    6206            0 :                             {
    6207            0 :                               tree res_op0;
    6208            0 :                               res_op0 = captures[0];
    6209            0 :                               tree res_op1;
    6210            0 :                               res_op1 = captures[1];
    6211            0 :                               tree _r;
    6212            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6213            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6214            0 :                               return _r;
    6215              :                             }
    6216            0 : next_after_fail1510:;
    6217              :                           }
    6218              :                       }
    6219              :                     }
    6220              :                 }
    6221              :               break;
    6222              :             }
    6223              :           default:;
    6224              :           }
    6225              :         break;
    6226              :       }
    6227        11848 :     case LE_EXPR:
    6228        11848 :       {
    6229        11848 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6230        11848 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6231        11848 :         switch (TREE_CODE (_p1))
    6232              :           {
    6233           25 :           case GE_EXPR:
    6234           25 :             {
    6235           25 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6236           25 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6237           25 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6238              :                 {
    6239            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6240              :                     {
    6241            0 :                       {
    6242            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6243            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6244            0 :                         const enum tree_code cmp2 = GE_EXPR;
    6245            0 :                         const enum tree_code rcmp = NE_EXPR;
    6246            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6247            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6248            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6249            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6250              : )
    6251              :                           {
    6252            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1511;
    6253            0 :                             {
    6254            0 :                               tree res_op0;
    6255            0 :                               res_op0 = captures[0];
    6256            0 :                               tree res_op1;
    6257            0 :                               res_op1 = captures[1];
    6258            0 :                               tree _r;
    6259            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6260            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6261            0 :                               return _r;
    6262              :                             }
    6263            0 : next_after_fail1511:;
    6264              :                           }
    6265              :                       }
    6266              :                     }
    6267              :                 }
    6268              :               break;
    6269              :             }
    6270           41 :           case EQ_EXPR:
    6271           41 :             {
    6272           41 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6273           41 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6274           41 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6275              :                 {
    6276            9 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6277              :                     {
    6278            0 :                       {
    6279            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6280            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6281            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6282            0 :                         const enum tree_code rcmp = LT_EXPR;
    6283            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6284            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6285            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6286            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6287              : )
    6288              :                           {
    6289            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1512;
    6290            0 :                             {
    6291            0 :                               tree res_op0;
    6292            0 :                               res_op0 = captures[0];
    6293            0 :                               tree res_op1;
    6294            0 :                               res_op1 = captures[1];
    6295            0 :                               tree _r;
    6296            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6297            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6298            0 :                               return _r;
    6299              :                             }
    6300            0 : next_after_fail1512:;
    6301              :                           }
    6302              :                       }
    6303              :                     }
    6304              :                 }
    6305              :               break;
    6306              :             }
    6307           13 :           case NE_EXPR:
    6308           13 :             {
    6309           13 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6310           13 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6311           13 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6312              :                 {
    6313            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6314              :                     {
    6315            0 :                       {
    6316            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6317            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6318            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6319            0 :                         const enum tree_code rcmp = GE_EXPR;
    6320            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6321            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6322            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6323            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6324              : )
    6325              :                           {
    6326            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1513;
    6327            0 :                             {
    6328            0 :                               tree res_op0;
    6329            0 :                               res_op0 = captures[0];
    6330            0 :                               tree res_op1;
    6331            0 :                               res_op1 = captures[1];
    6332            0 :                               tree _r;
    6333            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6334            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6335            0 :                               return _r;
    6336              :                             }
    6337            0 : next_after_fail1513:;
    6338              :                           }
    6339              :                       }
    6340              :                     }
    6341              :                 }
    6342              :               break;
    6343              :             }
    6344              :           default:;
    6345              :           }
    6346              :         break;
    6347              :       }
    6348        35311 :     case GT_EXPR:
    6349        35311 :       {
    6350        35311 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6351        35311 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6352        35311 :         switch (TREE_CODE (_p1))
    6353              :           {
    6354           77 :           case GT_EXPR:
    6355           77 :             {
    6356           77 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6357           77 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6358           77 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6359              :                 {
    6360            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6361              :                     {
    6362            0 :                       {
    6363            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6364            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6365            0 :                         const enum tree_code cmp2 = GT_EXPR;
    6366            0 :                         const enum tree_code rcmp = NE_EXPR;
    6367            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6368            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6369            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6370            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6371              : )
    6372              :                           {
    6373            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1514;
    6374            0 :                             {
    6375            0 :                               tree res_op0;
    6376            0 :                               res_op0 = captures[0];
    6377            0 :                               tree res_op1;
    6378            0 :                               res_op1 = captures[1];
    6379            0 :                               tree _r;
    6380            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6381            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6382            0 :                               return _r;
    6383              :                             }
    6384            0 : next_after_fail1514:;
    6385              :                           }
    6386              :                       }
    6387            0 :                       {
    6388            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6389            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6390            0 :                         const enum tree_code cmp2 = GT_EXPR;
    6391            0 :                         const enum tree_code rcmp = NE_EXPR;
    6392            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6393            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6394            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6395            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6396              : )
    6397              :                           {
    6398            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1515;
    6399            0 :                             {
    6400            0 :                               tree res_op0;
    6401            0 :                               res_op0 = captures[0];
    6402            0 :                               tree res_op1;
    6403            0 :                               res_op1 = captures[1];
    6404            0 :                               tree _r;
    6405            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6406            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6407            0 :                               return _r;
    6408              :                             }
    6409            0 : next_after_fail1515:;
    6410              :                           }
    6411              :                       }
    6412              :                     }
    6413              :                 }
    6414              :               break;
    6415              :             }
    6416           29 :           case EQ_EXPR:
    6417           29 :             {
    6418           29 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6419           29 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6420           29 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6421              :                 {
    6422            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6423              :                     {
    6424            0 :                       {
    6425            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6426            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6427            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6428            0 :                         const enum tree_code rcmp = LE_EXPR;
    6429            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6430            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6431            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6432            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6433              : )
    6434              :                           {
    6435            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1516;
    6436            0 :                             {
    6437            0 :                               tree res_op0;
    6438            0 :                               res_op0 = captures[0];
    6439            0 :                               tree res_op1;
    6440            0 :                               res_op1 = captures[1];
    6441            0 :                               tree _r;
    6442            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6443            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6444            0 :                               return _r;
    6445              :                             }
    6446            0 : next_after_fail1516:;
    6447              :                           }
    6448              :                       }
    6449              :                     }
    6450              :                 }
    6451              :               break;
    6452              :             }
    6453           53 :           case NE_EXPR:
    6454           53 :             {
    6455           53 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6456           53 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6457           53 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6458              :                 {
    6459            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6460              :                     {
    6461            0 :                       {
    6462            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6463            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6464            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6465            0 :                         const enum tree_code rcmp = GT_EXPR;
    6466            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6467            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6468            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6469            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6470              : )
    6471              :                           {
    6472            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1517;
    6473            0 :                             {
    6474            0 :                               tree res_op0;
    6475            0 :                               res_op0 = captures[0];
    6476            0 :                               tree res_op1;
    6477            0 :                               res_op1 = captures[1];
    6478            0 :                               tree _r;
    6479            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6480            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6481            0 :                               return _r;
    6482              :                             }
    6483            0 : next_after_fail1517:;
    6484              :                           }
    6485              :                       }
    6486              :                     }
    6487              :                 }
    6488              :               break;
    6489              :             }
    6490           32 :           case LT_EXPR:
    6491           32 :             {
    6492           32 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6493           32 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6494           32 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6495              :                 {
    6496            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6497              :                     {
    6498            0 :                       {
    6499            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6500            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6501            0 :                         const enum tree_code cmp2 = GT_EXPR;
    6502            0 :                         const enum tree_code rcmp = NE_EXPR;
    6503            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6504            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6505            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6506            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6507              : )
    6508              :                           {
    6509            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1518;
    6510            0 :                             {
    6511            0 :                               tree res_op0;
    6512            0 :                               res_op0 = captures[0];
    6513            0 :                               tree res_op1;
    6514            0 :                               res_op1 = captures[1];
    6515            0 :                               tree _r;
    6516            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6517            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6518            0 :                               return _r;
    6519              :                             }
    6520            0 : next_after_fail1518:;
    6521              :                           }
    6522              :                       }
    6523              :                     }
    6524              :                 }
    6525              :               break;
    6526              :             }
    6527              :           default:;
    6528              :           }
    6529              :         break;
    6530              :       }
    6531         6123 :     case GE_EXPR:
    6532         6123 :       {
    6533         6123 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6534         6123 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6535         6123 :         switch (TREE_CODE (_p1))
    6536              :           {
    6537           76 :           case GE_EXPR:
    6538           76 :             {
    6539           76 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6540           76 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6541           76 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6542              :                 {
    6543            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6544              :                     {
    6545            0 :                       {
    6546            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6547            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6548            0 :                         const enum tree_code cmp2 = GE_EXPR;
    6549            0 :                         const enum tree_code rcmp = NE_EXPR;
    6550            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6551            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6552            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6553            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6554              : )
    6555              :                           {
    6556            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1519;
    6557            0 :                             {
    6558            0 :                               tree res_op0;
    6559            0 :                               res_op0 = captures[0];
    6560            0 :                               tree res_op1;
    6561            0 :                               res_op1 = captures[1];
    6562            0 :                               tree _r;
    6563            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6564            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6565            0 :                               return _r;
    6566              :                             }
    6567            0 : next_after_fail1519:;
    6568              :                           }
    6569              :                       }
    6570            0 :                       {
    6571            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6572            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6573            0 :                         const enum tree_code cmp2 = GE_EXPR;
    6574            0 :                         const enum tree_code rcmp = NE_EXPR;
    6575            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6576            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6577            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6578            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6579              : )
    6580              :                           {
    6581            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1520;
    6582            0 :                             {
    6583            0 :                               tree res_op0;
    6584            0 :                               res_op0 = captures[0];
    6585            0 :                               tree res_op1;
    6586            0 :                               res_op1 = captures[1];
    6587            0 :                               tree _r;
    6588            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6589            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6590            0 :                               return _r;
    6591              :                             }
    6592            0 : next_after_fail1520:;
    6593              :                           }
    6594              :                       }
    6595              :                     }
    6596              :                 }
    6597              :               break;
    6598              :             }
    6599           52 :           case EQ_EXPR:
    6600           52 :             {
    6601           52 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6602           52 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6603           52 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6604              :                 {
    6605            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6606              :                     {
    6607            0 :                       {
    6608            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6609            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6610            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6611            0 :                         const enum tree_code rcmp = LT_EXPR;
    6612            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6613            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6614            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6615            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6616              : )
    6617              :                           {
    6618            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1521;
    6619            0 :                             {
    6620            0 :                               tree res_op0;
    6621            0 :                               res_op0 = captures[0];
    6622            0 :                               tree res_op1;
    6623            0 :                               res_op1 = captures[1];
    6624            0 :                               tree _r;
    6625            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6626            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6627            0 :                               return _r;
    6628              :                             }
    6629            0 : next_after_fail1521:;
    6630              :                           }
    6631              :                       }
    6632              :                     }
    6633              :                 }
    6634              :               break;
    6635              :             }
    6636           11 :           case NE_EXPR:
    6637           11 :             {
    6638           11 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6639           11 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6640           11 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6641              :                 {
    6642            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6643              :                     {
    6644            0 :                       {
    6645            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6646            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6647            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6648            0 :                         const enum tree_code rcmp = GE_EXPR;
    6649            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6650            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6651            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6652            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6653              : )
    6654              :                           {
    6655            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1522;
    6656            0 :                             {
    6657            0 :                               tree res_op0;
    6658            0 :                               res_op0 = captures[0];
    6659            0 :                               tree res_op1;
    6660            0 :                               res_op1 = captures[1];
    6661            0 :                               tree _r;
    6662            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6663            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6664            0 :                               return _r;
    6665              :                             }
    6666            0 : next_after_fail1522:;
    6667              :                           }
    6668              :                       }
    6669              :                     }
    6670              :                 }
    6671              :               break;
    6672              :             }
    6673           16 :           case LE_EXPR:
    6674           16 :             {
    6675           16 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6676           16 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6677           16 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6678              :                 {
    6679            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6680              :                     {
    6681            0 :                       {
    6682            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6683            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6684            0 :                         const enum tree_code cmp2 = GE_EXPR;
    6685            0 :                         const enum tree_code rcmp = NE_EXPR;
    6686            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6687            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6688            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6689            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6690              : )
    6691              :                           {
    6692            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1523;
    6693            0 :                             {
    6694            0 :                               tree res_op0;
    6695            0 :                               res_op0 = captures[0];
    6696            0 :                               tree res_op1;
    6697            0 :                               res_op1 = captures[1];
    6698            0 :                               tree _r;
    6699            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6700            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6701            0 :                               return _r;
    6702              :                             }
    6703            0 : next_after_fail1523:;
    6704              :                           }
    6705              :                       }
    6706              :                     }
    6707              :                 }
    6708              :               break;
    6709              :             }
    6710              :           default:;
    6711              :           }
    6712              :         break;
    6713              :       }
    6714        64321 :     case EQ_EXPR:
    6715        64321 :       {
    6716        64321 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6717        64321 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6718        64321 :         switch (TREE_CODE (_p1))
    6719              :           {
    6720            5 :           case LT_EXPR:
    6721            5 :             {
    6722            5 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6723            5 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6724            5 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6725              :                 {
    6726            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6727              :                     {
    6728            0 :                       {
    6729            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6730            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6731            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6732            0 :                         const enum tree_code rcmp = LE_EXPR;
    6733            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6734            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6735            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6736            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6737              : )
    6738              :                           {
    6739            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1524;
    6740            0 :                             {
    6741            0 :                               tree res_op0;
    6742            0 :                               res_op0 = captures[0];
    6743            0 :                               tree res_op1;
    6744            0 :                               res_op1 = captures[1];
    6745            0 :                               tree _r;
    6746            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6747            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6748            0 :                               return _r;
    6749              :                             }
    6750            0 : next_after_fail1524:;
    6751              :                           }
    6752              :                       }
    6753              :                     }
    6754              :                 }
    6755              :               break;
    6756              :             }
    6757           42 :           case LE_EXPR:
    6758           42 :             {
    6759           42 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6760           42 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6761           42 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6762              :                 {
    6763            7 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6764              :                     {
    6765            0 :                       {
    6766            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6767            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6768            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6769            0 :                         const enum tree_code rcmp = LT_EXPR;
    6770            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6771            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6772            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6773            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6774              : )
    6775              :                           {
    6776            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1525;
    6777            0 :                             {
    6778            0 :                               tree res_op0;
    6779            0 :                               res_op0 = captures[0];
    6780            0 :                               tree res_op1;
    6781            0 :                               res_op1 = captures[1];
    6782            0 :                               tree _r;
    6783            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6784            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6785            0 :                               return _r;
    6786              :                             }
    6787            0 : next_after_fail1525:;
    6788              :                           }
    6789              :                       }
    6790              :                     }
    6791              :                 }
    6792              :               break;
    6793              :             }
    6794            7 :           case GT_EXPR:
    6795            7 :             {
    6796            7 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6797            7 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6798            7 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6799              :                 {
    6800            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6801              :                     {
    6802            0 :                       {
    6803            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6804            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6805            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6806            0 :                         const enum tree_code rcmp = LE_EXPR;
    6807            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6808            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6809            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6810            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6811              : )
    6812              :                           {
    6813            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1526;
    6814            0 :                             {
    6815            0 :                               tree res_op0;
    6816            0 :                               res_op0 = captures[0];
    6817            0 :                               tree res_op1;
    6818            0 :                               res_op1 = captures[1];
    6819            0 :                               tree _r;
    6820            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6821            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6822            0 :                               return _r;
    6823              :                             }
    6824            0 : next_after_fail1526:;
    6825              :                           }
    6826              :                       }
    6827              :                     }
    6828              :                 }
    6829              :               break;
    6830              :             }
    6831           14 :           case GE_EXPR:
    6832           14 :             {
    6833           14 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6834           14 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6835           14 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6836              :                 {
    6837            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6838              :                     {
    6839            0 :                       {
    6840            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6841            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6842            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6843            0 :                         const enum tree_code rcmp = LT_EXPR;
    6844            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6845            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6846            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6847            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6848              : )
    6849              :                           {
    6850            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1527;
    6851            0 :                             {
    6852            0 :                               tree res_op0;
    6853            0 :                               res_op0 = captures[0];
    6854            0 :                               tree res_op1;
    6855            0 :                               res_op1 = captures[1];
    6856            0 :                               tree _r;
    6857            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6858            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6859            0 :                               return _r;
    6860              :                             }
    6861            0 : next_after_fail1527:;
    6862              :                           }
    6863              :                       }
    6864              :                     }
    6865              :                 }
    6866              :               break;
    6867              :             }
    6868              :           default:;
    6869              :           }
    6870              :         break;
    6871              :       }
    6872        68290 :     case NE_EXPR:
    6873        68290 :       {
    6874        68290 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6875        68290 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6876        68290 :         switch (TREE_CODE (_p1))
    6877              :           {
    6878            7 :           case LT_EXPR:
    6879            7 :             {
    6880            7 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6881            7 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6882            7 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6883              :                 {
    6884            7 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6885              :                     {
    6886            0 :                       {
    6887            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6888            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6889            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6890            0 :                         const enum tree_code rcmp = GT_EXPR;
    6891            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6892            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6893            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6894            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6895              : )
    6896              :                           {
    6897            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1528;
    6898            0 :                             {
    6899            0 :                               tree res_op0;
    6900            0 :                               res_op0 = captures[0];
    6901            0 :                               tree res_op1;
    6902            0 :                               res_op1 = captures[1];
    6903            0 :                               tree _r;
    6904            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6905            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6906            0 :                               return _r;
    6907              :                             }
    6908            0 : next_after_fail1528:;
    6909              :                           }
    6910              :                       }
    6911              :                     }
    6912              :                 }
    6913              :               break;
    6914              :             }
    6915          302 :           case LE_EXPR:
    6916          302 :             {
    6917          302 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6918          302 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6919          302 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6920              :                 {
    6921            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6922              :                     {
    6923            0 :                       {
    6924            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6925            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6926            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6927            0 :                         const enum tree_code rcmp = GE_EXPR;
    6928            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6929            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6930            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6931            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6932              : )
    6933              :                           {
    6934            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1529;
    6935            0 :                             {
    6936            0 :                               tree res_op0;
    6937            0 :                               res_op0 = captures[0];
    6938            0 :                               tree res_op1;
    6939            0 :                               res_op1 = captures[1];
    6940            0 :                               tree _r;
    6941            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6942            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6943            0 :                               return _r;
    6944              :                             }
    6945            0 : next_after_fail1529:;
    6946              :                           }
    6947              :                       }
    6948              :                     }
    6949              :                 }
    6950              :               break;
    6951              :             }
    6952          323 :           case GT_EXPR:
    6953          323 :             {
    6954          323 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6955          323 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6956          323 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6957              :                 {
    6958            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6959              :                     {
    6960            0 :                       {
    6961            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6962            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6963            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6964            0 :                         const enum tree_code rcmp = GT_EXPR;
    6965            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6966            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6967            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    6968            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6969              : )
    6970              :                           {
    6971            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1530;
    6972            0 :                             {
    6973            0 :                               tree res_op0;
    6974            0 :                               res_op0 = captures[0];
    6975            0 :                               tree res_op1;
    6976            0 :                               res_op1 = captures[1];
    6977            0 :                               tree _r;
    6978            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6979            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    6980            0 :                               return _r;
    6981              :                             }
    6982            0 : next_after_fail1530:;
    6983              :                           }
    6984              :                       }
    6985              :                     }
    6986              :                 }
    6987              :               break;
    6988              :             }
    6989            2 :           case GE_EXPR:
    6990            2 :             {
    6991            2 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6992            2 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6993            2 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6994              :                 {
    6995            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6996              :                     {
    6997            0 :                       {
    6998            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6999            0 :                         const enum tree_code cmp1 = LE_EXPR;
    7000            0 :                         const enum tree_code cmp2 = NE_EXPR;
    7001            0 :                         const enum tree_code rcmp = GE_EXPR;
    7002            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7003            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7004            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    7005            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7006              : )
    7007              :                           {
    7008            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1531;
    7009            0 :                             {
    7010            0 :                               tree res_op0;
    7011            0 :                               res_op0 = captures[0];
    7012            0 :                               tree res_op1;
    7013            0 :                               res_op1 = captures[1];
    7014            0 :                               tree _r;
    7015            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7016            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    7017            0 :                               return _r;
    7018              :                             }
    7019            0 : next_after_fail1531:;
    7020              :                           }
    7021              :                       }
    7022              :                     }
    7023              :                 }
    7024              :               break;
    7025              :             }
    7026              :           default:;
    7027              :           }
    7028              :         break;
    7029              :       }
    7030         8644 :     case MIN_EXPR:
    7031         8644 :       {
    7032         8644 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7033         8644 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7034         8644 :         switch (TREE_CODE (_p1))
    7035              :           {
    7036            0 :           case MAX_EXPR:
    7037            0 :             {
    7038            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7039            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7040            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7041              :                 {
    7042            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7043              :                     {
    7044            0 :                       {
    7045            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7046            0 :                         if (!HONOR_NANS (captures[0])
    7047              : )
    7048              :                           {
    7049            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1532;
    7050            0 :                             {
    7051            0 :                               tree res_op0;
    7052            0 :                               res_op0 = captures[0];
    7053            0 :                               tree res_op1;
    7054            0 :                               res_op1 = captures[1];
    7055            0 :                               tree _r;
    7056            0 :                               _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    7057            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    7058            0 :                               return _r;
    7059              :                             }
    7060            0 : next_after_fail1532:;
    7061              :                           }
    7062              :                       }
    7063              :                     }
    7064              :                 }
    7065            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7066              :                 {
    7067            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7068              :                     {
    7069            0 :                       {
    7070            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7071            0 :                         if (!HONOR_NANS (captures[0])
    7072              : )
    7073              :                           {
    7074            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1533;
    7075            0 :                             {
    7076            0 :                               tree res_op0;
    7077            0 :                               res_op0 = captures[0];
    7078            0 :                               tree res_op1;
    7079            0 :                               res_op1 = captures[1];
    7080            0 :                               tree _r;
    7081            0 :                               _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    7082            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    7083            0 :                               return _r;
    7084              :                             }
    7085            0 : next_after_fail1533:;
    7086              :                           }
    7087              :                       }
    7088              :                     }
    7089              :                 }
    7090              :               break;
    7091              :             }
    7092         8644 :           default:;
    7093              :           }
    7094         8644 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7095              :           {
    7096            0 :             {
    7097            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7098            0 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
    7099            0 :               if (res) return res;
    7100              :             }
    7101              :           }
    7102         8644 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    7103              :           {
    7104          616 :             {
    7105          616 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7106          616 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
    7107          616 :               if (res) return res;
    7108              :             }
    7109              :           }
    7110              :         break;
    7111              :       }
    7112         8146 :     case MAX_EXPR:
    7113         8146 :       {
    7114         8146 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7115         8146 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7116         8146 :         switch (TREE_CODE (_p1))
    7117              :           {
    7118            0 :           case MIN_EXPR:
    7119            0 :             {
    7120            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7121            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7122            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7123              :                 {
    7124            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7125              :                     {
    7126            0 :                       {
    7127            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7128            0 :                         if (!HONOR_NANS (captures[0])
    7129              : )
    7130              :                           {
    7131            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1534;
    7132            0 :                             {
    7133            0 :                               tree res_op0;
    7134            0 :                               res_op0 = captures[0];
    7135            0 :                               tree res_op1;
    7136            0 :                               res_op1 = captures[1];
    7137            0 :                               tree _r;
    7138            0 :                               _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    7139            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    7140            0 :                               return _r;
    7141              :                             }
    7142            0 : next_after_fail1534:;
    7143              :                           }
    7144              :                       }
    7145              :                     }
    7146              :                 }
    7147            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7148              :                 {
    7149            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7150              :                     {
    7151            0 :                       {
    7152            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7153            0 :                         if (!HONOR_NANS (captures[0])
    7154              : )
    7155              :                           {
    7156            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1535;
    7157            0 :                             {
    7158            0 :                               tree res_op0;
    7159            0 :                               res_op0 = captures[0];
    7160            0 :                               tree res_op1;
    7161            0 :                               res_op1 = captures[1];
    7162            0 :                               tree _r;
    7163            0 :                               _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    7164            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    7165            0 :                               return _r;
    7166              :                             }
    7167            0 : next_after_fail1535:;
    7168              :                           }
    7169              :                       }
    7170              :                     }
    7171              :                 }
    7172              :               break;
    7173              :             }
    7174         8146 :           default:;
    7175              :           }
    7176         8146 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7177              :           {
    7178            0 :             {
    7179            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7180            0 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
    7181            0 :               if (res) return res;
    7182              :             }
    7183              :           }
    7184         8146 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    7185              :           {
    7186          425 :             {
    7187          425 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7188          425 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
    7189          425 :               if (res) return res;
    7190              :             }
    7191              :           }
    7192              :         break;
    7193              :       }
    7194     40604511 :     default:;
    7195              :     }
    7196     40604511 : if (tree_with_possible_nonzero_bits (_p0))
    7197              :   {
    7198     15730151 :     if (tree_with_known_nonzero_bits (_p1))
    7199              :       {
    7200     14206371 :         {
    7201     14206371 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    7202     14206371 :           tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
    7203     14206371 :           if (res) return res;
    7204              :         }
    7205              :       }
    7206              :   }
    7207     40542209 : if (tree_with_known_nonzero_bits (_p0))
    7208              :   {
    7209     11477418 :     if (tree_with_possible_nonzero_bits (_p1))
    7210              :       {
    7211     11427424 :         {
    7212     11427424 :           tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
    7213     11427424 :           tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, NE_EXPR);
    7214     11427424 :           if (res) return res;
    7215              :         }
    7216              :       }
    7217              :   }
    7218     40540809 :   switch (TREE_CODE (_p1))
    7219              :     {
    7220          164 :     case MIN_EXPR:
    7221          164 :       {
    7222          164 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7223          164 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7224          164 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    7225              :           {
    7226            0 :             {
    7227            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    7228            0 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
    7229            0 :               if (res) return res;
    7230              :             }
    7231              :           }
    7232          164 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    7233              :           {
    7234            0 :             {
    7235            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    7236            0 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
    7237            0 :               if (res) return res;
    7238              :             }
    7239              :           }
    7240              :         break;
    7241              :       }
    7242         1673 :     case MAX_EXPR:
    7243         1673 :       {
    7244         1673 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7245         1673 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7246         1673 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    7247              :           {
    7248            0 :             {
    7249            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    7250            0 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
    7251            0 :               if (res) return res;
    7252              :             }
    7253              :           }
    7254         1673 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    7255              :           {
    7256            0 :             {
    7257            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    7258            0 :               tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
    7259            0 :               if (res) return res;
    7260              :             }
    7261              :           }
    7262              :         break;
    7263              :       }
    7264     40540809 :     default:;
    7265              :     }
    7266     40540809 :   switch (TREE_CODE (_p0))
    7267              :     {
    7268         8644 :     case MIN_EXPR:
    7269         8644 :       {
    7270         8644 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7271         8644 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7272         8644 :         switch (TREE_CODE (_q21))
    7273              :           {
    7274          683 :           case INTEGER_CST:
    7275          683 :             {
    7276          683 :               switch (TREE_CODE (_p1))
    7277              :                 {
    7278            0 :                 case INTEGER_CST:
    7279            0 :                   {
    7280            0 :                     {
    7281            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7282            0 :                       tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, NE_EXPR);
    7283            0 :                       if (res) return res;
    7284              :                     }
    7285            0 :                     break;
    7286              :                   }
    7287              :                 default:;
    7288              :                 }
    7289              :               break;
    7290              :             }
    7291              :           default:;
    7292              :           }
    7293              :         break;
    7294              :       }
    7295         8017 :     case MAX_EXPR:
    7296         8017 :       {
    7297         8017 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7298         8017 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7299         8017 :         switch (TREE_CODE (_q21))
    7300              :           {
    7301         6959 :           case INTEGER_CST:
    7302         6959 :             {
    7303         6959 :               switch (TREE_CODE (_p1))
    7304              :                 {
    7305          683 :                 case INTEGER_CST:
    7306          683 :                   {
    7307          683 :                     {
    7308          683 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7309          683 :                       tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, NE_EXPR);
    7310          683 :                       if (res) return res;
    7311              :                     }
    7312            0 :                     break;
    7313              :                   }
    7314              :                 default:;
    7315              :                 }
    7316              :               break;
    7317              :             }
    7318         7334 :           default:;
    7319              :           }
    7320         7334 :         if (integer_zerop (_p1))
    7321              :           {
    7322           34 :             {
    7323           34 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7324           34 :               tree res = generic_simplify_230 (loc, type, _p0, _p1, captures, NE_EXPR);
    7325           34 :               if (res) return res;
    7326              :             }
    7327              :           }
    7328              :         break;
    7329              :       }
    7330      1336723 :     case BIT_AND_EXPR:
    7331      1336723 :       {
    7332      1336723 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7333      1336723 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7334      1336723 :         switch (TREE_CODE (_q20))
    7335              :           {
    7336         3686 :           case LSHIFT_EXPR:
    7337         3686 :             {
    7338         3686 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7339         3686 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7340         3686 :               if (integer_pow2p (_q30))
    7341              :                 {
    7342         3666 :                   if (integer_pow2p (_q21))
    7343              :                     {
    7344            5 :                       if (integer_zerop (_p1))
    7345              :                         {
    7346            5 :                           {
    7347            5 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
    7348            5 :                             tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    7349            5 :                             if (res) return res;
    7350              :                           }
    7351              :                         }
    7352              :                     }
    7353              :                 }
    7354         3681 :               switch (TREE_CODE (_q31))
    7355              :                 {
    7356           13 :                 case INTEGER_CST:
    7357           13 :                   {
    7358           13 :                     switch (TREE_CODE (_q21))
    7359              :                       {
    7360           13 :                       case INTEGER_CST:
    7361           13 :                         {
    7362           13 :                           switch (TREE_CODE (_p1))
    7363              :                             {
    7364           13 :                             case INTEGER_CST:
    7365           13 :                               {
    7366           13 :                                 {
    7367           13 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    7368           13 :                                   tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, NE_EXPR);
    7369           13 :                                   if (res) return res;
    7370              :                                 }
    7371            0 :                                 break;
    7372              :                               }
    7373              :                             default:;
    7374              :                             }
    7375              :                           break;
    7376              :                         }
    7377              :                       default:;
    7378              :                       }
    7379              :                     break;
    7380              :                   }
    7381         3668 :                 default:;
    7382              :                 }
    7383         3668 :               if (integer_onep (_q30))
    7384              :                 {
    7385         3660 :                   if (integer_pow2p (_q21))
    7386              :                     {
    7387            0 :                       if (integer_zerop (_p1))
    7388              :                         {
    7389            0 :                           {
    7390            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q21 };
    7391            0 :                             tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    7392            0 :                             if (res) return res;
    7393              :                           }
    7394              :                         }
    7395              :                     }
    7396              :                 }
    7397              :               break;
    7398              :             }
    7399         4831 :           case RSHIFT_EXPR:
    7400         4831 :             {
    7401         4831 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7402         4831 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7403         4831 :               if (integer_pow2p (_q30))
    7404              :                 {
    7405           33 :                   if (integer_pow2p (_q21))
    7406              :                     {
    7407            1 :                       if (integer_zerop (_p1))
    7408              :                         {
    7409            1 :                           {
    7410            1 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
    7411            1 :                             tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    7412            1 :                             if (res) return res;
    7413              :                           }
    7414              :                         }
    7415              :                     }
    7416              :                 }
    7417         4830 :               switch (TREE_CODE (_q31))
    7418              :                 {
    7419          329 :                 case INTEGER_CST:
    7420          329 :                   {
    7421          329 :                     switch (TREE_CODE (_q21))
    7422              :                       {
    7423          305 :                       case INTEGER_CST:
    7424          305 :                         {
    7425          305 :                           switch (TREE_CODE (_p1))
    7426              :                             {
    7427          280 :                             case INTEGER_CST:
    7428          280 :                               {
    7429          280 :                                 {
    7430          280 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    7431          280 :                                   tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, NE_EXPR);
    7432          280 :                                   if (res) return res;
    7433              :                                 }
    7434           14 :                                 break;
    7435              :                               }
    7436              :                             default:;
    7437              :                             }
    7438              :                           break;
    7439              :                         }
    7440              :                       default:;
    7441              :                       }
    7442              :                     break;
    7443              :                   }
    7444              :                 default:;
    7445              :                 }
    7446              :               break;
    7447              :             }
    7448      1336438 :           default:;
    7449              :           }
    7450      1336438 :       {
    7451      1336438 :         tree _q20_pops[1];
    7452      1336438 :         if (tree_nop_convert (_q20, _q20_pops))
    7453              :           {
    7454       137632 :             tree _q30 = _q20_pops[0];
    7455       137632 :             switch (TREE_CODE (_q30))
    7456              :               {
    7457        37188 :               case LSHIFT_EXPR:
    7458        37188 :                 {
    7459        37188 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    7460        37188 :                   tree _q41 = TREE_OPERAND (_q30, 1);
    7461        37188 :                   if (integer_onep (_q40))
    7462              :                     {
    7463        37188 :                       if (integer_pow2p (_q21))
    7464              :                         {
    7465            0 :                           if (integer_zerop (_p1))
    7466              :                             {
    7467            0 :                               {
    7468            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q41, _q21 };
    7469            0 :                                 tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    7470            0 :                                 if (res) return res;
    7471              :                               }
    7472              :                             }
    7473              :                         }
    7474              :                     }
    7475              :                   break;
    7476              :                 }
    7477              :               default:;
    7478              :               }
    7479              :           }
    7480              :       }
    7481      1336438 :         break;
    7482              :       }
    7483         5202 :     case LSHIFT_EXPR:
    7484         5202 :       {
    7485         5202 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7486         5202 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7487         5202 :         switch (TREE_CODE (_q20))
    7488              :           {
    7489          538 :           case INTEGER_CST:
    7490          538 :             {
    7491          538 :               switch (TREE_CODE (_p1))
    7492              :                 {
    7493          159 :                 case INTEGER_CST:
    7494          159 :                   {
    7495          159 :                     {
    7496          159 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7497          159 :                       tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, NE_EXPR);
    7498          159 :                       if (res) return res;
    7499              :                     }
    7500           88 :                     break;
    7501              :                   }
    7502              :                 default:;
    7503              :                 }
    7504              :               break;
    7505              :             }
    7506              :           default:;
    7507              :           }
    7508              :         break;
    7509              :       }
    7510          414 :     case LROTATE_EXPR:
    7511          414 :       {
    7512          414 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7513          414 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7514          414 :         switch (TREE_CODE (_p1))
    7515              :           {
    7516            0 :           case LROTATE_EXPR:
    7517            0 :             {
    7518            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7519            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7520            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7521              :                 {
    7522            0 :                   {
    7523            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    7524            0 :                     tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
    7525            0 :                     if (res) return res;
    7526              :                   }
    7527              :                 }
    7528              :               break;
    7529              :             }
    7530          414 :           default:;
    7531              :           }
    7532          414 :         switch (TREE_CODE (_q21))
    7533              :           {
    7534          112 :           case INTEGER_CST:
    7535          112 :             {
    7536          112 :               switch (TREE_CODE (_p1))
    7537              :                 {
    7538          112 :                 case INTEGER_CST:
    7539          112 :                   {
    7540          112 :                     {
    7541          112 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7542          112 :                       tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
    7543          112 :                       if (res) return res;
    7544              :                     }
    7545            0 :                     break;
    7546              :                   }
    7547              :                 default:;
    7548              :                 }
    7549              :               break;
    7550              :             }
    7551          302 :           default:;
    7552              :           }
    7553          302 :         switch (TREE_CODE (_p1))
    7554              :           {
    7555          197 :           case INTEGER_CST:
    7556          197 :             {
    7557          197 :               {
    7558          197 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7559          197 :                 tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
    7560          197 :                 if (res) return res;
    7561              :               }
    7562          197 :               break;
    7563              :             }
    7564              :           default:;
    7565              :           }
    7566              :         break;
    7567              :       }
    7568          491 :     case RROTATE_EXPR:
    7569          491 :       {
    7570          491 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7571          491 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7572          491 :         switch (TREE_CODE (_p1))
    7573              :           {
    7574            0 :           case RROTATE_EXPR:
    7575            0 :             {
    7576            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7577            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7578            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7579              :                 {
    7580            0 :                   {
    7581            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    7582            0 :                     tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
    7583            0 :                     if (res) return res;
    7584              :                   }
    7585              :                 }
    7586              :               break;
    7587              :             }
    7588          491 :           default:;
    7589              :           }
    7590          491 :         switch (TREE_CODE (_q21))
    7591              :           {
    7592          281 :           case INTEGER_CST:
    7593          281 :             {
    7594          281 :               switch (TREE_CODE (_p1))
    7595              :                 {
    7596           12 :                 case INTEGER_CST:
    7597           12 :                   {
    7598           12 :                     {
    7599           12 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7600           12 :                       tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
    7601           12 :                       if (res) return res;
    7602              :                     }
    7603            0 :                     break;
    7604              :                   }
    7605              :                 default:;
    7606              :                 }
    7607              :               break;
    7608              :             }
    7609          479 :           default:;
    7610              :           }
    7611          479 :         switch (TREE_CODE (_p1))
    7612              :           {
    7613          194 :           case INTEGER_CST:
    7614          194 :             {
    7615          194 :               {
    7616          194 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7617          194 :                 tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
    7618          194 :                 if (res) return res;
    7619              :               }
    7620          194 :               break;
    7621              :             }
    7622              :           default:;
    7623              :           }
    7624              :         break;
    7625              :       }
    7626          176 :     case VEC_COND_EXPR:
    7627          176 :       {
    7628          176 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7629          176 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7630          176 :         tree _q22 = TREE_OPERAND (_p0, 2);
    7631          176 :         switch (TREE_CODE (_p1))
    7632              :           {
    7633            0 :           case VEC_COND_EXPR:
    7634            0 :             {
    7635            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    7636            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    7637            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    7638            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7639              :                 {
    7640            0 :                   {
    7641            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    7642            0 :                     if (VECTOR_TYPE_P (type)
    7643            0 :  && (TREE_CODE_CLASS (NE_EXPR) != tcc_comparison
    7644            0 :  || types_match (type, TREE_TYPE (captures[2]))
    7645            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7646              :  || (optimize_vectors_before_lowering_p ()
    7647            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7648              : )
    7649              :                       {
    7650            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1536;
    7651            0 :                         {
    7652            0 :                           tree res_op0;
    7653            0 :                           res_op0 = captures[1];
    7654            0 :                           tree res_op1;
    7655            0 :                           {
    7656            0 :                             tree _o1[2], _r1;
    7657            0 :                             _o1[0] = captures[2];
    7658            0 :                             _o1[1] = captures[5];
    7659            0 :                             _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    7660            0 :                             if (EXPR_P (_r1))
    7661            0 :                               goto next_after_fail1536;
    7662            0 :                             res_op1 = _r1;
    7663              :                           }
    7664            0 :                           tree res_op2;
    7665            0 :                           {
    7666            0 :                             tree _o1[2], _r1;
    7667            0 :                             _o1[0] = captures[3];
    7668            0 :                             _o1[1] = captures[6];
    7669            0 :                             _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    7670            0 :                             if (EXPR_P (_r1))
    7671            0 :                               goto next_after_fail1536;
    7672            0 :                             res_op2 = _r1;
    7673              :                           }
    7674            0 :                           tree _r;
    7675            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7676            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
    7677            0 :                           return _r;
    7678              :                         }
    7679            0 : next_after_fail1536:;
    7680              :                       }
    7681              :                   }
    7682              :                 }
    7683              :               break;
    7684              :             }
    7685          176 :           default:;
    7686              :           }
    7687          176 :         {
    7688          176 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    7689          176 :           if (VECTOR_TYPE_P (type)
    7690          176 :  && (TREE_CODE_CLASS (NE_EXPR) != tcc_comparison
    7691          174 :  || types_match (type, TREE_TYPE (captures[2]))
    7692          174 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7693              :  || (optimize_vectors_before_lowering_p ()
    7694           27 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7695              : )
    7696              :             {
    7697          174 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1537;
    7698          174 :               {
    7699          174 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1537;
    7700           72 :                 tree res_op0;
    7701           72 :                 res_op0 = captures[1];
    7702           72 :                 tree res_op1;
    7703           72 :                 {
    7704           72 :                   tree _o1[2], _r1;
    7705           72 :                   _o1[0] = captures[2];
    7706           72 :                   _o1[1] = unshare_expr (captures[4]);
    7707           72 :                   _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    7708           72 :                   if (EXPR_P (_r1))
    7709            0 :                     goto next_after_fail1537;
    7710           72 :                   res_op1 = _r1;
    7711              :                 }
    7712           72 :                 tree res_op2;
    7713           72 :                 {
    7714           72 :                   tree _o1[2], _r1;
    7715           72 :                   _o1[0] = captures[3];
    7716           72 :                   _o1[1] = captures[4];
    7717           72 :                   _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    7718           72 :                   if (EXPR_P (_r1))
    7719            0 :                     goto next_after_fail1537;
    7720           72 :                   res_op2 = _r1;
    7721              :                 }
    7722           72 :                 tree _r;
    7723           72 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7724           72 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
    7725           72 :                 return _r;
    7726              :               }
    7727          104 : next_after_fail1537:;
    7728              :             }
    7729              :         }
    7730          104 :         break;
    7731              :       }
    7732      2747787 :     case CALL_EXPR:
    7733      2747787 :       switch (get_call_combined_fn (_p0))
    7734              :         {
    7735            2 :         case CFN_BUILT_IN_BSWAP128:
    7736            2 :           if (call_expr_nargs (_p0) == 1)
    7737              :     {
    7738            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7739            2 :               switch (TREE_CODE (_p1))
    7740              :                 {
    7741            0 :                 case INTEGER_CST:
    7742            0 :                   {
    7743            0 :                     {
    7744            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7745            0 :                       tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP128);
    7746            0 :                       if (res) return res;
    7747              :                     }
    7748            0 :                     break;
    7749              :                   }
    7750            1 :                 case CALL_EXPR:
    7751            1 :                   switch (get_call_combined_fn (_p1))
    7752              :                     {
    7753            0 :                     case CFN_BUILT_IN_BSWAP128:
    7754            0 :                       if (call_expr_nargs (_p1) == 1)
    7755              :     {
    7756            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7757            0 :                           {
    7758            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    7759            0 :                             tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP128);
    7760            0 :                             if (res) return res;
    7761              :                           }
    7762              :                         }
    7763              :                       break;
    7764              :                     default:;
    7765              :                     }
    7766              :                   break;
    7767              :                 default:;
    7768              :                 }
    7769              :             }
    7770              :           break;
    7771           11 :         case CFN_BUILT_IN_BSWAP16:
    7772           11 :           if (call_expr_nargs (_p0) == 1)
    7773              :     {
    7774           11 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7775           11 :               switch (TREE_CODE (_p1))
    7776              :                 {
    7777            9 :                 case INTEGER_CST:
    7778            9 :                   {
    7779            9 :                     {
    7780            9 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7781            9 :                       tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP16);
    7782            9 :                       if (res) return res;
    7783              :                     }
    7784            9 :                     break;
    7785              :                   }
    7786            1 :                 case CALL_EXPR:
    7787            1 :                   switch (get_call_combined_fn (_p1))
    7788              :                     {
    7789            1 :                     case CFN_BUILT_IN_BSWAP16:
    7790            1 :                       if (call_expr_nargs (_p1) == 1)
    7791              :     {
    7792            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7793            1 :                           {
    7794            1 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    7795            1 :                             tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP16);
    7796            1 :                             if (res) return res;
    7797              :                           }
    7798              :                         }
    7799              :                       break;
    7800              :                     default:;
    7801              :                     }
    7802              :                   break;
    7803              :                 default:;
    7804              :                 }
    7805              :             }
    7806              :           break;
    7807            7 :         case CFN_BUILT_IN_BSWAP32:
    7808            7 :           if (call_expr_nargs (_p0) == 1)
    7809              :     {
    7810            7 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7811            7 :               switch (TREE_CODE (_p1))
    7812              :                 {
    7813            3 :                 case INTEGER_CST:
    7814            3 :                   {
    7815            3 :                     {
    7816            3 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7817            3 :                       tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP32);
    7818            3 :                       if (res) return res;
    7819              :                     }
    7820            3 :                     break;
    7821              :                   }
    7822            3 :                 case CALL_EXPR:
    7823            3 :                   switch (get_call_combined_fn (_p1))
    7824              :                     {
    7825            3 :                     case CFN_BUILT_IN_BSWAP32:
    7826            3 :                       if (call_expr_nargs (_p1) == 1)
    7827              :     {
    7828            3 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7829            3 :                           {
    7830            3 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    7831            3 :                             tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP32);
    7832            3 :                             if (res) return res;
    7833              :                           }
    7834              :                         }
    7835              :                       break;
    7836              :                     default:;
    7837              :                     }
    7838              :                   break;
    7839              :                 default:;
    7840              :                 }
    7841              :             }
    7842              :           break;
    7843            7 :         case CFN_BUILT_IN_BSWAP64:
    7844            7 :           if (call_expr_nargs (_p0) == 1)
    7845              :     {
    7846            7 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7847            7 :               switch (TREE_CODE (_p1))
    7848              :                 {
    7849            3 :                 case INTEGER_CST:
    7850            3 :                   {
    7851            3 :                     {
    7852            3 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7853            3 :                       tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP64);
    7854            3 :                       if (res) return res;
    7855              :                     }
    7856            3 :                     break;
    7857              :                   }
    7858            3 :                 case CALL_EXPR:
    7859            3 :                   switch (get_call_combined_fn (_p1))
    7860              :                     {
    7861            3 :                     case CFN_BUILT_IN_BSWAP64:
    7862            3 :                       if (call_expr_nargs (_p1) == 1)
    7863              :     {
    7864            3 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7865            3 :                           {
    7866            3 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    7867            3 :                             tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP64);
    7868            3 :                             if (res) return res;
    7869              :                           }
    7870              :                         }
    7871              :                       break;
    7872              :                     default:;
    7873              :                     }
    7874              :                   break;
    7875              :                 default:;
    7876              :                 }
    7877              :             }
    7878              :           break;
    7879              :         default:;
    7880              :         }
    7881              :       break;
    7882     40539567 :     default:;
    7883              :     }
    7884     40539567 :   switch (TREE_CODE (_p1))
    7885              :     {
    7886            0 :     case VEC_COND_EXPR:
    7887            0 :       {
    7888            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7889            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7890            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    7891            0 :         {
    7892            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    7893            0 :           if (VECTOR_TYPE_P (type)
    7894            0 :  && (TREE_CODE_CLASS (NE_EXPR) != tcc_comparison
    7895            0 :  || types_match (type, TREE_TYPE (captures[3]))
    7896            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    7897              :  || (optimize_vectors_before_lowering_p ()
    7898            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    7899              : )
    7900              :             {
    7901            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1538;
    7902            0 :               {
    7903            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1538;
    7904            0 :                 tree res_op0;
    7905            0 :                 res_op0 = captures[2];
    7906            0 :                 tree res_op1;
    7907            0 :                 {
    7908            0 :                   tree _o1[2], _r1;
    7909            0 :                   _o1[0] = unshare_expr (captures[0]);
    7910            0 :                   _o1[1] = captures[3];
    7911            0 :                   _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    7912            0 :                   if (EXPR_P (_r1))
    7913            0 :                     goto next_after_fail1538;
    7914            0 :                   res_op1 = _r1;
    7915              :                 }
    7916            0 :                 tree res_op2;
    7917            0 :                 {
    7918            0 :                   tree _o1[2], _r1;
    7919            0 :                   _o1[0] = captures[0];
    7920            0 :                   _o1[1] = captures[4];
    7921            0 :                   _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    7922            0 :                   if (EXPR_P (_r1))
    7923            0 :                     goto next_after_fail1538;
    7924            0 :                   res_op2 = _r1;
    7925              :                 }
    7926            0 :                 tree _r;
    7927            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7928            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
    7929            0 :                 return _r;
    7930              :               }
    7931            0 : next_after_fail1538:;
    7932              :             }
    7933              :         }
    7934            0 :         break;
    7935              :       }
    7936     40539567 :     default:;
    7937              :     }
    7938     40539567 :   switch (TREE_CODE (_p0))
    7939              :     {
    7940        96622 :     case COND_EXPR:
    7941        96622 :       {
    7942        96622 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7943        96622 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7944        96622 :         tree _q22 = TREE_OPERAND (_p0, 2);
    7945        96622 :         switch (TREE_CODE (_p1))
    7946              :           {
    7947          276 :           case COND_EXPR:
    7948          276 :             {
    7949          276 :               tree _q60 = TREE_OPERAND (_p1, 0);
    7950          276 :               tree _q61 = TREE_OPERAND (_p1, 1);
    7951          276 :               tree _q62 = TREE_OPERAND (_p1, 2);
    7952          276 :               if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    7953              :                 {
    7954           72 :                   if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    7955              :                     {
    7956           72 :                       {
    7957           72 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    7958           72 :                         const enum tree_code eqne = NE_EXPR;
    7959           72 :                         if (!HONOR_NANS (captures[1])
    7960           56 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    7961           49 :  && types_match (type, TREE_TYPE (captures[0]))
    7962           49 :  && expr_no_side_effects_p (captures[1])
    7963          114 :  && expr_no_side_effects_p (captures[2])
    7964              : )
    7965              :                           {
    7966           42 :                             if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1539;
    7967           42 :                             if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1539;
    7968           42 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1539;
    7969           42 :                             {
    7970           42 :                               tree res_op0;
    7971           42 :                               {
    7972           42 :                                 tree _o1[2], _r1;
    7973           42 :                                 {
    7974           42 :                                   tree _o2[2], _r2;
    7975           42 :                                   _o2[0] = captures[0];
    7976           42 :                                   _o2[1] = captures[3];
    7977           42 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    7978           42 :                                   _o1[0] = _r2;
    7979              :                                 }
    7980           42 :                                 {
    7981           42 :                                   tree _o2[2], _r2;
    7982           42 :                                   _o2[0] = captures[1];
    7983           42 :                                   _o2[1] = captures[2];
    7984           42 :                                   _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
    7985           42 :                                   _o1[1] = _r2;
    7986              :                                 }
    7987           42 :                                 _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    7988           42 :                                 res_op0 = _r1;
    7989              :                               }
    7990           42 :                               tree res_op1;
    7991           42 :                               res_op1 =  constant_boolean_node (eqne == NE_EXPR, type);
    7992           42 :                               tree res_op2;
    7993           42 :                               res_op2 =  constant_boolean_node (eqne != NE_EXPR, type);
    7994           42 :                               tree _r;
    7995           42 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    7996           42 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 964, __FILE__, __LINE__, true);
    7997           42 :                               return _r;
    7998              :                             }
    7999           30 : next_after_fail1539:;
    8000              :                           }
    8001              :                       }
    8002              :                     }
    8003              :                 }
    8004          234 :               if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
    8005              :                 {
    8006            0 :                   if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
    8007              :                     {
    8008            0 :                       {
    8009            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    8010            0 :                         const enum tree_code eqne = NE_EXPR;
    8011            0 :                         if (!HONOR_NANS (captures[1])
    8012            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    8013            0 :  && types_match (type, TREE_TYPE (captures[0]))
    8014            0 :  && expr_no_side_effects_p (captures[1])
    8015            0 :  && expr_no_side_effects_p (captures[2])
    8016              : )
    8017              :                           {
    8018            0 :                             if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1540;
    8019            0 :                             if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1540;
    8020            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1540;
    8021            0 :                             {
    8022            0 :                               tree res_op0;
    8023            0 :                               {
    8024            0 :                                 tree _o1[2], _r1;
    8025            0 :                                 {
    8026            0 :                                   tree _o2[2], _r2;
    8027            0 :                                   _o2[0] = captures[0];
    8028            0 :                                   _o2[1] = captures[3];
    8029            0 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    8030            0 :                                   _o1[0] = _r2;
    8031              :                                 }
    8032            0 :                                 {
    8033            0 :                                   tree _o2[2], _r2;
    8034            0 :                                   _o2[0] = captures[1];
    8035            0 :                                   _o2[1] = captures[2];
    8036            0 :                                   _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
    8037            0 :                                   _o1[1] = _r2;
    8038              :                                 }
    8039            0 :                                 _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8040            0 :                                 res_op0 = _r1;
    8041              :                               }
    8042            0 :                               tree res_op1;
    8043            0 :                               res_op1 =  constant_boolean_node (eqne != NE_EXPR, type);
    8044            0 :                               tree res_op2;
    8045            0 :                               res_op2 =  constant_boolean_node (eqne == NE_EXPR, type);
    8046            0 :                               tree _r;
    8047            0 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    8048            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 965, __FILE__, __LINE__, true);
    8049            0 :                               return _r;
    8050              :                             }
    8051            0 : next_after_fail1540:;
    8052              :                           }
    8053              :                       }
    8054              :                     }
    8055              :                 }
    8056              :               break;
    8057              :             }
    8058              :           default:;
    8059              :           }
    8060              :         break;
    8061              :       }
    8062          104 :     case VEC_COND_EXPR:
    8063          104 :       {
    8064          104 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8065          104 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8066          104 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8067          104 :         switch (TREE_CODE (_p1))
    8068              :           {
    8069            0 :           case VEC_COND_EXPR:
    8070            0 :             {
    8071            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8072            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8073            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8074            0 :               if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    8075              :                 {
    8076            0 :                   if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    8077              :                     {
    8078            0 :                       {
    8079            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    8080            0 :                         const enum tree_code eqne = NE_EXPR;
    8081            0 :                         if (!HONOR_NANS (captures[1])
    8082            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    8083            0 :  && types_match (type, TREE_TYPE (captures[0]))
    8084            0 :  && expr_no_side_effects_p (captures[1])
    8085            0 :  && expr_no_side_effects_p (captures[2])
    8086              : )
    8087              :                           {
    8088            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1541;
    8089            0 :                             {
    8090            0 :                               tree res_op0;
    8091            0 :                               {
    8092            0 :                                 tree _o1[2], _r1;
    8093            0 :                                 {
    8094            0 :                                   tree _o2[2], _r2;
    8095            0 :                                   _o2[0] = captures[0];
    8096            0 :                                   _o2[1] = captures[3];
    8097            0 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    8098            0 :                                   _o1[0] = _r2;
    8099              :                                 }
    8100            0 :                                 {
    8101            0 :                                   tree _o2[2], _r2;
    8102            0 :                                   _o2[0] = captures[1];
    8103            0 :                                   _o2[1] = captures[2];
    8104            0 :                                   _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
    8105            0 :                                   _o1[1] = _r2;
    8106              :                                 }
    8107            0 :                                 _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8108            0 :                                 res_op0 = _r1;
    8109              :                               }
    8110            0 :                               tree res_op1;
    8111            0 :                               res_op1 =  constant_boolean_node (eqne == NE_EXPR, type);
    8112            0 :                               tree res_op2;
    8113            0 :                               res_op2 =  constant_boolean_node (eqne != NE_EXPR, type);
    8114            0 :                               tree _r;
    8115            0 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8116            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 964, __FILE__, __LINE__, true);
    8117            0 :                               return _r;
    8118              :                             }
    8119            0 : next_after_fail1541:;
    8120              :                           }
    8121              :                       }
    8122              :                     }
    8123              :                 }
    8124            0 :               if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
    8125              :                 {
    8126            0 :                   if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
    8127              :                     {
    8128            0 :                       {
    8129            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    8130            0 :                         const enum tree_code eqne = NE_EXPR;
    8131            0 :                         if (!HONOR_NANS (captures[1])
    8132            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    8133            0 :  && types_match (type, TREE_TYPE (captures[0]))
    8134            0 :  && expr_no_side_effects_p (captures[1])
    8135            0 :  && expr_no_side_effects_p (captures[2])
    8136              : )
    8137              :                           {
    8138            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1542;
    8139            0 :                             {
    8140            0 :                               tree res_op0;
    8141            0 :                               {
    8142            0 :                                 tree _o1[2], _r1;
    8143            0 :                                 {
    8144            0 :                                   tree _o2[2], _r2;
    8145            0 :                                   _o2[0] = captures[0];
    8146            0 :                                   _o2[1] = captures[3];
    8147            0 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    8148            0 :                                   _o1[0] = _r2;
    8149              :                                 }
    8150            0 :                                 {
    8151            0 :                                   tree _o2[2], _r2;
    8152            0 :                                   _o2[0] = captures[1];
    8153            0 :                                   _o2[1] = captures[2];
    8154            0 :                                   _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
    8155            0 :                                   _o1[1] = _r2;
    8156              :                                 }
    8157            0 :                                 _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8158            0 :                                 res_op0 = _r1;
    8159              :                               }
    8160            0 :                               tree res_op1;
    8161            0 :                               res_op1 =  constant_boolean_node (eqne != NE_EXPR, type);
    8162            0 :                               tree res_op2;
    8163            0 :                               res_op2 =  constant_boolean_node (eqne == NE_EXPR, type);
    8164            0 :                               tree _r;
    8165            0 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8166            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 965, __FILE__, __LINE__, true);
    8167            0 :                               return _r;
    8168              :                             }
    8169            0 : next_after_fail1542:;
    8170              :                           }
    8171              :                       }
    8172              :                     }
    8173              :                 }
    8174              :               break;
    8175              :             }
    8176              :           default:;
    8177              :           }
    8178              :         break;
    8179              :       }
    8180        18024 :     case LT_EXPR:
    8181        18024 :       {
    8182        18024 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8183        18024 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8184        18024 :         if (integer_zerop (_p1))
    8185              :           {
    8186        16524 :             {
    8187        16524 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8188        16524 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
    8189        16524 :               if (res) return res;
    8190              :             }
    8191              :           }
    8192        15087 :         if (integer_truep (_p1))
    8193              :           {
    8194          547 :             {
    8195          547 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8196          547 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
    8197          547 :               if (res) return res;
    8198              :             }
    8199              :           }
    8200              :         break;
    8201              :       }
    8202        11848 :     case LE_EXPR:
    8203        11848 :       {
    8204        11848 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8205        11848 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8206        11848 :         if (integer_zerop (_p1))
    8207              :           {
    8208         9287 :             {
    8209         9287 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8210         9287 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
    8211         9287 :               if (res) return res;
    8212              :             }
    8213              :           }
    8214        11056 :         if (integer_truep (_p1))
    8215              :           {
    8216          461 :             {
    8217          461 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8218          461 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
    8219          461 :               if (res) return res;
    8220              :             }
    8221              :           }
    8222              :         break;
    8223              :       }
    8224        64321 :     case EQ_EXPR:
    8225        64321 :       {
    8226        64321 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8227        64321 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8228        64321 :         if (integer_zerop (_p1))
    8229              :           {
    8230        36754 :             {
    8231        36754 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8232        36754 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
    8233        36754 :               if (res) return res;
    8234              :             }
    8235              :           }
    8236        63456 :         if (integer_truep (_p1))
    8237              :           {
    8238        21941 :             {
    8239        21941 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8240        21941 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
    8241        21941 :               if (res) return res;
    8242              :             }
    8243              :           }
    8244              :         break;
    8245              :       }
    8246        68290 :     case NE_EXPR:
    8247        68290 :       {
    8248        68290 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8249        68290 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8250        68290 :         if (integer_zerop (_p1))
    8251              :           {
    8252        56671 :             {
    8253        56671 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8254        56671 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
    8255        56671 :               if (res) return res;
    8256              :             }
    8257              :           }
    8258        34161 :         if (integer_truep (_p1))
    8259              :           {
    8260          141 :             {
    8261          141 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8262          141 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
    8263          141 :               if (res) return res;
    8264              :             }
    8265              :           }
    8266              :         break;
    8267              :       }
    8268         6123 :     case GE_EXPR:
    8269         6123 :       {
    8270         6123 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8271         6123 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8272         6123 :         if (integer_zerop (_p1))
    8273              :           {
    8274         4174 :             {
    8275         4174 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8276         4174 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
    8277         4174 :               if (res) return res;
    8278              :             }
    8279              :           }
    8280         5465 :         if (integer_truep (_p1))
    8281              :           {
    8282          478 :             {
    8283          478 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8284          478 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
    8285          478 :               if (res) return res;
    8286              :             }
    8287              :           }
    8288              :         break;
    8289              :       }
    8290        35311 :     case GT_EXPR:
    8291        35311 :       {
    8292        35311 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8293        35311 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8294        35311 :         if (integer_zerop (_p1))
    8295              :           {
    8296        33245 :             {
    8297        33245 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8298        33245 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
    8299        33245 :               if (res) return res;
    8300              :             }
    8301              :           }
    8302        29343 :         if (integer_truep (_p1))
    8303              :           {
    8304          320 :             {
    8305          320 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8306          320 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
    8307          320 :               if (res) return res;
    8308              :             }
    8309              :           }
    8310              :         break;
    8311              :       }
    8312       127805 :     case UNORDERED_EXPR:
    8313       127805 :       {
    8314       127805 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8315       127805 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8316       127805 :         if (integer_zerop (_p1))
    8317              :           {
    8318       125597 :             {
    8319       125597 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8320       125597 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
    8321       125597 :               if (res) return res;
    8322              :             }
    8323              :           }
    8324       127415 :         if (integer_truep (_p1))
    8325              :           {
    8326           42 :             {
    8327           42 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8328           42 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
    8329           42 :               if (res) return res;
    8330              :             }
    8331              :           }
    8332              :         break;
    8333              :       }
    8334          125 :     case ORDERED_EXPR:
    8335          125 :       {
    8336          125 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8337          125 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8338          125 :         if (integer_zerop (_p1))
    8339              :           {
    8340           42 :             {
    8341           42 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8342           42 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
    8343           42 :               if (res) return res;
    8344              :             }
    8345              :           }
    8346           83 :         if (integer_truep (_p1))
    8347              :           {
    8348            0 :             {
    8349            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8350            0 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
    8351            0 :               if (res) return res;
    8352              :             }
    8353              :           }
    8354              :         break;
    8355              :       }
    8356          225 :     case UNLT_EXPR:
    8357          225 :       {
    8358          225 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8359          225 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8360          225 :         if (integer_zerop (_p1))
    8361              :           {
    8362           28 :             {
    8363           28 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8364           28 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
    8365           28 :               if (res) return res;
    8366              :             }
    8367              :           }
    8368          197 :         if (integer_truep (_p1))
    8369              :           {
    8370          169 :             {
    8371          169 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8372          169 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
    8373          169 :               if (res) return res;
    8374              :             }
    8375              :           }
    8376              :         break;
    8377              :       }
    8378         1438 :     case UNLE_EXPR:
    8379         1438 :       {
    8380         1438 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8381         1438 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8382         1438 :         if (integer_zerop (_p1))
    8383              :           {
    8384          104 :             {
    8385          104 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8386          104 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
    8387          104 :               if (res) return res;
    8388              :             }
    8389              :           }
    8390         1334 :         if (integer_truep (_p1))
    8391              :           {
    8392         1306 :             {
    8393         1306 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8394         1306 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
    8395         1306 :               if (res) return res;
    8396              :             }
    8397              :           }
    8398              :         break;
    8399              :       }
    8400         2800 :     case UNGT_EXPR:
    8401         2800 :       {
    8402         2800 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8403         2800 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8404         2800 :         if (integer_zerop (_p1))
    8405              :           {
    8406           96 :             {
    8407           96 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8408           96 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
    8409           96 :               if (res) return res;
    8410              :             }
    8411              :           }
    8412         2704 :         if (integer_truep (_p1))
    8413              :           {
    8414         2556 :             {
    8415         2556 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8416         2556 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
    8417         2556 :               if (res) return res;
    8418              :             }
    8419              :           }
    8420              :         break;
    8421              :       }
    8422          403 :     case UNGE_EXPR:
    8423          403 :       {
    8424          403 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8425          403 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8426          403 :         if (integer_zerop (_p1))
    8427              :           {
    8428           16 :             {
    8429           16 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8430           16 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
    8431           16 :               if (res) return res;
    8432              :             }
    8433              :           }
    8434          387 :         if (integer_truep (_p1))
    8435              :           {
    8436          219 :             {
    8437          219 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8438          219 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
    8439          219 :               if (res) return res;
    8440              :             }
    8441              :           }
    8442              :         break;
    8443              :       }
    8444          175 :     case UNEQ_EXPR:
    8445          175 :       {
    8446          175 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8447          175 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8448          175 :         if (integer_zerop (_p1))
    8449              :           {
    8450            0 :             {
    8451            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8452            0 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
    8453            0 :               if (res) return res;
    8454              :             }
    8455              :           }
    8456          175 :         if (integer_truep (_p1))
    8457              :           {
    8458          132 :             {
    8459          132 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8460          132 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
    8461          132 :               if (res) return res;
    8462              :             }
    8463              :           }
    8464              :         break;
    8465              :       }
    8466           27 :     case LTGT_EXPR:
    8467           27 :       {
    8468           27 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8469           27 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8470           27 :         if (integer_zerop (_p1))
    8471              :           {
    8472            6 :             {
    8473            6 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8474            6 :               tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
    8475            6 :               if (res) return res;
    8476              :             }
    8477              :           }
    8478           27 :         if (integer_truep (_p1))
    8479              :           {
    8480            0 :             {
    8481            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8482            0 :               tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
    8483            0 :               if (res) return res;
    8484              :             }
    8485              :           }
    8486              :         break;
    8487              :       }
    8488       105851 :     case MINUS_EXPR:
    8489       105851 :       {
    8490       105851 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8491       105851 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8492       105851 :         if (integer_zerop (_p1))
    8493              :           {
    8494        36564 :             {
    8495        36564 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8496        36564 :               tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, NE_EXPR);
    8497        36564 :               if (res) return res;
    8498              :             }
    8499              :           }
    8500              :         break;
    8501              :       }
    8502        26658 :     case POINTER_DIFF_EXPR:
    8503        26658 :       {
    8504        26658 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8505        26658 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8506        26658 :         if (integer_zerop (_p1))
    8507              :           {
    8508        14576 :             {
    8509        14576 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8510        14576 :               tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, NE_EXPR);
    8511        14576 :               if (res) return res;
    8512              :             }
    8513              :           }
    8514              :         break;
    8515              :       }
    8516        94949 :     case MULT_EXPR:
    8517        94949 :       {
    8518        94949 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8519        94949 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8520        94949 :         switch (TREE_CODE (_q21))
    8521              :           {
    8522        77442 :           case INTEGER_CST:
    8523        77442 :             {
    8524        77442 :               switch (TREE_CODE (_p1))
    8525              :                 {
    8526        51705 :                 case INTEGER_CST:
    8527        51705 :                   {
    8528        51705 :                     {
    8529        51705 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8530        51705 :                       tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, NE_EXPR);
    8531        51705 :                       if (res) return res;
    8532              :                     }
    8533        35172 :                     break;
    8534              :                   }
    8535        60909 :                 default:;
    8536              :                 }
    8537        60909 :             if (integer_zerop (_p1))
    8538              :               {
    8539        12565 :                 {
    8540        12565 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    8541        12565 :                   tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8542        12565 :                   if (res) return res;
    8543              :                 }
    8544              :               }
    8545              :               break;
    8546              :             }
    8547              :           default:;
    8548              :           }
    8549              :         break;
    8550              :       }
    8551     40403791 :     default:;
    8552              :     }
    8553     40403791 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8554              :     {
    8555       123802 :       {
    8556       123802 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8557       123802 :         tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, NE_EXPR);
    8558       123802 :         if (res) return res;
    8559              :       }
    8560              :     }
    8561     40286634 :   switch (TREE_CODE (_p0))
    8562              :     {
    8563      8203728 :     CASE_CONVERT:
    8564      8203728 :       {
    8565      8203728 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8566      8203728 :         switch (TREE_CODE (_p1))
    8567              :           {
    8568      3107039 :           CASE_CONVERT:
    8569      3107039 :             {
    8570      3107039 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8571      3107039 :               {
    8572      3107039 :                 tree _q40_pops[1];
    8573      3107039 :                 if (tree_maybe_bit_not (_q40, _q40_pops))
    8574              :                   {
    8575            0 :                     tree _q50 = _q40_pops[0];
    8576            0 :                     {
    8577            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    8578            0 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, NE_EXPR);
    8579            0 :                       if (res) return res;
    8580              :                     }
    8581              :                   }
    8582              :               }
    8583      3107039 :               break;
    8584              :             }
    8585      8203728 :           default:;
    8586              :           }
    8587      8203728 :         {
    8588      8203728 :           tree _q20_pops[1];
    8589      8203728 :           if (tree_maybe_bit_not (_q20, _q20_pops))
    8590              :             {
    8591        12642 :               tree _q30 = _q20_pops[0];
    8592        12642 :               switch (TREE_CODE (_p1))
    8593              :                 {
    8594            0 :                 CASE_CONVERT:
    8595            0 :                   {
    8596            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    8597            0 :                     {
    8598            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    8599            0 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, NE_EXPR);
    8600            0 :                       if (res) return res;
    8601              :                     }
    8602            0 :                     break;
    8603              :                   }
    8604              :                 default:;
    8605              :                 }
    8606              :             }
    8607              :         }
    8608      8203728 :         break;
    8609              :       }
    8610     40286634 :     default:;
    8611              :     }
    8612     40286634 :   {
    8613     40286634 :     tree _p1_pops[1];
    8614     40286634 :     if (tree_maybe_bit_not (_p1, _p1_pops))
    8615              :       {
    8616     30071543 :         tree _q30 = _p1_pops[0];
    8617     30071543 :         {
    8618     30071543 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    8619     30071543 :           tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, NE_EXPR);
    8620     30071543 :           if (res) return res;
    8621              :         }
    8622              :       }
    8623              :   }
    8624     40286634 :   switch (TREE_CODE (_p0))
    8625              :     {
    8626        13414 :     case BIT_NOT_EXPR:
    8627        13414 :       {
    8628        13414 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8629        13414 :         switch (TREE_CODE (_p1))
    8630              :           {
    8631           11 :           case BIT_NOT_EXPR:
    8632           11 :             {
    8633           11 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8634           11 :               {
    8635           11 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
    8636           11 :                 tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, NE_EXPR);
    8637           11 :                 if (res) return res;
    8638              :               }
    8639            0 :               break;
    8640              :             }
    8641        13403 :           default:;
    8642              :           }
    8643        13403 :       {
    8644        13403 :         tree _p1_pops[1];
    8645        13403 :         if (tree_nop_convert (_p1, _p1_pops))
    8646              :           {
    8647           80 :             tree _q40 = _p1_pops[0];
    8648           80 :             switch (TREE_CODE (_q40))
    8649              :               {
    8650            0 :               case BIT_NOT_EXPR:
    8651            0 :                 {
    8652            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    8653            0 :                   {
    8654            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
    8655            0 :                     tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, NE_EXPR);
    8656            0 :                     if (res) return res;
    8657              :                   }
    8658            0 :                   break;
    8659              :                 }
    8660              :               default:;
    8661              :               }
    8662              :           }
    8663              :       }
    8664        13403 :       if (CONSTANT_CLASS_P (_p1))
    8665              :         {
    8666        12217 :           {
    8667        12217 :             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8668        12217 :             tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8669        12217 :             if (res) return res;
    8670              :           }
    8671              :         }
    8672              :         break;
    8673              :       }
    8674     40274406 :     default:;
    8675              :     }
    8676     40274406 : {
    8677     40274406 :   tree _p0_pops[1];
    8678     40274406 :   if (tree_maybe_bit_not (_p0, _p0_pops))
    8679              :     {
    8680       283990 :       tree _q20 = _p0_pops[0];
    8681       283990 :       {
    8682       283990 :         tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
    8683       283990 :         tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, NE_EXPR);
    8684       283990 :         if (res) return res;
    8685              :       }
    8686              :     }
    8687              : }
    8688     40274404 : {
    8689     40274404 :   tree _p0_pops[1];
    8690     40274404 :   if (tree_nop_convert (_p0, _p0_pops))
    8691              :     {
    8692      4804894 :       tree _q20 = _p0_pops[0];
    8693      4804894 :       switch (TREE_CODE (_q20))
    8694              :         {
    8695            1 :         case BIT_NOT_EXPR:
    8696            1 :           {
    8697            1 :             tree _q30 = TREE_OPERAND (_q20, 0);
    8698            1 :             switch (TREE_CODE (_p1))
    8699              :               {
    8700            0 :               case BIT_NOT_EXPR:
    8701            0 :                 {
    8702            0 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    8703            0 :                   {
    8704            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
    8705            0 :                     tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, NE_EXPR);
    8706            0 :                     if (res) return res;
    8707              :                   }
    8708            0 :                   break;
    8709              :                 }
    8710            1 :               default:;
    8711              :               }
    8712            1 :           {
    8713            1 :             tree _p1_pops[1];
    8714            1 :             if (tree_nop_convert (_p1, _p1_pops))
    8715              :               {
    8716            0 :                 tree _q50 = _p1_pops[0];
    8717            0 :                 switch (TREE_CODE (_q50))
    8718              :                   {
    8719            0 :                   case BIT_NOT_EXPR:
    8720            0 :                     {
    8721            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    8722            0 :                       {
    8723            0 :                         tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
    8724            0 :                         tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, NE_EXPR);
    8725            0 :                         if (res) return res;
    8726              :                       }
    8727            0 :                       break;
    8728              :                     }
    8729              :                   default:;
    8730              :                   }
    8731              :               }
    8732              :           }
    8733            1 :           if (CONSTANT_CLASS_P (_p1))
    8734              :             {
    8735            1 :               {
    8736            1 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    8737            1 :                 tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8738            1 :                 if (res) return res;
    8739              :               }
    8740              :             }
    8741              :             break;
    8742              :           }
    8743              :         default:;
    8744              :         }
    8745              :     }
    8746              : }
    8747     40274403 :   switch (TREE_CODE (_p1))
    8748              :     {
    8749       693955 :     case REAL_CST:
    8750       693955 :       {
    8751       693955 :         {
    8752       693955 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8753       693955 :           tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, NE_EXPR);
    8754       693955 :           if (res) return res;
    8755              :         }
    8756       626869 :         break;
    8757              :       }
    8758     40207317 :     default:;
    8759              :     }
    8760     40207317 :   switch (TREE_CODE (_p0))
    8761              :     {
    8762      1325686 :     case PLUS_EXPR:
    8763      1325686 :       {
    8764      1325686 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8765      1325686 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8766      1325686 :         switch (TREE_CODE (_q21))
    8767              :           {
    8768         3850 :           case REAL_CST:
    8769         3850 :             {
    8770         3850 :               switch (TREE_CODE (_p1))
    8771              :                 {
    8772         3069 :                 case REAL_CST:
    8773         3069 :                   {
    8774         3069 :                     {
    8775         3069 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8776         3069 :                       tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR);
    8777         3069 :                       if (res) return res;
    8778              :                     }
    8779         3069 :                     break;
    8780              :                   }
    8781              :                 default:;
    8782              :                 }
    8783              :               break;
    8784              :             }
    8785              :           default:;
    8786              :           }
    8787              :         break;
    8788              :       }
    8789        69283 :     case MINUS_EXPR:
    8790        69283 :       {
    8791        69283 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8792        69283 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8793        69283 :         switch (TREE_CODE (_q21))
    8794              :           {
    8795         3215 :           case REAL_CST:
    8796         3215 :             {
    8797         3215 :               switch (TREE_CODE (_p1))
    8798              :                 {
    8799         2849 :                 case REAL_CST:
    8800         2849 :                   {
    8801         2849 :                     {
    8802         2849 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8803         2849 :                       tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, MINUS_EXPR, NE_EXPR);
    8804         2849 :                       if (res) return res;
    8805              :                     }
    8806         2849 :                     break;
    8807              :                   }
    8808              :                 default:;
    8809              :                 }
    8810              :               break;
    8811              :             }
    8812        69283 :           default:;
    8813              :           }
    8814        69283 :         switch (TREE_CODE (_q20))
    8815              :           {
    8816           87 :           case REAL_CST:
    8817           87 :             {
    8818           87 :               switch (TREE_CODE (_p1))
    8819              :                 {
    8820           44 :                 case REAL_CST:
    8821           44 :                   {
    8822           44 :                     {
    8823           44 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8824           44 :                       tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, NE_EXPR);
    8825           44 :                       if (res) return res;
    8826              :                     }
    8827           44 :                     break;
    8828              :                   }
    8829              :                 default:;
    8830              :                 }
    8831              :               break;
    8832              :             }
    8833              :           default:;
    8834              :           }
    8835              :         break;
    8836              :       }
    8837        10012 :     case FLOAT_EXPR:
    8838        10012 :       {
    8839        10012 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8840        10012 :         switch (TREE_CODE (_p1))
    8841              :           {
    8842         1115 :           case FLOAT_EXPR:
    8843         1115 :             {
    8844         1115 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8845         1115 :               {
    8846         1115 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8847         1115 :                 tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8848         1115 :                 if (res) return res;
    8849              :               }
    8850          971 :               break;
    8851              :             }
    8852         1808 :           case REAL_CST:
    8853         1808 :             {
    8854         1808 :               {
    8855         1808 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8856         1808 :                 tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8857         1808 :                 if (res) return res;
    8858              :               }
    8859         1687 :               break;
    8860              :             }
    8861              :           default:;
    8862              :           }
    8863              :         break;
    8864              :       }
    8865         2037 :     case EXACT_DIV_EXPR:
    8866         2037 :       {
    8867         2037 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8868         2037 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8869         2037 :         switch (TREE_CODE (_p1))
    8870              :           {
    8871           36 :           case INTEGER_CST:
    8872           36 :             {
    8873           36 :               {
    8874           36 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8875           36 :                 tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR);
    8876           36 :                 if (res) return res;
    8877              :               }
    8878            0 :               break;
    8879              :             }
    8880              :           default:;
    8881              :           }
    8882              :         break;
    8883              :       }
    8884         6151 :     case NEGATE_EXPR:
    8885         6151 :       {
    8886         6151 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8887         6151 :         switch (TREE_CODE (_p1))
    8888              :           {
    8889            4 :           case NEGATE_EXPR:
    8890            4 :             {
    8891            4 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8892            4 :               {
    8893            4 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    8894            4 :                 tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8895            4 :                 if (res) return res;
    8896              :               }
    8897            0 :               break;
    8898              :             }
    8899         6147 :           default:;
    8900              :           }
    8901         6147 :       if (CONSTANT_CLASS_P (_p1))
    8902              :         {
    8903          580 :           {
    8904          580 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8905          580 :             tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    8906          580 :             if (res) return res;
    8907              :           }
    8908              :         }
    8909              :         break;
    8910              :       }
    8911         1940 :     case ABS_EXPR:
    8912         1940 :       {
    8913         1940 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8914         1940 :         if (zerop (_p1))
    8915              :           {
    8916           72 :             {
    8917           72 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8918           72 :               const enum tree_code eqne = NE_EXPR;
    8919           72 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1543;
    8920           72 :               {
    8921           72 :                 tree res_op0;
    8922           72 :                 res_op0 = captures[0];
    8923           72 :                 tree res_op1;
    8924           72 :                 res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    8925           72 :                 tree _r;
    8926           72 :                 _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
    8927           72 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    8928            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    8929           72 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
    8930           72 :                 return _r;
    8931              :               }
    8932            0 : next_after_fail1543:;
    8933              :             }
    8934              :           }
    8935              :         break;
    8936              :       }
    8937         1698 :     case ABSU_EXPR:
    8938         1698 :       {
    8939         1698 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8940         1698 :         if (zerop (_p1))
    8941              :           {
    8942           65 :             {
    8943           65 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8944           65 :               const enum tree_code eqne = NE_EXPR;
    8945           65 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1544;
    8946           65 :               {
    8947           65 :                 tree res_op0;
    8948           65 :                 res_op0 = captures[0];
    8949           65 :                 tree res_op1;
    8950           65 :                 res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    8951           65 :                 tree _r;
    8952           65 :                 _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
    8953           65 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    8954            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    8955           65 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
    8956           65 :                 return _r;
    8957              :               }
    8958            0 : next_after_fail1544:;
    8959              :             }
    8960              :           }
    8961              :         break;
    8962              :       }
    8963      8203644 :     CASE_CONVERT:
    8964      8203644 :       {
    8965      8203644 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8966      8203644 :         switch (TREE_CODE (_p1))
    8967              :           {
    8968      3107039 :           CASE_CONVERT:
    8969      3107039 :             {
    8970      3107039 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8971      3107039 :               {
    8972      3107039 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8973      3107039 :                 tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, NE_EXPR);
    8974      3107039 :                 if (res) return res;
    8975              :               }
    8976      2906339 :               break;
    8977              :             }
    8978      8002944 :           default:;
    8979              :           }
    8980      8002944 :         {
    8981      8002944 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
    8982      8002944 :           tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, NE_EXPR);
    8983      8002944 :           if (res) return res;
    8984              :         }
    8985      4608052 :         switch (TREE_CODE (_q20))
    8986              :           {
    8987           12 :           case BIT_IOR_EXPR:
    8988           12 :             {
    8989           12 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8990           12 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8991           12 :               switch (TREE_CODE (_q31))
    8992              :                 {
    8993            0 :                 case INTEGER_CST:
    8994            0 :                   {
    8995            0 :                     switch (TREE_CODE (_p1))
    8996              :                       {
    8997            0 :                       case INTEGER_CST:
    8998            0 :                         {
    8999            0 :                           {
    9000            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
    9001            0 :                             tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, NE_EXPR);
    9002            0 :                             if (res) return res;
    9003              :                           }
    9004            0 :                           break;
    9005              :                         }
    9006              :                       default:;
    9007              :                       }
    9008              :                     break;
    9009              :                   }
    9010              :                 default:;
    9011              :                 }
    9012              :               break;
    9013              :             }
    9014              :           default:;
    9015              :           }
    9016              :         break;
    9017              :       }
    9018     14978215 :     case SSA_NAME:
    9019     14978215 :       {
    9020     14978215 :         switch (TREE_CODE (_p1))
    9021              :           {
    9022       314945 :           case ADDR_EXPR:
    9023       314945 :             {
    9024       314945 :               {
    9025       314945 :                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9026       314945 :                 tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, NE_EXPR);
    9027       314945 :                 if (res) return res;
    9028              :               }
    9029       314943 :               break;
    9030              :             }
    9031              :           default:;
    9032              :           }
    9033              :         break;
    9034              :       }
    9035       238074 :     case BIT_IOR_EXPR:
    9036       238074 :       {
    9037       238074 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9038       238074 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9039       238074 :         switch (TREE_CODE (_q21))
    9040              :           {
    9041          970 :           case INTEGER_CST:
    9042          970 :             {
    9043          970 :               switch (TREE_CODE (_p1))
    9044              :                 {
    9045          233 :                 case INTEGER_CST:
    9046          233 :                   {
    9047          233 :                     {
    9048          233 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    9049          233 :                       tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, NE_EXPR);
    9050          233 :                       if (res) return res;
    9051              :                     }
    9052          233 :                     break;
    9053              :                   }
    9054              :                 default:;
    9055              :                 }
    9056              :               break;
    9057              :             }
    9058              :           default:;
    9059              :           }
    9060              :         break;
    9061              :       }
    9062        29222 :     case BIT_XOR_EXPR:
    9063        29222 :       {
    9064        29222 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9065        29222 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9066        29222 :         if (integer_zerop (_p1))
    9067              :           {
    9068        24895 :             {
    9069        24895 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9070        24895 :               tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, NE_EXPR);
    9071        24895 :               if (res) return res;
    9072              :             }
    9073              :           }
    9074         4327 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9075              :           {
    9076            1 :             {
    9077            1 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9078            1 :               tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, NE_EXPR);
    9079            1 :               if (res) return res;
    9080              :             }
    9081              :           }
    9082         4326 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9083              :           {
    9084            2 :             {
    9085            2 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9086            2 :               tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, NE_EXPR);
    9087            2 :               if (res) return res;
    9088              :             }
    9089              :           }
    9090              :         break;
    9091              :       }
    9092      2741695 :     case CALL_EXPR:
    9093      2741695 :       switch (get_call_combined_fn (_p0))
    9094              :         {
    9095           42 :         case CFN_BUILT_IN_SQRTF:
    9096           42 :           if (call_expr_nargs (_p0) == 1)
    9097              :     {
    9098           42 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9099           42 :               switch (TREE_CODE (_p1))
    9100              :                 {
    9101            0 :                 case REAL_CST:
    9102            0 :                   {
    9103            0 :                     {
    9104            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9105            0 :                       tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, NE_EXPR);
    9106            0 :                       if (res) return res;
    9107              :                     }
    9108            0 :                     break;
    9109              :                   }
    9110           42 :                 case CALL_EXPR:
    9111           42 :                   switch (get_call_combined_fn (_p1))
    9112              :                     {
    9113            0 :                     case CFN_BUILT_IN_SQRTF:
    9114            0 :                       if (call_expr_nargs (_p1) == 1)
    9115              :     {
    9116            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9117            0 :                           {
    9118            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9119            0 :                             tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, NE_EXPR);
    9120            0 :                             if (res) return res;
    9121              :                           }
    9122              :                         }
    9123              :                       break;
    9124              :                     default:;
    9125              :                     }
    9126              :                   break;
    9127              :                 default:;
    9128              :                 }
    9129              :             }
    9130              :           break;
    9131           42 :         case CFN_BUILT_IN_SQRTL:
    9132           42 :           if (call_expr_nargs (_p0) == 1)
    9133              :     {
    9134           42 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9135           42 :               switch (TREE_CODE (_p1))
    9136              :                 {
    9137            0 :                 case REAL_CST:
    9138            0 :                   {
    9139            0 :                     {
    9140            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9141            0 :                       tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, NE_EXPR);
    9142            0 :                       if (res) return res;
    9143              :                     }
    9144            0 :                     break;
    9145              :                   }
    9146           42 :                 case CALL_EXPR:
    9147           42 :                   switch (get_call_combined_fn (_p1))
    9148              :                     {
    9149            0 :                     case CFN_BUILT_IN_SQRTL:
    9150            0 :                       if (call_expr_nargs (_p1) == 1)
    9151              :     {
    9152            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9153            0 :                           {
    9154            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9155            0 :                             tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, NE_EXPR);
    9156            0 :                             if (res) return res;
    9157              :                           }
    9158              :                         }
    9159              :                       break;
    9160              :                     default:;
    9161              :                     }
    9162              :                   break;
    9163              :                 default:;
    9164              :                 }
    9165              :             }
    9166              :           break;
    9167           46 :         case CFN_BUILT_IN_SQRT:
    9168           46 :           if (call_expr_nargs (_p0) == 1)
    9169              :     {
    9170           46 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9171           46 :               switch (TREE_CODE (_p1))
    9172              :                 {
    9173            2 :                 case REAL_CST:
    9174            2 :                   {
    9175            2 :                     {
    9176            2 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9177            2 :                       tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, NE_EXPR);
    9178            2 :                       if (res) return res;
    9179              :                     }
    9180            2 :                     break;
    9181              :                   }
    9182           43 :                 case CALL_EXPR:
    9183           43 :                   switch (get_call_combined_fn (_p1))
    9184              :                     {
    9185            0 :                     case CFN_BUILT_IN_SQRT:
    9186            0 :                       if (call_expr_nargs (_p1) == 1)
    9187              :     {
    9188            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9189            0 :                           {
    9190            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9191            0 :                             tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, NE_EXPR);
    9192            0 :                             if (res) return res;
    9193              :                           }
    9194              :                         }
    9195              :                       break;
    9196              :                     default:;
    9197              :                     }
    9198              :                   break;
    9199              :                 default:;
    9200              :                 }
    9201              :             }
    9202              :           break;
    9203            0 :         case CFN_SQRT:
    9204            0 :           if (call_expr_nargs (_p0) == 1)
    9205              :     {
    9206            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9207            0 :               switch (TREE_CODE (_p1))
    9208              :                 {
    9209            0 :                 case REAL_CST:
    9210            0 :                   {
    9211            0 :                     {
    9212            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9213            0 :                       tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, CFN_SQRT, NE_EXPR);
    9214            0 :                       if (res) return res;
    9215              :                     }
    9216            0 :                     break;
    9217              :                   }
    9218            0 :                 case CALL_EXPR:
    9219            0 :                   switch (get_call_combined_fn (_p1))
    9220              :                     {
    9221            0 :                     case CFN_SQRT:
    9222            0 :                       if (call_expr_nargs (_p1) == 1)
    9223              :     {
    9224            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9225            0 :                           {
    9226            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9227            0 :                             tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_SQRT, NE_EXPR);
    9228            0 :                             if (res) return res;
    9229              :                           }
    9230              :                         }
    9231              :                       break;
    9232              :                     default:;
    9233              :                     }
    9234              :                   break;
    9235              :                 default:;
    9236              :                 }
    9237              :             }
    9238              :           break;
    9239              :         default:;
    9240              :         }
    9241              :       break;
    9242     36585821 :     default:;
    9243              :     }
    9244     36585821 :   switch (TREE_CODE (_p1))
    9245              :     {
    9246          840 :     case BIT_XOR_EXPR:
    9247          840 :       {
    9248          840 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9249          840 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9250          840 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9251              :           {
    9252            0 :             {
    9253            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    9254            0 :               tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, NE_EXPR);
    9255            0 :               if (res) return res;
    9256              :             }
    9257              :           }
    9258          840 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    9259              :           {
    9260            0 :             {
    9261            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    9262            0 :               tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, NE_EXPR);
    9263            0 :               if (res) return res;
    9264              :             }
    9265              :           }
    9266              :         break;
    9267              :       }
    9268     36585821 :     default:;
    9269              :     }
    9270     36585821 :   switch (TREE_CODE (_p0))
    9271              :     {
    9272      1336426 :     case BIT_AND_EXPR:
    9273      1336426 :       {
    9274      1336426 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9275      1336426 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9276      1336426 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9277              :           {
    9278          179 :             {
    9279          179 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9280          179 :               tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
    9281          179 :               if (res) return res;
    9282              :             }
    9283              :           }
    9284      1336398 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9285              :           {
    9286         3981 :             {
    9287         3981 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9288         3981 :               tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
    9289         3981 :               if (res) return res;
    9290              :             }
    9291              :           }
    9292              :         break;
    9293              :       }
    9294     36585793 :     default:;
    9295              :     }
    9296     36585793 :   switch (TREE_CODE (_p1))
    9297              :     {
    9298        15765 :     case BIT_AND_EXPR:
    9299        15765 :       {
    9300        15765 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9301        15765 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9302        15765 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9303              :           {
    9304            0 :             {
    9305            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    9306            0 :               tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
    9307            0 :               if (res) return res;
    9308              :             }
    9309              :           }
    9310        15765 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    9311              :           {
    9312            0 :             {
    9313            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    9314            0 :               tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
    9315            0 :               if (res) return res;
    9316              :             }
    9317              :           }
    9318              :         break;
    9319              :       }
    9320     36585793 :     default:;
    9321              :     }
    9322     36585793 :   switch (TREE_CODE (_p0))
    9323              :     {
    9324      4608052 :     CASE_CONVERT:
    9325      4608052 :       {
    9326      4608052 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9327      4608052 :         switch (TREE_CODE (_q20))
    9328              :           {
    9329            0 :           case BIT_AND_EXPR:
    9330            0 :             {
    9331            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9332            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9333            0 :               switch (TREE_CODE (_q30))
    9334              :                 {
    9335            0 :                 CASE_CONVERT:
    9336            0 :                   {
    9337            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    9338            0 :                     switch (TREE_CODE (_q31))
    9339              :                       {
    9340            0 :                       case INTEGER_CST:
    9341            0 :                         {
    9342            0 :                           switch (TREE_CODE (_p1))
    9343              :                             {
    9344            0 :                             CASE_CONVERT:
    9345            0 :                               {
    9346            0 :                                 tree _q70 = TREE_OPERAND (_p1, 0);
    9347            0 :                                 if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    9348              :                                   {
    9349            0 :                                     {
    9350            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q31 };
    9351            0 :                                       tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, NE_EXPR);
    9352            0 :                                       if (res) return res;
    9353              :                                     }
    9354              :                                   }
    9355              :                                 break;
    9356              :                               }
    9357              :                             default:;
    9358              :                             }
    9359              :                           break;
    9360              :                         }
    9361              :                       default:;
    9362              :                       }
    9363              :                     break;
    9364              :                   }
    9365              :                 default:;
    9366              :                 }
    9367              :               break;
    9368              :             }
    9369      4608052 :           default:;
    9370              :           }
    9371      4608052 :         switch (TREE_CODE (_p1))
    9372              :           {
    9373      2906339 :           CASE_CONVERT:
    9374      2906339 :             {
    9375      2906339 :               tree _q40 = TREE_OPERAND (_p1, 0);
    9376      2906339 :               switch (TREE_CODE (_q40))
    9377              :                 {
    9378            0 :                 case BIT_AND_EXPR:
    9379            0 :                   {
    9380            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    9381            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    9382            0 :                     switch (TREE_CODE (_q50))
    9383              :                       {
    9384            0 :                       CASE_CONVERT:
    9385            0 :                         {
    9386            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    9387            0 :                           if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    9388              :                             {
    9389            0 :                               switch (TREE_CODE (_q51))
    9390              :                                 {
    9391            0 :                                 case INTEGER_CST:
    9392            0 :                                   {
    9393            0 :                                     {
    9394            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q51 };
    9395            0 :                                       tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, NE_EXPR);
    9396            0 :                                       if (res) return res;
    9397              :                                     }
    9398            0 :                                     break;
    9399              :                                   }
    9400              :                                 default:;
    9401              :                                 }
    9402              :                             }
    9403              :                           break;
    9404              :                         }
    9405              :                       default:;
    9406              :                       }
    9407              :                     break;
    9408              :                   }
    9409              :                 default:;
    9410              :                 }
    9411              :               break;
    9412              :             }
    9413              :           default:;
    9414              :           }
    9415              :         break;
    9416              :       }
    9417       238074 :     case BIT_IOR_EXPR:
    9418       238074 :       {
    9419       238074 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9420       238074 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9421       238074 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9422              :           {
    9423          128 :             {
    9424          128 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9425          128 :               tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, NE_EXPR);
    9426          128 :               if (res) return res;
    9427              :             }
    9428              :           }
    9429       238066 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9430              :           {
    9431          253 :             {
    9432          253 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9433          253 :               tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, NE_EXPR);
    9434          253 :               if (res) return res;
    9435              :             }
    9436              :           }
    9437              :         break;
    9438              :       }
    9439     36585785 :     default:;
    9440              :     }
    9441     36585785 :   switch (TREE_CODE (_p1))
    9442              :     {
    9443          526 :     case BIT_IOR_EXPR:
    9444          526 :       {
    9445          526 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9446          526 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9447          526 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    9448              :           {
    9449            0 :             {
    9450            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    9451            0 :               tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, NE_EXPR);
    9452            0 :               if (res) return res;
    9453              :             }
    9454              :           }
    9455          526 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9456              :           {
    9457            0 :             {
    9458            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
    9459            0 :               tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, NE_EXPR);
    9460            0 :               if (res) return res;
    9461              :             }
    9462              :           }
    9463              :         break;
    9464              :       }
    9465     36585785 :     default:;
    9466              :     }
    9467     36585785 :   switch (TREE_CODE (_p0))
    9468              :     {
    9469      4608052 :     CASE_CONVERT:
    9470      4608052 :       {
    9471      4608052 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9472      4608052 :         switch (TREE_CODE (_q20))
    9473              :           {
    9474            8 :           case BIT_XOR_EXPR:
    9475            8 :             {
    9476            8 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9477            8 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9478            8 :               switch (TREE_CODE (_q31))
    9479              :                 {
    9480            0 :                 case INTEGER_CST:
    9481            0 :                   {
    9482            0 :                     switch (TREE_CODE (_p1))
    9483              :                       {
    9484            0 :                       case INTEGER_CST:
    9485            0 :                         {
    9486            0 :                           {
    9487            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
    9488            0 :                             tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, NE_EXPR);
    9489            0 :                             if (res) return res;
    9490              :                           }
    9491            0 :                           break;
    9492              :                         }
    9493              :                       default:;
    9494              :                       }
    9495              :                     break;
    9496              :                   }
    9497              :                 default:;
    9498              :                 }
    9499              :               break;
    9500              :             }
    9501              :           default:;
    9502              :           }
    9503              :         break;
    9504              :       }
    9505         4324 :     case BIT_XOR_EXPR:
    9506         4324 :       {
    9507         4324 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9508         4324 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9509         4324 :         switch (TREE_CODE (_q21))
    9510              :           {
    9511          884 :           case INTEGER_CST:
    9512          884 :             {
    9513          884 :               switch (TREE_CODE (_p1))
    9514              :                 {
    9515           10 :                 case INTEGER_CST:
    9516           10 :                   {
    9517           10 :                     {
    9518           10 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    9519           10 :                       tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, NE_EXPR);
    9520           10 :                       if (res) return res;
    9521              :                     }
    9522            0 :                     break;
    9523              :                   }
    9524              :                 default:;
    9525              :                 }
    9526              :               break;
    9527              :             }
    9528              :           default:;
    9529              :           }
    9530              :         break;
    9531              :       }
    9532     36585775 :     default:;
    9533              :     }
    9534     36585775 : {
    9535     36585775 :   tree _p0_pops[1];
    9536     36585775 :   if (tree_nop_convert (_p0, _p0_pops))
    9537              :     {
    9538      3895041 :       tree _q20 = _p0_pops[0];
    9539      3895041 :       if (integer_zerop (_p1))
    9540              :         {
    9541       899508 :           {
    9542       899508 :             tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    9543       899508 :             tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, NE_EXPR);
    9544       899508 :             if (res) return res;
    9545              :           }
    9546              :         }
    9547              :     }
    9548              : }
    9549     36067955 :   if (integer_zerop (_p1))
    9550              :     {
    9551     20538977 :       {
    9552     20538977 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    9553     20538977 :         tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, NE_EXPR);
    9554     20538977 :         if (res) return res;
    9555              :       }
    9556              :     }
    9557     35884724 :   switch (TREE_CODE (_p0))
    9558              :     {
    9559      1336398 :     case BIT_AND_EXPR:
    9560      1336398 :       {
    9561      1336398 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9562      1336398 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9563      1336398 :         switch (TREE_CODE (_p1))
    9564              :           {
    9565        14326 :           case BIT_AND_EXPR:
    9566        14326 :             {
    9567        14326 :               tree _q50 = TREE_OPERAND (_p1, 0);
    9568        14326 :               tree _q51 = TREE_OPERAND (_p1, 1);
    9569        14326 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    9570              :                 {
    9571        14081 :                   {
    9572        14081 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9573        14081 :                     tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, NE_EXPR);
    9574        14081 :                     if (res) return res;
    9575              :                   }
    9576              :                 }
    9577          245 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    9578              :                 {
    9579            2 :                   {
    9580            2 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
    9581            2 :                     tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, NE_EXPR);
    9582            2 :                     if (res) return res;
    9583              :                   }
    9584              :                 }
    9585          243 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    9586              :                 {
    9587            1 :                   {
    9588            1 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
    9589            1 :                     tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, NE_EXPR);
    9590            1 :                     if (res) return res;
    9591              :                   }
    9592              :                 }
    9593          242 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9594              :                 {
    9595            7 :                   {
    9596            7 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
    9597            7 :                     tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, NE_EXPR);
    9598            7 :                     if (res) return res;
    9599              :                   }
    9600              :                 }
    9601              :               break;
    9602              :             }
    9603      1322307 :           default:;
    9604              :           }
    9605      1322307 :         if (integer_pow2p (_q21))
    9606              :           {
    9607       649102 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9608              :               {
    9609          579 :                 {
    9610          579 :                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9611          579 :                   tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    9612          579 :                   if (res) return res;
    9613              :                 }
    9614              :               }
    9615              :           }
    9616      1321732 :         switch (TREE_CODE (_q20))
    9617              :           {
    9618       192105 :           CASE_CONVERT:
    9619       192105 :             {
    9620       192105 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9621       192105 :               if (integer_pow2p (_q21))
    9622              :                 {
    9623        95006 :                   if (integer_zerop (_p1))
    9624              :                     {
    9625        94911 :                       {
    9626        94911 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
    9627        94911 :                         tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
    9628        94911 :                         if (res) return res;
    9629              :                       }
    9630              :                     }
    9631              :                 }
    9632              :               break;
    9633              :             }
    9634      1318010 :           default:;
    9635              :           }
    9636      1318010 :         if (integer_pow2p (_q21))
    9637              :           {
    9638       644805 :             if (integer_zerop (_p1))
    9639              :               {
    9640       641397 :                 {
    9641       641397 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _q21 };
    9642       641397 :                   tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
    9643       641397 :                   if (res) return res;
    9644              :                 }
    9645              :               }
    9646              :           }
    9647              :         break;
    9648              :       }
    9649         5412 :     case GE_EXPR:
    9650         5412 :       {
    9651         5412 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9652         5412 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9653         5412 :         if (integer_zerop (_q21))
    9654              :           {
    9655          961 :             switch (TREE_CODE (_p1))
    9656              :               {
    9657            1 :               case GE_EXPR:
    9658            1 :                 {
    9659            1 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    9660            1 :                   tree _q51 = TREE_OPERAND (_p1, 1);
    9661            1 :                   if (integer_zerop (_q51))
    9662              :                     {
    9663            1 :                       {
    9664            1 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    9665            1 :                         tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR, LT_EXPR);
    9666            1 :                         if (res) return res;
    9667              :                       }
    9668              :                     }
    9669              :                   break;
    9670              :                 }
    9671            3 :               case LT_EXPR:
    9672            3 :                 {
    9673            3 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    9674            3 :                   tree _q51 = TREE_OPERAND (_p1, 1);
    9675            3 :                   if (integer_zerop (_q51))
    9676              :                     {
    9677            3 :                       {
    9678            3 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
    9679            3 :                         tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
    9680            3 :                         if (res) return res;
    9681              :                       }
    9682              :                     }
    9683              :                   break;
    9684              :                 }
    9685              :               default:;
    9686              :               }
    9687              :           }
    9688              :         break;
    9689              :       }
    9690        15031 :     case LT_EXPR:
    9691        15031 :       {
    9692        15031 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9693        15031 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9694        15031 :         if (integer_zerop (_q21))
    9695              :           {
    9696         8426 :             switch (TREE_CODE (_p1))
    9697              :               {
    9698           66 :               case LT_EXPR:
    9699           66 :                 {
    9700           66 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    9701           66 :                   tree _q51 = TREE_OPERAND (_p1, 1);
    9702           66 :                   if (integer_zerop (_q51))
    9703              :                     {
    9704           66 :                       {
    9705           66 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    9706           66 :                         tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LT_EXPR);
    9707           66 :                         if (res) return res;
    9708              :                       }
    9709              :                     }
    9710              :                   break;
    9711              :                 }
    9712           17 :               case GE_EXPR:
    9713           17 :                 {
    9714           17 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    9715           17 :                   tree _q51 = TREE_OPERAND (_p1, 1);
    9716           17 :                   if (integer_zerop (_q51))
    9717              :                     {
    9718           17 :                       {
    9719           17 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    9720           17 :                         tree res = generic_simplify_281 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
    9721           17 :                         if (res) return res;
    9722              :                       }
    9723              :                     }
    9724              :                   break;
    9725              :                 }
    9726              :               default:;
    9727              :               }
    9728              :           }
    9729              :         break;
    9730              :       }
    9731       238066 :     case BIT_IOR_EXPR:
    9732       238066 :       {
    9733       238066 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9734       238066 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9735       238066 :         switch (TREE_CODE (_q21))
    9736              :           {
    9737          261 :           CASE_CONVERT:
    9738          261 :             {
    9739          261 :               tree _q40 = TREE_OPERAND (_q21, 0);
    9740          261 :               switch (TREE_CODE (_q40))
    9741              :                 {
    9742            0 :                 case NE_EXPR:
    9743            0 :                   {
    9744            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    9745            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    9746            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9747              :                       {
    9748            0 :                         if (integer_zerop (_q51))
    9749              :                           {
    9750            0 :                             if (integer_zerop (_p1))
    9751              :                               {
    9752            0 :                                 {
    9753            0 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    9754            0 :                                   tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, NE_EXPR);
    9755            0 :                                   if (res) return res;
    9756              :                                 }
    9757              :                               }
    9758              :                           }
    9759              :                       }
    9760              :                     break;
    9761              :                   }
    9762              :                 default:;
    9763              :                 }
    9764              :               break;
    9765              :             }
    9766       238066 :           default:;
    9767              :           }
    9768       238066 :         switch (TREE_CODE (_q20))
    9769              :           {
    9770          800 :           CASE_CONVERT:
    9771          800 :             {
    9772          800 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9773          800 :               switch (TREE_CODE (_q30))
    9774              :                 {
    9775            0 :                 case NE_EXPR:
    9776            0 :                   {
    9777            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    9778            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    9779            0 :                     if (integer_zerop (_q41))
    9780              :                       {
    9781            0 :                         if ((_q21 == _q40 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q40, 0) && types_match (_q21, _q40)))
    9782              :                           {
    9783            0 :                             if (integer_zerop (_p1))
    9784              :                               {
    9785            0 :                                 {
    9786            0 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    9787            0 :                                   tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, NE_EXPR);
    9788            0 :                                   if (res) return res;
    9789              :                                 }
    9790              :                               }
    9791              :                           }
    9792              :                       }
    9793              :                     break;
    9794              :                   }
    9795              :                 default:;
    9796              :                 }
    9797              :               break;
    9798              :             }
    9799       238066 :           default:;
    9800              :           }
    9801       238066 :         switch (TREE_CODE (_q21))
    9802              :           {
    9803           24 :           case NE_EXPR:
    9804           24 :             {
    9805           24 :               tree _q40 = TREE_OPERAND (_q21, 0);
    9806           24 :               tree _q41 = TREE_OPERAND (_q21, 1);
    9807           24 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    9808              :                 {
    9809            0 :                   if (integer_zerop (_q41))
    9810              :                     {
    9811            0 :                       if (integer_zerop (_p1))
    9812              :                         {
    9813            0 :                           {
    9814            0 :                             tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    9815            0 :                             tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, NE_EXPR);
    9816            0 :                             if (res) return res;
    9817              :                           }
    9818              :                         }
    9819              :                     }
    9820              :                 }
    9821              :               break;
    9822              :             }
    9823       238066 :           default:;
    9824              :           }
    9825       238066 :         switch (TREE_CODE (_q20))
    9826              :           {
    9827            2 :           case NE_EXPR:
    9828            2 :             {
    9829            2 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9830            2 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9831            2 :               if (integer_zerop (_q31))
    9832              :                 {
    9833            1 :                   if ((_q21 == _q30 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q30, 0) && types_match (_q21, _q30)))
    9834              :                     {
    9835            0 :                       if (integer_zerop (_p1))
    9836              :                         {
    9837            0 :                           {
    9838            0 :                             tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    9839            0 :                             tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, NE_EXPR);
    9840            0 :                             if (res) return res;
    9841              :                           }
    9842              :                         }
    9843              :                     }
    9844              :                 }
    9845              :               break;
    9846              :             }
    9847              :           default:;
    9848              :           }
    9849              :         break;
    9850              :       }
    9851      4090232 :     CASE_CONVERT:
    9852      4090232 :       {
    9853      4090232 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9854      4090232 :         switch (TREE_CODE (_q20))
    9855              :           {
    9856      2761533 :           case ADDR_EXPR:
    9857      2761533 :             {
    9858      2761533 :               switch (TREE_CODE (_p1))
    9859              :                 {
    9860      2732227 :                 CASE_CONVERT:
    9861      2732227 :                   {
    9862      2732227 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    9863      2732227 :                     switch (TREE_CODE (_q40))
    9864              :                       {
    9865      2732227 :                       case ADDR_EXPR:
    9866      2732227 :                         {
    9867      2732227 :                           {
    9868      2732227 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    9869      2732227 :                             tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, NE_EXPR);
    9870      2732227 :                             if (res) return res;
    9871              :                           }
    9872           33 :                           break;
    9873              :                         }
    9874              :                       default:;
    9875              :                       }
    9876              :                     break;
    9877              :                   }
    9878        21269 :                 case ADDR_EXPR:
    9879        21269 :                   {
    9880        21269 :                     {
    9881        21269 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9882        21269 :                       tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, NE_EXPR);
    9883        21269 :                       if (res) return res;
    9884              :                     }
    9885         7935 :                     break;
    9886              :                   }
    9887              :                 default:;
    9888              :                 }
    9889              :               break;
    9890              :             }
    9891              :           default:;
    9892              :           }
    9893              :         break;
    9894              :       }
    9895        61529 :     case ADDR_EXPR:
    9896        61529 :       {
    9897        61529 :         switch (TREE_CODE (_p1))
    9898              :           {
    9899          203 :           CASE_CONVERT:
    9900          203 :             {
    9901          203 :               tree _q30 = TREE_OPERAND (_p1, 0);
    9902          203 :               switch (TREE_CODE (_q30))
    9903              :                 {
    9904          203 :                 case ADDR_EXPR:
    9905          203 :                   {
    9906          203 :                     {
    9907          203 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
    9908          203 :                       tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, NE_EXPR);
    9909          203 :                       if (res) return res;
    9910              :                     }
    9911          143 :                     break;
    9912              :                   }
    9913              :                 default:;
    9914              :                 }
    9915              :               break;
    9916              :             }
    9917        53151 :           case ADDR_EXPR:
    9918        53151 :             {
    9919        53151 :               {
    9920        53151 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
    9921        53151 :                 tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, NE_EXPR);
    9922        53151 :                 if (res) return res;
    9923              :               }
    9924         3693 :               break;
    9925              :             }
    9926              :           default:;
    9927              :           }
    9928              :         break;
    9929              :       }
    9930     33058865 :     default:;
    9931              :     }
    9932     33058865 :   {
    9933     33058865 :     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9934     33058865 :     tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, NE_EXPR);
    9935     33058865 :     if (res) return res;
    9936              :   }
    9937     33049740 :   switch (TREE_CODE (_p0))
    9938              :     {
    9939      1344704 :     CASE_CONVERT:
    9940      1344704 :       {
    9941      1344704 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9942      1344704 :         switch (TREE_CODE (_p1))
    9943              :           {
    9944       839561 :           case INTEGER_CST:
    9945       839561 :             {
    9946       839561 :               {
    9947       839561 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9948       839561 :                 tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, NE_EXPR);
    9949       839561 :                 if (res) return res;
    9950              :               }
    9951       830926 :               break;
    9952              :             }
    9953      1336069 :           default:;
    9954              :           }
    9955      1336069 :         switch (TREE_CODE (_q20))
    9956              :           {
    9957            8 :           case NE_EXPR:
    9958            8 :             {
    9959            8 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9960            8 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9961            8 :               switch (TREE_CODE (_q31))
    9962              :                 {
    9963            8 :                 case INTEGER_CST:
    9964            8 :                   {
    9965            8 :                     if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    9966              :                       {
    9967            0 :                         {
    9968            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    9969            0 :                           tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    9970            0 :                           if (res) return res;
    9971              :                         }
    9972              :                       }
    9973              :                     break;
    9974              :                   }
    9975              :                 default:;
    9976              :                 }
    9977              :               break;
    9978              :             }
    9979            0 :           case EQ_EXPR:
    9980            0 :             {
    9981            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9982            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9983            0 :               switch (TREE_CODE (_q31))
    9984              :                 {
    9985            0 :                 case INTEGER_CST:
    9986            0 :                   {
    9987            0 :                     if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    9988              :                       {
    9989            0 :                         {
    9990            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    9991            0 :                           tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
    9992            0 :                           if (res) return res;
    9993              :                         }
    9994              :                       }
    9995              :                     break;
    9996              :                   }
    9997              :                 default:;
    9998              :                 }
    9999              :               break;
   10000              :             }
   10001              :           default:;
   10002              :           }
   10003              :         break;
   10004              :       }
   10005     33041105 :     default:;
   10006              :     }
   10007     33041105 :   switch (TREE_CODE (_p1))
   10008              :     {
   10009       574380 :     CASE_CONVERT:
   10010       574380 :       {
   10011       574380 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10012       574380 :         switch (TREE_CODE (_q30))
   10013              :           {
   10014            0 :           case NE_EXPR:
   10015            0 :             {
   10016            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
   10017            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
   10018            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
   10019              :                 {
   10020            0 :                   switch (TREE_CODE (_q41))
   10021              :                     {
   10022            0 :                     case INTEGER_CST:
   10023            0 :                       {
   10024            0 :                         {
   10025            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
   10026            0 :                           tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
   10027            0 :                           if (res) return res;
   10028              :                         }
   10029            0 :                         break;
   10030              :                       }
   10031              :                     default:;
   10032              :                     }
   10033              :                 }
   10034              :               break;
   10035              :             }
   10036            0 :           case EQ_EXPR:
   10037            0 :             {
   10038            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
   10039            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
   10040            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
   10041              :                 {
   10042            0 :                   switch (TREE_CODE (_q41))
   10043              :                     {
   10044            0 :                     case INTEGER_CST:
   10045            0 :                       {
   10046            0 :                         {
   10047            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
   10048            0 :                           tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
   10049            0 :                           if (res) return res;
   10050              :                         }
   10051            0 :                         break;
   10052              :                       }
   10053              :                     default:;
   10054              :                     }
   10055              :                 }
   10056              :               break;
   10057              :             }
   10058              :           default:;
   10059              :           }
   10060              :         break;
   10061              :       }
   10062     33041105 :     default:;
   10063              :     }
   10064     33041105 : if (integer_zerop (_p1))
   10065              :   {
   10066     20330344 :     {
   10067     20330344 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10068     20330344 :       if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
   10069     20330344 :  && types_match (type, TREE_TYPE (captures[0]))
   10070              : )
   10071              :         {
   10072      3355854 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1545;
   10073      3355854 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1545;
   10074      3355854 :           {
   10075      3355854 :             tree res_op0;
   10076      3355854 :             res_op0 = captures[0];
   10077      3355854 :             tree _r;
   10078      3355854 :             _r = non_lvalue_loc (loc, res_op0);
   10079      3355854 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 971, __FILE__, __LINE__, true);
   10080      3355854 :             return _r;
   10081              :           }
   10082              : next_after_fail1545:;
   10083              :         }
   10084              :     }
   10085              :   }
   10086     29685251 :   switch (TREE_CODE (_p0))
   10087              :     {
   10088      1037281 :     case BIT_AND_EXPR:
   10089      1037281 :       {
   10090      1037281 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10091      1037281 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10092      1037281 :         switch (TREE_CODE (_q21))
   10093              :           {
   10094         2034 :           case VECTOR_CST:
   10095         2034 :             {
   10096         2034 :               if (integer_zerop (_p1))
   10097              :                 {
   10098         2034 :                   {
   10099         2034 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
   10100         2034 :                     const enum tree_code cmp = NE_EXPR;
   10101         2034 :                     const enum tree_code icmp = GT_EXPR;
   10102         2034 :                     {
   10103         2034 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   10104         2034 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   10105              : )
   10106              :                           {
   10107           13 :                             {
   10108           13 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   10109           13 :  ? optab_vector : optab_default;
   10110           13 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   10111           13 :                                 if (target_supports_op_p (utype, icmp, optab)
   10112           13 :  || (optimize_vectors_before_lowering_p ()
   10113            7 :  && (!target_supports_op_p (type, cmp, optab)
   10114            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   10115              : )
   10116              :                                   {
   10117            7 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   10118              : )
   10119              :                                       {
   10120            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1546;
   10121            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1546;
   10122            0 :                                         {
   10123            0 :                                           tree res_op0;
   10124            0 :                                           res_op0 = captures[1];
   10125            0 :                                           tree res_op1;
   10126            0 :                                           res_op1 =  csts;
   10127            0 :                                           tree _r;
   10128            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10129            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10130            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10131            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
   10132            0 :                                           return _r;
   10133              :                                         }
   10134         2027 : next_after_fail1546:;
   10135              :                                       }
   10136              :                                     else
   10137              :                                       {
   10138            7 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1547;
   10139            7 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1547;
   10140            7 :                                         {
   10141            7 :                                           tree res_op0;
   10142            7 :                                           {
   10143            7 :                                             tree _o1[1], _r1;
   10144            7 :                                             _o1[0] = captures[1];
   10145            7 :                                             if (TREE_TYPE (_o1[0]) != utype)
   10146              :                                               {
   10147            7 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   10148              :                                               }
   10149              :                                             else
   10150              :                                               _r1 = _o1[0];
   10151            7 :                                             res_op0 = _r1;
   10152              :                                           }
   10153            7 :                                           tree res_op1;
   10154            7 :                                           res_op1 =  csts;
   10155            7 :                                           tree _r;
   10156            7 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10157            7 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10158            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10159            7 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
   10160            7 :                                           return _r;
   10161              :                                         }
   10162         2027 : next_after_fail1547:;
   10163              :                                       }
   10164              :                                   }
   10165              :                             }
   10166              :                           }
   10167              :                     }
   10168              :                   }
   10169              :                 }
   10170              :               break;
   10171              :             }
   10172       843000 :           case INTEGER_CST:
   10173       843000 :             {
   10174       843000 :               if (integer_zerop (_p1))
   10175              :                 {
   10176       805361 :                   {
   10177       805361 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
   10178       805361 :                     const enum tree_code cmp = NE_EXPR;
   10179       805361 :                     const enum tree_code icmp = GT_EXPR;
   10180       805361 :                     {
   10181       805361 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   10182       805361 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   10183              : )
   10184              :                           {
   10185         1261 :                             {
   10186         1261 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   10187         1261 :  ? optab_vector : optab_default;
   10188         1261 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   10189         1261 :                                 if (target_supports_op_p (utype, icmp, optab)
   10190         1261 :  || (optimize_vectors_before_lowering_p ()
   10191         1092 :  && (!target_supports_op_p (type, cmp, optab)
   10192            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   10193              : )
   10194              :                                   {
   10195         1092 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   10196              : )
   10197              :                                       {
   10198          989 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1548;
   10199          989 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1548;
   10200          989 :                                         {
   10201          989 :                                           tree res_op0;
   10202          989 :                                           res_op0 = captures[1];
   10203          989 :                                           tree res_op1;
   10204          989 :                                           res_op1 =  csts;
   10205          989 :                                           tree _r;
   10206          989 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10207          989 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10208            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10209          989 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
   10210          989 :                                           return _r;
   10211              :                                         }
   10212       804269 : next_after_fail1548:;
   10213              :                                       }
   10214              :                                     else
   10215              :                                       {
   10216          103 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1549;
   10217          103 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1549;
   10218          103 :                                         {
   10219          103 :                                           tree res_op0;
   10220          103 :                                           {
   10221          103 :                                             tree _o1[1], _r1;
   10222          103 :                                             _o1[0] = captures[1];
   10223          103 :                                             if (TREE_TYPE (_o1[0]) != utype)
   10224              :                                               {
   10225          103 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   10226              :                                               }
   10227              :                                             else
   10228              :                                               _r1 = _o1[0];
   10229          103 :                                             res_op0 = _r1;
   10230              :                                           }
   10231          103 :                                           tree res_op1;
   10232          103 :                                           res_op1 =  csts;
   10233          103 :                                           tree _r;
   10234          103 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10235          103 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10236            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10237          103 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
   10238          103 :                                           return _r;
   10239              :                                         }
   10240       804269 : next_after_fail1549:;
   10241              :                                       }
   10242              :                                   }
   10243              :                             }
   10244              :                           }
   10245              :                     }
   10246              :                   }
   10247              :                 }
   10248              :               break;
   10249              :             }
   10250      1036182 :           default:;
   10251              :           }
   10252      1036182 :         switch (TREE_CODE (_q20))
   10253              :           {
   10254            0 :           case VECTOR_CST:
   10255            0 :             {
   10256            0 :               if (integer_zerop (_p1))
   10257              :                 {
   10258            0 :                   {
   10259            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
   10260            0 :                     const enum tree_code cmp = NE_EXPR;
   10261            0 :                     const enum tree_code icmp = GT_EXPR;
   10262            0 :                     {
   10263            0 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   10264            0 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   10265              : )
   10266              :                           {
   10267            0 :                             {
   10268            0 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   10269            0 :  ? optab_vector : optab_default;
   10270            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   10271            0 :                                 if (target_supports_op_p (utype, icmp, optab)
   10272            0 :  || (optimize_vectors_before_lowering_p ()
   10273            0 :  && (!target_supports_op_p (type, cmp, optab)
   10274            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   10275              : )
   10276              :                                   {
   10277            0 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   10278              : )
   10279              :                                       {
   10280            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1550;
   10281            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1550;
   10282            0 :                                         {
   10283            0 :                                           tree res_op0;
   10284            0 :                                           res_op0 = captures[1];
   10285            0 :                                           tree res_op1;
   10286            0 :                                           res_op1 =  csts;
   10287            0 :                                           tree _r;
   10288            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10289            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10290            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10291            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
   10292            0 :                                           return _r;
   10293              :                                         }
   10294            0 : next_after_fail1550:;
   10295              :                                       }
   10296              :                                     else
   10297              :                                       {
   10298            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1551;
   10299            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1551;
   10300            0 :                                         {
   10301            0 :                                           tree res_op0;
   10302            0 :                                           {
   10303            0 :                                             tree _o1[1], _r1;
   10304            0 :                                             _o1[0] = captures[1];
   10305            0 :                                             if (TREE_TYPE (_o1[0]) != utype)
   10306              :                                               {
   10307            0 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   10308              :                                               }
   10309              :                                             else
   10310              :                                               _r1 = _o1[0];
   10311            0 :                                             res_op0 = _r1;
   10312              :                                           }
   10313            0 :                                           tree res_op1;
   10314            0 :                                           res_op1 =  csts;
   10315            0 :                                           tree _r;
   10316            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10317            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10318            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10319            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
   10320            0 :                                           return _r;
   10321              :                                         }
   10322            0 : next_after_fail1551:;
   10323              :                                       }
   10324              :                                   }
   10325              :                             }
   10326              :                           }
   10327              :                     }
   10328              :                   }
   10329              :                 }
   10330              :               break;
   10331              :             }
   10332            0 :           case INTEGER_CST:
   10333            0 :             {
   10334            0 :               if (integer_zerop (_p1))
   10335              :                 {
   10336            0 :                   {
   10337            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
   10338            0 :                     const enum tree_code cmp = NE_EXPR;
   10339            0 :                     const enum tree_code icmp = GT_EXPR;
   10340            0 :                     {
   10341            0 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   10342            0 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   10343              : )
   10344              :                           {
   10345            0 :                             {
   10346            0 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   10347            0 :  ? optab_vector : optab_default;
   10348            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   10349            0 :                                 if (target_supports_op_p (utype, icmp, optab)
   10350            0 :  || (optimize_vectors_before_lowering_p ()
   10351            0 :  && (!target_supports_op_p (type, cmp, optab)
   10352            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   10353              : )
   10354              :                                   {
   10355            0 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   10356              : )
   10357              :                                       {
   10358            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1552;
   10359            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1552;
   10360            0 :                                         {
   10361            0 :                                           tree res_op0;
   10362            0 :                                           res_op0 = captures[1];
   10363            0 :                                           tree res_op1;
   10364            0 :                                           res_op1 =  csts;
   10365            0 :                                           tree _r;
   10366            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10367            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10368            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10369            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
   10370            0 :                                           return _r;
   10371              :                                         }
   10372            0 : next_after_fail1552:;
   10373              :                                       }
   10374              :                                     else
   10375              :                                       {
   10376            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1553;
   10377            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1553;
   10378            0 :                                         {
   10379            0 :                                           tree res_op0;
   10380            0 :                                           {
   10381            0 :                                             tree _o1[1], _r1;
   10382            0 :                                             _o1[0] = captures[1];
   10383            0 :                                             if (TREE_TYPE (_o1[0]) != utype)
   10384              :                                               {
   10385            0 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   10386              :                                               }
   10387              :                                             else
   10388              :                                               _r1 = _o1[0];
   10389            0 :                                             res_op0 = _r1;
   10390              :                                           }
   10391            0 :                                           tree res_op1;
   10392            0 :                                           res_op1 =  csts;
   10393            0 :                                           tree _r;
   10394            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10395            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10396            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10397            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
   10398            0 :                                           return _r;
   10399              :                                         }
   10400            0 : next_after_fail1553:;
   10401              :                                       }
   10402              :                                   }
   10403              :                             }
   10404              :                           }
   10405              :                     }
   10406              :                   }
   10407              :                 }
   10408              :               break;
   10409              :             }
   10410              :           default:;
   10411              :           }
   10412              :         break;
   10413              :       }
   10414        20774 :     case RSHIFT_EXPR:
   10415        20774 :       {
   10416        20774 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10417        20774 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10418        20774 :         switch (TREE_CODE (_q20))
   10419              :           {
   10420            1 :           case MULT_EXPR:
   10421            1 :             {
   10422            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10423            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10424            1 :               switch (TREE_CODE (_q30))
   10425              :                 {
   10426            1 :                 CASE_CONVERT:
   10427            1 :                   {
   10428            1 :                     tree _q40 = TREE_OPERAND (_q30, 0);
   10429            1 :                     switch (TREE_CODE (_q31))
   10430              :                       {
   10431            1 :                       CASE_CONVERT:
   10432            1 :                         {
   10433            1 :                           tree _q60 = TREE_OPERAND (_q31, 0);
   10434            1 :                           switch (TREE_CODE (_q21))
   10435              :                             {
   10436            1 :                             case INTEGER_CST:
   10437            1 :                               {
   10438            1 :                                 if (integer_zerop (_p1))
   10439              :                                   {
   10440            1 :                                     {
   10441            1 :                                       tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q60, _q21 };
   10442            1 :                                       tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, NE_EXPR);
   10443            1 :                                       if (res) return res;
   10444              :                                     }
   10445              :                                   }
   10446              :                                 break;
   10447              :                               }
   10448              :                             default:;
   10449              :                             }
   10450              :                           break;
   10451              :                         }
   10452              :                       default:;
   10453              :                       }
   10454              :                     break;
   10455              :                   }
   10456              :                 default:;
   10457              :                 }
   10458              :               break;
   10459              :             }
   10460              :           default:;
   10461              :           }
   10462              :         break;
   10463              :       }
   10464      1325633 :     case PLUS_EXPR:
   10465      1325633 :       {
   10466      1325633 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10467      1325633 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10468      1325633 :         switch (TREE_CODE (_q21))
   10469              :           {
   10470      1216512 :           case INTEGER_CST:
   10471      1216512 :             {
   10472      1216512 :               switch (TREE_CODE (_p1))
   10473              :                 {
   10474       720059 :                 case INTEGER_CST:
   10475       720059 :                   {
   10476       720059 :                     {
   10477       720059 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   10478       720059 :                       tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, NE_EXPR);
   10479       720059 :                       if (res) return res;
   10480              :                     }
   10481          356 :                     break;
   10482              :                   }
   10483              :                 default:;
   10484              :                 }
   10485              :               break;
   10486              :             }
   10487              :           default:;
   10488              :           }
   10489              :         break;
   10490              :       }
   10491        69283 :     case MINUS_EXPR:
   10492        69283 :       {
   10493        69283 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10494        69283 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10495        69283 :         switch (TREE_CODE (_q21))
   10496              :           {
   10497          193 :           case INTEGER_CST:
   10498          193 :             {
   10499          193 :               switch (TREE_CODE (_p1))
   10500              :                 {
   10501           72 :                 case INTEGER_CST:
   10502           72 :                   {
   10503           72 :                     {
   10504           72 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   10505           72 :                       tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, NE_EXPR);
   10506           72 :                       if (res) return res;
   10507              :                     }
   10508           72 :                     break;
   10509              :                   }
   10510              :                 default:;
   10511              :                 }
   10512              :               break;
   10513              :             }
   10514        69283 :           default:;
   10515              :           }
   10516        69283 :         switch (TREE_CODE (_q20))
   10517              :           {
   10518         1719 :           case INTEGER_CST:
   10519         1719 :             {
   10520         1719 :               switch (TREE_CODE (_p1))
   10521              :                 {
   10522           73 :                 case INTEGER_CST:
   10523           73 :                   {
   10524           73 :                     {
   10525           73 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
   10526           73 :                       tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
   10527           73 :                       if (res) return res;
   10528              :                     }
   10529            0 :                     break;
   10530              :                   }
   10531              :                 default:;
   10532              :                 }
   10533              :               break;
   10534              :             }
   10535              :           default:;
   10536              :           }
   10537              :         break;
   10538              :       }
   10539      2739736 :     case CALL_EXPR:
   10540      2739736 :       switch (get_call_combined_fn (_p0))
   10541              :         {
   10542          224 :         case CFN_BUILT_IN_CLZ:
   10543          224 :           if (call_expr_nargs (_p0) == 1)
   10544              :     {
   10545          224 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10546          224 :               switch (TREE_CODE (_p1))
   10547              :                 {
   10548          210 :                 case INTEGER_CST:
   10549          210 :                   {
   10550          210 :                     {
   10551          210 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10552          210 :                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZ);
   10553          210 :                       if (res) return res;
   10554              :                     }
   10555          135 :                     break;
   10556              :                   }
   10557              :                 default:;
   10558              :                 }
   10559              :             }
   10560              :           break;
   10561          246 :         case CFN_BUILT_IN_CTZ:
   10562          246 :           if (call_expr_nargs (_p0) == 1)
   10563              :     {
   10564          246 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10565          246 :               switch (TREE_CODE (_p1))
   10566              :                 {
   10567          200 :                 case INTEGER_CST:
   10568          200 :                   {
   10569          200 :                     {
   10570          200 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10571          200 :                       tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZ);
   10572          200 :                       if (res) return res;
   10573              :                     }
   10574            0 :                     break;
   10575              :                   }
   10576              :                 default:;
   10577              :                 }
   10578              :             }
   10579              :           break;
   10580           31 :         case CFN_BUILT_IN_FFS:
   10581           31 :           if (call_expr_nargs (_p0) == 1)
   10582              :     {
   10583           31 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10584           31 :               switch (TREE_CODE (_p1))
   10585              :                 {
   10586           11 :                 case INTEGER_CST:
   10587           11 :                   {
   10588           11 :                     {
   10589           11 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10590           11 :                       tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFS);
   10591           11 :                       if (res) return res;
   10592              :                     }
   10593            0 :                     break;
   10594              :                   }
   10595              :                 default:;
   10596              :                 }
   10597              :             }
   10598              :           break;
   10599            0 :         case CFN_REDUC_IOR:
   10600            0 :           if (call_expr_nargs (_p0) == 1)
   10601              :     {
   10602            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10603            0 :               if (integer_zerop (_p1))
   10604              :                 {
   10605            0 :                   {
   10606            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10607            0 :                     tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, NE_EXPR);
   10608            0 :                     if (res) return res;
   10609              :                   }
   10610              :                 }
   10611              :             }
   10612              :           break;
   10613            0 :         case CFN_BUILT_IN_FFSIMAX:
   10614            0 :           if (call_expr_nargs (_p0) == 1)
   10615              :     {
   10616            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10617            0 :               switch (TREE_CODE (_p1))
   10618              :                 {
   10619            0 :                 case INTEGER_CST:
   10620            0 :                   {
   10621            0 :                     {
   10622            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10623            0 :                       tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSIMAX);
   10624            0 :                       if (res) return res;
   10625              :                     }
   10626            0 :                     break;
   10627              :                   }
   10628              :                 default:;
   10629              :                 }
   10630              :             }
   10631              :           break;
   10632           13 :         case CFN_BUILT_IN_POPCOUNT:
   10633           13 :           if (call_expr_nargs (_p0) == 1)
   10634              :     {
   10635           13 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10636           13 :               if (integer_zerop (_p1))
   10637              :                 {
   10638            1 :                   {
   10639            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10640            1 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT);
   10641            1 :                     if (res) return res;
   10642              :                   }
   10643              :                 }
   10644              :             }
   10645              :           break;
   10646           87 :         case CFN_BUILT_IN_CLZL:
   10647           87 :           if (call_expr_nargs (_p0) == 1)
   10648              :     {
   10649           87 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10650           87 :               switch (TREE_CODE (_p1))
   10651              :                 {
   10652           79 :                 case INTEGER_CST:
   10653           79 :                   {
   10654           79 :                     {
   10655           79 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10656           79 :                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZL);
   10657           79 :                       if (res) return res;
   10658              :                     }
   10659           43 :                     break;
   10660              :                   }
   10661              :                 default:;
   10662              :                 }
   10663              :             }
   10664              :           break;
   10665           85 :         case CFN_BUILT_IN_CTZL:
   10666           85 :           if (call_expr_nargs (_p0) == 1)
   10667              :     {
   10668           85 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10669           85 :               switch (TREE_CODE (_p1))
   10670              :                 {
   10671           77 :                 case INTEGER_CST:
   10672           77 :                   {
   10673           77 :                     {
   10674           77 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10675           77 :                       tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZL);
   10676           77 :                       if (res) return res;
   10677              :                     }
   10678           16 :                     break;
   10679              :                   }
   10680              :                 default:;
   10681              :                 }
   10682              :             }
   10683              :           break;
   10684            8 :         case CFN_BUILT_IN_FFSL:
   10685            8 :           if (call_expr_nargs (_p0) == 1)
   10686              :     {
   10687            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10688            8 :               switch (TREE_CODE (_p1))
   10689              :                 {
   10690            0 :                 case INTEGER_CST:
   10691            0 :                   {
   10692            0 :                     {
   10693            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10694            0 :                       tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSL);
   10695            0 :                       if (res) return res;
   10696              :                     }
   10697            0 :                     break;
   10698              :                   }
   10699              :                 default:;
   10700              :                 }
   10701              :             }
   10702              :           break;
   10703           11 :         case CFN_BUILT_IN_POPCOUNTLL:
   10704           11 :           if (call_expr_nargs (_p0) == 1)
   10705              :     {
   10706           11 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10707           11 :               if (integer_zerop (_p1))
   10708              :                 {
   10709            1 :                   {
   10710            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10711            1 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL);
   10712            1 :                     if (res) return res;
   10713              :                   }
   10714              :                 }
   10715              :             }
   10716              :           break;
   10717            0 :         case CFN_BUILT_IN_CTZIMAX:
   10718            0 :           if (call_expr_nargs (_p0) == 1)
   10719              :     {
   10720            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10721            0 :               switch (TREE_CODE (_p1))
   10722              :                 {
   10723            0 :                 case INTEGER_CST:
   10724            0 :                   {
   10725            0 :                     {
   10726            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10727            0 :                       tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
   10728            0 :                       if (res) return res;
   10729              :                     }
   10730            0 :                     break;
   10731              :                   }
   10732              :                 default:;
   10733              :                 }
   10734              :             }
   10735              :           break;
   10736            0 :         case CFN_POPCOUNT:
   10737            0 :           if (call_expr_nargs (_p0) == 1)
   10738              :     {
   10739            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10740            0 :               if (integer_zerop (_p1))
   10741              :                 {
   10742            0 :                   {
   10743            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10744            0 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_POPCOUNT);
   10745            0 :                     if (res) return res;
   10746              :                   }
   10747              :                 }
   10748              :             }
   10749              :           break;
   10750            0 :         case CFN_CLZ:
   10751            0 :           if (call_expr_nargs (_p0) == 1)
   10752              :     {
   10753            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10754            0 :               switch (TREE_CODE (_p1))
   10755              :                 {
   10756            0 :                 case INTEGER_CST:
   10757            0 :                   {
   10758            0 :                     {
   10759            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10760            0 :                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_CLZ);
   10761            0 :                       if (res) return res;
   10762              :                     }
   10763            0 :                     break;
   10764              :                   }
   10765              :                 default:;
   10766              :                 }
   10767              :             }
   10768            0 :           if (call_expr_nargs (_p0) == 2)
   10769              :     {
   10770            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10771            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10772            0 :               switch (TREE_CODE (_p1))
   10773              :                 {
   10774            0 :                 case INTEGER_CST:
   10775            0 :                   {
   10776            0 :                     {
   10777            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   10778            0 :                       tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
   10779            0 :                       if (res) return res;
   10780              :                     }
   10781            0 :                     break;
   10782              :                   }
   10783              :                 default:;
   10784              :                 }
   10785              :             }
   10786              :           break;
   10787            0 :         case CFN_CTZ:
   10788            0 :           if (call_expr_nargs (_p0) == 1)
   10789              :     {
   10790            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10791            0 :               switch (TREE_CODE (_p1))
   10792              :                 {
   10793            0 :                 case INTEGER_CST:
   10794            0 :                   {
   10795            0 :                     {
   10796            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10797            0 :                       tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_CTZ);
   10798            0 :                       if (res) return res;
   10799              :                     }
   10800            0 :                     break;
   10801              :                   }
   10802              :                 default:;
   10803              :                 }
   10804              :             }
   10805            0 :           if (call_expr_nargs (_p0) == 2)
   10806              :     {
   10807            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10808            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10809            0 :               switch (TREE_CODE (_p1))
   10810              :                 {
   10811            0 :                 case INTEGER_CST:
   10812            0 :                   {
   10813            0 :                     {
   10814            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   10815            0 :                       tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, NE_EXPR);
   10816            0 :                       if (res) return res;
   10817              :                     }
   10818            0 :                     break;
   10819              :                   }
   10820              :                 default:;
   10821              :                 }
   10822              :             }
   10823              :           break;
   10824            0 :         case CFN_FFS:
   10825            0 :           if (call_expr_nargs (_p0) == 1)
   10826              :     {
   10827            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10828            0 :               switch (TREE_CODE (_p1))
   10829              :                 {
   10830            0 :                 case INTEGER_CST:
   10831            0 :                   {
   10832            0 :                     {
   10833            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10834            0 :                       tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_FFS);
   10835            0 :                       if (res) return res;
   10836              :                     }
   10837            0 :                     break;
   10838              :                   }
   10839              :                 default:;
   10840              :                 }
   10841              :             }
   10842              :           break;
   10843            0 :         case CFN_BUILT_IN_POPCOUNTIMAX:
   10844            0 :           if (call_expr_nargs (_p0) == 1)
   10845              :     {
   10846            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10847            0 :               if (integer_zerop (_p1))
   10848              :                 {
   10849            0 :                   {
   10850            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10851            0 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
   10852            0 :                     if (res) return res;
   10853              :                   }
   10854              :                 }
   10855              :             }
   10856              :           break;
   10857            0 :         case CFN_BUILT_IN_CLZIMAX:
   10858            0 :           if (call_expr_nargs (_p0) == 1)
   10859              :     {
   10860            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10861            0 :               switch (TREE_CODE (_p1))
   10862              :                 {
   10863            0 :                 case INTEGER_CST:
   10864            0 :                   {
   10865            0 :                     {
   10866            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10867            0 :                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZIMAX);
   10868            0 :                       if (res) return res;
   10869              :                     }
   10870            0 :                     break;
   10871              :                   }
   10872              :                 default:;
   10873              :                 }
   10874              :             }
   10875              :           break;
   10876           12 :         case CFN_BUILT_IN_POPCOUNTL:
   10877           12 :           if (call_expr_nargs (_p0) == 1)
   10878              :     {
   10879           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10880           12 :               if (integer_zerop (_p1))
   10881              :                 {
   10882            1 :                   {
   10883            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10884            1 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL);
   10885            1 :                     if (res) return res;
   10886              :                   }
   10887              :                 }
   10888              :             }
   10889              :           break;
   10890           52 :         case CFN_BUILT_IN_CLZLL:
   10891           52 :           if (call_expr_nargs (_p0) == 1)
   10892              :     {
   10893           52 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10894           52 :               switch (TREE_CODE (_p1))
   10895              :                 {
   10896           42 :                 case INTEGER_CST:
   10897           42 :                   {
   10898           42 :                     {
   10899           42 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10900           42 :                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZLL);
   10901           42 :                       if (res) return res;
   10902              :                     }
   10903           18 :                     break;
   10904              :                   }
   10905              :                 default:;
   10906              :                 }
   10907              :             }
   10908              :           break;
   10909           74 :         case CFN_BUILT_IN_CTZLL:
   10910           74 :           if (call_expr_nargs (_p0) == 1)
   10911              :     {
   10912           74 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10913           74 :               switch (TREE_CODE (_p1))
   10914              :                 {
   10915           64 :                 case INTEGER_CST:
   10916           64 :                   {
   10917           64 :                     {
   10918           64 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10919           64 :                       tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZLL);
   10920           64 :                       if (res) return res;
   10921              :                     }
   10922           16 :                     break;
   10923              :                   }
   10924              :                 default:;
   10925              :                 }
   10926              :             }
   10927              :           break;
   10928           11 :         case CFN_BUILT_IN_FFSLL:
   10929           11 :           if (call_expr_nargs (_p0) == 1)
   10930              :     {
   10931           11 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10932           11 :               switch (TREE_CODE (_p1))
   10933              :                 {
   10934            1 :                 case INTEGER_CST:
   10935            1 :                   {
   10936            1 :                     {
   10937            1 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10938            1 :                       tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSLL);
   10939            1 :                       if (res) return res;
   10940              :                     }
   10941            0 :                     break;
   10942              :                   }
   10943              :                 default:;
   10944              :                 }
   10945              :             }
   10946              :           break;
   10947              :         default:;
   10948              :         }
   10949              :       break;
   10950              :     default:;
   10951              :     }
   10952              :   return NULL_TREE;
   10953              : }
   10954              : 
   10955              : tree
   10956       649727 : 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)
   10957              : {
   10958       649727 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10959       649727 :   switch (TREE_CODE (_p0))
   10960              :     {
   10961            0 :     case BIT_FIELD_REF:
   10962            0 :       {
   10963            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10964            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10965            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10966            0 :         {
   10967            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
   10968            0 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1928;
   10969            0 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1928;
   10970            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1928;
   10971            0 :           {
   10972            0 :             tree res_op0;
   10973            0 :             res_op0 = captures[0];
   10974            0 :             tree res_op1;
   10975            0 :             res_op1 = captures[3];
   10976            0 :             tree res_op2;
   10977            0 :             res_op2 =  const_binop (PLUS_EXPR, bitsizetype, captures[2], captures[4]);
   10978            0 :             tree _r;
   10979            0 :             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   10980            0 :             if (TREE_SIDE_EFFECTS (captures[1]))
   10981            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   10982            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1060, __FILE__, __LINE__, true);
   10983            0 :             return _r;
   10984              :           }
   10985            0 : next_after_fail1928:;
   10986              :         }
   10987            0 :         break;
   10988              :       }
   10989            3 :     case VIEW_CONVERT_EXPR:
   10990            3 :       {
   10991            3 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10992            3 :         {
   10993            3 :           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
   10994            6 :           if (! INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
   10995            6 :  || type_has_mode_precision_p (TREE_TYPE (captures[0]))
   10996              : )
   10997              :             {
   10998            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1929;
   10999            0 :               {
   11000            0 :                 tree res_op0;
   11001            0 :                 res_op0 = captures[0];
   11002            0 :                 tree res_op1;
   11003            0 :                 res_op1 = captures[1];
   11004            0 :                 tree res_op2;
   11005            0 :                 res_op2 = captures[2];
   11006            0 :                 tree _r;
   11007            0 :                 _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11008            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1061, __FILE__, __LINE__, true);
   11009            0 :                 return _r;
   11010              :               }
   11011            0 : next_after_fail1929:;
   11012              :             }
   11013              :         }
   11014            3 :         break;
   11015              :       }
   11016       649727 :     default:;
   11017              :     }
   11018       649727 :   if (integer_zerop (_p2))
   11019              :     {
   11020       208272 :       {
   11021       208272 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11022       208272 :         if (tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (captures[0])))
   11023              : )
   11024              :           {
   11025         2533 :             if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1930;
   11026         2533 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1930;
   11027         2533 :             {
   11028         2533 :               tree res_op0;
   11029         2533 :               res_op0 = captures[0];
   11030         2533 :               tree _r;
   11031         2533 :               _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11032         2533 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11033            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11034         2533 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1062, __FILE__, __LINE__, true);
   11035         2533 :               return _r;
   11036              :             }
   11037       205739 : next_after_fail1930:;
   11038              :           }
   11039              :       }
   11040              :     }
   11041       647194 :   {
   11042       647194 :     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
   11043       647194 :     if (TREE_CODE (TREE_TYPE (captures[0])) == COMPLEX_TYPE
   11044       647194 :  && tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))
   11045              : )
   11046              :       {
   11047            2 :         if (integer_zerop (captures[2])
   11048              : )
   11049              :           {
   11050            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1931;
   11051            0 :             {
   11052            0 :               tree res_op0;
   11053            0 :               {
   11054            0 :                 tree _o1[1], _r1;
   11055            0 :                 _o1[0] = captures[0];
   11056            0 :                 _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
   11057            0 :                 res_op0 = _r1;
   11058              :               }
   11059            0 :               tree _r;
   11060            0 :               _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11061            0 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11062            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11063            0 :               if (TREE_SIDE_EFFECTS (captures[2]))
   11064            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11065            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1063, __FILE__, __LINE__, true);
   11066            0 :               return _r;
   11067              :             }
   11068            0 : next_after_fail1931:;
   11069              :           }
   11070              :         else
   11071              :           {
   11072            2 :             if (tree_int_cst_equal (captures[2], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))
   11073              : )
   11074              :               {
   11075            0 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1932;
   11076            0 :                 {
   11077            0 :                   tree res_op0;
   11078            0 :                   {
   11079            0 :                     tree _o1[1], _r1;
   11080            0 :                     _o1[0] = captures[0];
   11081            0 :                     _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
   11082            0 :                     res_op0 = _r1;
   11083              :                   }
   11084            0 :                   tree _r;
   11085            0 :                   _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11086            0 :                   if (TREE_SIDE_EFFECTS (captures[1]))
   11087            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11088            0 :                   if (TREE_SIDE_EFFECTS (captures[2]))
   11089            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11090            0 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1064, __FILE__, __LINE__, true);
   11091            0 :                   return _r;
   11092              :                 }
   11093            0 : next_after_fail1932:;
   11094              :               }
   11095              :           }
   11096              :       }
   11097              :     else
   11098              :       {
   11099      1294322 :         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
   11100        20390 :  && INTEGRAL_TYPE_P (type)
   11101              :  && (!
   11102              : 
   11103              :  || is_gimple_reg (captures[0]))
   11104       666604 :  && ((compare_tree_int (captures[1], TYPE_PRECISION (TREE_TYPE (captures[0]))) == 0
   11105            0 :  && integer_zerop (captures[2]))
   11106              :  || (BYTES_BIG_ENDIAN == WORDS_BIG_ENDIAN
   11107              :  && canonicalize_math_after_vectorization_p ()
   11108              :  && TYPE_PRECISION (TREE_TYPE (captures[0])) % BITS_PER_UNIT == 0
   11109              :  && TYPE_PRECISION (type) % BITS_PER_UNIT == 0
   11110              :  && compare_tree_int (captures[2], (BYTES_BIG_ENDIAN
   11111              :  ? (TYPE_PRECISION (TREE_TYPE (captures[0]))
   11112              :  - TYPE_PRECISION (type))
   11113              :  : 0)) == 0))
   11114              : )
   11115              :           {
   11116            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1933;
   11117            0 :             {
   11118            0 :               tree res_op0;
   11119            0 :               res_op0 = captures[0];
   11120            0 :               tree _r;
   11121            0 :               _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   11122            0 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11123            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11124            0 :               if (TREE_SIDE_EFFECTS (captures[2]))
   11125            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11126            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1065, __FILE__, __LINE__, true);
   11127            0 :               return _r;
   11128              :             }
   11129            0 : next_after_fail1933:;
   11130              :           }
   11131              :       }
   11132              :   }
   11133       647194 :   switch (TREE_CODE (_p0))
   11134              :     {
   11135         1031 :     case CONSTRUCTOR:
   11136         1031 :       {
   11137         1031 :         {
   11138         1031 :           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
   11139         1031 :           if (VECTOR_TYPE_P (TREE_TYPE (captures[0]))
   11140         1031 :  && tree_fits_uhwi_p (TYPE_SIZE (type))
   11141         2062 :  && ((tree_to_uhwi (TYPE_SIZE (type))
   11142         1031 :  == tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))
   11143            0 :  || (VECTOR_TYPE_P (type)
   11144            0 :  && (tree_to_uhwi (TYPE_SIZE (TREE_TYPE (type)))
   11145            0 :  == tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))))
   11146              : )
   11147              :             {
   11148         1031 :               {
   11149         1031 :  tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
   11150              :  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
   11151         1031 :  tree eltype = TREE_TYPE (TREE_TYPE (ctor));
   11152         1031 :  unsigned HOST_WIDE_INT width = tree_to_uhwi (TYPE_SIZE (eltype));
   11153         1031 :  unsigned HOST_WIDE_INT n = tree_to_uhwi (captures[1]);
   11154         1031 :  unsigned HOST_WIDE_INT idx = tree_to_uhwi (captures[2]);
   11155         1031 :                   if (n != 0
   11156         1031 :  && (idx % width) == 0
   11157         1031 :  && (n % width) == 0
   11158         2062 :  && known_le ((idx + n) / width,
   11159              :  TYPE_VECTOR_SUBPARTS (TREE_TYPE (ctor)))
   11160              : )
   11161              :                     {
   11162         1031 :                       {
   11163         1031 :  idx = idx / width;
   11164         1031 :  n = n / width;
   11165         1031 :  poly_uint64 k = 1;
   11166         1031 :  if (CONSTRUCTOR_NELTS (ctor) != 0)
   11167              :  {
   11168         1031 :  tree cons_elem = TREE_TYPE (CONSTRUCTOR_ELT (ctor, 0)->value);
   11169         1031 :  if (TREE_CODE (cons_elem) == VECTOR_TYPE)
   11170         1031 :  k = TYPE_VECTOR_SUBPARTS (cons_elem);
   11171              :  }
   11172         1031 :  unsigned HOST_WIDE_INT elt, count, const_k;
   11173         1031 :                           if (multiple_p (idx, k, &elt) && multiple_p (n, k, &count)
   11174              : )
   11175              :                             {
   11176            6 :                               if (CONSTRUCTOR_NELTS (ctor) == 0
   11177              : )
   11178              :                                 {
   11179            0 :                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1934;
   11180            0 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1934;
   11181            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1934;
   11182            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1934;
   11183            0 :                                   {
   11184            0 :                                     tree _r;
   11185            0 :                                     _r =  build_zero_cst (type);
   11186            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1066, __FILE__, __LINE__, true);
   11187         1031 :                                     return _r;
   11188              :                                   }
   11189              : next_after_fail1934:;
   11190              :                                 }
   11191              :                               else
   11192              :                                 {
   11193            6 :                                   if (count == 1
   11194              : )
   11195              :                                     {
   11196            6 :                                       if (elt < CONSTRUCTOR_NELTS (ctor)
   11197              : )
   11198              :                                         {
   11199            6 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1935;
   11200            6 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1935;
   11201            6 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1935;
   11202            6 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1935;
   11203            6 :                                           {
   11204            6 :                                             tree res_op0;
   11205            6 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, elt)->value;
   11206            6 :                                             tree _r;
   11207            6 :                                             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11208            6 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1067, __FILE__, __LINE__, true);
   11209            6 :                                             return _r;
   11210              :                                           }
   11211              : next_after_fail1935:;
   11212              :                                         }
   11213              :                                       else
   11214              :                                         {
   11215            0 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1936;
   11216            0 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1936;
   11217            0 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1936;
   11218            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1936;
   11219            0 :                                           {
   11220            0 :                                             tree _r;
   11221            0 :                                             _r =  build_zero_cst (type);
   11222            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1068, __FILE__, __LINE__, true);
   11223            0 :                                             return _r;
   11224              :                                           }
   11225              : next_after_fail1936:;
   11226              :                                         }
   11227              :                                     }
   11228              :                                   else
   11229              :                                     {
   11230            0 :                                       if (single_use (captures[0])
   11231              : )
   11232              :                                         {
   11233            0 :                                           {
   11234            0 :  vec<constructor_elt, va_gc> *vals;
   11235            0 :  vec_alloc (vals, count);
   11236            0 :  bool constant_p = true;
   11237            0 :  tree res;
   11238            0 :  for (unsigned i = 0;
   11239            0 :  i < count && elt + i < CONSTRUCTOR_NELTS (ctor); ++i)
   11240              :  {
   11241            0 :  tree e = CONSTRUCTOR_ELT (ctor, elt + i)->value;
   11242            0 :  CONSTRUCTOR_APPEND_ELT (vals, NULL_TREE, e);
   11243            0 :  if (!CONSTANT_CLASS_P (e))
   11244            0 :  constant_p = false;
   11245              :  }
   11246            0 :  tree evtype = (types_match (TREE_TYPE (type),
   11247            0 :  TREE_TYPE (TREE_TYPE (ctor)))
   11248            0 :  ? type
   11249            0 :  : build_vector_type (TREE_TYPE (TREE_TYPE (ctor)),
   11250            0 :  count * k));
   11251            0 :  res = (constant_p ? build_vector_from_ctor (evtype, vals)
   11252              :  : (
   11253              : 
   11254            0 :  ? NULL_TREE : build_constructor (evtype, vals)));
   11255            0 :                                               if (res
   11256              : )
   11257              :                                                 {
   11258            0 :                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1937;
   11259            0 :                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1937;
   11260            0 :                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1937;
   11261            0 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1937;
   11262            0 :                                                   {
   11263            0 :                                                     tree res_op0;
   11264            0 :                                                     res_op0 =  res;
   11265            0 :                                                     tree _r;
   11266            0 :                                                     _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11267            0 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1069, __FILE__, __LINE__, true);
   11268            0 :                                                     return _r;
   11269              :                                                   }
   11270            0 : next_after_fail1937:;
   11271              :                                                 }
   11272              :                                           }
   11273              :                                         }
   11274              :                                     }
   11275              :                                 }
   11276              :                             }
   11277              :                           else
   11278              :                             {
   11279         1025 :                               if (k.is_constant (&const_k)
   11280         1025 :  && idx + n <= (idx / const_k + 1) * const_k
   11281              : )
   11282              :                                 {
   11283         1025 :                                   if (CONSTRUCTOR_NELTS (ctor) <= idx / const_k
   11284              : )
   11285              :                                     {
   11286            0 :                                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1938;
   11287            0 :                                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1938;
   11288            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1938;
   11289            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1938;
   11290            0 :                                       {
   11291            0 :                                         tree _r;
   11292            0 :                                         _r =  build_zero_cst (type);
   11293            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1070, __FILE__, __LINE__, true);
   11294            0 :                                         return _r;
   11295              :                                       }
   11296              : next_after_fail1938:;
   11297              :                                     }
   11298              :                                   else
   11299              :                                     {
   11300         1025 :                                       if (n == const_k
   11301              : )
   11302              :                                         {
   11303            0 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1939;
   11304            0 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1939;
   11305            0 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1939;
   11306            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1939;
   11307            0 :                                           {
   11308            0 :                                             tree res_op0;
   11309            0 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
   11310            0 :                                             tree _r;
   11311            0 :                                             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11312            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1071, __FILE__, __LINE__, true);
   11313            0 :                                             return _r;
   11314              :                                           }
   11315              : next_after_fail1939:;
   11316              :                                         }
   11317              :                                       else
   11318              :                                         {
   11319         1025 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1940;
   11320         1025 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1940;
   11321         1025 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1940;
   11322         1025 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1940;
   11323         1025 :                                           {
   11324         1025 :                                             tree res_op0;
   11325         1025 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
   11326         1025 :                                             tree res_op1;
   11327         1025 :                                             res_op1 = captures[1];
   11328         1025 :                                             tree res_op2;
   11329         1025 :                                             res_op2 =  bitsize_int ((idx % const_k) * width);
   11330         1025 :                                             tree _r;
   11331         1025 :                                             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11332         1025 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1072, __FILE__, __LINE__, true);
   11333         1025 :                                             return _r;
   11334              :                                           }
   11335              : next_after_fail1940:;
   11336              :                                         }
   11337              :                                     }
   11338              :                                 }
   11339              :                             }
   11340              :                       }
   11341              :                     }
   11342              :               }
   11343              :             }
   11344              :         }
   11345            0 :         break;
   11346              :       }
   11347            0 :     case VEC_PERM_EXPR:
   11348            0 :       {
   11349            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11350            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11351            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11352            0 :         switch (TREE_CODE (_q22))
   11353              :           {
   11354            0 :           case VECTOR_CST:
   11355            0 :             {
   11356            0 :               {
   11357            0 :                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _p2 };
   11358            0 :                 {
   11359            0 :  tree elem_type = TREE_TYPE (TREE_TYPE (captures[0]));
   11360            0 :  poly_uint64 elem_size = tree_to_poly_uint64 (TYPE_SIZE (elem_type));
   11361            0 :  poly_uint64 size = tree_to_poly_uint64 (TYPE_SIZE (type));
   11362            0 :  unsigned HOST_WIDE_INT nelts, idx;
   11363            0 :  unsigned HOST_WIDE_INT nelts_op = 0;
   11364            0 :                     if (constant_multiple_p (tree_to_poly_uint64 (captures[5]), elem_size, &idx)
   11365            0 :  && VECTOR_CST_NELTS (captures[3]).is_constant (&nelts)
   11366            0 :  && (known_eq (size, elem_size)
   11367            0 :  || (constant_multiple_p (size, elem_size, &nelts_op)
   11368            0 :  && pow2p_hwi (nelts_op)))
   11369              : )
   11370              :                       {
   11371            0 :                         {
   11372            0 :  bool ok = true;
   11373            0 :  if (known_eq (size, elem_size))
   11374            0 :  idx = TREE_INT_CST_LOW (VECTOR_CST_ELT (captures[3], idx)) % (2 * nelts);
   11375              :  else
   11376              :  {
   11377            0 :  unsigned start
   11378            0 :  = TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx)) % (2 * nelts);
   11379            0 :  unsigned end
   11380            0 :  = (TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + nelts_op - 1))
   11381            0 :  % (2 * nelts));
   11382            0 :  if ((start < nelts) != (end < nelts))
   11383              :  ok = false;
   11384              :  else
   11385            0 :  for (unsigned HOST_WIDE_INT i = 1; i != nelts_op; i++)
   11386              :  {
   11387            0 :  if ((TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + i))
   11388            0 :  % (2 * nelts) - 1)
   11389            0 :  != (TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + i - 1))
   11390            0 :  % (2 * nelts)))
   11391              :  {
   11392              :  ok = false;
   11393              :  break;
   11394              :  }
   11395              :  }
   11396            0 :  if (start % nelts_op)
   11397              :  ok = false;
   11398            0 :  idx = start;
   11399              :  }
   11400            0 :                             if (ok
   11401              : )
   11402              :                               {
   11403            0 :                                 if (idx < nelts
   11404              : )
   11405              :                                   {
   11406            0 :                                     if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1941;
   11407            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1941;
   11408            0 :                                     {
   11409            0 :                                       tree res_op0;
   11410            0 :                                       res_op0 = captures[1];
   11411            0 :                                       tree res_op1;
   11412            0 :                                       res_op1 = captures[4];
   11413            0 :                                       tree res_op2;
   11414            0 :                                       res_op2 =  bitsize_int (idx * elem_size);
   11415            0 :                                       tree _r;
   11416            0 :                                       _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11417            0 :                                       if (TREE_SIDE_EFFECTS (captures[2]))
   11418            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11419            0 :                                       if (TREE_SIDE_EFFECTS (captures[5]))
   11420            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   11421            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1073, __FILE__, __LINE__, true);
   11422            0 :                                       return _r;
   11423              :                                     }
   11424            0 : next_after_fail1941:;
   11425              :                                   }
   11426              :                                 else
   11427              :                                   {
   11428            0 :                                     if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1942;
   11429            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1942;
   11430            0 :                                     {
   11431            0 :                                       tree res_op0;
   11432            0 :                                       res_op0 = captures[2];
   11433            0 :                                       tree res_op1;
   11434            0 :                                       res_op1 = captures[4];
   11435            0 :                                       tree res_op2;
   11436            0 :                                       res_op2 =  bitsize_int ((idx - nelts) * elem_size);
   11437            0 :                                       tree _r;
   11438            0 :                                       _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11439            0 :                                       if (TREE_SIDE_EFFECTS (captures[1]))
   11440            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11441            0 :                                       if (TREE_SIDE_EFFECTS (captures[5]))
   11442            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   11443            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1074, __FILE__, __LINE__, true);
   11444            0 :                                       return _r;
   11445              :                                     }
   11446            0 : next_after_fail1942:;
   11447              :                                   }
   11448              :                               }
   11449              :                         }
   11450              :                       }
   11451              :                 }
   11452              :               }
   11453            0 :               break;
   11454              :             }
   11455              :           default:;
   11456              :           }
   11457              :         break;
   11458              :       }
   11459            0 :     case BIT_INSERT_EXPR:
   11460            0 :       {
   11461            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11462            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11463            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11464            0 :         {
   11465            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
   11466            0 :           {
   11467            0 :  unsigned HOST_WIDE_INT isize;
   11468            0 :  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])))
   11469            0 :  isize = TYPE_PRECISION (TREE_TYPE (captures[1]));
   11470              :  else
   11471            0 :  isize = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (captures[1])));
   11472            0 :               if ((!INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
   11473            0 :  || type_has_mode_precision_p (TREE_TYPE (captures[1])))
   11474            0 :  && wi::leu_p (wi::to_wide (captures[2]), wi::to_wide (captures[4]))
   11475            0 :  && wi::leu_p (wi::to_wide (captures[4]) + wi::to_wide (captures[3]),
   11476            0 :  wi::to_wide (captures[2]) + isize)
   11477              : )
   11478              :                 {
   11479            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1943;
   11480            0 :                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1943;
   11481            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1943;
   11482            0 :                   {
   11483            0 :                     tree res_op0;
   11484            0 :                     res_op0 = captures[1];
   11485            0 :                     tree res_op1;
   11486            0 :                     res_op1 = captures[3];
   11487            0 :                     tree res_op2;
   11488            0 :                     res_op2 =  wide_int_to_tree (bitsizetype,
   11489            0 :  wi::to_wide (captures[4])
   11490            0 :  - wi::to_wide (captures[2]));
   11491            0 :                     tree _r;
   11492            0 :                     _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11493            0 :                     if (TREE_SIDE_EFFECTS (captures[0]))
   11494            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11495            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1075, __FILE__, __LINE__, true);
   11496            0 :                     return _r;
   11497              :                   }
   11498            0 : next_after_fail1943:;
   11499              :                 }
   11500              :               else
   11501              :                 {
   11502            0 :                   if (wi::eq_p (wi::to_wide (captures[2]), wi::to_wide (captures[4]))
   11503            0 :  && compare_tree_int (captures[3], isize) == 0
   11504              : )
   11505              :                     {
   11506            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1944;
   11507            0 :                       {
   11508            0 :                         tree res_op0;
   11509            0 :                         res_op0 = captures[1];
   11510            0 :                         tree _r;
   11511            0 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   11512            0 :                         if (TREE_SIDE_EFFECTS (captures[0]))
   11513            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11514            0 :                         if (TREE_SIDE_EFFECTS (captures[2]))
   11515            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11516            0 :                         if (TREE_SIDE_EFFECTS (captures[3]))
   11517            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
   11518            0 :                         if (TREE_SIDE_EFFECTS (captures[4]))
   11519            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
   11520            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1076, __FILE__, __LINE__, true);
   11521            0 :                         return _r;
   11522              :                       }
   11523            0 : next_after_fail1944:;
   11524              :                     }
   11525              :                   else
   11526              :                     {
   11527            0 :                       if (wi::geu_p (wi::to_wide (captures[2]),
   11528            0 :  wi::to_wide (captures[4]) + wi::to_wide (captures[3]))
   11529            0 :  || wi::geu_p (wi::to_wide (captures[4]),
   11530            0 :  wi::to_wide (captures[2]) + isize)
   11531              : )
   11532              :                         {
   11533            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1945;
   11534            0 :                           {
   11535            0 :                             tree res_op0;
   11536            0 :                             res_op0 = captures[0];
   11537            0 :                             tree res_op1;
   11538            0 :                             res_op1 = captures[3];
   11539            0 :                             tree res_op2;
   11540            0 :                             res_op2 = captures[4];
   11541            0 :                             tree _r;
   11542            0 :                             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11543            0 :                             if (TREE_SIDE_EFFECTS (captures[1]))
   11544            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11545            0 :                             if (TREE_SIDE_EFFECTS (captures[2]))
   11546            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11547            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1077, __FILE__, __LINE__, true);
   11548            0 :                             return _r;
   11549              :                           }
   11550            0 : next_after_fail1945:;
   11551              :                         }
   11552              :                     }
   11553              :                 }
   11554              :           }
   11555              :         }
   11556            0 :         break;
   11557              :       }
   11558              :     default:;
   11559              :     }
   11560              :   return NULL_TREE;
   11561              : }
   11562              : #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.