LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - generic-match-7.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 53.1 % 7462 3960
Test Date: 2026-08-01 15:33:25 Functions: 61.0 % 82 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    117360805 : tree_maybe_cmp (tree t, tree *res_ops)
      11              : {
      12    117360805 :   const tree type = TREE_TYPE (t);
      13    117360805 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14    117360805 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15    117360805 :   switch (TREE_CODE (t))
      16              :     {
      17       470679 :     case LT_EXPR:
      18       470679 :     case LE_EXPR:
      19       470679 :     case EQ_EXPR:
      20       470679 :     case NE_EXPR:
      21       470679 :     case GE_EXPR:
      22       470679 :     case GT_EXPR:
      23       470679 :     case UNORDERED_EXPR:
      24       470679 :     case ORDERED_EXPR:
      25       470679 :     case UNLT_EXPR:
      26       470679 :     case UNLE_EXPR:
      27       470679 :     case UNGT_EXPR:
      28       470679 :     case UNGE_EXPR:
      29       470679 :     case UNEQ_EXPR:
      30       470679 :     case LTGT_EXPR:
      31       470679 :       {
      32       470679 :         tree _p0 = TREE_OPERAND (t, 0);
      33       470679 :         tree _p1 = TREE_OPERAND (t, 1);
      34       470679 :         {
      35       470679 :           tree captures[3] ATTRIBUTE_UNUSED = { t, _p0, _p1 };
      36       470679 :           {
      37       470679 :             res_ops[0] = captures[0];
      38       470679 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 5, __FILE__, __LINE__, false);
      39       470679 :             return true;
      40              :           }
      41              :         }
      42     25473965 :         break;
      43              :       }
      44     25473965 :     CASE_CONVERT:
      45     25473965 :       {
      46     25473965 :         tree _p0 = TREE_OPERAND (t, 0);
      47     25473965 :         switch (TREE_CODE (_p0))
      48              :           {
      49         1442 :           case LT_EXPR:
      50         1442 :           case LE_EXPR:
      51         1442 :           case EQ_EXPR:
      52         1442 :           case NE_EXPR:
      53         1442 :           case GE_EXPR:
      54         1442 :           case GT_EXPR:
      55         1442 :           case UNORDERED_EXPR:
      56         1442 :           case ORDERED_EXPR:
      57         1442 :           case UNLT_EXPR:
      58         1442 :           case UNLE_EXPR:
      59         1442 :           case UNGT_EXPR:
      60         1442 :           case UNGE_EXPR:
      61         1442 :           case UNEQ_EXPR:
      62         1442 :           case LTGT_EXPR:
      63         1442 :             {
      64         1442 :               tree _q20 = TREE_OPERAND (_p0, 0);
      65         1442 :               tree _q21 = TREE_OPERAND (_p0, 1);
      66         1442 :               {
      67         1442 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
      68         1442 :                 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
      69              : )
      70              :                   {
      71          778 :                     {
      72          778 :                       res_ops[0] = captures[0];
      73          778 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 6, __FILE__, __LINE__, false);
      74          778 :                       return true;
      75              :                     }
      76              :                   }
      77              :               }
      78              :               break;
      79              :             }
      80              :           default:;
      81              :           }
      82              :         break;
      83              :       }
      84       187616 :     case BIT_XOR_EXPR:
      85       187616 :       {
      86       187616 :         tree _p0 = TREE_OPERAND (t, 0);
      87       187616 :         tree _p1 = TREE_OPERAND (t, 1);
      88       187616 :         {
      89       187616 :           tree captures[3] ATTRIBUTE_UNUSED = { t, _p0, _p1 };
      90       187616 :           if (INTEGRAL_TYPE_P (type)
      91       187616 :  && TYPE_PRECISION (type) == 1
      92              : )
      93              :             {
      94        91391 :               {
      95        91391 :                 res_ops[0] = captures[0];
      96        91391 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 7, __FILE__, __LINE__, false);
      97        91391 :                 return true;
      98              :               }
      99              :             }
     100              :         }
     101              :         break;
     102              :       }
     103              :     default:;
     104              :     }
     105              :   return false;
     106              : }
     107              : 
     108              : bool
     109            0 : tree_float_value_p (tree t)
     110              : {
     111            0 :   const tree type = TREE_TYPE (t);
     112            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     113            0 :   if (TREE_SIDE_EFFECTS (t)) return false;
     114            0 :   {
     115            0 :     tree captures[1] ATTRIBUTE_UNUSED = { t };
     116            0 :     if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == float_type_node
     117              : )
     118              :       {
     119            0 :         {
     120            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 45, __FILE__, __LINE__, false);
     121            0 :           return true;
     122              :         }
     123              :       }
     124              :   }
     125              :   return false;
     126              : }
     127              : 
     128              : tree
     129            0 : generic_simplify_7 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     130              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     131              : {
     132            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     133            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail78;
     134            0 :   {
     135            0 :     tree res_op0;
     136            0 :     res_op0 = captures[1];
     137            0 :     tree res_op1;
     138            0 :     res_op1 = captures[2];
     139            0 :     tree _r;
     140            0 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     141            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 55, __FILE__, __LINE__, true);
     142              :     return _r;
     143              :   }
     144            0 : next_after_fail78:;
     145            0 :   return NULL_TREE;
     146              : }
     147              : 
     148              : tree
     149          196 : generic_simplify_13 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     150              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     151              : {
     152          196 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     153          196 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail87;
     154          196 :   {
     155          196 :     if (! tree_invariant_p (captures[3])) goto next_after_fail87;
     156           15 :     tree res_op0;
     157           15 :     {
     158           15 :       tree _o1[2], _r1;
     159           15 :       _o1[0] = captures[2];
     160           15 :       _o1[1] = unshare_expr (captures[3]);
     161           15 :       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     162           15 :       res_op0 = _r1;
     163              :     }
     164           15 :     tree res_op1;
     165           15 :     {
     166           15 :       tree _o1[2], _r1;
     167           15 :       _o1[0] = captures[4];
     168           15 :       _o1[1] = captures[3];
     169           15 :       _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     170           15 :       if (EXPR_P (_r1))
     171           14 :         goto next_after_fail87;
     172            1 :       res_op1 = _r1;
     173              :     }
     174            1 :     tree _r;
     175            1 :     _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
     176            1 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 62, __FILE__, __LINE__, true);
     177              :     return _r;
     178              :   }
     179              : next_after_fail87:;
     180              :   return NULL_TREE;
     181              : }
     182              : 
     183              : tree
     184          510 : generic_simplify_23 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     185              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     186              :  const enum tree_code ARG_UNUSED (op))
     187              : {
     188          510 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     189          510 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
     190          510 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[4]))
     191         1020 :  && (wi::to_wide (captures[2]) & wi::to_wide (captures[5])) == 0
     192              : )
     193              :     {
     194          101 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail97;
     195          101 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail97;
     196          101 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail97;
     197          101 :       {
     198          101 :         tree res_op0;
     199          101 :         {
     200          101 :           tree _o1[1], _r1;
     201          101 :           _o1[0] = captures[0];
     202          101 :           if (TREE_TYPE (_o1[0]) != type)
     203              :             {
     204            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     205              :             }
     206              :           else
     207              :             _r1 = _o1[0];
     208          101 :           res_op0 = _r1;
     209              :         }
     210          101 :         tree res_op1;
     211          101 :         {
     212          101 :           tree _o1[1], _r1;
     213          101 :           _o1[0] = captures[3];
     214          101 :           if (TREE_TYPE (_o1[0]) != type)
     215              :             {
     216            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     217              :             }
     218              :           else
     219              :             _r1 = _o1[0];
     220          101 :           res_op1 = _r1;
     221              :         }
     222          101 :         tree _r;
     223          101 :         _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     224          101 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 72, __FILE__, __LINE__, true);
     225          101 :         return _r;
     226              :       }
     227              : next_after_fail97:;
     228              :     }
     229              :   return NULL_TREE;
     230              : }
     231              : 
     232              : tree
     233           24 : generic_simplify_36 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     234              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     235              : {
     236           24 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     237           24 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
     238              : )
     239              :     {
     240           24 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail112;
     241           24 :       {
     242           24 :         tree res_op0;
     243           24 :         {
     244           24 :           tree _o1[2], _r1;
     245           24 :           {
     246           24 :             tree _o2[1], _r2;
     247           24 :             _o2[0] = captures[2];
     248           24 :             if (TREE_TYPE (_o2[0]) != type)
     249              :               {
     250           24 :                 _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
     251              :               }
     252              :             else
     253              :               _r2 = _o2[0];
     254           24 :             _o1[0] = _r2;
     255              :           }
     256           24 :           _o1[1] = captures[3];
     257           24 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     258           24 :           res_op0 = _r1;
     259              :         }
     260           24 :         tree _r;
     261           24 :         _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     262           24 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 75, __FILE__, __LINE__, true);
     263           24 :         return _r;
     264              :       }
     265            0 : next_after_fail112:;
     266              :     }
     267              :   return NULL_TREE;
     268              : }
     269              : 
     270              : tree
     271           18 : generic_simplify_43 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     272              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     273              :  const enum tree_code ARG_UNUSED (op))
     274              : {
     275           18 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     276           36 :   if (INTEGRAL_TYPE_P (type)
     277           54 :  && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[2])) == 0
     278              : )
     279              :     {
     280            0 :       {
     281            0 :  tree t = type;
     282            0 :  if (!TYPE_OVERFLOW_WRAPS (t))
     283            0 :  t = unsigned_type_for (t);
     284            0 :  wide_int c = wi::add (wi::to_wide (captures[3]), 1);
     285            0 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail120;
     286            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail120;
     287            0 :           {
     288            0 :             tree res_op0;
     289            0 :             {
     290            0 :               tree _o1[2], _r1;
     291            0 :               {
     292            0 :                 tree _o2[1], _r2;
     293            0 :                 _o2[0] = captures[2];
     294            0 :                 if (TREE_TYPE (_o2[0]) != t)
     295              :                   {
     296            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
     297              :                   }
     298              :                 else
     299              :                   _r2 = _o2[0];
     300            0 :                 _o1[0] = _r2;
     301              :               }
     302            0 :               _o1[1] =  wide_int_to_tree (t, c);
     303            0 :               _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
     304            0 :               res_op0 = _r1;
     305              :             }
     306            0 :             tree _r;
     307            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     308            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 88, __FILE__, __LINE__, true);
     309            0 :             return _r;
     310              :           }
     311            0 : next_after_fail120:;
     312            0 :       }
     313              :     }
     314              :   return NULL_TREE;
     315              : }
     316              : 
     317              : tree
     318            0 : generic_simplify_51 (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            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     322            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
     323            0 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
     324            0 :  && !TYPE_SATURATING (TREE_TYPE (captures[0]))
     325            0 :  && (
     326              : 
     327            0 :  || !TREE_SIDE_EFFECTS (captures[0]))
     328              : )
     329              :     {
     330            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail130;
     331            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail130;
     332            0 :       {
     333            0 :         tree res_op0;
     334            0 :         res_op0 = captures[0];
     335            0 :         tree _r;
     336            0 :         _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
     337            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 100, __FILE__, __LINE__, true);
     338            0 :         return _r;
     339              :       }
     340              : next_after_fail130:;
     341              :     }
     342              :   return NULL_TREE;
     343              : }
     344              : 
     345              : tree
     346            7 : generic_simplify_56 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     347              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     348              :  const enum tree_code ARG_UNUSED (op))
     349              : {
     350            7 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     351            7 :   if (INTEGRAL_TYPE_P (type)
     352            7 :  && TYPE_OVERFLOW_WRAPS (type)
     353           14 :  && !TYPE_SATURATING (type)
     354              : )
     355              :     {
     356            7 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail136;
     357            7 :       {
     358            7 :         tree res_op0;
     359            7 :         {
     360            7 :           tree _o1[2], _r1;
     361            7 :           _o1[0] = captures[1];
     362            7 :           _o1[1] = captures[4];
     363            7 :           _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     364            7 :           res_op0 = _r1;
     365              :         }
     366            7 :         tree res_op1;
     367            7 :         res_op1 = captures[2];
     368            7 :         tree _r;
     369            7 :         _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
     370            7 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 105, __FILE__, __LINE__, true);
     371            7 :         return _r;
     372              :       }
     373            0 : next_after_fail136:;
     374              :     }
     375              :   return NULL_TREE;
     376              : }
     377              : 
     378              : tree
     379          154 : generic_simplify_65 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     380              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     381              : {
     382          154 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     383          154 :   if (!TYPE_SATURATING (type)
     384              : )
     385              :     {
     386          154 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     387          308 :  && !FIXED_POINT_TYPE_P (type)
     388              : )
     389              :         {
     390          154 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail153;
     391          154 :           {
     392          154 :             tree res_op0;
     393          154 :             res_op0 = captures[2];
     394          154 :             tree res_op1;
     395          154 :             res_op1 = captures[1];
     396          154 :             tree _r;
     397          154 :             _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
     398          154 :             if (TREE_SIDE_EFFECTS (captures[0]))
     399            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     400          154 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 122, __FILE__, __LINE__, true);
     401          154 :             return _r;
     402              :           }
     403            0 : next_after_fail153:;
     404              :         }
     405              :     }
     406              :   return NULL_TREE;
     407              : }
     408              : 
     409              : tree
     410      3829378 : generic_simplify_73 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     411              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     412              : {
     413      3829378 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     414      3829378 :   if (!TYPE_SATURATING (type)
     415      3829378 :  && (!FLOAT_TYPE_P (type) || flag_associative_math)
     416              : )
     417              :     {
     418      3829378 :       if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
     419              : )
     420              :         {
     421      7658756 :           if (TREE_CODE (type) == INTEGER_TYPE
     422      3829378 :  && wi::neg_p (wi::to_wide (captures[3]))
     423     11488134 :  && wi::to_wide (captures[3]) != wi::min_value (TYPE_PRECISION (type), SIGNED)
     424              : )
     425              :             {
     426      1006162 :               {
     427      1006162 :  wide_int c0 = wi::to_wide (captures[1]);
     428      1006162 :  wide_int c2 = wi::to_wide (captures[3]);
     429      1006162 :  wide_int c2_abs = wi::abs (c2);
     430      1006162 :                   if (wi::multiple_of_p (c2_abs, c0, TYPE_SIGN (type))
     431              : )
     432              :                     {
     433       459010 :                       {
     434       459010 :  wide_int div_res = wi::sdiv_trunc (c2, c0);
     435       459010 :  tree div_cst = wide_int_to_tree (type, div_res);
     436       459010 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail162;
     437       459010 :                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail162;
     438       459010 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail162;
     439       459010 :                           {
     440       459010 :                             tree res_op0;
     441       459010 :                             {
     442       459010 :                               tree _o1[2], _r1;
     443       459010 :                               _o1[0] = captures[2];
     444       459010 :                               _o1[1] =  div_cst;
     445       459010 :                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     446       459010 :                               res_op0 = _r1;
     447              :                             }
     448       459010 :                             tree res_op1;
     449       459010 :                             res_op1 = captures[1];
     450       459010 :                             tree _r;
     451       459010 :                             _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
     452       459010 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 131, __FILE__, __LINE__, true);
     453       459010 :                             return _r;
     454              :                           }
     455            0 : next_after_fail162:;
     456       459010 :                       }
     457              :                     }
     458      1006162 :               }
     459              :             }
     460              :         }
     461              :     }
     462              :   return NULL_TREE;
     463              : }
     464              : 
     465              : tree
     466            0 : generic_simplify_84 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     467              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     468              : {
     469            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     470            0 :   if (TREE_CODE (captures[1]) == SSA_NAME && num_imm_uses (captures[1]) == 2
     471              : )
     472              :     {
     473            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail174;
     474            0 :       {
     475            0 :         if (! tree_invariant_p (captures[2])) goto next_after_fail174;
     476            0 :         tree res_op0;
     477            0 :         {
     478            0 :           tree _o1[2], _r1;
     479            0 :           {
     480            0 :             tree _o2[3], _r2;
     481            0 :             _o2[0] = unshare_expr (captures[2]);
     482            0 :             _o2[1] = captures[2];
     483            0 :             _o2[2] = captures[4];
     484            0 :             _r2 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1], _o2[2]);
     485            0 :             _o1[0] = _r2;
     486              :           }
     487            0 :           _o1[1] = captures[3];
     488            0 :           _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     489            0 :           res_op0 = _r1;
     490              :         }
     491            0 :         tree res_op1;
     492            0 :         res_op1 = captures[5];
     493            0 :         tree _r;
     494            0 :         _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
     495            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 143, __FILE__, __LINE__, true);
     496            0 :         return _r;
     497              :       }
     498              : next_after_fail174:;
     499              :     }
     500              :   return NULL_TREE;
     501              : }
     502              : 
     503              : tree
     504           26 : generic_simplify_91 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     505              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     506              :  const enum tree_code ARG_UNUSED (rop),
     507              :  const enum tree_code ARG_UNUSED (res))
     508              : {
     509           26 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     510           26 :   if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
     511           26 :  && !TYPE_SATURATING (type)
     512              : )
     513              :     {
     514            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail181;
     515            0 :       {
     516            0 :         tree res_op0;
     517            0 :         res_op0 = captures[0];
     518            0 :         tree res_op1;
     519            0 :         res_op1 = captures[1];
     520            0 :         tree _r;
     521            0 :         _r = fold_build2_loc (loc, res, type, res_op0, res_op1);
     522            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 150, __FILE__, __LINE__, true);
     523            0 :         return _r;
     524              :       }
     525            0 : next_after_fail181:;
     526              :     }
     527              :   return NULL_TREE;
     528              : }
     529              : 
     530              : tree
     531        57846 : generic_simplify_98 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     532              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     533              : {
     534        57846 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     535        57846 :   if (!TYPE_SATURATING (type)
     536              : )
     537              :     {
     538        57846 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     539       115681 :  && !FIXED_POINT_TYPE_P (type)
     540              : )
     541              :         {
     542        57835 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail188;
     543        57835 :           {
     544        57835 :             tree res_op0;
     545        57835 :             res_op0 = captures[1];
     546        57835 :             tree _r;
     547        57835 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
     548        57835 :             if (TREE_SIDE_EFFECTS (captures[0]))
     549           15 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     550        57835 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 156, __FILE__, __LINE__, true);
     551        57835 :             return _r;
     552              :           }
     553            0 : next_after_fail188:;
     554              :         }
     555              :     }
     556              :   return NULL_TREE;
     557              : }
     558              : 
     559              : tree
     560        10577 : generic_simplify_106 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     561              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     562              : {
     563        10577 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     564        10577 :   if (!TYPE_SATURATING (type)
     565              : )
     566              :     {
     567        10577 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     568        21154 :  && !FIXED_POINT_TYPE_P (type)
     569              : )
     570              :         {
     571        10577 :           if (INTEGRAL_TYPE_P (type)
     572        10577 :  && TYPE_OVERFLOW_UNDEFINED (type)
     573         3274 :  && TREE_CODE (captures[1]) != INTEGER_CST
     574        11775 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     575              : )
     576              :             {
     577         1198 :               {
     578         1198 :  tree utype = unsigned_type_for (type);
     579         1198 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail200;
     580         1198 :                   {
     581         1198 :                     tree res_op0;
     582         1198 :                     {
     583         1198 :                       tree _o1[1], _r1;
     584         1198 :                       {
     585         1198 :                         tree _o2[1], _r2;
     586         1198 :                         _o2[0] = captures[1];
     587         1198 :                         if (TREE_TYPE (_o2[0]) != utype)
     588              :                           {
     589         1198 :                             _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     590              :                           }
     591              :                         else
     592              :                           _r2 = _o2[0];
     593         1198 :                         _o1[0] = _r2;
     594              :                       }
     595         1198 :                       _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     596         1198 :                       res_op0 = _r1;
     597              :                     }
     598         1198 :                     tree _r;
     599         1198 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     600         1198 :                     if (TREE_SIDE_EFFECTS (captures[2]))
     601            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     602         1198 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 168, __FILE__, __LINE__, true);
     603         1198 :                     return _r;
     604              :                   }
     605            0 : next_after_fail200:;
     606              :               }
     607              :             }
     608              :           else
     609              :             {
     610         9379 :               if (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     611         9379 :  || (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     612         2333 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
     613              : )
     614              :                 {
     615         9119 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail201;
     616         9119 :                   {
     617         9119 :                     tree res_op0;
     618         9119 :                     {
     619         9119 :                       tree _o1[1], _r1;
     620         9119 :                       _o1[0] = captures[1];
     621         9119 :                       if (TREE_TYPE (_o1[0]) != type)
     622              :                         {
     623         9119 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     624              :                         }
     625              :                       else
     626              :                         _r1 = _o1[0];
     627         9119 :                       res_op0 = _r1;
     628              :                     }
     629         9119 :                     tree _r;
     630         9119 :                     _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     631         9119 :                     if (TREE_SIDE_EFFECTS (captures[2]))
     632            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     633         9119 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 169, __FILE__, __LINE__, true);
     634         9119 :                     return _r;
     635              :                   }
     636            0 : next_after_fail201:;
     637              :                 }
     638              :             }
     639              :         }
     640              :     }
     641              :   return NULL_TREE;
     642              : }
     643              : 
     644              : tree
     645            0 : generic_simplify_120 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     646              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     647              : {
     648            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     649            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail218;
     650            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail218;
     651            0 :   {
     652            0 :     tree _r;
     653            0 :     _r = captures[2];
     654            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 182, __FILE__, __LINE__, true);
     655              :     return _r;
     656              :   }
     657              : next_after_fail218:;
     658              :   return NULL_TREE;
     659              : }
     660              : 
     661              : tree
     662            0 : generic_simplify_125 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     663              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     664              :  const enum tree_code ARG_UNUSED (op))
     665              : {
     666            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     667            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail223;
     668            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail223;
     669            0 :   {
     670            0 :     tree _r;
     671            0 :     _r = captures[0];
     672            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 186, __FILE__, __LINE__, true);
     673              :     return _r;
     674              :   }
     675              : next_after_fail223:;
     676              :   return NULL_TREE;
     677              : }
     678              : 
     679              : tree
     680            2 : generic_simplify_135 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     681              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     682              :  const enum tree_code ARG_UNUSED (lop),
     683              :  const enum tree_code ARG_UNUSED (res))
     684              : {
     685            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     686            2 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail233;
     687            2 :   {
     688            2 :     tree res_op0;
     689            2 :     {
     690            2 :       tree _o1[2], _r1;
     691            2 :       _o1[0] = captures[1];
     692            2 :       _o1[1] = captures[2];
     693            2 :       _r1 = fold_build2_loc (loc, res, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     694            2 :       res_op0 = _r1;
     695              :     }
     696            2 :     tree _r;
     697            2 :     _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     698            2 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 194, __FILE__, __LINE__, true);
     699              :     return _r;
     700              :   }
     701            0 : next_after_fail233:;
     702            0 :   return NULL_TREE;
     703              : }
     704              : 
     705              : tree
     706            2 : generic_simplify_145 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     707              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     708              :  const enum tree_code ARG_UNUSED (bitop),
     709              :  const enum tree_code ARG_UNUSED (rbitop))
     710              : {
     711            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     712            2 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail247;
     713            2 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail247;
     714            2 :   {
     715            2 :     tree _r;
     716            2 :     _r = captures[2];
     717            2 :     if (TREE_SIDE_EFFECTS (captures[1]))
     718            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     719            2 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 200, __FILE__, __LINE__, true);
     720              :     return _r;
     721              :   }
     722              : next_after_fail247:;
     723              :   return NULL_TREE;
     724              : }
     725              : 
     726              : tree
     727          700 : generic_simplify_151 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     728              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     729              :  const enum tree_code ARG_UNUSED (op))
     730              : {
     731          700 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     732          700 :   if (bitwise_equal_p (captures[4], captures[7])
     733              : )
     734              :     {
     735           40 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail254;
     736           40 :       {
     737           40 :         tree res_op0;
     738           40 :         {
     739           40 :           tree _o1[2], _r1;
     740           40 :           {
     741           40 :             tree _o2[2], _r2;
     742           40 :             _o2[0] = captures[5];
     743           40 :             {
     744           40 :               tree _o3[1], _r3;
     745           40 :               _o3[0] = captures[6];
     746           40 :               if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
     747              :                 {
     748            0 :                   _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
     749              :                 }
     750              :               else
     751              :                 _r3 = _o3[0];
     752           40 :               _o2[1] = _r3;
     753              :             }
     754           40 :             _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     755           40 :             _o1[0] = _r2;
     756              :           }
     757           40 :           {
     758           40 :             tree _o2[1], _r2;
     759           40 :             _o2[0] = captures[4];
     760           40 :             if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
     761              :               {
     762            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
     763              :               }
     764              :             else
     765              :               _r2 = _o2[0];
     766           40 :             _o1[1] = _r2;
     767              :           }
     768           40 :           _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     769           40 :           res_op0 = _r1;
     770              :         }
     771           40 :         tree _r;
     772           40 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     773           40 :         if (TREE_SIDE_EFFECTS (captures[7]))
     774            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
     775           40 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 204, __FILE__, __LINE__, true);
     776           40 :         return _r;
     777              :       }
     778            0 : next_after_fail254:;
     779              :     }
     780              :   return NULL_TREE;
     781              : }
     782              : 
     783              : tree
     784           25 : generic_simplify_163 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     785              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     786              :  const enum tree_code ARG_UNUSED (code2),
     787              :  const enum tree_code ARG_UNUSED (code1))
     788              : {
     789           25 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     790           25 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
     791            7 :  && TREE_CODE (captures[4]) == INTEGER_CST)
     792           25 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
     793           18 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
     794            0 :  && operand_equal_p (captures[2], captures[4]))
     795              : )
     796              :     {
     797            7 :       {
     798            7 :  int cmp = 0;
     799            7 :  if (TREE_CODE (captures[2]) == INTEGER_CST
     800            7 :  && TREE_CODE (captures[4]) == INTEGER_CST)
     801            7 :  cmp = tree_int_cst_compare (captures[2], captures[4]);
     802            7 :           if ((code1 == LT_EXPR || code1 == LE_EXPR)
     803            7 :  && (code2 == LT_EXPR || code2 == LE_EXPR)
     804              : )
     805              :             {
     806            7 :               if ((cmp < 0) || (cmp == 0 && code1 == LT_EXPR)
     807              : )
     808              :                 {
     809            7 :                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail282;
     810            7 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail282;
     811            7 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail282;
     812            7 :                   {
     813            7 :                     tree _r;
     814            7 :                     _r = captures[3];
     815            7 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 223, __FILE__, __LINE__, true);
     816            7 :                     return _r;
     817              :                   }
     818              : next_after_fail282:;
     819              :                 }
     820              :               else
     821              :                 {
     822            0 :                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail283;
     823            0 :                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail283;
     824            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail283;
     825            0 :                   {
     826            0 :                     tree _r;
     827            0 :                     _r = captures[0];
     828            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 224, __FILE__, __LINE__, true);
     829            0 :                     return _r;
     830              :                   }
     831              : next_after_fail283:;
     832              :                 }
     833              :             }
     834              :           else
     835              :             {
     836            0 :               if ((code1 == GT_EXPR || code1 == GE_EXPR)
     837            0 :  && (code2 == GT_EXPR || code2 == GE_EXPR)
     838              : )
     839              :                 {
     840            0 :                   if ((cmp > 0) || (cmp == 0 && code1 == GT_EXPR)
     841              : )
     842              :                     {
     843            0 :                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail284;
     844            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail284;
     845            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail284;
     846            0 :                       {
     847            0 :                         tree _r;
     848            0 :                         _r = captures[3];
     849            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 225, __FILE__, __LINE__, true);
     850            0 :                         return _r;
     851              :                       }
     852              : next_after_fail284:;
     853              :                     }
     854              :                   else
     855              :                     {
     856            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail285;
     857            0 :                       if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail285;
     858            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail285;
     859            0 :                       {
     860            0 :                         tree _r;
     861            0 :                         _r = captures[0];
     862            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 226, __FILE__, __LINE__, true);
     863            0 :                         return _r;
     864              :                       }
     865              : next_after_fail285:;
     866              :                     }
     867              :                 }
     868              :               else
     869              :                 {
     870            0 :                   if (cmp == 0
     871            0 :  && ((code1 == LT_EXPR && code2 == GT_EXPR)
     872            0 :  || (code1 == GT_EXPR && code2 == LT_EXPR))
     873              : )
     874              :                     {
     875            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail286;
     876            0 :                       if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail286;
     877            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail286;
     878            0 :                       {
     879            0 :                         tree res_op0;
     880            0 :                         res_op0 = captures[1];
     881            0 :                         tree res_op1;
     882            0 :                         res_op1 = captures[4];
     883            0 :                         tree _r;
     884            0 :                         _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
     885            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 227, __FILE__, __LINE__, true);
     886            0 :                         return _r;
     887              :                       }
     888              : next_after_fail286:;
     889              :                     }
     890              :                   else
     891              :                     {
     892            0 :                       if (cmp >= 0
     893            0 :  && (code1 == LT_EXPR || code1 == LE_EXPR)
     894            0 :  && (code2 == GT_EXPR || code2 == GE_EXPR)
     895              : )
     896              :                         {
     897            0 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail287;
     898            0 :                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail287;
     899            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail287;
     900            0 :                           {
     901            0 :                             tree _r;
     902            0 :                             _r =  constant_boolean_node (true, type);
     903            0 :                             if (TREE_SIDE_EFFECTS (captures[1]))
     904            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     905            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 228, __FILE__, __LINE__, true);
     906            0 :                             return _r;
     907              :                           }
     908              : next_after_fail287:;
     909              :                         }
     910              :                       else
     911              :                         {
     912            0 :                           if (cmp <= 0
     913            0 :  && (code1 == GT_EXPR || code1 == GE_EXPR)
     914            0 :  && (code2 == LT_EXPR || code2 == LE_EXPR)
     915              : )
     916              :                             {
     917            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail288;
     918            0 :                               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail288;
     919            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail288;
     920            0 :                               {
     921            0 :                                 tree _r;
     922            0 :                                 _r =  constant_boolean_node (true, type);
     923            0 :                                 if (TREE_SIDE_EFFECTS (captures[1]))
     924            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     925            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 229, __FILE__, __LINE__, true);
     926            0 :                                 return _r;
     927              :                               }
     928              : next_after_fail288:;
     929              :                             }
     930              :                         }
     931              :                     }
     932              :                 }
     933              :             }
     934              :       }
     935              :     }
     936              :   return NULL_TREE;
     937              : }
     938              : 
     939              : tree
     940            0 : generic_simplify_192 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     941              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     942              : {
     943            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     944            0 :   if (INTEGRAL_TYPE_P (type)
     945            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
     946            0 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
     947              : )
     948              :     {
     949            0 :       if (TYPE_UNSIGNED (type)
     950              : )
     951              :         {
     952            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail332;
     953            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail332;
     954            0 :           {
     955            0 :             tree res_op0;
     956            0 :             res_op0 = captures[0];
     957            0 :             tree _r;
     958            0 :             _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
     959            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 246, __FILE__, __LINE__, true);
     960            0 :             return _r;
     961              :           }
     962              : next_after_fail332:;
     963              :         }
     964              :       else
     965              :         {
     966            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail333;
     967            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail333;
     968            0 :           {
     969            0 :             tree res_op0;
     970            0 :             res_op0 = captures[0];
     971            0 :             tree _r;
     972            0 :             _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
     973            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 247, __FILE__, __LINE__, true);
     974            0 :             return _r;
     975              :           }
     976              : next_after_fail333:;
     977              :         }
     978              :     }
     979              :   return NULL_TREE;
     980              : }
     981              : 
     982              : tree
     983        42260 : generic_simplify_198 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     984              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     985              : {
     986        42260 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     987        42260 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail339;
     988        42260 :   {
     989        42260 :     tree res_op0;
     990        42260 :     res_op0 = captures[0];
     991        42260 :     tree _r;
     992        42260 :     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     993        42260 :     if (TREE_SIDE_EFFECTS (captures[2]))
     994            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     995        42260 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 252, __FILE__, __LINE__, true);
     996              :     return _r;
     997              :   }
     998            0 : next_after_fail339:;
     999            0 :   return NULL_TREE;
    1000              : }
    1001              : 
    1002              : tree
    1003            6 : generic_simplify_204 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1004              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1005              :  const combined_fn ARG_UNUSED (LDEXP))
    1006              : {
    1007            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1008            6 :   if (flag_unsafe_math_optimizations
    1009              : )
    1010              :     {
    1011            6 :       {
    1012            6 :  HOST_WIDE_INT tmp = 0;
    1013            6 :           if (real_isinteger (&TREE_REAL_CST (captures[0]), &tmp)
    1014            6 :  && tmp > 0 && pow2p_hwi (tmp)
    1015              : )
    1016              :             {
    1017            3 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail346;
    1018            3 :               {
    1019            3 :                 tree res_op0;
    1020            3 :                 res_op0 = captures[1];
    1021            3 :                 tree res_op1;
    1022            3 :                 {
    1023            3 :                   tree _o1[2], _r1;
    1024            3 :                   _o1[0] = build_int_cst (integer_type_node,
    1025            6 :  exact_log2 (tmp));
    1026            3 :                   _o1[1] = captures[2];
    1027            3 :                   _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1028            3 :                   res_op1 = _r1;
    1029              :                 }
    1030            3 :                 tree _r;
    1031            3 :                 _r = maybe_build_call_expr_loc (loc, LDEXP, type, 2, res_op0, res_op1);
    1032            3 :                 if (!_r)
    1033            0 :                   goto next_after_fail346;
    1034            3 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    1035            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1036            3 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 259, __FILE__, __LINE__, true);
    1037            3 :                 return _r;
    1038              :               }
    1039            3 : next_after_fail346:;
    1040              :             }
    1041              :       }
    1042              :     }
    1043              :   return NULL_TREE;
    1044              : }
    1045              : 
    1046              : tree
    1047        99503 : generic_simplify_214 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1048              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1049              :  const enum tree_code ARG_UNUSED (op))
    1050              : {
    1051        99503 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1052       199006 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    1053       197356 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
    1054        93673 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
    1055              :  && (CONSTANT_CLASS_P (captures[2]) || (single_use (captures[1]) && single_use (captures[0])))
    1056        98674 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    1057       296855 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    1058              : )
    1059              :     {
    1060        98665 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail359;
    1061        98665 :       {
    1062        98665 :         tree res_op0;
    1063        98665 :         res_op0 = captures[2];
    1064        98665 :         tree res_op1;
    1065        98665 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[2]));
    1066        98665 :         tree _r;
    1067        98665 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1068        98665 :         if (TREE_SIDE_EFFECTS (captures[3]))
    1069            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    1070        98665 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 267, __FILE__, __LINE__, true);
    1071        98665 :         return _r;
    1072              :       }
    1073            0 : next_after_fail359:;
    1074              :     }
    1075              :   return NULL_TREE;
    1076              : }
    1077              : 
    1078              : tree
    1079         9885 : generic_simplify_223 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1080              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1081              :  const enum tree_code ARG_UNUSED (op))
    1082              : {
    1083         9885 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1084         9885 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail382;
    1085         9885 :   {
    1086         9885 :     tree res_op0;
    1087         9885 :     res_op0 = captures[1];
    1088         9885 :     tree res_op1;
    1089         9885 :     res_op1 = captures[2];
    1090         9885 :     tree _r;
    1091         9885 :     _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1092         9885 :     if (TREE_SIDE_EFFECTS (captures[0]))
    1093            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1094         9885 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 294, __FILE__, __LINE__, true);
    1095              :     return _r;
    1096              :   }
    1097            0 : next_after_fail382:;
    1098            0 :   return NULL_TREE;
    1099              : }
    1100              : 
    1101              : tree
    1102        64752 : generic_simplify_229 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1103              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1104              :  const enum tree_code ARG_UNUSED (neeq))
    1105              : {
    1106        64752 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1107        64752 :   {
    1108        64752 :  poly_int64 diff; tree inner_type = TREE_TYPE (captures[1]);
    1109        64752 :       if (ptr_difference_const (captures[2], captures[0], &diff)
    1110              : )
    1111              :         {
    1112        16259 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail388;
    1113        16259 :           {
    1114        16259 :             tree res_op0;
    1115        16259 :             res_op0 =  build_int_cst_type (inner_type, diff);
    1116        16259 :             tree res_op1;
    1117        16259 :             res_op1 = captures[1];
    1118        16259 :             tree _r;
    1119        16259 :             _r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
    1120        16259 :             if (TREE_SIDE_EFFECTS (captures[0]))
    1121            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1122        16259 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1123            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1124        16259 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 299, __FILE__, __LINE__, true);
    1125        16259 :             return _r;
    1126              :           }
    1127            0 : next_after_fail388:;
    1128              :         }
    1129              :   }
    1130        48493 :   return NULL_TREE;
    1131              : }
    1132              : 
    1133              : tree
    1134            0 : generic_simplify_238 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1135              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1136              :  const enum tree_code ARG_UNUSED (cmp))
    1137              : {
    1138            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1139            0 :   {
    1140            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
    1141            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail399;
    1142            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail399;
    1143            0 :       {
    1144            0 :         tree res_op0;
    1145            0 :         {
    1146            0 :           tree _o1[2], _r1;
    1147            0 :           {
    1148            0 :             tree _o2[1], _r2;
    1149            0 :             _o2[0] = captures[0];
    1150            0 :             if (TREE_TYPE (_o2[0]) != utype)
    1151              :               {
    1152            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    1153              :               }
    1154              :             else
    1155              :               _r2 = _o2[0];
    1156            0 :             _o1[0] = _r2;
    1157              :           }
    1158            0 :           {
    1159            0 :             tree _o2[1], _r2;
    1160            0 :             _o2[0] = captures[1];
    1161            0 :             if (TREE_TYPE (_o2[0]) != utype)
    1162              :               {
    1163            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    1164              :               }
    1165              :             else
    1166              :               _r2 = _o2[0];
    1167            0 :             _o1[1] = _r2;
    1168              :           }
    1169            0 :           _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1170            0 :           res_op0 = _r1;
    1171              :         }
    1172            0 :         tree res_op1;
    1173            0 :         res_op1 =  build_zero_cst (utype);
    1174            0 :         tree _r;
    1175            0 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1176            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 310, __FILE__, __LINE__, true);
    1177              :         return _r;
    1178              :       }
    1179              : next_after_fail399:;
    1180              :   }
    1181              :   return NULL_TREE;
    1182              : }
    1183              : 
    1184              : tree
    1185            0 : generic_simplify_245 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1186              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1187              :  const enum tree_code ARG_UNUSED (rotate),
    1188              :  const enum tree_code ARG_UNUSED (invrot),
    1189              :  const enum tree_code ARG_UNUSED (cmp))
    1190              : {
    1191            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1192            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail416;
    1193            0 :   {
    1194            0 :     tree res_op0;
    1195            0 :     res_op0 = captures[0];
    1196            0 :     tree res_op1;
    1197            0 :     res_op1 = captures[2];
    1198            0 :     tree _r;
    1199            0 :     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1200            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    1201            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1202            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 327, __FILE__, __LINE__, true);
    1203              :     return _r;
    1204              :   }
    1205            0 : next_after_fail416:;
    1206            0 :   return NULL_TREE;
    1207              : }
    1208              : 
    1209              : tree
    1210           27 : generic_simplify_250 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1211              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1212              :  const enum tree_code ARG_UNUSED (cmp),
    1213              :  const combined_fn ARG_UNUSED (bswap))
    1214              : {
    1215           27 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1216           27 :   {
    1217           27 :  tree ctype = TREE_TYPE (captures[1]);
    1218           27 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail421;
    1219           27 :       {
    1220           27 :         tree res_op0;
    1221           27 :         {
    1222           27 :           tree _o1[1], _r1;
    1223           27 :           _o1[0] = captures[0];
    1224           27 :           if (TREE_TYPE (_o1[0]) != ctype)
    1225              :             {
    1226            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
    1227              :             }
    1228              :           else
    1229              :             _r1 = _o1[0];
    1230           27 :           res_op0 = _r1;
    1231              :         }
    1232           27 :         tree res_op1;
    1233           27 :         {
    1234           27 :           tree _o1[1], _r1;
    1235           27 :           _o1[0] = captures[1];
    1236           27 :           _r1 = maybe_build_call_expr_loc (loc, bswap, TREE_TYPE (_o1[0]), 1, _o1[0]);
    1237           27 :           if (!_r1)
    1238            0 :             goto next_after_fail421;
    1239           27 :           if (EXPR_P (_r1))
    1240           27 :             goto next_after_fail421;
    1241            0 :           res_op1 = _r1;
    1242              :         }
    1243            0 :         tree _r;
    1244            0 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1245            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 332, __FILE__, __LINE__, true);
    1246              :         return _r;
    1247              :       }
    1248              : next_after_fail421:;
    1249              :   }
    1250              :   return NULL_TREE;
    1251              : }
    1252              : 
    1253              : tree
    1254           24 : generic_simplify_261 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1255              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1256              :  const enum tree_code ARG_UNUSED (cmp))
    1257              : {
    1258           24 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1259           24 :   if (single_use (captures[1]) && single_use (captures[3])
    1260              : )
    1261              :     {
    1262           24 :       {
    1263           24 :  tree otype = TREE_TYPE (captures[0]);
    1264           24 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail438;
    1265           24 :           {
    1266           24 :             tree res_op0;
    1267           24 :             {
    1268           24 :               tree _o1[1], _r1;
    1269           24 :               _o1[0] = captures[4];
    1270           24 :               if (TREE_TYPE (_o1[0]) != otype)
    1271              :                 {
    1272            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
    1273              :                 }
    1274              :               else
    1275              :                 _r1 = _o1[0];
    1276           24 :               res_op0 = _r1;
    1277              :             }
    1278           24 :             tree res_op1;
    1279           24 :             {
    1280           24 :               tree _o1[1], _r1;
    1281           24 :               _o1[0] = captures[2];
    1282           24 :               if (TREE_TYPE (_o1[0]) != otype)
    1283              :                 {
    1284            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
    1285              :                 }
    1286              :               else
    1287              :                 _r1 = _o1[0];
    1288           24 :               res_op1 = _r1;
    1289              :             }
    1290           24 :             tree _r;
    1291           24 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1292           24 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 346, __FILE__, __LINE__, true);
    1293           24 :             return _r;
    1294              :           }
    1295            0 : next_after_fail438:;
    1296              :       }
    1297              :     }
    1298            0 :   return NULL_TREE;
    1299              : }
    1300              : 
    1301              : tree
    1302         1263 : generic_simplify_267 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1303              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1304              :  const enum tree_code ARG_UNUSED (cmp),
    1305              :  const enum tree_code ARG_UNUSED (icmp))
    1306              : {
    1307         1263 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1308         1263 :   if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1309         1263 :  && ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1310              : )
    1311              :     {
    1312         1263 :       {
    1313         1263 :  format_helper fmt (REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (captures[0]))));
    1314         1263 :  tree type1 = TREE_TYPE (captures[1]);
    1315         1263 :  bool type1_signed_p = TYPE_SIGN (type1) == SIGNED;
    1316         1263 :  bool type1_ok = fmt.can_represent_integral_type_p (type1);
    1317         1263 :  tree type2 = TREE_TYPE (captures[3]);
    1318         1263 :  bool type2_signed_p = TYPE_SIGN (type2) == SIGNED;
    1319         1263 :  bool type2_ok = fmt.can_represent_integral_type_p (type2);
    1320         1263 :           if (type1_ok && type2_ok
    1321              : )
    1322              :             {
    1323          229 :               if (cmp == ORDERED_EXPR || cmp == UNORDERED_EXPR
    1324              : )
    1325              :                 {
    1326            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail476;
    1327            0 :                   {
    1328            0 :                     tree _r;
    1329            0 :                     _r =  constant_boolean_node (cmp == ORDERED_EXPR, type);
    1330            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1331            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1332            0 :                     if (TREE_SIDE_EFFECTS (captures[3]))
    1333            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    1334            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 385, __FILE__, __LINE__, true);
    1335          183 :                     return _r;
    1336              :                   }
    1337            0 : next_after_fail476:;
    1338              :                 }
    1339              :               else
    1340              :                 {
    1341          229 :                   if (TYPE_PRECISION (type1) > TYPE_PRECISION (type2)
    1342          229 :  && type1_signed_p >= type2_signed_p
    1343              : )
    1344              :                     {
    1345            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail477;
    1346            0 :                       {
    1347            0 :                         tree res_op0;
    1348            0 :                         res_op0 = captures[1];
    1349            0 :                         tree res_op1;
    1350            0 :                         {
    1351            0 :                           tree _o1[1], _r1;
    1352            0 :                           _o1[0] = captures[3];
    1353            0 :                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1354              :                             {
    1355            0 :                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1356              :                             }
    1357              :                           else
    1358              :                             _r1 = _o1[0];
    1359            0 :                           res_op1 = _r1;
    1360              :                         }
    1361            0 :                         tree _r;
    1362            0 :                         _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1363            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 386, __FILE__, __LINE__, true);
    1364            0 :                         return _r;
    1365              :                       }
    1366            0 : next_after_fail477:;
    1367              :                     }
    1368              :                   else
    1369              :                     {
    1370          229 :                       if (TYPE_PRECISION (type1) < TYPE_PRECISION (type2)
    1371          229 :  && type1_signed_p <= type2_signed_p
    1372              : )
    1373              :                         {
    1374            7 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail478;
    1375            7 :                           {
    1376            7 :                             tree res_op0;
    1377            7 :                             {
    1378            7 :                               tree _o1[1], _r1;
    1379            7 :                               _o1[0] = captures[1];
    1380            7 :                               if (TREE_TYPE (_o1[0]) != type2)
    1381              :                                 {
    1382            7 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type2, _o1[0]);
    1383              :                                 }
    1384              :                               else
    1385              :                                 _r1 = _o1[0];
    1386            7 :                               res_op0 = _r1;
    1387              :                             }
    1388            7 :                             tree res_op1;
    1389            7 :                             res_op1 = captures[3];
    1390            7 :                             tree _r;
    1391            7 :                             _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1392            7 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 387, __FILE__, __LINE__, true);
    1393            7 :                             return _r;
    1394              :                           }
    1395            0 : next_after_fail478:;
    1396              :                         }
    1397              :                       else
    1398              :                         {
    1399          222 :                           if (TYPE_PRECISION (type1) == TYPE_PRECISION (type2)
    1400          222 :  && type1_signed_p == type2_signed_p
    1401              : )
    1402              :                             {
    1403          176 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail479;
    1404          176 :                               {
    1405          176 :                                 tree res_op0;
    1406          176 :                                 res_op0 = captures[1];
    1407          176 :                                 tree res_op1;
    1408          176 :                                 {
    1409          176 :                                   tree _o1[1], _r1;
    1410          176 :                                   _o1[0] = captures[3];
    1411          176 :                                   if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1412              :                                     {
    1413            1 :                                       _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1414              :                                     }
    1415              :                                   else
    1416              :                                     _r1 = _o1[0];
    1417          176 :                                   res_op1 = _r1;
    1418              :                                 }
    1419          176 :                                 tree _r;
    1420          176 :                                 _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1421          176 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 388, __FILE__, __LINE__, true);
    1422          176 :                                 return _r;
    1423              :                               }
    1424            0 : next_after_fail479:;
    1425              :                             }
    1426              :                         }
    1427              :                     }
    1428              :                 }
    1429              :             }
    1430              :       }
    1431              :     }
    1432              :   return NULL_TREE;
    1433              : }
    1434              : 
    1435              : tree
    1436          451 : generic_simplify_280 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1437              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1438              :  const enum tree_code ARG_UNUSED (cmp))
    1439              : {
    1440          451 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1441          451 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail515;
    1442          451 :   {
    1443          451 :     tree res_op0;
    1444          451 :     {
    1445          451 :       tree _o1[2], _r1;
    1446          451 :       _o1[0] = captures[0];
    1447          451 :       {
    1448          451 :         tree _o2[1], _r2;
    1449          451 :         _o2[0] = captures[1];
    1450          451 :         _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    1451          451 :         if (EXPR_P (_r2))
    1452          443 :           goto next_after_fail515;
    1453            8 :         _o1[1] = _r2;
    1454              :       }
    1455            8 :       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1456            8 :       res_op0 = _r1;
    1457              :     }
    1458            8 :     tree res_op1;
    1459            8 :     res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    1460            8 :     tree _r;
    1461            8 :     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1462            8 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 416, __FILE__, __LINE__, true);
    1463              :     return _r;
    1464              :   }
    1465              : next_after_fail515:;
    1466              :   return NULL_TREE;
    1467              : }
    1468              : 
    1469              : tree
    1470        38521 : generic_simplify_283 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1471              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1472              :  const enum tree_code ARG_UNUSED (cmp))
    1473              : {
    1474        38521 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1475        38521 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail518;
    1476        38521 :   {
    1477        38521 :     tree res_op0;
    1478        38521 :     {
    1479        38521 :       tree _o1[2], _r1;
    1480        38521 :       {
    1481        38521 :         tree _o2[2], _r2;
    1482        38521 :         _o2[0] = captures[1];
    1483        38521 :         _o2[1] = captures[4];
    1484        38521 :         _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1485        38521 :         _o1[0] = _r2;
    1486              :       }
    1487        38521 :       _o1[1] = captures[2];
    1488        38521 :       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1489        38521 :       res_op0 = _r1;
    1490              :     }
    1491        38521 :     tree res_op1;
    1492        38521 :     res_op1 =  build_zero_cst (TREE_TYPE (captures[2]));
    1493        38521 :     tree _r;
    1494        38521 :     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1495        38521 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 419, __FILE__, __LINE__, true);
    1496              :     return _r;
    1497              :   }
    1498            0 : next_after_fail518:;
    1499            0 :   return NULL_TREE;
    1500              : }
    1501              : 
    1502              : tree
    1503            0 : generic_simplify_290 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1504              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1505              :  const enum tree_code ARG_UNUSED (cmp))
    1506              : {
    1507            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1508            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail525;
    1509            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail525;
    1510            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail525;
    1511            0 :   {
    1512            0 :     tree res_op0;
    1513            0 :     res_op0 = captures[0];
    1514            0 :     tree res_op1;
    1515            0 :     res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    1516            0 :     tree _r;
    1517            0 :     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1518            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 424, __FILE__, __LINE__, true);
    1519              :     return _r;
    1520              :   }
    1521              : next_after_fail525:;
    1522              :   return NULL_TREE;
    1523              : }
    1524              : 
    1525              : tree
    1526     54045605 : generic_simplify_293 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1527              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1528              :  const enum tree_code ARG_UNUSED (neeq))
    1529              : {
    1530     54045605 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1531     96458742 :   if (POINTER_TYPE_P (TREE_TYPE (captures[0]))
    1532     54056022 :  && ptrs_compare_unequal (captures[0], captures[1])
    1533              : )
    1534              :     {
    1535        12290 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail542;
    1536        12290 :       {
    1537        12290 :         tree _r;
    1538        12290 :         _r =  constant_boolean_node (neeq != EQ_EXPR, type);
    1539        12290 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1540            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1541        12290 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1542            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1543        12290 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 433, __FILE__, __LINE__, true);
    1544        12290 :         return _r;
    1545              :       }
    1546            0 : next_after_fail542:;
    1547              :     }
    1548              :   return NULL_TREE;
    1549              : }
    1550              : 
    1551              : tree
    1552      1071681 : generic_simplify_297 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1553              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1554              :  const enum tree_code ARG_UNUSED (op),
    1555              :  const enum tree_code ARG_UNUSED (rop),
    1556              :  const enum tree_code ARG_UNUSED (cmp))
    1557              : {
    1558      1071681 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1559      2143362 :   if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3])
    1560      1071673 :  && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
    1561      1071358 :  && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[1]))
    1562      2142891 :  && !TYPE_SATURATING (TREE_TYPE (captures[1]))
    1563              : )
    1564              :     {
    1565      1071210 :       {
    1566      1071210 :  tree res = int_const_binop (rop, captures[3], captures[2]);
    1567      1071210 :           if (TREE_OVERFLOW (res)
    1568      1071210 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    1569              : )
    1570              :             {
    1571         7554 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail550;
    1572         7554 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail550;
    1573         7554 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail550;
    1574         7554 :               {
    1575         7554 :                 tree _r;
    1576         7554 :                 _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1577         7554 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    1578            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1579         7554 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 441, __FILE__, __LINE__, true);
    1580         7554 :                 return _r;
    1581              :               }
    1582              : next_after_fail550:;
    1583              :             }
    1584              :           else
    1585              :             {
    1586      1063656 :               if (single_use (captures[0]) || wi::to_wide (res) == 0
    1587              : )
    1588              :                 {
    1589      1063656 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail551;
    1590      1063656 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail551;
    1591      1063656 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail551;
    1592      1063656 :                   {
    1593      1063656 :                     tree res_op0;
    1594      1063656 :                     res_op0 = captures[1];
    1595      1063656 :                     tree res_op1;
    1596      1063656 :                     res_op1 =  TREE_OVERFLOW (res)
    1597      1063656 :  ? drop_tree_overflow (res) : res;
    1598      1063656 :                     tree _r;
    1599      1063656 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1600      1063656 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 442, __FILE__, __LINE__, true);
    1601      1063656 :                     return _r;
    1602              :                   }
    1603              : next_after_fail551:;
    1604              :                 }
    1605              :             }
    1606              :       }
    1607              :     }
    1608              :   return NULL_TREE;
    1609              : }
    1610              : 
    1611              : tree
    1612            0 : generic_simplify_300 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1613              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1614              :  const enum tree_code ARG_UNUSED (op),
    1615              :  const enum tree_code ARG_UNUSED (cmp))
    1616              : {
    1617            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1618            0 :   if (integer_zerop (captures[3]) && single_use (captures[0])
    1619              : )
    1620              :     {
    1621            0 :       {
    1622            0 :  tree type0 = TREE_TYPE (captures[1]);
    1623            0 :  tree stype = signed_type_for (TREE_TYPE (captures[1]));
    1624            0 :  if (integer_zerop (captures[2]))
    1625              :  stype = NULL_TREE;
    1626            0 :           if (stype
    1627              : )
    1628              :             {
    1629            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail563;
    1630            0 :               {
    1631            0 :                 tree res_op0;
    1632            0 :                 {
    1633            0 :                   tree _o1[1], _r1;
    1634            0 :                   _o1[0] = captures[1];
    1635            0 :                   if (TREE_TYPE (_o1[0]) != stype)
    1636              :                     {
    1637            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
    1638              :                     }
    1639              :                   else
    1640              :                     _r1 = _o1[0];
    1641            0 :                   res_op0 = _r1;
    1642              :                 }
    1643            0 :                 tree res_op1;
    1644            0 :                 res_op1 =  build_zero_cst (stype);
    1645            0 :                 tree _r;
    1646            0 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1647            0 :                 if (TREE_SIDE_EFFECTS (captures[2]))
    1648            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1649            0 :                 if (TREE_SIDE_EFFECTS (captures[3]))
    1650            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    1651            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 454, __FILE__, __LINE__, true);
    1652            0 :                 return _r;
    1653              :               }
    1654            0 : next_after_fail563:;
    1655              :             }
    1656              :       }
    1657              :     }
    1658              :   else
    1659              :     {
    1660            0 :       {
    1661            0 :  bool ok = true;
    1662            0 :  tree type0 = TREE_TYPE (captures[1]);
    1663            0 :  if (wi::to_widest (captures[2]) == TYPE_PRECISION (type0) - 1)
    1664              :  ok = false;
    1665            0 :           if (ok && wi::to_wide (captures[3]) == (TYPE_PRECISION (type0) - 1)
    1666              : )
    1667              :             {
    1668            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail564;
    1669            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail564;
    1670            0 :               {
    1671            0 :                 tree res_op0;
    1672            0 :                 res_op0 = captures[1];
    1673            0 :                 tree res_op1;
    1674            0 :                 res_op1 =  build_one_cst (type0);
    1675            0 :                 tree _r;
    1676            0 :                 _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1677            0 :                 if (TREE_SIDE_EFFECTS (captures[3]))
    1678            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    1679            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 455, __FILE__, __LINE__, true);
    1680            0 :                 return _r;
    1681              :               }
    1682              : next_after_fail564:;
    1683              :             }
    1684              :       }
    1685              :     }
    1686              :   return NULL_TREE;
    1687              : }
    1688              : 
    1689              : tree
    1690            0 : generic_simplify_309 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1691              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1692              :  const combined_fn ARG_UNUSED (COPYSIGN_ALL))
    1693              : {
    1694            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1695            0 :   if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[0]))
    1696              : )
    1697              :     {
    1698            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail578;
    1699            0 :       {
    1700            0 :         tree res_op0;
    1701            0 :         {
    1702            0 :           tree _o1[1], _r1;
    1703            0 :           _o1[0] = captures[0];
    1704            0 :           _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    1705            0 :           res_op0 = _r1;
    1706              :         }
    1707            0 :         tree res_op1;
    1708            0 :         res_op1 = captures[1];
    1709            0 :         tree _r;
    1710            0 :         _r = maybe_build_call_expr_loc (loc, COPYSIGN_ALL, type, 2, res_op0, res_op1);
    1711            0 :         if (!_r)
    1712            0 :           goto next_after_fail578;
    1713            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 469, __FILE__, __LINE__, true);
    1714            0 :         return _r;
    1715              :       }
    1716              : next_after_fail578:;
    1717              :     }
    1718              :   return NULL_TREE;
    1719              : }
    1720              : 
    1721              : tree
    1722            0 : generic_simplify_314 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1723              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1724              :  const combined_fn ARG_UNUSED (COPYSIGN_ALL))
    1725              : {
    1726            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1727            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail583;
    1728            0 :   {
    1729            0 :     tree res_op0;
    1730            0 :     res_op0 = captures[0];
    1731            0 :     tree _r;
    1732            0 :     _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    1733            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    1734            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1735            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 474, __FILE__, __LINE__, true);
    1736              :     return _r;
    1737              :   }
    1738            0 : next_after_fail583:;
    1739            0 :   return NULL_TREE;
    1740              : }
    1741              : 
    1742              : tree
    1743            1 : generic_simplify_322 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1744              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1745              :  const enum tree_code ARG_UNUSED (div))
    1746              : {
    1747            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1748            0 :   if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type))
    1749            1 :  && TYPE_OVERFLOW_UNDEFINED (type)
    1750            1 :  && !integer_zerop (captures[0])
    1751            2 :  && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
    1752              : )
    1753              :     {
    1754            1 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail593;
    1755            1 :       {
    1756            1 :         tree _r;
    1757            1 :         _r =  build_minus_one_cst (type);
    1758            1 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1759            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1760            1 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 482, __FILE__, __LINE__, true);
    1761            1 :         return _r;
    1762              :       }
    1763            0 : next_after_fail593:;
    1764              :     }
    1765              :   return NULL_TREE;
    1766              : }
    1767              : 
    1768              : tree
    1769            3 : generic_simplify_327 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1770              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1771              :  const enum tree_code ARG_UNUSED (div))
    1772              : {
    1773            3 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1774            3 :   if (INTEGRAL_TYPE_P (type)
    1775            3 :  && wi::multiple_of_p (wi::to_widest (captures[2]), wi::to_widest (captures[3]), SIGNED)
    1776              : )
    1777              :     {
    1778            3 :       if (TYPE_OVERFLOW_UNDEFINED (type) && !TYPE_OVERFLOW_SANITIZED (type)
    1779              : )
    1780              :         {
    1781            3 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail599;
    1782            3 :           {
    1783            3 :             tree res_op0;
    1784            3 :             res_op0 = captures[2];
    1785            3 :             tree res_op1;
    1786            3 :             res_op1 = captures[3];
    1787            3 :             tree _r;
    1788            3 :             _r = fold_build2_loc (loc, div, type, res_op0, res_op1);
    1789            3 :             if (TREE_SIDE_EFFECTS (captures[1]))
    1790            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1791            3 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 488, __FILE__, __LINE__, true);
    1792            3 :             return _r;
    1793              :           }
    1794            0 : next_after_fail599:;
    1795              :         }
    1796              :     }
    1797              :   return NULL_TREE;
    1798              : }
    1799              : 
    1800              : tree
    1801            0 : generic_simplify_337 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1802              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    1803              : {
    1804            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1805            0 :   if (SCALAR_FLOAT_TYPE_P (type)
    1806            0 :  && ! HONOR_NANS (type)
    1807            0 :  && ! HONOR_INFINITIES (type)
    1808              : )
    1809              :     {
    1810            0 :       if (types_match (type, float_type_node)
    1811              : )
    1812              :         {
    1813            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail609;
    1814            0 :           {
    1815            0 :             tree res_op0;
    1816            0 :             res_op0 =  build_one_cst (type);
    1817            0 :             tree res_op1;
    1818            0 :             {
    1819            0 :               tree _o1[1], _r1;
    1820            0 :               _o1[0] = captures[0];
    1821            0 :               if (TREE_TYPE (_o1[0]) != type)
    1822              :                 {
    1823            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    1824              :                 }
    1825              :               else
    1826              :                 _r1 = _o1[0];
    1827            0 :               res_op1 = _r1;
    1828              :             }
    1829            0 :             tree _r;
    1830            0 :             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNF, type, 2, res_op0, res_op1);
    1831            0 :             if (!_r)
    1832            0 :               goto next_after_fail609;
    1833            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 498, __FILE__, __LINE__, true);
    1834            0 :             return _r;
    1835              :           }
    1836              : next_after_fail609:;
    1837              :         }
    1838              :       else
    1839              :         {
    1840            0 :           if (types_match (type, double_type_node)
    1841              : )
    1842              :             {
    1843            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail610;
    1844            0 :               {
    1845            0 :                 tree res_op0;
    1846            0 :                 res_op0 =  build_one_cst (type);
    1847            0 :                 tree res_op1;
    1848            0 :                 {
    1849            0 :                   tree _o1[1], _r1;
    1850            0 :                   _o1[0] = captures[0];
    1851            0 :                   if (TREE_TYPE (_o1[0]) != type)
    1852              :                     {
    1853            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    1854              :                     }
    1855              :                   else
    1856              :                     _r1 = _o1[0];
    1857            0 :                   res_op1 = _r1;
    1858              :                 }
    1859            0 :                 tree _r;
    1860            0 :                 _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGN, type, 2, res_op0, res_op1);
    1861            0 :                 if (!_r)
    1862            0 :                   goto next_after_fail610;
    1863            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 499, __FILE__, __LINE__, true);
    1864            0 :                 return _r;
    1865              :               }
    1866              : next_after_fail610:;
    1867              :             }
    1868              :           else
    1869              :             {
    1870            0 :               if (types_match (type, long_double_type_node)
    1871              : )
    1872              :                 {
    1873            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail611;
    1874            0 :                   {
    1875            0 :                     tree res_op0;
    1876            0 :                     res_op0 =  build_one_cst (type);
    1877            0 :                     tree res_op1;
    1878            0 :                     {
    1879            0 :                       tree _o1[1], _r1;
    1880            0 :                       _o1[0] = captures[0];
    1881            0 :                       if (TREE_TYPE (_o1[0]) != type)
    1882              :                         {
    1883            0 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    1884              :                         }
    1885              :                       else
    1886              :                         _r1 = _o1[0];
    1887            0 :                       res_op1 = _r1;
    1888              :                     }
    1889            0 :                     tree _r;
    1890            0 :                     _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNL, type, 2, res_op0, res_op1);
    1891            0 :                     if (!_r)
    1892            0 :                       goto next_after_fail611;
    1893            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 500, __FILE__, __LINE__, true);
    1894            0 :                     return _r;
    1895              :                   }
    1896              : next_after_fail611:;
    1897              :                 }
    1898              :             }
    1899              :         }
    1900              :     }
    1901              :   return NULL_TREE;
    1902              : }
    1903              : 
    1904              : tree
    1905            0 : generic_simplify_357 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1906              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1907              :  const enum tree_code ARG_UNUSED (op))
    1908              : {
    1909            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1910            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail637;
    1911            0 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail637;
    1912            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail637;
    1913            0 :   {
    1914            0 :     tree _r;
    1915            0 :     _r = captures[2];
    1916            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 526, __FILE__, __LINE__, true);
    1917              :     return _r;
    1918              :   }
    1919              : next_after_fail637:;
    1920              :   return NULL_TREE;
    1921              : }
    1922              : 
    1923              : tree
    1924            0 : generic_simplify_361 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1925              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1926              :  const enum tree_code ARG_UNUSED (op))
    1927              : {
    1928            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1929            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail641;
    1930            0 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail641;
    1931            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail641;
    1932            0 :   {
    1933            0 :     tree _r;
    1934            0 :     _r = captures[2];
    1935            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 530, __FILE__, __LINE__, true);
    1936              :     return _r;
    1937              :   }
    1938              : next_after_fail641:;
    1939              :   return NULL_TREE;
    1940              : }
    1941              : 
    1942              : tree
    1943            0 : generic_simplify_368 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1944              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    1945              : {
    1946            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1947            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail648;
    1948            0 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail648;
    1949            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail648;
    1950            0 :   {
    1951            0 :     tree _r;
    1952            0 :     _r = captures[2];
    1953            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 537, __FILE__, __LINE__, true);
    1954              :     return _r;
    1955              :   }
    1956              : next_after_fail648:;
    1957              :   return NULL_TREE;
    1958              : }
    1959              : 
    1960              : tree
    1961            0 : generic_simplify_374 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1962              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1963              :  const combined_fn ARG_UNUSED (func))
    1964              : {
    1965            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1966            0 :   if (wi::to_widest (captures[4]) == TYPE_PRECISION (TREE_TYPE (captures[3])) - 1
    1967              : )
    1968              :     {
    1969            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail655;
    1970            0 :       if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail655;
    1971            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail655;
    1972            0 :       {
    1973            0 :         tree _r;
    1974            0 :         _r = captures[2];
    1975            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1976            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1977            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 544, __FILE__, __LINE__, true);
    1978            0 :         return _r;
    1979              :       }
    1980              : next_after_fail655:;
    1981              :     }
    1982              :   return NULL_TREE;
    1983              : }
    1984              : 
    1985              : tree
    1986        20050 : generic_simplify_382 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1987              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1988              :  const enum tree_code ARG_UNUSED (cmp))
    1989              : {
    1990        20050 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1991        40100 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1992        40039 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    1993              : )
    1994              :     {
    1995        16589 :       if (tree_expr_nonnegative_p (captures[1]) && tree_expr_nonzero_p (captures[1])
    1996              : )
    1997              :         {
    1998        13022 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail666;
    1999        13022 :           {
    2000        13022 :             tree res_op0;
    2001        13022 :             res_op0 = captures[0];
    2002        13022 :             tree res_op1;
    2003        13022 :             res_op1 = captures[2];
    2004        13022 :             tree _r;
    2005        13022 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2006        13022 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2007            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2008        13022 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 553, __FILE__, __LINE__, true);
    2009        13022 :             return _r;
    2010              :           }
    2011            0 : next_after_fail666:;
    2012              :         }
    2013              :       else
    2014              :         {
    2015         3567 :           if (TREE_CODE (captures[1]) == INTEGER_CST
    2016         3567 :  && wi::neg_p (wi::to_wide (captures[1]), TYPE_SIGN (TREE_TYPE (captures[1])))
    2017              : )
    2018              :             {
    2019         1107 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail667;
    2020         1107 :               {
    2021         1107 :                 tree res_op0;
    2022         1107 :                 res_op0 = captures[2];
    2023         1107 :                 tree res_op1;
    2024         1107 :                 res_op1 = captures[0];
    2025         1107 :                 tree _r;
    2026         1107 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2027         1107 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    2028            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2029         1107 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 554, __FILE__, __LINE__, true);
    2030         1107 :                 return _r;
    2031              :               }
    2032            0 : next_after_fail667:;
    2033              :             }
    2034              :         }
    2035              :     }
    2036              :   return NULL_TREE;
    2037              : }
    2038              : 
    2039              : tree
    2040      9609201 : generic_simplify_395 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2041              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2042              :  const enum tree_code ARG_UNUSED (cmp),
    2043              :  const enum tree_code ARG_UNUSED (acmp))
    2044              : {
    2045      9609201 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2046      9609201 :   {
    2047      9609201 :  tree cst = uniform_integer_cst_p (captures[1]);
    2048      9609201 :       if (tree_int_cst_sgn (cst) == 1
    2049              : )
    2050              :         {
    2051      3934787 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail681;
    2052      3934787 :           {
    2053      3934787 :             tree res_op0;
    2054      3934787 :             res_op0 = captures[0];
    2055      3934787 :             tree res_op1;
    2056      3934787 :             res_op1 =  build_uniform_cst (TREE_TYPE (captures[1]),
    2057      3934787 :  wide_int_to_tree (TREE_TYPE (cst),
    2058      3934787 :  wi::to_wide (cst) - 1));
    2059      3934787 :             tree _r;
    2060      3934787 :             _r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
    2061      3934787 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2062            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2063      3934787 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 568, __FILE__, __LINE__, true);
    2064      3934787 :             return _r;
    2065              :           }
    2066            0 : next_after_fail681:;
    2067              :         }
    2068              :   }
    2069              :   return NULL_TREE;
    2070              : }
    2071              : 
    2072              : tree
    2073            0 : generic_simplify_405 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2074              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2075              :  const enum tree_code ARG_UNUSED (cmp),
    2076              :  const enum tree_code ARG_UNUSED (out))
    2077              : {
    2078            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2079            0 :   if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    2080            0 :  && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    2081              : )
    2082              :     {
    2083            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail723;
    2084            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail723;
    2085            0 :       {
    2086            0 :         tree res_op0;
    2087            0 :         {
    2088            0 :           tree _o1[1], _r1;
    2089            0 :           _o1[0] = captures[0];
    2090            0 :           _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
    2091            0 :           res_op0 = _r1;
    2092              :         }
    2093            0 :         tree res_op1;
    2094            0 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
    2095            0 :         tree _r;
    2096            0 :         _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
    2097            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 593, __FILE__, __LINE__, true);
    2098            0 :         return _r;
    2099              :       }
    2100              : next_after_fail723:;
    2101              :     }
    2102              :   return NULL_TREE;
    2103              : }
    2104              : 
    2105              : tree
    2106     20316733 : generic_simplify_412 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2107              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2108              :  const enum tree_code ARG_UNUSED (cmp),
    2109              :  const enum tree_code ARG_UNUSED (acmp))
    2110              : {
    2111     20316733 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2112     20316733 :   {
    2113     20316733 :  tree cst = uniform_integer_cst_p (captures[1]);
    2114     20316733 :       if (tree_int_cst_sgn (cst) == -1
    2115              : )
    2116              :         {
    2117       178042 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail737;
    2118       178042 :           {
    2119       178042 :             tree res_op0;
    2120       178042 :             res_op0 = captures[0];
    2121       178042 :             tree res_op1;
    2122       178042 :             res_op1 =  build_uniform_cst (TREE_TYPE (captures[1]),
    2123       178042 :  wide_int_to_tree (TREE_TYPE (cst),
    2124       178042 :  wi::to_wide (cst)
    2125       356084 :  + 1));
    2126       178042 :             tree _r;
    2127       178042 :             _r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
    2128       178042 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2129            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2130       178042 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 607, __FILE__, __LINE__, true);
    2131       178042 :             return _r;
    2132              :           }
    2133            0 : next_after_fail737:;
    2134              :         }
    2135              :   }
    2136              :   return NULL_TREE;
    2137              : }
    2138              : 
    2139              : tree
    2140            0 : generic_simplify_415 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2141              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2142              :  const enum tree_code ARG_UNUSED (cmp),
    2143              :  const enum tree_code ARG_UNUSED (out))
    2144              : {
    2145            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2146            0 :   if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    2147            0 :  && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    2148              : )
    2149              :     {
    2150            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail740;
    2151            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail740;
    2152            0 :       {
    2153            0 :         tree res_op0;
    2154            0 :         {
    2155            0 :           tree _o1[1], _r1;
    2156            0 :           _o1[0] = captures[0];
    2157            0 :           _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
    2158            0 :           res_op0 = _r1;
    2159              :         }
    2160            0 :         tree res_op1;
    2161            0 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
    2162            0 :         tree _r;
    2163            0 :         _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
    2164            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 592, __FILE__, __LINE__, true);
    2165            0 :         return _r;
    2166              :       }
    2167              : next_after_fail740:;
    2168              :     }
    2169              :   return NULL_TREE;
    2170              : }
    2171              : 
    2172              : tree
    2173            0 : generic_simplify_419 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2174              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2175              :  const combined_fn ARG_UNUSED (logs),
    2176              :  const combined_fn ARG_UNUSED (exps),
    2177              :  const enum tree_code ARG_UNUSED (cmp))
    2178              : {
    2179            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2180            0 :   if (flag_unsafe_math_optimizations
    2181              : )
    2182              :     {
    2183            0 :       if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
    2184            0 :  && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
    2185            0 :  && ! flag_trapping_math
    2186            0 :  && ! flag_errno_math
    2187              : )
    2188              :         {
    2189            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail744;
    2190            0 :           {
    2191            0 :             tree res_op0;
    2192            0 :             res_op0 = captures[1];
    2193            0 :             tree res_op1;
    2194            0 :             {
    2195            0 :               tree _o1[1], _r1;
    2196            0 :               _o1[0] = captures[2];
    2197            0 :               _r1 = maybe_build_call_expr_loc (loc, exps, TREE_TYPE (_o1[0]), 1, _o1[0]);
    2198            0 :               if (!_r1)
    2199            0 :                 goto next_after_fail744;
    2200            0 :               if (EXPR_P (_r1))
    2201            0 :                 goto next_after_fail744;
    2202            0 :               res_op1 = _r1;
    2203              :             }
    2204            0 :             tree _r;
    2205            0 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2206            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 610, __FILE__, __LINE__, true);
    2207            0 :             return _r;
    2208              :           }
    2209              : next_after_fail744:;
    2210              :         }
    2211              :     }
    2212              :   return NULL_TREE;
    2213              : }
    2214              : 
    2215              : tree
    2216         2848 : generic_simplify_426 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2217              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2218              :  const enum tree_code ARG_UNUSED (shiftrotate))
    2219              : {
    2220         2848 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2221         2848 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail755;
    2222         2848 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail755;
    2223         2848 :   {
    2224         2848 :     tree res_op0;
    2225         2848 :     res_op0 = captures[0];
    2226         2848 :     tree _r;
    2227         2848 :     _r = non_lvalue_loc (loc, res_op0);
    2228         2848 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 621, __FILE__, __LINE__, true);
    2229              :     return _r;
    2230              :   }
    2231              : next_after_fail755:;
    2232              :   return NULL_TREE;
    2233              : }
    2234              : 
    2235              : tree
    2236        28071 : generic_simplify_432 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2237              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2238              :  const enum tree_code ARG_UNUSED (bit_op),
    2239              :  const enum tree_code ARG_UNUSED (shift))
    2240              : {
    2241        28071 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2242        28071 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
    2243              : )
    2244              :     {
    2245        28071 :       {
    2246        28071 :  tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
    2247        28071 :           if (mask
    2248              : )
    2249              :             {
    2250        28064 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail764;
    2251        28064 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail764;
    2252        28064 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail764;
    2253        28064 :               {
    2254        28064 :                 tree res_op0;
    2255        28064 :                 {
    2256        28064 :                   tree _o1[2], _r1;
    2257        28064 :                   {
    2258        28064 :                     tree _o2[1], _r2;
    2259        28064 :                     _o2[0] = captures[2];
    2260        28064 :                     if (TREE_TYPE (_o2[0]) != type)
    2261              :                       {
    2262           70 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
    2263              :                       }
    2264              :                     else
    2265              :                       _r2 = _o2[0];
    2266        28064 :                     _o1[0] = _r2;
    2267              :                   }
    2268        28064 :                   _o1[1] = captures[4];
    2269        28064 :                   _r1 = fold_build2_loc (loc, shift, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2270        28064 :                   res_op0 = _r1;
    2271              :                 }
    2272        28064 :                 tree res_op1;
    2273        28064 :                 res_op1 =  mask;
    2274        28064 :                 tree _r;
    2275        28064 :                 _r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
    2276        28064 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 628, __FILE__, __LINE__, true);
    2277        28064 :                 return _r;
    2278              :               }
    2279              : next_after_fail764:;
    2280              :             }
    2281              :       }
    2282              :     }
    2283              :   return NULL_TREE;
    2284              : }
    2285              : 
    2286              : tree
    2287           94 : generic_simplify_438 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2288              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2289              :  const enum tree_code ARG_UNUSED (minmax))
    2290              : {
    2291           94 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2292           94 :   if (INTEGRAL_TYPE_P (type)
    2293           94 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2294           94 :  && types_match (type, TREE_TYPE (captures[1]))
    2295            8 :  && types_match (type, TREE_TYPE (captures[3]))
    2296            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
    2297            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type)
    2298           94 :  && TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (type)
    2299              : )
    2300              :     {
    2301            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail776;
    2302            0 :       {
    2303            0 :         tree res_op0;
    2304            0 :         res_op0 = captures[1];
    2305            0 :         tree res_op1;
    2306            0 :         res_op1 = captures[3];
    2307            0 :         tree _r;
    2308            0 :         _r = fold_build2_loc (loc, minmax, type, res_op0, res_op1);
    2309            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 640, __FILE__, __LINE__, true);
    2310            0 :         return _r;
    2311              :       }
    2312            0 : next_after_fail776:;
    2313              :     }
    2314              :   return NULL_TREE;
    2315              : }
    2316              : 
    2317              : tree
    2318      9169665 : generic_simplify_441 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2319              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2320              :  const enum tree_code ARG_UNUSED (op))
    2321              : {
    2322      9169665 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2323      9169665 :   if (INTEGRAL_TYPE_P (type)
    2324      8308311 :  && op != MULT_EXPR
    2325      8308311 :  && op != RDIV_EXPR
    2326      4192344 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2327      3777778 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2328      3777778 :  && type_has_mode_precision_p (TREE_TYPE (captures[2]))
    2329      3724483 :  && type_has_mode_precision_p (TREE_TYPE (captures[4]))
    2330      3724475 :  && type_has_mode_precision_p (type)
    2331      3715891 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
    2332      1249959 :  && types_match (captures[2], type)
    2333      9182899 :  && (types_match (captures[2], captures[4])
    2334        13234 :  || poly_int_tree_p (captures[3]))
    2335              : )
    2336              :     {
    2337        10478 :       if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
    2338              : )
    2339              :         {
    2340         6004 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail782;
    2341         6004 :           {
    2342         6004 :             tree res_op0;
    2343         6004 :             res_op0 = captures[2];
    2344         6004 :             tree res_op1;
    2345         6004 :             {
    2346         6004 :               tree _o1[1], _r1;
    2347         6004 :               _o1[0] = captures[4];
    2348         6004 :               if (TREE_TYPE (_o1[0]) != type)
    2349              :                 {
    2350         6004 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2351              :                 }
    2352              :               else
    2353              :                 _r1 = _o1[0];
    2354         6004 :               res_op1 = _r1;
    2355              :             }
    2356         6004 :             tree _r;
    2357         6004 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2358         6004 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 642, __FILE__, __LINE__, true);
    2359         6004 :             return _r;
    2360              :           }
    2361            0 : next_after_fail782:;
    2362              :         }
    2363              :       else
    2364              :         {
    2365         4474 :           {
    2366         4474 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
    2367         4474 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail783;
    2368         4474 :               {
    2369         4474 :                 tree res_op0;
    2370         4474 :                 {
    2371         4474 :                   tree _o1[2], _r1;
    2372         4474 :                   {
    2373         4474 :                     tree _o2[1], _r2;
    2374         4474 :                     _o2[0] = captures[2];
    2375         4474 :                     if (TREE_TYPE (_o2[0]) != utype)
    2376              :                       {
    2377         4474 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2378              :                       }
    2379              :                     else
    2380              :                       _r2 = _o2[0];
    2381         4474 :                     _o1[0] = _r2;
    2382              :                   }
    2383         4474 :                   {
    2384         4474 :                     tree _o2[1], _r2;
    2385         4474 :                     _o2[0] = captures[4];
    2386         4474 :                     if (TREE_TYPE (_o2[0]) != utype)
    2387              :                       {
    2388         4474 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2389              :                       }
    2390              :                     else
    2391              :                       _r2 = _o2[0];
    2392         4474 :                     _o1[1] = _r2;
    2393              :                   }
    2394         4474 :                   _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2395         4474 :                   res_op0 = _r1;
    2396              :                 }
    2397         4474 :                 tree _r;
    2398         4474 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2399         4474 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 643, __FILE__, __LINE__, true);
    2400         4474 :                 return _r;
    2401              :               }
    2402            0 : next_after_fail783:;
    2403              :           }
    2404              :         }
    2405              :     }
    2406              :   else
    2407              :     {
    2408      9124310 :       if (FLOAT_TYPE_P (type)
    2409      9194064 :  && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    2410        34877 :  == DECIMAL_FLOAT_TYPE_P (type)
    2411              : )
    2412              :         {
    2413        34851 :           {
    2414        34851 :  tree arg0 = strip_float_extensions (captures[2]);
    2415        34851 :  tree arg1 = strip_float_extensions (captures[4]);
    2416        34851 :  tree itype = TREE_TYPE (captures[0]);
    2417        34851 :  tree ty1 = TREE_TYPE (arg0);
    2418        34851 :  tree ty2 = TREE_TYPE (arg1);
    2419        34851 :  enum tree_code code = TREE_CODE (itype);
    2420            0 :               if (FLOAT_TYPE_P (ty1)
    2421        34851 :  && FLOAT_TYPE_P (ty2)
    2422              : )
    2423              :                 {
    2424        34851 :                   {
    2425        34851 :  tree newtype = type;
    2426        34851 :  if (TYPE_MODE (ty1) == SDmode
    2427        34589 :  || TYPE_MODE (ty2) == SDmode
    2428        69440 :  || TYPE_MODE (type) == SDmode)
    2429          262 :  newtype = dfloat32_type_node;
    2430        34851 :  if (TYPE_MODE (ty1) == DDmode
    2431        34719 :  || TYPE_MODE (ty2) == DDmode
    2432        69443 :  || TYPE_MODE (type) == DDmode)
    2433          259 :  newtype = dfloat64_type_node;
    2434        34851 :  if (TYPE_MODE (ty1) == TDmode
    2435        34851 :  || TYPE_MODE (ty2) == TDmode
    2436        69450 :  || TYPE_MODE (type) == TDmode)
    2437          267 :  newtype = dfloat128_type_node;
    2438        34851 :                       if ((newtype == dfloat32_type_node
    2439        34851 :  || newtype == dfloat64_type_node
    2440        34724 :  || newtype == dfloat128_type_node)
    2441          394 :  && newtype == type
    2442        34857 :  && types_match (newtype, type)
    2443              : )
    2444              :                         {
    2445            6 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail784;
    2446            0 :                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail784;
    2447            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail784;
    2448            0 :                           {
    2449            0 :                             tree res_op0;
    2450            0 :                             {
    2451            0 :                               tree _o1[1], _r1;
    2452            0 :                               _o1[0] = captures[2];
    2453            0 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2454              :                                 {
    2455            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2456              :                                 }
    2457              :                               else
    2458              :                                 _r1 = _o1[0];
    2459            0 :                               res_op0 = _r1;
    2460              :                             }
    2461            0 :                             tree res_op1;
    2462            0 :                             {
    2463            0 :                               tree _o1[1], _r1;
    2464            0 :                               _o1[0] = captures[4];
    2465            0 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2466              :                                 {
    2467            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2468              :                                 }
    2469              :                               else
    2470              :                                 _r1 = _o1[0];
    2471            0 :                               res_op1 = _r1;
    2472              :                             }
    2473            0 :                             tree _r;
    2474            0 :                             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2475            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 644, __FILE__, __LINE__, true);
    2476            0 :                             return _r;
    2477              :                           }
    2478              : next_after_fail784:;
    2479              :                         }
    2480              :                       else
    2481              :                         {
    2482        34845 :                           {
    2483        34845 :  if (element_precision (ty1) > element_precision (newtype))
    2484           15 :  newtype = ty1;
    2485        34845 :  if (element_precision (ty2) > element_precision (newtype))
    2486         4648 :  newtype = ty2;
    2487        34845 :                               if (element_precision (newtype) < element_precision (itype)
    2488        17407 :  && (!VECTOR_MODE_P (TYPE_MODE (newtype))
    2489            0 :  || target_supports_op_p (newtype, op, optab_default))
    2490        17407 :  && (flag_unsafe_math_optimizations
    2491        17382 :  || (element_precision (newtype) == element_precision (type)
    2492        17358 :  && real_can_shorten_arithmetic (element_mode (itype),
    2493              :  element_mode (type))
    2494         7695 :  && !excess_precision_type (newtype)))
    2495        38122 :  && !types_match (itype, newtype)
    2496              : )
    2497              :                                 {
    2498         3277 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail785;
    2499         3276 :                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail785;
    2500         3268 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail785;
    2501         3268 :                                   {
    2502         3268 :                                     tree res_op0;
    2503         3268 :                                     {
    2504         3268 :                                       tree _o1[2], _r1;
    2505         3268 :                                       {
    2506         3268 :                                         tree _o2[1], _r2;
    2507         3268 :                                         _o2[0] = captures[2];
    2508         3268 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2509              :                                           {
    2510            3 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2511              :                                           }
    2512              :                                         else
    2513              :                                           _r2 = _o2[0];
    2514         3268 :                                         _o1[0] = _r2;
    2515              :                                       }
    2516         3268 :                                       {
    2517         3268 :                                         tree _o2[1], _r2;
    2518         3268 :                                         _o2[0] = captures[4];
    2519         3268 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2520              :                                           {
    2521         3268 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2522              :                                           }
    2523              :                                         else
    2524              :                                           _r2 = _o2[0];
    2525         3268 :                                         _o1[1] = _r2;
    2526              :                                       }
    2527         3268 :                                       _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2528         3268 :                                       res_op0 = _r1;
    2529              :                                     }
    2530         3268 :                                     tree _r;
    2531         3268 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2532         3268 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 645, __FILE__, __LINE__, true);
    2533         3268 :                                     return _r;
    2534              :                                   }
    2535              : next_after_fail785:;
    2536              :                                 }
    2537              :                           }
    2538              :                         }
    2539              :                   }
    2540              :                 }
    2541              :           }
    2542              :         }
    2543              :     }
    2544              :   return NULL_TREE;
    2545              : }
    2546              : 
    2547              : tree
    2548            2 : generic_simplify_472 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2549              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2550              : {
    2551            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2552            2 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail822;
    2553            2 :   {
    2554            2 :     tree res_op0;
    2555            2 :     {
    2556            2 :       tree _o1[2], _r1;
    2557            2 :       _o1[0] = captures[1];
    2558            2 :       _o1[1] = captures[2];
    2559            2 :       _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2560            2 :       res_op0 = _r1;
    2561              :     }
    2562            2 :     tree _r;
    2563            2 :     _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
    2564            2 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 673, __FILE__, __LINE__, true);
    2565              :     return _r;
    2566              :   }
    2567            0 : next_after_fail822:;
    2568            0 :   return NULL_TREE;
    2569              : }
    2570              : 
    2571              : tree
    2572            8 : generic_simplify_478 (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 (eqne))
    2575              : {
    2576            8 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2577            8 :   if (eqne == EQ_EXPR
    2578              : )
    2579              :     {
    2580            4 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail828;
    2581            4 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail828;
    2582            4 :       {
    2583            4 :         tree _r;
    2584            4 :         _r =  constant_boolean_node (false, type);
    2585            4 :         if (TREE_SIDE_EFFECTS (captures[2]))
    2586            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2587            4 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 678, __FILE__, __LINE__, true);
    2588            4 :         return _r;
    2589              :       }
    2590              : next_after_fail828:;
    2591              :     }
    2592              :   else
    2593              :     {
    2594            4 :       if (eqne == NE_EXPR
    2595              : )
    2596              :         {
    2597            4 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail829;
    2598            4 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail829;
    2599            4 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail829;
    2600            4 :           {
    2601            4 :             tree _r;
    2602            4 :             _r = captures[0];
    2603            4 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 679, __FILE__, __LINE__, true);
    2604            4 :             return _r;
    2605              :           }
    2606              : next_after_fail829:;
    2607              :         }
    2608              :     }
    2609              :   return NULL_TREE;
    2610              : }
    2611              : 
    2612              : tree
    2613            3 : generic_simplify_489 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2614              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2615              : {
    2616            3 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2617            6 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2618            6 :  && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
    2619              : )
    2620              :     {
    2621            3 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail873;
    2622            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail873;
    2623            3 :       {
    2624            3 :         tree res_op0;
    2625            3 :         res_op0 = captures[3];
    2626            3 :         tree res_op1;
    2627            3 :         {
    2628            3 :           tree _o1[2], _r1;
    2629            3 :           _o1[0] = captures[1];
    2630            3 :           _o1[1] =  build_int_cst (TREE_TYPE (captures[1]), 1);
    2631            3 :           _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2632            3 :           res_op1 = _r1;
    2633              :         }
    2634            3 :         tree _r;
    2635            3 :         _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2636            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 698, __FILE__, __LINE__, true);
    2637            3 :         return _r;
    2638              :       }
    2639              : next_after_fail873:;
    2640              :     }
    2641              :   return NULL_TREE;
    2642              : }
    2643              : 
    2644              : tree
    2645        34730 : generic_simplify_496 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2646              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2647              :  const enum tree_code ARG_UNUSED (shift))
    2648              : {
    2649        34730 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2650        34730 :   if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2651        22412 :  && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
    2652        22412 :  && tree_fits_uhwi_p (captures[4])
    2653        22412 :  && tree_to_uhwi (captures[4]) > 0
    2654        57142 :  && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
    2655              : )
    2656              :     {
    2657        22412 :       {
    2658        22412 :  unsigned int shiftc = tree_to_uhwi (captures[4]);
    2659        22412 :  unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
    2660        22412 :  unsigned HOST_WIDE_INT newmask, zerobits = 0;
    2661        22412 :  tree shift_type = TREE_TYPE (captures[2]);
    2662        22412 :  unsigned int prec;
    2663        22412 :  if (shift == LSHIFT_EXPR)
    2664            0 :  zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
    2665        22412 :  else if (shift == RSHIFT_EXPR
    2666        22412 :  && type_has_mode_precision_p (shift_type))
    2667              :  {
    2668        22412 :  prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
    2669        22412 :  tree arg00 = captures[3];
    2670        22412 :  if (captures[2] != captures[3]
    2671        22412 :  && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
    2672              :  {
    2673        22005 :  tree inner_type = TREE_TYPE (captures[3]);
    2674        22005 :  if (type_has_mode_precision_p (inner_type)
    2675        22005 :  && TYPE_PRECISION (inner_type) < prec)
    2676              :  {
    2677           34 :  prec = TYPE_PRECISION (inner_type);
    2678           34 :  if (shiftc < prec)
    2679           34 :  shift_type = inner_type;
    2680              :  }
    2681              :  }
    2682        22412 :  zerobits = HOST_WIDE_INT_M1U;
    2683        22412 :  if (shiftc < prec)
    2684              :  {
    2685        22412 :  zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
    2686        22412 :  zerobits <<= prec - shiftc;
    2687              :  }
    2688        22412 :  if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    2689        22412 :  && prec == TYPE_PRECISION (TREE_TYPE (captures[2])))
    2690              :  {
    2691           73 :  if ((mask & zerobits) == 0)
    2692           59 :  shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
    2693              :  else
    2694              :  zerobits = 0;
    2695              :  }
    2696              :  }
    2697        22398 :           if ((mask & zerobits) == mask
    2698              : )
    2699              :             {
    2700            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail884;
    2701            0 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail884;
    2702            0 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail884;
    2703            0 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail884;
    2704            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail884;
    2705            0 :               {
    2706            0 :                 tree _r;
    2707            0 :                 _r =  build_int_cst (type, 0);
    2708            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 700, __FILE__, __LINE__, true);
    2709            0 :                 return _r;
    2710              :               }
    2711              : next_after_fail884:;
    2712              :             }
    2713              :           else
    2714              :             {
    2715        22412 :               {
    2716        22412 :  newmask = mask | zerobits;
    2717        22412 :                   if (newmask != mask && (newmask & (newmask + 1)) == 0
    2718              : )
    2719              :                     {
    2720              :                       {
    2721           65 :  for (prec = BITS_PER_UNIT;
    2722          122 :  prec < HOST_BITS_PER_WIDE_INT; prec <<= 1)
    2723          118 :  if (newmask == (HOST_WIDE_INT_1U << prec) - 1)
    2724              :  break;
    2725           57 :                           if (prec < HOST_BITS_PER_WIDE_INT
    2726            4 :  || newmask == HOST_WIDE_INT_M1U
    2727              : )
    2728              :                             {
    2729           57 :                               {
    2730           57 :  tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
    2731           57 :                                   if (!tree_int_cst_equal (newmaskt, captures[5])
    2732              : )
    2733              :                                     {
    2734           57 :                                       if (shift_type != TREE_TYPE (captures[2])
    2735              : )
    2736              :                                         {
    2737           47 :                                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail885;
    2738           47 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail885;
    2739           47 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail885;
    2740           47 :                                           {
    2741           47 :                                             tree res_op0;
    2742           47 :                                             {
    2743           47 :                                               tree _o1[1], _r1;
    2744           47 :                                               {
    2745           47 :                                                 tree _o2[2], _r2;
    2746           47 :                                                 {
    2747           47 :                                                   tree _o3[1], _r3;
    2748           47 :                                                   _o3[0] = captures[2];
    2749           47 :                                                   if (TREE_TYPE (_o3[0]) != shift_type)
    2750              :                                                     {
    2751           47 :                                                       _r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
    2752              :                                                     }
    2753              :                                                   else
    2754              :                                                     _r3 = _o3[0];
    2755           47 :                                                   _o2[0] = _r3;
    2756              :                                                 }
    2757           47 :                                                 _o2[1] = captures[4];
    2758           47 :                                                 _r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
    2759           47 :                                                 _o1[0] = _r2;
    2760              :                                               }
    2761           47 :                                               if (TREE_TYPE (_o1[0]) != type)
    2762              :                                                 {
    2763           47 :                                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2764              :                                                 }
    2765              :                                               else
    2766              :                                                 _r1 = _o1[0];
    2767           47 :                                               res_op0 = _r1;
    2768              :                                             }
    2769           47 :                                             tree res_op1;
    2770           47 :                                             res_op1 =  newmaskt;
    2771           47 :                                             tree _r;
    2772           47 :                                             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2773           47 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 701, __FILE__, __LINE__, true);
    2774           47 :                                             return _r;
    2775              :                                           }
    2776              : next_after_fail885:;
    2777              :                                         }
    2778              :                                       else
    2779              :                                         {
    2780           10 :                                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail886;
    2781           10 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail886;
    2782           10 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail886;
    2783           10 :                                           {
    2784           10 :                                             tree res_op0;
    2785           10 :                                             res_op0 = captures[0];
    2786           10 :                                             tree res_op1;
    2787           10 :                                             res_op1 =  newmaskt;
    2788           10 :                                             tree _r;
    2789           10 :                                             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2790           10 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 702, __FILE__, __LINE__, true);
    2791           10 :                                             return _r;
    2792              :                                           }
    2793              : next_after_fail886:;
    2794              :                                         }
    2795              :                                     }
    2796              :                               }
    2797              :                             }
    2798              :                       }
    2799              :                     }
    2800              :               }
    2801              :             }
    2802              :       }
    2803              :     }
    2804              :   return NULL_TREE;
    2805              : }
    2806              : 
    2807              : tree
    2808          150 : generic_simplify_506 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2809              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2810              :  const enum tree_code ARG_UNUSED (iop),
    2811              :  const enum tree_code ARG_UNUSED (res))
    2812              : {
    2813          150 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2814          150 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail900;
    2815          150 :   {
    2816          150 :     tree res_op0;
    2817          150 :     res_op0 = captures[1];
    2818          150 :     tree res_op1;
    2819          150 :     {
    2820          150 :       tree _o1[1], _r1;
    2821          150 :       _o1[0] = captures[2];
    2822          150 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    2823          150 :       res_op1 = _r1;
    2824              :     }
    2825          150 :     tree _r;
    2826          150 :     _r = fold_build2_loc (loc, res, type, res_op0, res_op1);
    2827          150 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 712, __FILE__, __LINE__, true);
    2828              :     return _r;
    2829              :   }
    2830            0 : next_after_fail900:;
    2831            0 :   return NULL_TREE;
    2832              : }
    2833              : 
    2834              : tree
    2835           29 : generic_simplify_512 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2836              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2837              : {
    2838           29 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2839           29 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    2840              : )
    2841              :     {
    2842           29 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail906;
    2843           29 :       {
    2844           29 :         tree res_op0;
    2845           29 :         {
    2846           29 :           tree _o1[2], _r1;
    2847           29 :           _o1[0] = captures[0];
    2848           29 :           {
    2849           29 :             tree _o2[1], _r2;
    2850           29 :             _o2[0] = captures[1];
    2851           29 :             _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    2852           29 :             _o1[1] = _r2;
    2853              :           }
    2854           29 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2855           29 :           res_op0 = _r1;
    2856              :         }
    2857           29 :         tree _r;
    2858           29 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2859           29 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 718, __FILE__, __LINE__, true);
    2860           29 :         return _r;
    2861              :       }
    2862            0 : next_after_fail906:;
    2863              :     }
    2864              :   return NULL_TREE;
    2865              : }
    2866              : 
    2867              : tree
    2868           16 : generic_simplify_520 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2869              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2870              : {
    2871           16 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2872           16 :   if (ANY_INTEGRAL_TYPE_P (type) && !TYPE_OVERFLOW_SANITIZED (type)
    2873              : )
    2874              :     {
    2875           16 :       {
    2876           16 :  tree ptrdifftype = TREE_TYPE (captures[0]);
    2877           16 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail915;
    2878           16 :           {
    2879           16 :             tree res_op0;
    2880           16 :             {
    2881           16 :               tree _o1[2], _r1;
    2882           16 :               _o1[0] = captures[2];
    2883           16 :               _o1[1] = captures[1];
    2884           16 :               _r1 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ptrdifftype, _o1[0], _o1[1]);
    2885           16 :               res_op0 = _r1;
    2886              :             }
    2887           16 :             tree _r;
    2888           16 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2889           16 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 725, __FILE__, __LINE__, true);
    2890           16 :             return _r;
    2891              :           }
    2892            0 : next_after_fail915:;
    2893              :       }
    2894              :     }
    2895              :   return NULL_TREE;
    2896              : }
    2897              : 
    2898              : tree
    2899            0 : generic_simplify_528 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2900              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2901              :  const enum tree_code ARG_UNUSED (minmax))
    2902              : {
    2903            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2904            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail924;
    2905            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail924;
    2906            0 :   {
    2907            0 :     tree _r;
    2908            0 :     _r = captures[0];
    2909            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 734, __FILE__, __LINE__, true);
    2910              :     return _r;
    2911              :   }
    2912              : next_after_fail924:;
    2913              :   return NULL_TREE;
    2914              : }
    2915              : 
    2916              : tree
    2917            0 : generic_simplify_535 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2918              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2919              :  const enum tree_code ARG_UNUSED (minmax))
    2920              : {
    2921            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2922            0 :   if (TYPE_UNSIGNED(type)
    2923              : )
    2924              :     {
    2925            0 :       if (minmax == MIN_EXPR
    2926              : )
    2927              :         {
    2928            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail932;
    2929            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail932;
    2930            0 :           {
    2931            0 :             tree _r;
    2932            0 :             _r = captures[1];
    2933            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 741, __FILE__, __LINE__, true);
    2934            0 :             return _r;
    2935              :           }
    2936              : next_after_fail932:;
    2937              :         }
    2938              :       else
    2939              :         {
    2940            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail933;
    2941            0 :           {
    2942            0 :             tree _r;
    2943            0 :             _r = captures[0];
    2944            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    2945            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2946            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 742, __FILE__, __LINE__, true);
    2947            0 :             return _r;
    2948              :           }
    2949            0 : next_after_fail933:;
    2950              :         }
    2951              :     }
    2952              :   return NULL_TREE;
    2953              : }
    2954              : 
    2955              : tree
    2956            2 : generic_simplify_543 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2957              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2958              :  const combined_fn ARG_UNUSED (func))
    2959              : {
    2960            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2961            2 :   if (types_match (captures[1], captures[4])
    2962            4 :  && wi::geu_p (wi::to_wide (captures[2]),
    2963            2 :  TYPE_PRECISION (TREE_TYPE (captures[1])))
    2964              : )
    2965              :     {
    2966            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail953;
    2967            2 :       {
    2968            2 :         tree res_op0;
    2969            2 :         {
    2970            2 :           tree _o1[2], _r1;
    2971            2 :           _o1[0] = captures[1];
    2972            2 :           _o1[1] = captures[4];
    2973            2 :           _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2974            2 :           res_op0 = _r1;
    2975              :         }
    2976            2 :         tree res_op1;
    2977            2 :         res_op1 = captures[2];
    2978            2 :         tree _r;
    2979            2 :         _r = maybe_build_call_expr_loc (loc, func, type, 2, res_op0, res_op1);
    2980            2 :         if (!_r)
    2981            0 :           goto next_after_fail953;
    2982            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 750, __FILE__, __LINE__, true);
    2983            2 :         return _r;
    2984              :       }
    2985              : next_after_fail953:;
    2986              :     }
    2987              :   return NULL_TREE;
    2988              : }
    2989              : 
    2990              : tree
    2991            6 : generic_simplify_550 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2992              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    2993              : {
    2994            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2995            6 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail960;
    2996            6 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail960;
    2997            6 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail960;
    2998            6 :   {
    2999            6 :     tree _r;
    3000            6 :     _r = captures[2];
    3001            6 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 536, __FILE__, __LINE__, true);
    3002              :     return _r;
    3003              :   }
    3004              : next_after_fail960:;
    3005              :   return NULL_TREE;
    3006              : }
    3007              : 
    3008              : tree
    3009            0 : generic_simplify_560 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3010              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3011              :  const combined_fn ARG_UNUSED (cond_len_op))
    3012              : {
    3013            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3014            0 :   {
    3015            0 :  tree op_type = TREE_TYPE (captures[5]);
    3016            0 :       if (inverse_conditions_p (captures[0], captures[2])
    3017            0 :  && element_precision (type) == element_precision (op_type)
    3018              : )
    3019              :         {
    3020            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail970;
    3021            0 :           {
    3022            0 :             tree res_op0;
    3023            0 :             {
    3024            0 :               tree _o1[6], _r1;
    3025            0 :               _o1[0] = captures[2];
    3026            0 :               _o1[1] = captures[3];
    3027            0 :               _o1[2] = captures[4];
    3028            0 :               {
    3029            0 :                 tree _o2[1], _r2;
    3030            0 :                 _o2[0] = captures[1];
    3031            0 :                 if (TREE_TYPE (_o2[0]) != op_type)
    3032              :                   {
    3033            0 :                     _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
    3034              :                   }
    3035              :                 else
    3036              :                   _r2 = _o2[0];
    3037            0 :                 _o1[3] = _r2;
    3038              :               }
    3039            0 :               _o1[4] = captures[6];
    3040            0 :               _o1[5] = captures[7];
    3041            0 :               _r1 = maybe_build_call_expr_loc (loc, cond_len_op, TREE_TYPE (_o1[1]), 6, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4], _o1[5]);
    3042            0 :               if (!_r1)
    3043            0 :                 goto next_after_fail970;
    3044            0 :               res_op0 = _r1;
    3045              :             }
    3046            0 :             tree _r;
    3047            0 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3048            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
    3049            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3050            0 :             if (TREE_SIDE_EFFECTS (captures[5]))
    3051            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
    3052            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 762, __FILE__, __LINE__, true);
    3053            0 :             return _r;
    3054              :           }
    3055              : next_after_fail970:;
    3056              :         }
    3057              :   }
    3058              :   return NULL_TREE;
    3059              : }
    3060              : 
    3061              : tree
    3062            0 : generic_simplify_573 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3063              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    3064              :  const enum tree_code ARG_UNUSED (cmp))
    3065              : {
    3066            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3067            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail986;
    3068            0 :   {
    3069            0 :     tree res_op0;
    3070            0 :     res_op0 = unshare_expr (captures[0]);
    3071            0 :     tree res_op1;
    3072            0 :     res_op1 = captures[0];
    3073            0 :     tree _r;
    3074            0 :     _r = fold_build2_loc (loc, UNORDERED_EXPR, type, res_op0, res_op1);
    3075            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 778, __FILE__, __LINE__, true);
    3076              :     return _r;
    3077              :   }
    3078            0 : next_after_fail986:;
    3079            0 :   return NULL_TREE;
    3080              : }
    3081              : 
    3082              : tree
    3083            0 : generic_simplify_579 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3084              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3085              :  const combined_fn ARG_UNUSED (logs),
    3086              :  const combined_fn ARG_UNUSED (pows))
    3087              : {
    3088            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3089            0 :   if (flag_unsafe_math_optimizations
    3090              : )
    3091              :     {
    3092            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail992;
    3093            0 :       {
    3094            0 :         tree res_op0;
    3095            0 :         res_op0 = captures[1];
    3096            0 :         tree res_op1;
    3097            0 :         {
    3098            0 :           tree _o1[1], _r1;
    3099            0 :           _o1[0] = captures[0];
    3100            0 :           _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3101            0 :           if (!_r1)
    3102            0 :             goto next_after_fail992;
    3103            0 :           res_op1 = _r1;
    3104              :         }
    3105            0 :         tree _r;
    3106            0 :         _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    3107            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 784, __FILE__, __LINE__, true);
    3108            0 :         return _r;
    3109              :       }
    3110              : next_after_fail992:;
    3111              :     }
    3112              :   return NULL_TREE;
    3113              : }
    3114              : 
    3115              : tree
    3116            0 : generic_simplify_588 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3117              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    3118              : {
    3119            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3120            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1001;
    3121            0 :   {
    3122            0 :     tree _r;
    3123            0 :     _r = captures[0];
    3124            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    3125            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3126            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 793, __FILE__, __LINE__, true);
    3127              :     return _r;
    3128              :   }
    3129            0 : next_after_fail1001:;
    3130            0 :   return NULL_TREE;
    3131              : }
    3132              : 
    3133              : tree
    3134            0 : generic_simplify_592 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3135              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3136              :  const combined_fn ARG_UNUSED (floors))
    3137              : {
    3138            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3139            0 :   if (canonicalize_math_p ()
    3140              : )
    3141              :     {
    3142            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1005;
    3143            0 :       {
    3144            0 :         tree res_op0;
    3145            0 :         res_op0 = captures[0];
    3146            0 :         tree _r;
    3147            0 :         _r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
    3148            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 797, __FILE__, __LINE__, true);
    3149            0 :         return _r;
    3150              :       }
    3151            0 : next_after_fail1005:;
    3152              :     }
    3153              :   return NULL_TREE;
    3154              : }
    3155              : 
    3156              : tree
    3157            0 : generic_simplify_601 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3158              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3159              :  const combined_fn ARG_UNUSED (fmas))
    3160              : {
    3161            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3162            0 :   if (canonicalize_math_after_vectorization_p ()
    3163              : )
    3164              :     {
    3165              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1014;
    3166              :       {
    3167              :         tree res_op0;
    3168              :         res_op0 = captures[0];
    3169              :         tree res_op1;
    3170              :         res_op1 = captures[1];
    3171              :         tree res_op2;
    3172              :         res_op2 = captures[2];
    3173              :         tree _r;
    3174              :         _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
    3175              :         if (!_r)
    3176              :           goto next_after_fail1014;
    3177              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 806, __FILE__, __LINE__, true);
    3178              :         return _r;
    3179              :       }
    3180            0 : next_after_fail1014:;
    3181              :     }
    3182            0 :   return NULL_TREE;
    3183              : }
    3184              : 
    3185              : tree
    3186            0 : generic_simplify_610 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3187              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures),
    3188              :  const combined_fn ARG_UNUSED (fmas))
    3189              : {
    3190            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3191            0 :   if (canonicalize_math_after_vectorization_p ()
    3192              : )
    3193              :     {
    3194              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1023;
    3195              :       {
    3196              :         tree res_op0;
    3197              :         res_op0 = captures[0];
    3198              :         tree res_op1;
    3199              :         res_op1 = captures[1];
    3200              :         tree res_op2;
    3201              :         res_op2 = captures[2];
    3202              :         tree res_op3;
    3203              :         res_op3 = captures[3];
    3204              :         tree res_op4;
    3205              :         res_op4 = captures[4];
    3206              :         tree _r;
    3207              :         _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3208              :         if (!_r)
    3209              :           goto next_after_fail1023;
    3210              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 815, __FILE__, __LINE__, true);
    3211              :         return _r;
    3212              :       }
    3213            0 : next_after_fail1023:;
    3214              :     }
    3215            0 :   return NULL_TREE;
    3216              : }
    3217              : 
    3218              : tree
    3219            0 : generic_simplify_620 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3220              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3221              :  const combined_fn ARG_UNUSED (ctz))
    3222              : {
    3223            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3224            0 :   {
    3225            0 :  tree t = TREE_TYPE (captures[0]);
    3226            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1033;
    3227            0 :       {
    3228            0 :         tree res_op0;
    3229            0 :         {
    3230            0 :           tree _o1[1], _r1;
    3231            0 :           _o1[0] = captures[1];
    3232            0 :           if (TREE_TYPE (_o1[0]) != t)
    3233              :             {
    3234            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
    3235              :             }
    3236              :           else
    3237              :             _r1 = _o1[0];
    3238            0 :           res_op0 = _r1;
    3239              :         }
    3240            0 :         tree _r;
    3241            0 :         _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
    3242            0 :         if (!_r)
    3243            0 :           goto next_after_fail1033;
    3244            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 822, __FILE__, __LINE__, true);
    3245              :         return _r;
    3246              :       }
    3247              : next_after_fail1033:;
    3248              :   }
    3249              :   return NULL_TREE;
    3250              : }
    3251              : 
    3252              : tree
    3253            0 : generic_simplify_630 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3254              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3255              :  const combined_fn ARG_UNUSED (bswap),
    3256              :  const combined_fn ARG_UNUSED (parity))
    3257              : {
    3258            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3259            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3260            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3261            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0]))
    3262            0 :  >= TYPE_PRECISION (TREE_TYPE (captures[1]))
    3263              : )
    3264              :     {
    3265            0 :       {
    3266            0 :  tree type0 = TREE_TYPE (captures[0]);
    3267            0 :  tree type1 = TREE_TYPE (captures[1]);
    3268            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1045;
    3269            0 :           {
    3270            0 :             tree res_op0;
    3271            0 :             {
    3272            0 :               tree _o1[1], _r1;
    3273            0 :               {
    3274            0 :                 tree _o2[1], _r2;
    3275            0 :                 _o2[0] = captures[2];
    3276            0 :                 if (TREE_TYPE (_o2[0]) != type1)
    3277              :                   {
    3278            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
    3279              :                   }
    3280              :                 else
    3281              :                   _r2 = _o2[0];
    3282            0 :                 _o1[0] = _r2;
    3283              :               }
    3284            0 :               if (TREE_TYPE (_o1[0]) != type0)
    3285              :                 {
    3286            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
    3287              :                 }
    3288              :               else
    3289              :                 _r1 = _o1[0];
    3290            0 :               res_op0 = _r1;
    3291              :             }
    3292            0 :             tree _r;
    3293            0 :             _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
    3294            0 :             if (!_r)
    3295            0 :               goto next_after_fail1045;
    3296            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 830, __FILE__, __LINE__, true);
    3297            0 :             return _r;
    3298              :           }
    3299              : next_after_fail1045:;
    3300              :       }
    3301              :     }
    3302              :   return NULL_TREE;
    3303              : }
    3304              : 
    3305              : tree
    3306      4300656 : generic_simplify_NEGATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3307              : {
    3308      4300656 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3309      4300656 :   switch (TREE_CODE (_p0))
    3310              :     {
    3311        41392 :     case PLUS_EXPR:
    3312        41392 :       {
    3313        41392 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3314        41392 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3315        41392 :         if (tree_negate_expr_p (_q21))
    3316              :           {
    3317        39292 :             {
    3318        39292 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3319        39292 :               tree res = generic_simplify_519 (loc, type, _p0, captures);
    3320        39292 :               if (res) return res;
    3321              :             }
    3322              :           }
    3323         2100 :         if (tree_negate_expr_p (_q20))
    3324              :           {
    3325           17 :             {
    3326           17 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    3327           17 :               tree res = generic_simplify_519 (loc, type, _p0, captures);
    3328           17 :               if (res) return res;
    3329              :             }
    3330              :           }
    3331              :         break;
    3332              :       }
    3333       116447 :     case MINUS_EXPR:
    3334       116447 :       {
    3335       116447 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3336       116447 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3337       116447 :         {
    3338       116447 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3339       116447 :           if ((ANY_INTEGRAL_TYPE_P (type) && !TYPE_OVERFLOW_SANITIZED (type))
    3340       193638 :  || (FLOAT_TYPE_P (type)
    3341        77191 :  && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
    3342        77191 :  && !HONOR_SIGNED_ZEROS (type))
    3343              : )
    3344              :             {
    3345        39313 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1092;
    3346        39313 :               {
    3347        39313 :                 tree res_op0;
    3348        39313 :                 res_op0 = captures[1];
    3349        39313 :                 tree res_op1;
    3350        39313 :                 res_op1 = captures[0];
    3351        39313 :                 tree _r;
    3352        39313 :                 _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    3353        39313 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 868, __FILE__, __LINE__, true);
    3354        39313 :                 return _r;
    3355              :               }
    3356            0 : next_after_fail1092:;
    3357              :             }
    3358              :         }
    3359        77134 :         break;
    3360              :       }
    3361           16 :     case POINTER_DIFF_EXPR:
    3362           16 :       {
    3363           16 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3364           16 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3365           16 :         {
    3366           16 :           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    3367           16 :           tree res = generic_simplify_520 (loc, type, _p0, captures);
    3368           16 :           if (res) return res;
    3369              :         }
    3370            0 :         break;
    3371              :       }
    3372         5760 :     case MULT_EXPR:
    3373         5760 :       {
    3374         5760 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3375         5760 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3376         5760 :         if (tree_negate_expr_p (_q21))
    3377              :           {
    3378         1802 :             {
    3379         1802 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    3380         1802 :               tree res = generic_simplify_523 (loc, type, _p0, captures);
    3381         1802 :               if (res) return res;
    3382              :             }
    3383              :           }
    3384         4353 :         if (tree_negate_expr_p (_q20))
    3385              :           {
    3386           35 :             {
    3387           35 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    3388           35 :               tree res = generic_simplify_523 (loc, type, _p0, captures);
    3389           35 :               if (res) return res;
    3390              :             }
    3391              :           }
    3392              :         break;
    3393              :       }
    3394          188 :     case RDIV_EXPR:
    3395          188 :       {
    3396          188 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3397          188 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3398          188 :         if (tree_negate_expr_p (_q21))
    3399              :           {
    3400           60 :             {
    3401           60 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    3402           60 :               if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
    3403           60 :  && single_use (captures[0])
    3404              : )
    3405              :                 {
    3406           60 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1093;
    3407           60 :                   {
    3408           60 :                     tree res_op0;
    3409           60 :                     res_op0 = captures[1];
    3410           60 :                     tree res_op1;
    3411           60 :                     {
    3412           60 :                       tree _o1[1], _r1;
    3413           60 :                       _o1[0] = captures[2];
    3414           60 :                       _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3415           60 :                       res_op1 = _r1;
    3416              :                     }
    3417           60 :                     tree _r;
    3418           60 :                     _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    3419           60 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 869, __FILE__, __LINE__, true);
    3420           60 :                     return _r;
    3421              :                   }
    3422            0 : next_after_fail1093:;
    3423              :                 }
    3424              :             }
    3425              :           }
    3426          128 :         if (tree_negate_expr_p (_q20))
    3427              :           {
    3428            0 :             {
    3429            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    3430            0 :               if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
    3431            0 :  && single_use (captures[0])
    3432              : )
    3433              :                 {
    3434            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1094;
    3435            0 :                   {
    3436            0 :                     tree res_op0;
    3437            0 :                     {
    3438            0 :                       tree _o1[1], _r1;
    3439            0 :                       _o1[0] = captures[1];
    3440            0 :                       _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3441            0 :                       res_op0 = _r1;
    3442              :                     }
    3443            0 :                     tree res_op1;
    3444            0 :                     res_op1 = captures[2];
    3445            0 :                     tree _r;
    3446            0 :                     _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    3447            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 870, __FILE__, __LINE__, true);
    3448            0 :                     return _r;
    3449              :                   }
    3450            0 : next_after_fail1094:;
    3451              :                 }
    3452              :             }
    3453              :           }
    3454              :         break;
    3455              :       }
    3456      1362137 :     CASE_CONVERT:
    3457      1362137 :       {
    3458      1362137 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3459      1362137 :         switch (TREE_CODE (_q20))
    3460              :           {
    3461           58 :           case RSHIFT_EXPR:
    3462           58 :             {
    3463           58 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3464           58 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3465           58 :               switch (TREE_CODE (_q31))
    3466              :                 {
    3467           43 :                 case INTEGER_CST:
    3468           43 :                   {
    3469           43 :                     {
    3470           43 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    3471           43 :                       tree res = generic_simplify_524 (loc, type, _p0, captures);
    3472           43 :                       if (res) return res;
    3473              :                     }
    3474           36 :                     break;
    3475              :                   }
    3476              :                 default:;
    3477              :                 }
    3478              :               break;
    3479              :             }
    3480          213 :           case NEGATE_EXPR:
    3481          213 :             {
    3482          213 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3483          213 :               {
    3484          213 :                 tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    3485          213 :                 if (!TYPE_SATURATING (type)
    3486              : )
    3487              :                   {
    3488          213 :                     if (INTEGRAL_TYPE_P (type)
    3489          213 :  && (TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
    3490           23 :  || (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    3491           44 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
    3492          212 :  && !TYPE_OVERFLOW_SANITIZED (type)
    3493          447 :  && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
    3494              : )
    3495              :                       {
    3496          212 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1095;
    3497          212 :                         {
    3498          212 :                           tree res_op0;
    3499          212 :                           res_op0 = captures[0];
    3500          212 :                           tree _r;
    3501          212 :                           _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3502          212 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 871, __FILE__, __LINE__, true);
    3503          212 :                           return _r;
    3504              :                         }
    3505            0 : next_after_fail1095:;
    3506              :                       }
    3507              :                   }
    3508              :               }
    3509              :               break;
    3510              :             }
    3511      1361918 :           default:;
    3512              :           }
    3513      1361918 :       {
    3514      1361918 :         tree _q20_pops[1];
    3515      1361918 :         if (tree_logical_inverted_value (_q20, _q20_pops))
    3516              :           {
    3517            1 :             tree _q30 = _q20_pops[0];
    3518            1 :             {
    3519            1 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
    3520            1 :               if (INTEGRAL_TYPE_P (type)
    3521            1 :  && TREE_CODE (type) != BOOLEAN_TYPE
    3522            1 :  && TYPE_PRECISION (type) > 1
    3523            1 :  && TREE_CODE (captures[2]) == SSA_NAME
    3524            1 :  && ssa_name_has_boolean_range (captures[2])
    3525              : )
    3526              :                 {
    3527            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1096;
    3528            0 :                   {
    3529            0 :                     tree res_op0;
    3530            0 :                     {
    3531            0 :                       tree _o1[1], _r1;
    3532            0 :                       _o1[0] = captures[2];
    3533            0 :                       if (TREE_TYPE (_o1[0]) != type)
    3534              :                         {
    3535            0 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3536              :                         }
    3537              :                       else
    3538              :                         _r1 = _o1[0];
    3539            0 :                       res_op0 = _r1;
    3540              :                     }
    3541            0 :                     tree res_op1;
    3542            0 :                     res_op1 =  build_all_ones_cst (type);
    3543            0 :                     tree _r;
    3544            0 :                     _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    3545            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    3546            0 :                     return _r;
    3547              :                   }
    3548            0 : next_after_fail1096:;
    3549              :                 }
    3550              :             }
    3551              :           }
    3552              :       }
    3553      1361918 :       if (tree_negate_expr_p (_q20))
    3554              :         {
    3555         2573 :           {
    3556         2573 :             tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3557         2573 :             if (!TYPE_SATURATING (type)
    3558              : )
    3559              :               {
    3560         2573 :                 if (SCALAR_FLOAT_TYPE_P (type)
    3561         2573 :  && ((DECIMAL_FLOAT_TYPE_P (type)
    3562            0 :  == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    3563            0 :  && TYPE_PRECISION (type) >= TYPE_PRECISION (TREE_TYPE (captures[0])))
    3564            0 :  || !HONOR_SIGN_DEPENDENT_ROUNDING (type))
    3565              : )
    3566              :                   {
    3567            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1097;
    3568            0 :                     {
    3569            0 :                       tree res_op0;
    3570            0 :                       {
    3571            0 :                         tree _o1[1], _r1;
    3572            0 :                         _o1[0] = captures[0];
    3573            0 :                         _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3574            0 :                         res_op0 = _r1;
    3575              :                       }
    3576            0 :                       tree _r;
    3577            0 :                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3578            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 873, __FILE__, __LINE__, true);
    3579            0 :                       return _r;
    3580              :                     }
    3581            0 : next_after_fail1097:;
    3582              :                   }
    3583              :               }
    3584              :           }
    3585              :         }
    3586              :         break;
    3587              :       }
    3588          385 :     case RSHIFT_EXPR:
    3589          385 :       {
    3590          385 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3591          385 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3592          385 :         switch (TREE_CODE (_q21))
    3593              :           {
    3594          367 :           case INTEGER_CST:
    3595          367 :             {
    3596          367 :               {
    3597          367 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3598          367 :                 tree res = generic_simplify_524 (loc, type, _p0, captures);
    3599          367 :                 if (res) return res;
    3600              :               }
    3601          330 :               break;
    3602              :             }
    3603              :           default:;
    3604              :           }
    3605              :         break;
    3606              :       }
    3607          147 :     case BIT_NOT_EXPR:
    3608          147 :       {
    3609          147 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3610          147 :         {
    3611          147 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3612          147 :           tree res = generic_simplify_521 (loc, type, _p0, captures);
    3613          147 :           if (res) return res;
    3614              :         }
    3615            0 :         break;
    3616              :       }
    3617         3814 :     case NEGATE_EXPR:
    3618         3814 :       {
    3619         3814 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3620         3814 :         {
    3621         3814 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3622         3814 :           tree res = generic_simplify_522 (loc, type, _p0, captures);
    3623         3814 :           if (res) return res;
    3624              :         }
    3625           13 :         break;
    3626              :       }
    3627           72 :     case VEC_COND_EXPR:
    3628           72 :       {
    3629           72 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3630           72 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3631           72 :         tree _q22 = TREE_OPERAND (_p0, 2);
    3632           72 :         {
    3633           72 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3634           72 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1098;
    3635           72 :           {
    3636           72 :             tree res_op0;
    3637           72 :             res_op0 = captures[1];
    3638           72 :             tree res_op1;
    3639           72 :             {
    3640           72 :               tree _o1[1], _r1;
    3641           72 :               _o1[0] = captures[2];
    3642           72 :               _r1 = fold_build1_loc (loc, NEGATE_EXPR, type, _o1[0]);
    3643           72 :               if (EXPR_P (_r1))
    3644            0 :                 goto next_after_fail1098;
    3645           72 :               res_op1 = _r1;
    3646              :             }
    3647           72 :             tree res_op2;
    3648           72 :             {
    3649           72 :               tree _o1[1], _r1;
    3650           72 :               _o1[0] = captures[3];
    3651           72 :               _r1 = fold_build1_loc (loc, NEGATE_EXPR, type, _o1[0]);
    3652           72 :               if (EXPR_P (_r1))
    3653            0 :                 goto next_after_fail1098;
    3654           72 :               res_op2 = _r1;
    3655              :             }
    3656           72 :             tree _r;
    3657           72 :             _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    3658           72 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 840, __FILE__, __LINE__, true);
    3659           72 :             return _r;
    3660              :           }
    3661            0 : next_after_fail1098:;
    3662              :         }
    3663            0 :         break;
    3664              :       }
    3665       275270 :     case CALL_EXPR:
    3666       275270 :       switch (get_call_combined_fn (_p0))
    3667              :         {
    3668           12 :         case CFN_BUILT_IN_FMA:
    3669           12 :           if (call_expr_nargs (_p0) == 3)
    3670              :     {
    3671           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3672           12 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3673           12 :               tree _q22 = CALL_EXPR_ARG (_p0, 2);
    3674           12 :               {
    3675           12 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3676           12 :                 tree res = generic_simplify_525 (loc, type, _p0, captures, CFN_BUILT_IN_FMA);
    3677           12 :                 if (res) return res;
    3678              :               }
    3679              :             }
    3680              :           break;
    3681            0 :         case CFN_COND_FMA:
    3682            0 :           if (call_expr_nargs (_p0) == 5)
    3683              :     {
    3684            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3685            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3686            0 :               tree _q22 = CALL_EXPR_ARG (_p0, 2);
    3687            0 :               tree _q23 = CALL_EXPR_ARG (_p0, 3);
    3688            0 :               tree _q24 = CALL_EXPR_ARG (_p0, 4);
    3689            0 :               {
    3690            0 :                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
    3691            0 :                 const combined_fn fmas = CFN_COND_FMA;
    3692            0 :                 if (canonicalize_math_after_vectorization_p ()
    3693              : )
    3694              :                   {
    3695              :                     if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
    3696              : )
    3697              :                       {
    3698              :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1099;
    3699              :                         {
    3700              :                           tree res_op0;
    3701              :                           res_op0 = captures[1];
    3702              :                           tree res_op1;
    3703              :                           res_op1 = captures[2];
    3704              :                           tree res_op2;
    3705              :                           res_op2 = captures[3];
    3706              :                           tree res_op3;
    3707              :                           res_op3 = captures[4];
    3708              :                           tree res_op4;
    3709              :                           {
    3710              :                             tree _o1[1], _r1;
    3711              :                             _o1[0] = captures[5];
    3712              :                             _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3713              :                             res_op4 = _r1;
    3714              :                           }
    3715              :                           tree _r;
    3716              :                           _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3717              :                           if (!_r)
    3718              :                             goto next_after_fail1099;
    3719              :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 874, __FILE__, __LINE__, true);
    3720              :                           return _r;
    3721              :                         }
    3722            0 : next_after_fail1099:;
    3723              :                       }
    3724              :                   }
    3725              :               }
    3726              :             }
    3727              :           break;
    3728            0 :         case CFN_COND_FMS:
    3729            0 :           if (call_expr_nargs (_p0) == 5)
    3730              :     {
    3731            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3732            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3733            0 :               tree _q22 = CALL_EXPR_ARG (_p0, 2);
    3734            0 :               tree _q23 = CALL_EXPR_ARG (_p0, 3);
    3735            0 :               tree _q24 = CALL_EXPR_ARG (_p0, 4);
    3736            0 :               {
    3737            0 :                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
    3738            0 :                 if (canonicalize_math_after_vectorization_p ()
    3739              : )
    3740              :                   {
    3741              :                     if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
    3742              : )
    3743              :                       {
    3744              :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1100;
    3745              :                         {
    3746              :                           tree res_op0;
    3747              :                           res_op0 = captures[1];
    3748              :                           tree res_op1;
    3749              :                           res_op1 = captures[2];
    3750              :                           tree res_op2;
    3751              :                           res_op2 = captures[3];
    3752              :                           tree res_op3;
    3753              :                           res_op3 = captures[4];
    3754              :                           tree res_op4;
    3755              :                           {
    3756              :                             tree _o1[1], _r1;
    3757              :                             _o1[0] = captures[5];
    3758              :                             _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3759              :                             res_op4 = _r1;
    3760              :                           }
    3761              :                           tree _r;
    3762              :                           _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3763              :                           if (!_r)
    3764              :                             goto next_after_fail1100;
    3765              :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 875, __FILE__, __LINE__, true);
    3766              :                           return _r;
    3767              :                         }
    3768            0 : next_after_fail1100:;
    3769              :                       }
    3770              :                   }
    3771              :               }
    3772              :             }
    3773              :           break;
    3774            4 :         case CFN_BUILT_IN_FMAF:
    3775            4 :           if (call_expr_nargs (_p0) == 3)
    3776              :     {
    3777            4 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3778            4 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3779            4 :               tree _q22 = CALL_EXPR_ARG (_p0, 2);
    3780            4 :               {
    3781            4 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3782            4 :                 tree res = generic_simplify_525 (loc, type, _p0, captures, CFN_BUILT_IN_FMAF);
    3783            4 :                 if (res) return res;
    3784              :               }
    3785              :             }
    3786              :           break;
    3787            0 :         case CFN_BUILT_IN_FMAL:
    3788            0 :           if (call_expr_nargs (_p0) == 3)
    3789              :     {
    3790            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3791            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3792            0 :               tree _q22 = CALL_EXPR_ARG (_p0, 2);
    3793            0 :               {
    3794            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3795            0 :                 tree res = generic_simplify_525 (loc, type, _p0, captures, CFN_BUILT_IN_FMAL);
    3796            0 :                 if (res) return res;
    3797              :               }
    3798              :             }
    3799              :           break;
    3800            0 :         case CFN_FMA:
    3801            0 :           if (call_expr_nargs (_p0) == 3)
    3802              :     {
    3803            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3804            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3805            0 :               tree _q22 = CALL_EXPR_ARG (_p0, 2);
    3806            0 :               {
    3807            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3808            0 :                 tree res = generic_simplify_525 (loc, type, _p0, captures, CFN_FMA);
    3809            0 :                 if (res) return res;
    3810              :               }
    3811              :             }
    3812              :           break;
    3813            0 :         case CFN_FMS:
    3814            0 :           if (call_expr_nargs (_p0) == 3)
    3815              :     {
    3816            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3817            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3818            0 :               tree _q22 = CALL_EXPR_ARG (_p0, 2);
    3819            0 :               {
    3820            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3821            0 :                 if (canonicalize_math_after_vectorization_p ()
    3822              : )
    3823              :                   {
    3824              :                     if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
    3825              : )
    3826              :                       {
    3827              :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1101;
    3828              :                         {
    3829              :                           tree res_op0;
    3830              :                           res_op0 = captures[1];
    3831              :                           tree res_op1;
    3832              :                           res_op1 = captures[2];
    3833              :                           tree res_op2;
    3834              :                           res_op2 = captures[3];
    3835              :                           tree _r;
    3836              :                           _r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
    3837              :                           if (!_r)
    3838              :                             goto next_after_fail1101;
    3839              :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
    3840              :                           return _r;
    3841              :                         }
    3842            0 : next_after_fail1101:;
    3843              :                       }
    3844              :                   }
    3845              :               }
    3846              :             }
    3847              :           break;
    3848            0 :         case CFN_COND_FNMA:
    3849            0 :           if (call_expr_nargs (_p0) == 5)
    3850              :     {
    3851            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3852            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3853            0 :               tree _q22 = CALL_EXPR_ARG (_p0, 2);
    3854            0 :               tree _q23 = CALL_EXPR_ARG (_p0, 3);
    3855            0 :               tree _q24 = CALL_EXPR_ARG (_p0, 4);
    3856            0 :               {
    3857            0 :                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
    3858            0 :                 if (canonicalize_math_after_vectorization_p ()
    3859              : )
    3860              :                   {
    3861              :                     if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
    3862              : )
    3863              :                       {
    3864              :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1102;
    3865              :                         {
    3866              :                           tree res_op0;
    3867              :                           res_op0 = captures[1];
    3868              :                           tree res_op1;
    3869              :                           res_op1 = captures[2];
    3870              :                           tree res_op2;
    3871              :                           res_op2 = captures[3];
    3872              :                           tree res_op3;
    3873              :                           res_op3 = captures[4];
    3874              :                           tree res_op4;
    3875              :                           {
    3876              :                             tree _o1[1], _r1;
    3877              :                             _o1[0] = captures[5];
    3878              :                             _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3879              :                             res_op4 = _r1;
    3880              :                           }
    3881              :                           tree _r;
    3882              :                           _r = maybe_build_call_expr_loc (loc, CFN_COND_FMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3883              :                           if (!_r)
    3884              :                             goto next_after_fail1102;
    3885              :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
    3886              :                           return _r;
    3887              :                         }
    3888            0 : next_after_fail1102:;
    3889              :                       }
    3890              :                   }
    3891              :               }
    3892              :             }
    3893              :           break;
    3894            0 :         case CFN_COND_FNMS:
    3895            0 :           if (call_expr_nargs (_p0) == 5)
    3896              :     {
    3897            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3898            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3899            0 :               tree _q22 = CALL_EXPR_ARG (_p0, 2);
    3900            0 :               tree _q23 = CALL_EXPR_ARG (_p0, 3);
    3901            0 :               tree _q24 = CALL_EXPR_ARG (_p0, 4);
    3902            0 :               {
    3903            0 :                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _q23, _q24 };
    3904            0 :                 if (canonicalize_math_after_vectorization_p ()
    3905              : )
    3906              :                   {
    3907              :                     if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
    3908              : )
    3909              :                       {
    3910              :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1103;
    3911              :                         {
    3912              :                           tree res_op0;
    3913              :                           res_op0 = captures[1];
    3914              :                           tree res_op1;
    3915              :                           res_op1 = captures[2];
    3916              :                           tree res_op2;
    3917              :                           res_op2 = captures[3];
    3918              :                           tree res_op3;
    3919              :                           res_op3 = captures[4];
    3920              :                           tree res_op4;
    3921              :                           {
    3922              :                             tree _o1[1], _r1;
    3923              :                             _o1[0] = captures[5];
    3924              :                             _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3925              :                             res_op4 = _r1;
    3926              :                           }
    3927              :                           tree _r;
    3928              :                           _r = maybe_build_call_expr_loc (loc, CFN_COND_FMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3929              :                           if (!_r)
    3930              :                             goto next_after_fail1103;
    3931              :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
    3932              :                           return _r;
    3933              :                         }
    3934            0 : next_after_fail1103:;
    3935              :                       }
    3936              :                   }
    3937              :               }
    3938              :             }
    3939              :           break;
    3940            0 :         case CFN_FNMA:
    3941            0 :           if (call_expr_nargs (_p0) == 3)
    3942              :     {
    3943            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3944            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3945            0 :               tree _q22 = CALL_EXPR_ARG (_p0, 2);
    3946            0 :               {
    3947            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3948            0 :                 if (canonicalize_math_after_vectorization_p ()
    3949              : )
    3950              :                   {
    3951              :                     if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
    3952              : )
    3953              :                       {
    3954              :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1104;
    3955              :                         {
    3956              :                           tree res_op0;
    3957              :                           res_op0 = captures[1];
    3958              :                           tree res_op1;
    3959              :                           res_op1 = captures[2];
    3960              :                           tree res_op2;
    3961              :                           res_op2 = captures[3];
    3962              :                           tree _r;
    3963              :                           _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
    3964              :                           if (!_r)
    3965              :                             goto next_after_fail1104;
    3966              :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 879, __FILE__, __LINE__, true);
    3967              :                           return _r;
    3968              :                         }
    3969            0 : next_after_fail1104:;
    3970              :                       }
    3971              :                   }
    3972              :               }
    3973              :             }
    3974              :           break;
    3975            0 :         case CFN_FNMS:
    3976            0 :           if (call_expr_nargs (_p0) == 3)
    3977              :     {
    3978            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3979            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3980            0 :               tree _q22 = CALL_EXPR_ARG (_p0, 2);
    3981            0 :               {
    3982            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3983            0 :                 if (canonicalize_math_after_vectorization_p ()
    3984              : )
    3985              :                   {
    3986              :                     if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
    3987              : )
    3988              :                       {
    3989              :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1105;
    3990              :                         {
    3991              :                           tree res_op0;
    3992              :                           res_op0 = captures[1];
    3993              :                           tree res_op1;
    3994              :                           res_op1 = captures[2];
    3995              :                           tree res_op2;
    3996              :                           res_op2 = captures[3];
    3997              :                           tree _r;
    3998              :                           _r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
    3999              :                           if (!_r)
    4000              :                             goto next_after_fail1105;
    4001              :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 880, __FILE__, __LINE__, true);
    4002              :                           return _r;
    4003              :                         }
    4004            0 : next_after_fail1105:;
    4005              :                       }
    4006              :                   }
    4007              :               }
    4008              :             }
    4009              :           break;
    4010              :         default:;
    4011              :         }
    4012              :       break;
    4013      4216248 :     default:;
    4014              :     }
    4015      4216248 : {
    4016      4216248 :   tree _p0_pops[1];
    4017      4216248 :   if (tree_nop_convert (_p0, _p0_pops))
    4018              :     {
    4019      1581875 :       tree _q20 = _p0_pops[0];
    4020      1581875 :       switch (TREE_CODE (_q20))
    4021              :         {
    4022            0 :         case POINTER_DIFF_EXPR:
    4023            0 :           {
    4024            0 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4025            0 :             tree _q31 = TREE_OPERAND (_q20, 1);
    4026            0 :             {
    4027            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    4028            0 :               tree res = generic_simplify_520 (loc, type, _p0, captures);
    4029            0 :               if (res) return res;
    4030              :             }
    4031            0 :             break;
    4032              :           }
    4033            0 :         case BIT_NOT_EXPR:
    4034            0 :           {
    4035            0 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4036            0 :             {
    4037            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    4038            0 :               tree res = generic_simplify_521 (loc, type, _p0, captures);
    4039            0 :               if (res) return res;
    4040              :             }
    4041            0 :             break;
    4042              :           }
    4043            0 :         case NEGATE_EXPR:
    4044            0 :           {
    4045            0 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4046            0 :             {
    4047            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    4048            0 :               tree res = generic_simplify_522 (loc, type, _p0, captures);
    4049            0 :               if (res) return res;
    4050              :             }
    4051            0 :             break;
    4052              :           }
    4053              :         default:;
    4054              :         }
    4055              :     }
    4056              : }
    4057      4216248 : {
    4058      4216248 :   tree _p0_pops[1];
    4059      4216248 :   if (tree_logical_inverted_value (_p0, _p0_pops))
    4060              :     {
    4061           70 :       tree _q20 = _p0_pops[0];
    4062           70 :       {
    4063           70 :         tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
    4064           70 :         if (INTEGRAL_TYPE_P (type)
    4065           70 :  && TREE_CODE (type) != BOOLEAN_TYPE
    4066           70 :  && TYPE_PRECISION (type) > 1
    4067           70 :  && TREE_CODE (captures[2]) == SSA_NAME
    4068           70 :  && ssa_name_has_boolean_range (captures[2])
    4069              : )
    4070              :           {
    4071            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1106;
    4072            0 :             {
    4073            0 :               tree res_op0;
    4074            0 :               {
    4075            0 :                 tree _o1[1], _r1;
    4076            0 :                 _o1[0] = captures[2];
    4077            0 :                 if (TREE_TYPE (_o1[0]) != type)
    4078              :                   {
    4079            0 :                     _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    4080              :                   }
    4081              :                 else
    4082              :                   _r1 = _o1[0];
    4083            0 :                 res_op0 = _r1;
    4084              :               }
    4085            0 :               tree res_op1;
    4086            0 :               res_op1 =  build_all_ones_cst (type);
    4087            0 :               tree _r;
    4088            0 :               _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    4089            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    4090            0 :               return _r;
    4091              :             }
    4092            0 : next_after_fail1106:;
    4093              :           }
    4094              :       }
    4095              :     }
    4096              : }
    4097      4216248 :   {
    4098      4216248 :     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4099      4216248 :     tree res = generic_simplify_444 (loc, type, _p0, captures);
    4100      4216248 :     if (res) return res;
    4101              :   }
    4102      4202469 :   return NULL_TREE;
    4103              : }
    4104              : 
    4105              : tree
    4106     27606290 : generic_simplify_EQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    4107              : {
    4108     27606290 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    4109     27606290 :   switch (TREE_CODE (_p1))
    4110              :     {
    4111          101 :     case NEGATE_EXPR:
    4112          101 :       {
    4113          101 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4114          101 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    4115              :           {
    4116            0 :             {
    4117            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4118            0 :               tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4119            0 :               if (res) return res;
    4120              :             }
    4121              :           }
    4122              :         break;
    4123              :       }
    4124     27606290 :     default:;
    4125              :     }
    4126     27606290 :   switch (TREE_CODE (_p0))
    4127              :     {
    4128         1333 :     case NEGATE_EXPR:
    4129         1333 :       {
    4130         1333 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4131         1333 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4132              :           {
    4133          101 :             {
    4134          101 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4135          101 :               tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4136          101 :               if (res) return res;
    4137              :             }
    4138              :           }
    4139              :         break;
    4140              :       }
    4141            0 :     case CEIL_MOD_EXPR:
    4142            0 :       {
    4143            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4144            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4145            0 :         if (integer_pow2p (_q21))
    4146              :           {
    4147            0 :             if (integer_zerop (_p1))
    4148              :               {
    4149            0 :                 {
    4150            0 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4151            0 :                   tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, EQ_EXPR, CEIL_MOD_EXPR);
    4152            0 :                   if (res) return res;
    4153              :                 }
    4154              :               }
    4155              :           }
    4156              :         break;
    4157              :       }
    4158          876 :     case FLOOR_MOD_EXPR:
    4159          876 :       {
    4160          876 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4161          876 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4162          876 :         if (integer_pow2p (_q21))
    4163              :           {
    4164           26 :             if (integer_zerop (_p1))
    4165              :               {
    4166           26 :                 {
    4167           26 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4168           26 :                   tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, EQ_EXPR, FLOOR_MOD_EXPR);
    4169           26 :                   if (res) return res;
    4170              :                 }
    4171              :               }
    4172              :           }
    4173              :         break;
    4174              :       }
    4175            0 :     case ROUND_MOD_EXPR:
    4176            0 :       {
    4177            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4178            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4179            0 :         if (integer_pow2p (_q21))
    4180              :           {
    4181            0 :             if (integer_zerop (_p1))
    4182              :               {
    4183            0 :                 {
    4184            0 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4185            0 :                   tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, EQ_EXPR, ROUND_MOD_EXPR);
    4186            0 :                   if (res) return res;
    4187              :                 }
    4188              :               }
    4189              :           }
    4190              :         break;
    4191              :       }
    4192        92592 :     case TRUNC_MOD_EXPR:
    4193        92592 :       {
    4194        92592 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4195        92592 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4196        92592 :         if (integer_pow2p (_q21))
    4197              :           {
    4198        39702 :             if (integer_zerop (_p1))
    4199              :               {
    4200          562 :                 {
    4201          562 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4202          562 :                   tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, EQ_EXPR, TRUNC_MOD_EXPR);
    4203          562 :                   if (res) return res;
    4204              :                 }
    4205              :               }
    4206              :           }
    4207              :         break;
    4208              :       }
    4209      5204055 :     CASE_CONVERT:
    4210      5204055 :       {
    4211      5204055 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4212      5204055 :         switch (TREE_CODE (_p1))
    4213              :           {
    4214            2 :           case LSHIFT_EXPR:
    4215            2 :             {
    4216            2 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4217            2 :               tree _q41 = TREE_OPERAND (_p1, 1);
    4218            2 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    4219              :                 {
    4220            0 :                   {
    4221            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    4222            0 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4223            0 :                     if (res) return res;
    4224              :                   }
    4225              :                 }
    4226              :               break;
    4227              :             }
    4228      5204055 :           default:;
    4229              :           }
    4230      5204055 :       {
    4231      5204055 :         tree _p1_pops[1];
    4232      5204055 :         if (tree_nop_convert (_p1, _p1_pops))
    4233              :           {
    4234      1267850 :             tree _q40 = _p1_pops[0];
    4235      1267850 :             switch (TREE_CODE (_q40))
    4236              :               {
    4237            0 :               case LSHIFT_EXPR:
    4238            0 :                 {
    4239            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    4240            0 :                   tree _q51 = TREE_OPERAND (_q40, 1);
    4241            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4242              :                     {
    4243            0 :                       {
    4244            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
    4245            0 :                         tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4246            0 :                         if (res) return res;
    4247              :                       }
    4248              :                     }
    4249              :                   break;
    4250              :                 }
    4251              :               default:;
    4252              :               }
    4253              :           }
    4254              :       }
    4255      5204055 :         switch (TREE_CODE (_q20))
    4256              :           {
    4257           92 :           case EXACT_DIV_EXPR:
    4258           92 :             {
    4259           92 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4260           92 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4261           92 :               switch (TREE_CODE (_q31))
    4262              :                 {
    4263           92 :                 case INTEGER_CST:
    4264           92 :                   {
    4265           92 :                     switch (TREE_CODE (_p1))
    4266              :                       {
    4267            0 :                       CASE_CONVERT:
    4268            0 :                         {
    4269            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    4270            0 :                           switch (TREE_CODE (_q60))
    4271              :                             {
    4272            0 :                             case EXACT_DIV_EXPR:
    4273            0 :                               {
    4274            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    4275            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    4276            0 :                                 if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    4277              :                                   {
    4278            0 :                                     {
    4279            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
    4280            0 :                                       tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4281            0 :                                       if (res) return res;
    4282              :                                     }
    4283              :                                   }
    4284              :                                 break;
    4285              :                               }
    4286              :                             default:;
    4287              :                             }
    4288              :                           break;
    4289              :                         }
    4290              :                       default:;
    4291              :                       }
    4292              :                     break;
    4293              :                   }
    4294              :                 default:;
    4295              :                 }
    4296              :               break;
    4297              :             }
    4298      5204055 :           default:;
    4299              :           }
    4300      5204055 :         switch (TREE_CODE (_p1))
    4301              :           {
    4302        29508 :           case PLUS_EXPR:
    4303        29508 :             {
    4304        29508 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4305        29508 :               tree _q41 = TREE_OPERAND (_p1, 1);
    4306        29508 :               switch (TREE_CODE (_q41))
    4307              :                 {
    4308           26 :                 CASE_CONVERT:
    4309           26 :                   {
    4310           26 :                     tree _q60 = TREE_OPERAND (_q41, 0);
    4311           26 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4312              :                       {
    4313            0 :                         {
    4314            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
    4315            0 :                           tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4316            0 :                           if (res) return res;
    4317              :                         }
    4318              :                       }
    4319              :                     break;
    4320              :                   }
    4321        29508 :                 default:;
    4322              :                 }
    4323        29508 :               switch (TREE_CODE (_q40))
    4324              :                 {
    4325         3994 :                 CASE_CONVERT:
    4326         3994 :                   {
    4327         3994 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    4328         3994 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4329              :                       {
    4330            0 :                         {
    4331            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
    4332            0 :                           tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4333            0 :                           if (res) return res;
    4334              :                         }
    4335              :                       }
    4336              :                     break;
    4337              :                   }
    4338        29508 :                 default:;
    4339              :                 }
    4340        29508 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    4341              :                 {
    4342            0 :                   {
    4343            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
    4344            0 :                     tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4345            0 :                     if (res) return res;
    4346              :                   }
    4347              :                 }
    4348        29508 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    4349              :                 {
    4350            0 :                   {
    4351            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
    4352            0 :                     tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4353            0 :                     if (res) return res;
    4354              :                   }
    4355              :                 }
    4356              :               break;
    4357              :             }
    4358      5204055 :           default:;
    4359              :           }
    4360      5204055 :       {
    4361      5204055 :         tree _p1_pops[1];
    4362      5204055 :         if (tree_nop_convert (_p1, _p1_pops))
    4363              :           {
    4364      1267850 :             tree _q40 = _p1_pops[0];
    4365      1267850 :             switch (TREE_CODE (_q40))
    4366              :               {
    4367           73 :               case PLUS_EXPR:
    4368           73 :                 {
    4369           73 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    4370           73 :                   tree _q51 = TREE_OPERAND (_q40, 1);
    4371           73 :                   switch (TREE_CODE (_q51))
    4372              :                     {
    4373            0 :                     CASE_CONVERT:
    4374            0 :                       {
    4375            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    4376            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    4377              :                           {
    4378            0 :                             {
    4379            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
    4380            0 :                               tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4381            0 :                               if (res) return res;
    4382              :                             }
    4383              :                           }
    4384              :                         break;
    4385              :                       }
    4386           73 :                     default:;
    4387              :                     }
    4388           73 :                   switch (TREE_CODE (_q50))
    4389              :                     {
    4390            4 :                     CASE_CONVERT:
    4391            4 :                       {
    4392            4 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    4393            4 :                         if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4394              :                           {
    4395            0 :                             {
    4396            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
    4397            0 :                               tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4398            0 :                               if (res) return res;
    4399              :                             }
    4400              :                           }
    4401              :                         break;
    4402              :                       }
    4403           73 :                     default:;
    4404              :                     }
    4405           73 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4406              :                     {
    4407            0 :                       {
    4408            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
    4409            0 :                         tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4410            0 :                         if (res) return res;
    4411              :                       }
    4412              :                     }
    4413           73 :                   if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4414              :                     {
    4415            0 :                       {
    4416            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
    4417            0 :                         tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4418            0 :                         if (res) return res;
    4419              :                       }
    4420              :                     }
    4421              :                   break;
    4422              :                 }
    4423              :               default:;
    4424              :               }
    4425              :           }
    4426              :       }
    4427      5204055 :         break;
    4428              :       }
    4429     27605699 :     default:;
    4430              :     }
    4431     27605699 : {
    4432     27605699 :   tree _p0_pops[1];
    4433     27605699 :   if (tree_nop_convert (_p0, _p0_pops))
    4434              :     {
    4435      3029838 :       tree _q20 = _p0_pops[0];
    4436      3029838 :       switch (TREE_CODE (_q20))
    4437              :         {
    4438            1 :         case LSHIFT_EXPR:
    4439            1 :           {
    4440            1 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4441            1 :             tree _q31 = TREE_OPERAND (_q20, 1);
    4442            1 :             switch (TREE_CODE (_p1))
    4443              :               {
    4444            0 :               CASE_CONVERT:
    4445            0 :                 {
    4446            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    4447            0 :                   if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    4448              :                     {
    4449            0 :                       {
    4450            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    4451            0 :                         tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4452            0 :                         if (res) return res;
    4453              :                       }
    4454              :                     }
    4455              :                   break;
    4456              :                 }
    4457            1 :               default:;
    4458              :               }
    4459            1 :             if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    4460              :               {
    4461            1 :                 {
    4462            1 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    4463            1 :                   tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4464            1 :                   if (res) return res;
    4465              :                 }
    4466              :               }
    4467              :             break;
    4468              :           }
    4469         2457 :         case PLUS_EXPR:
    4470         2457 :           {
    4471         2457 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4472         2457 :             tree _q31 = TREE_OPERAND (_q20, 1);
    4473         2457 :             switch (TREE_CODE (_q31))
    4474              :               {
    4475            0 :               CASE_CONVERT:
    4476            0 :                 {
    4477            0 :                   tree _q50 = TREE_OPERAND (_q31, 0);
    4478            0 :                   switch (TREE_CODE (_p1))
    4479              :                     {
    4480            0 :                     CASE_CONVERT:
    4481            0 :                       {
    4482            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    4483            0 :                         if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
    4484              :                           {
    4485            0 :                             {
    4486            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
    4487            0 :                               tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4488            0 :                               if (res) return res;
    4489              :                             }
    4490              :                           }
    4491              :                         break;
    4492              :                       }
    4493              :                     default:;
    4494              :                     }
    4495              :                   break;
    4496              :                 }
    4497         2457 :               default:;
    4498              :               }
    4499         2457 :             switch (TREE_CODE (_q30))
    4500              :               {
    4501         1197 :               CASE_CONVERT:
    4502         1197 :                 {
    4503         1197 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    4504         1197 :                   switch (TREE_CODE (_p1))
    4505              :                     {
    4506            8 :                     CASE_CONVERT:
    4507            8 :                       {
    4508            8 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    4509            8 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    4510              :                           {
    4511            0 :                             {
    4512            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
    4513            0 :                               tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4514            0 :                               if (res) return res;
    4515              :                             }
    4516              :                           }
    4517              :                         break;
    4518              :                       }
    4519         1197 :                     default:;
    4520              :                     }
    4521         1197 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    4522              :                     {
    4523            0 :                       {
    4524            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
    4525            0 :                         tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4526            0 :                         if (res) return res;
    4527              :                       }
    4528              :                     }
    4529              :                   break;
    4530              :                 }
    4531         2457 :               default:;
    4532              :               }
    4533         2457 :             switch (TREE_CODE (_q31))
    4534              :               {
    4535            0 :               CASE_CONVERT:
    4536            0 :                 {
    4537            0 :                   tree _q50 = TREE_OPERAND (_q31, 0);
    4538            0 :                   if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    4539              :                     {
    4540            0 :                       {
    4541            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
    4542            0 :                         tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4543            0 :                         if (res) return res;
    4544              :                       }
    4545              :                     }
    4546              :                   break;
    4547              :                 }
    4548         2457 :               default:;
    4549              :               }
    4550         2457 :             switch (TREE_CODE (_p1))
    4551              :               {
    4552           77 :               CASE_CONVERT:
    4553           77 :                 {
    4554           77 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    4555           77 :                   if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    4556              :                     {
    4557            0 :                       {
    4558            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    4559            0 :                         tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4560            0 :                         if (res) return res;
    4561              :                       }
    4562              :                     }
    4563           77 :                   if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    4564              :                     {
    4565            0 :                       {
    4566            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
    4567            0 :                         tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4568            0 :                         if (res) return res;
    4569              :                       }
    4570              :                     }
    4571              :                   break;
    4572              :                 }
    4573         2457 :               default:;
    4574              :               }
    4575         2457 :             if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    4576              :               {
    4577            0 :                 {
    4578            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    4579            0 :                   tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4580            0 :                   if (res) return res;
    4581              :                 }
    4582              :               }
    4583         2457 :             if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4584              :               {
    4585            0 :                 {
    4586            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
    4587            0 :                   tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4588            0 :                   if (res) return res;
    4589              :                 }
    4590              :               }
    4591              :             break;
    4592              :           }
    4593              :         default:;
    4594              :         }
    4595              :     }
    4596              : }
    4597     27605698 :   {
    4598     27605698 :     tree _p1_pops[1];
    4599     27605698 :     if (tree_nop_convert (_p1, _p1_pops))
    4600              :       {
    4601      1507922 :         tree _q30 = _p1_pops[0];
    4602      1507922 :         switch (TREE_CODE (_q30))
    4603              :           {
    4604            0 :           case LSHIFT_EXPR:
    4605            0 :             {
    4606            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4607            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4608            0 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    4609              :                 {
    4610            0 :                   {
    4611            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
    4612            0 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4613            0 :                     if (res) return res;
    4614              :                   }
    4615              :                 }
    4616              :               break;
    4617              :             }
    4618              :           default:;
    4619              :           }
    4620              :       }
    4621              :   }
    4622     27605698 :   switch (TREE_CODE (_p0))
    4623              :     {
    4624         2072 :     case LSHIFT_EXPR:
    4625         2072 :       {
    4626         2072 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4627         2072 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4628         2072 :         switch (TREE_CODE (_p1))
    4629              :           {
    4630           61 :           CASE_CONVERT:
    4631           61 :             {
    4632           61 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4633           61 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4634              :                 {
    4635            4 :                   {
    4636            4 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4637            4 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4638            4 :                     if (res) return res;
    4639              :                   }
    4640              :                 }
    4641              :               break;
    4642              :             }
    4643         2071 :           default:;
    4644              :           }
    4645         2071 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4646              :           {
    4647           27 :             {
    4648           27 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4649           27 :               tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4650           27 :               if (res) return res;
    4651              :             }
    4652              :           }
    4653         2067 :         if (tree_zero_one_valued_p (_q20))
    4654              :           {
    4655          239 :             switch (TREE_CODE (_q21))
    4656              :               {
    4657           10 :               case INTEGER_CST:
    4658           10 :                 {
    4659           10 :                   if (integer_zerop (_p1))
    4660              :                     {
    4661            2 :                       {
    4662            2 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4663            2 :                         tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4664            2 :                         if (res) return res;
    4665              :                       }
    4666              :                     }
    4667              :                   break;
    4668              :                 }
    4669              :               default:;
    4670              :               }
    4671              :           }
    4672              :         break;
    4673              :       }
    4674     27605691 :     default:;
    4675              :     }
    4676     27605691 :   switch (TREE_CODE (_p1))
    4677              :     {
    4678          235 :     case LSHIFT_EXPR:
    4679          235 :       {
    4680          235 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4681          235 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4682          235 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4683              :           {
    4684            0 :             {
    4685            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    4686            0 :               tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4687            0 :               if (res) return res;
    4688              :             }
    4689              :           }
    4690              :         break;
    4691              :       }
    4692     27605691 :     default:;
    4693              :     }
    4694     27605691 :   switch (TREE_CODE (_p0))
    4695              :     {
    4696        46317 :     case VIEW_CONVERT_EXPR:
    4697        46317 :       {
    4698        46317 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4699        46317 :         if (tree_zero_one_valued_p (_q20))
    4700              :           {
    4701            0 :             if (integer_zerop (_p1))
    4702              :               {
    4703            0 :                 {
    4704            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    4705            0 :                   tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
    4706            0 :                   if (res) return res;
    4707              :                 }
    4708              :               }
    4709              :           }
    4710              :         break;
    4711              :       }
    4712        15930 :     case RSHIFT_EXPR:
    4713        15930 :       {
    4714        15930 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4715        15930 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4716        15930 :         switch (TREE_CODE (_q21))
    4717              :           {
    4718        14670 :           case INTEGER_CST:
    4719        14670 :             {
    4720        14670 :               switch (TREE_CODE (_p1))
    4721              :                 {
    4722          106 :                 case RSHIFT_EXPR:
    4723          106 :                   {
    4724          106 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4725          106 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    4726          106 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4727              :                       {
    4728           18 :                         switch (TREE_CODE (_q51))
    4729              :                           {
    4730           18 :                           case INTEGER_CST:
    4731           18 :                             {
    4732           18 :                               {
    4733           18 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4734           18 :                                 tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
    4735           18 :                                 if (res) return res;
    4736              :                               }
    4737           17 :                               break;
    4738              :                             }
    4739              :                           default:;
    4740              :                           }
    4741              :                       }
    4742              :                     break;
    4743              :                   }
    4744        14669 :                 default:;
    4745              :                 }
    4746        14669 :             if (integer_zerop (_p1))
    4747              :               {
    4748         1530 :                 {
    4749         1530 :                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    4750         1530 :                   tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
    4751         1530 :                   if (res) return res;
    4752              :                 }
    4753              :               }
    4754              :               break;
    4755              :             }
    4756              :           default:;
    4757              :           }
    4758              :         break;
    4759              :       }
    4760       834807 :     case BIT_AND_EXPR:
    4761       834807 :       {
    4762       834807 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4763       834807 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4764       834807 :         if (tree_truth_valued_p (_q20))
    4765              :           {
    4766          159 :             if (tree_truth_valued_p (_q21))
    4767              :               {
    4768          158 :                 switch (TREE_CODE (_p1))
    4769              :                   {
    4770           56 :                   case BIT_XOR_EXPR:
    4771           56 :                     {
    4772           56 :                       tree _q50 = TREE_OPERAND (_p1, 0);
    4773           56 :                       tree _q51 = TREE_OPERAND (_p1, 1);
    4774           56 :                       if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4775              :                         {
    4776           56 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4777              :                             {
    4778           56 :                               {
    4779           56 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4780          112 :                                 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4781          112 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
    4782              : )
    4783              :                                   {
    4784           56 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1511;
    4785           56 :                                     {
    4786           56 :                                       tree res_op0;
    4787           56 :                                       {
    4788           56 :                                         tree _o1[1], _r1;
    4789           56 :                                         {
    4790           56 :                                           tree _o2[2], _r2;
    4791           56 :                                           _o2[0] = captures[0];
    4792           56 :                                           _o2[1] = captures[1];
    4793           56 :                                           _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    4794           56 :                                           _o1[0] = _r2;
    4795              :                                         }
    4796           56 :                                         _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4797           56 :                                         res_op0 = _r1;
    4798              :                                       }
    4799           56 :                                       tree _r;
    4800           56 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4801           56 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
    4802           56 :                                       return _r;
    4803              :                                     }
    4804            0 : next_after_fail1511:;
    4805              :                                   }
    4806              :                                 else
    4807              :                                   {
    4808            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1512;
    4809            0 :                                     {
    4810            0 :                                       tree res_op0;
    4811            0 :                                       {
    4812            0 :                                         tree _o1[2], _r1;
    4813            0 :                                         {
    4814            0 :                                           tree _o2[2], _r2;
    4815            0 :                                           _o2[0] = captures[0];
    4816            0 :                                           _o2[1] = captures[1];
    4817            0 :                                           _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    4818            0 :                                           _o1[0] = _r2;
    4819              :                                         }
    4820            0 :                                         _o1[1] =  build_one_cst (TREE_TYPE (captures[0]));
    4821            0 :                                         _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4822            0 :                                         res_op0 = _r1;
    4823              :                                       }
    4824            0 :                                       tree _r;
    4825            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4826            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    4827            0 :                                       return _r;
    4828              :                                     }
    4829            0 : next_after_fail1512:;
    4830              :                                   }
    4831              :                               }
    4832              :                             }
    4833              :                         }
    4834            0 :                       if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4835              :                         {
    4836            0 :                           if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4837              :                             {
    4838            0 :                               {
    4839            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    4840            0 :                                 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4841            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
    4842              : )
    4843              :                                   {
    4844            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1513;
    4845            0 :                                     {
    4846            0 :                                       tree res_op0;
    4847            0 :                                       {
    4848            0 :                                         tree _o1[1], _r1;
    4849            0 :                                         {
    4850            0 :                                           tree _o2[2], _r2;
    4851            0 :                                           _o2[0] = captures[0];
    4852            0 :                                           _o2[1] = captures[1];
    4853            0 :                                           _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    4854            0 :                                           _o1[0] = _r2;
    4855              :                                         }
    4856            0 :                                         _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4857            0 :                                         res_op0 = _r1;
    4858              :                                       }
    4859            0 :                                       tree _r;
    4860            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4861            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
    4862            0 :                                       return _r;
    4863              :                                     }
    4864            0 : next_after_fail1513:;
    4865              :                                   }
    4866              :                                 else
    4867              :                                   {
    4868            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1514;
    4869            0 :                                     {
    4870            0 :                                       tree res_op0;
    4871            0 :                                       {
    4872            0 :                                         tree _o1[2], _r1;
    4873            0 :                                         {
    4874            0 :                                           tree _o2[2], _r2;
    4875            0 :                                           _o2[0] = captures[0];
    4876            0 :                                           _o2[1] = captures[1];
    4877            0 :                                           _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    4878            0 :                                           _o1[0] = _r2;
    4879              :                                         }
    4880            0 :                                         _o1[1] =  build_one_cst (TREE_TYPE (captures[0]));
    4881            0 :                                         _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4882            0 :                                         res_op0 = _r1;
    4883              :                                       }
    4884            0 :                                       tree _r;
    4885            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4886            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    4887            0 :                                       return _r;
    4888              :                                     }
    4889            0 : next_after_fail1514:;
    4890              :                                   }
    4891              :                               }
    4892              :                             }
    4893              :                         }
    4894              :                       break;
    4895              :                     }
    4896              :                   default:;
    4897              :                   }
    4898              :               }
    4899              :           }
    4900              :         break;
    4901              :       }
    4902          635 :     case BIT_XOR_EXPR:
    4903          635 :       {
    4904          635 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4905          635 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4906          635 :         switch (TREE_CODE (_p1))
    4907              :           {
    4908            0 :           case BIT_AND_EXPR:
    4909            0 :             {
    4910            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4911            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4912            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4913              :                 {
    4914            0 :                   if (tree_truth_valued_p (_q50))
    4915              :                     {
    4916            0 :                       if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4917              :                         {
    4918            0 :                           if (tree_truth_valued_p (_q51))
    4919              :                             {
    4920            0 :                               {
    4921            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4922            0 :                                 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4923            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
    4924              : )
    4925              :                                   {
    4926            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1515;
    4927            0 :                                     {
    4928            0 :                                       tree res_op0;
    4929            0 :                                       {
    4930            0 :                                         tree _o1[1], _r1;
    4931            0 :                                         {
    4932            0 :                                           tree _o2[2], _r2;
    4933            0 :                                           _o2[0] = captures[0];
    4934            0 :                                           _o2[1] = captures[1];
    4935            0 :                                           _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    4936            0 :                                           _o1[0] = _r2;
    4937              :                                         }
    4938            0 :                                         _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4939            0 :                                         res_op0 = _r1;
    4940              :                                       }
    4941            0 :                                       tree _r;
    4942            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4943            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
    4944            0 :                                       return _r;
    4945              :                                     }
    4946            0 : next_after_fail1515:;
    4947              :                                   }
    4948              :                                 else
    4949              :                                   {
    4950            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1516;
    4951            0 :                                     {
    4952            0 :                                       tree res_op0;
    4953            0 :                                       {
    4954            0 :                                         tree _o1[2], _r1;
    4955            0 :                                         {
    4956            0 :                                           tree _o2[2], _r2;
    4957            0 :                                           _o2[0] = captures[0];
    4958            0 :                                           _o2[1] = captures[1];
    4959            0 :                                           _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    4960            0 :                                           _o1[0] = _r2;
    4961              :                                         }
    4962            0 :                                         _o1[1] =  build_one_cst (TREE_TYPE (captures[0]));
    4963            0 :                                         _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4964            0 :                                         res_op0 = _r1;
    4965              :                                       }
    4966            0 :                                       tree _r;
    4967            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4968            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    4969            0 :                                       return _r;
    4970              :                                     }
    4971            0 : next_after_fail1516:;
    4972              :                                   }
    4973              :                               }
    4974              :                             }
    4975              :                         }
    4976              :                     }
    4977              :                 }
    4978            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4979              :                 {
    4980            0 :                   if (tree_truth_valued_p (_q50))
    4981              :                     {
    4982            0 :                       if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4983              :                         {
    4984            0 :                           if (tree_truth_valued_p (_q51))
    4985              :                             {
    4986            0 :                               {
    4987            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4988            0 :                                 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4989            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
    4990              : )
    4991              :                                   {
    4992            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1517;
    4993            0 :                                     {
    4994            0 :                                       tree res_op0;
    4995            0 :                                       {
    4996            0 :                                         tree _o1[1], _r1;
    4997            0 :                                         {
    4998            0 :                                           tree _o2[2], _r2;
    4999            0 :                                           _o2[0] = captures[0];
    5000            0 :                                           _o2[1] = captures[1];
    5001            0 :                                           _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    5002            0 :                                           _o1[0] = _r2;
    5003              :                                         }
    5004            0 :                                         _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    5005            0 :                                         res_op0 = _r1;
    5006              :                                       }
    5007            0 :                                       tree _r;
    5008            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    5009            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
    5010            0 :                                       return _r;
    5011              :                                     }
    5012            0 : next_after_fail1517:;
    5013              :                                   }
    5014              :                                 else
    5015              :                                   {
    5016            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1518;
    5017            0 :                                     {
    5018            0 :                                       tree res_op0;
    5019            0 :                                       {
    5020            0 :                                         tree _o1[2], _r1;
    5021            0 :                                         {
    5022            0 :                                           tree _o2[2], _r2;
    5023            0 :                                           _o2[0] = captures[0];
    5024            0 :                                           _o2[1] = captures[1];
    5025            0 :                                           _r2 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    5026            0 :                                           _o1[0] = _r2;
    5027              :                                         }
    5028            0 :                                         _o1[1] =  build_one_cst (TREE_TYPE (captures[0]));
    5029            0 :                                         _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    5030            0 :                                         res_op0 = _r1;
    5031              :                                       }
    5032            0 :                                       tree _r;
    5033            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    5034            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    5035            0 :                                       return _r;
    5036              :                                     }
    5037            0 : next_after_fail1518:;
    5038              :                                   }
    5039              :                               }
    5040              :                             }
    5041              :                         }
    5042              :                     }
    5043              :                 }
    5044              :               break;
    5045              :             }
    5046              :           default:;
    5047              :           }
    5048              :         break;
    5049              :       }
    5050          412 :     case BIT_NOT_EXPR:
    5051          412 :       {
    5052          412 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5053          412 :         if (tree_truth_valued_p (_q20))
    5054              :           {
    5055            8 :             if (tree_truth_valued_p (_p1))
    5056              :               {
    5057            8 :                 {
    5058            8 :                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    5059            8 :                   tree res = generic_simplify_216 (loc, type, _p0, _p1, captures);
    5060            8 :                   if (res) return res;
    5061              :                 }
    5062              :               }
    5063              :           }
    5064              :         break;
    5065              :       }
    5066        66518 :     case MULT_EXPR:
    5067        66518 :       {
    5068        66518 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5069        66518 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5070        66518 :         switch (TREE_CODE (_p1))
    5071              :           {
    5072          955 :           case MULT_EXPR:
    5073          955 :             {
    5074          955 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5075          955 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5076          955 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5077              :                 {
    5078          644 :                   {
    5079          644 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5080          644 :                     tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5081          644 :                     if (res) return res;
    5082              :                   }
    5083              :                 }
    5084          947 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5085              :                 {
    5086            0 :                   {
    5087            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5088            0 :                     tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5089            0 :                     if (res) return res;
    5090              :                   }
    5091              :                 }
    5092          947 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    5093              :                 {
    5094            0 :                   {
    5095            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    5096            0 :                     tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5097            0 :                     if (res) return res;
    5098              :                   }
    5099              :                 }
    5100          947 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5101              :                 {
    5102           24 :                   {
    5103           24 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    5104           24 :                     tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5105           24 :                     if (res) return res;
    5106              :                   }
    5107              :                 }
    5108              :               break;
    5109              :             }
    5110        66510 :           default:;
    5111              :           }
    5112        66510 :         switch (TREE_CODE (_q21))
    5113              :           {
    5114        58543 :           case INTEGER_CST:
    5115        58543 :             {
    5116        58543 :               switch (TREE_CODE (_p1))
    5117              :                 {
    5118          905 :                 case MULT_EXPR:
    5119          905 :                   {
    5120          905 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5121          905 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5122          905 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5123              :                       {
    5124          599 :                         {
    5125          599 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5126          599 :                           tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5127          599 :                           if (res) return res;
    5128              :                         }
    5129              :                       }
    5130              :                     break;
    5131              :                   }
    5132              :                 default:;
    5133              :                 }
    5134              :               break;
    5135              :             }
    5136              :           default:;
    5137              :           }
    5138              :         break;
    5139              :       }
    5140         7246 :     case EXACT_DIV_EXPR:
    5141         7246 :       {
    5142         7246 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5143         7246 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5144         7246 :         switch (TREE_CODE (_q21))
    5145              :           {
    5146         7246 :           case INTEGER_CST:
    5147         7246 :             {
    5148         7246 :               switch (TREE_CODE (_p1))
    5149              :                 {
    5150            0 :                 case EXACT_DIV_EXPR:
    5151            0 :                   {
    5152            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5153            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5154            0 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5155              :                       {
    5156            0 :                         {
    5157            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    5158            0 :                           tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5159            0 :                           if (res) return res;
    5160              :                         }
    5161              :                       }
    5162              :                     break;
    5163              :                   }
    5164              :                 default:;
    5165              :                 }
    5166              :               break;
    5167              :             }
    5168              :           default:;
    5169              :           }
    5170              :         break;
    5171              :       }
    5172         5373 :     case TRUNC_DIV_EXPR:
    5173         5373 :       {
    5174         5373 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5175         5373 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5176         5373 :         switch (TREE_CODE (_q21))
    5177              :           {
    5178         3882 :           case INTEGER_CST:
    5179         3882 :             {
    5180         3882 :               switch (TREE_CODE (_p1))
    5181              :                 {
    5182          995 :                 case INTEGER_CST:
    5183          995 :                   {
    5184          995 :                     {
    5185          995 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    5186          995 :                       tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5187          995 :                       if (res) return res;
    5188              :                     }
    5189           21 :                     break;
    5190              :                   }
    5191              :                 default:;
    5192              :                 }
    5193              :               break;
    5194              :             }
    5195              :           default:;
    5196              :           }
    5197              :         break;
    5198              :       }
    5199       673304 :     case PLUS_EXPR:
    5200       673304 :       {
    5201       673304 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5202       673304 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5203       673304 :         switch (TREE_CODE (_p1))
    5204              :           {
    5205        54541 :           case PLUS_EXPR:
    5206        54541 :             {
    5207        54541 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5208        54541 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5209        54541 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5210              :                 {
    5211          578 :                   {
    5212          578 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5213         1156 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5214          882 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5215          270 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5216              : )
    5217              :                       {
    5218          304 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1519;
    5219          304 :                         {
    5220          304 :                           tree res_op0;
    5221          304 :                           res_op0 = captures[0];
    5222          304 :                           tree res_op1;
    5223          304 :                           res_op1 = captures[2];
    5224          304 :                           tree _r;
    5225          304 :                           _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    5226          304 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5227            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5228          304 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    5229          304 :                           return _r;
    5230              :                         }
    5231            0 : next_after_fail1519:;
    5232              :                       }
    5233              :                   }
    5234              :                 }
    5235        54237 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5236              :                 {
    5237            4 :                   {
    5238            4 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5239            8 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5240            4 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5241            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5242              : )
    5243              :                       {
    5244            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1520;
    5245            0 :                         {
    5246            0 :                           tree res_op0;
    5247            0 :                           res_op0 = captures[0];
    5248            0 :                           tree res_op1;
    5249            0 :                           res_op1 = captures[2];
    5250            0 :                           tree _r;
    5251            0 :                           _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    5252            0 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5253            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5254            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    5255            0 :                           return _r;
    5256              :                         }
    5257            0 : next_after_fail1520:;
    5258              :                       }
    5259              :                   }
    5260              :                 }
    5261        54237 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    5262              :                 {
    5263            4 :                   {
    5264            4 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    5265            8 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5266            4 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5267            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5268              : )
    5269              :                       {
    5270            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1521;
    5271            0 :                         {
    5272            0 :                           tree res_op0;
    5273            0 :                           res_op0 = captures[0];
    5274            0 :                           tree res_op1;
    5275            0 :                           res_op1 = captures[2];
    5276            0 :                           tree _r;
    5277            0 :                           _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    5278            0 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5279            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5280            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    5281            0 :                           return _r;
    5282              :                         }
    5283            0 : next_after_fail1521:;
    5284              :                       }
    5285              :                   }
    5286              :                 }
    5287        54237 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5288              :                 {
    5289          249 :                   {
    5290          249 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    5291          498 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5292          249 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5293            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5294              : )
    5295              :                       {
    5296            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1522;
    5297            0 :                         {
    5298            0 :                           tree res_op0;
    5299            0 :                           res_op0 = captures[0];
    5300            0 :                           tree res_op1;
    5301            0 :                           res_op1 = captures[2];
    5302            0 :                           tree _r;
    5303            0 :                           _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    5304            0 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5305            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5306            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    5307            0 :                           return _r;
    5308              :                         }
    5309            0 : next_after_fail1522:;
    5310              :                       }
    5311              :                   }
    5312              :                 }
    5313              :               break;
    5314              :             }
    5315       673000 :           default:;
    5316              :           }
    5317       673000 :         switch (TREE_CODE (_q21))
    5318              :           {
    5319         2701 :           CASE_CONVERT:
    5320         2701 :             {
    5321         2701 :               tree _q40 = TREE_OPERAND (_q21, 0);
    5322         2701 :               switch (TREE_CODE (_p1))
    5323              :                 {
    5324          158 :                 CASE_CONVERT:
    5325          158 :                   {
    5326          158 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    5327          158 :                     if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
    5328              :                       {
    5329            0 :                         {
    5330            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
    5331            0 :                           tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5332            0 :                           if (res) return res;
    5333              :                         }
    5334              :                       }
    5335              :                     break;
    5336              :                   }
    5337              :                 default:;
    5338              :                 }
    5339              :               break;
    5340              :             }
    5341       673000 :           default:;
    5342              :           }
    5343       673000 :         switch (TREE_CODE (_q20))
    5344              :           {
    5345        25698 :           CASE_CONVERT:
    5346        25698 :             {
    5347        25698 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5348        25698 :               switch (TREE_CODE (_p1))
    5349              :                 {
    5350          355 :                 CASE_CONVERT:
    5351          355 :                   {
    5352          355 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    5353          355 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    5354              :                       {
    5355            2 :                         {
    5356            2 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
    5357            2 :                           tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5358            2 :                           if (res) return res;
    5359              :                         }
    5360              :                       }
    5361              :                     break;
    5362              :                   }
    5363        25697 :                 default:;
    5364              :                 }
    5365        25697 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    5366              :                 {
    5367            0 :                   {
    5368            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
    5369            0 :                     tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5370            0 :                     if (res) return res;
    5371              :                   }
    5372              :                 }
    5373              :               break;
    5374              :             }
    5375       672999 :           default:;
    5376              :           }
    5377       672999 :         switch (TREE_CODE (_q21))
    5378              :           {
    5379         2701 :           CASE_CONVERT:
    5380         2701 :             {
    5381         2701 :               tree _q40 = TREE_OPERAND (_q21, 0);
    5382         2701 :               if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5383              :                 {
    5384            0 :                   {
    5385            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
    5386            0 :                     tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5387            0 :                     if (res) return res;
    5388              :                   }
    5389              :                 }
    5390              :               break;
    5391              :             }
    5392       672999 :           default:;
    5393              :           }
    5394       672999 :         switch (TREE_CODE (_p1))
    5395              :           {
    5396        13844 :           CASE_CONVERT:
    5397        13844 :             {
    5398        13844 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5399        13844 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5400              :                 {
    5401            0 :                   {
    5402            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5403            0 :                     tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5404            0 :                     if (res) return res;
    5405              :                   }
    5406              :                 }
    5407        13844 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5408              :                 {
    5409            0 :                   {
    5410            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
    5411            0 :                     tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5412            0 :                     if (res) return res;
    5413              :                   }
    5414              :                 }
    5415              :               break;
    5416              :             }
    5417       672999 :           default:;
    5418              :           }
    5419       672999 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5420              :           {
    5421         2425 :             {
    5422         2425 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5423         2425 :               tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5424         2425 :               if (res) return res;
    5425              :             }
    5426              :           }
    5427       670642 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5428              :           {
    5429           78 :             {
    5430           78 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
    5431           78 :               tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5432           78 :               if (res) return res;
    5433              :             }
    5434              :           }
    5435              :         break;
    5436              :       }
    5437        64052 :     case POINTER_PLUS_EXPR:
    5438        64052 :       {
    5439        64052 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5440        64052 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5441        64052 :         switch (TREE_CODE (_p1))
    5442              :           {
    5443         2316 :           case POINTER_PLUS_EXPR:
    5444         2316 :             {
    5445         2316 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5446         2316 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5447         2316 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5448              :                 {
    5449           14 :                   {
    5450           14 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5451           14 :                     tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5452           14 :                     if (res) return res;
    5453              :                   }
    5454              :                 }
    5455              :               break;
    5456              :             }
    5457        64038 :           default:;
    5458              :           }
    5459        64038 :         switch (TREE_CODE (_q20))
    5460              :           {
    5461         1146 :           CASE_CONVERT:
    5462         1146 :             {
    5463         1146 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5464         1146 :               switch (TREE_CODE (_p1))
    5465              :                 {
    5466           84 :                 CASE_CONVERT:
    5467           84 :                   {
    5468           84 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    5469           84 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    5470              :                       {
    5471           54 :                         {
    5472           54 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
    5473           54 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5474           54 :                           if (res) return res;
    5475              :                         }
    5476              :                       }
    5477              :                     break;
    5478              :                   }
    5479         1092 :                 default:;
    5480              :                 }
    5481         1092 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    5482              :                 {
    5483            0 :                   {
    5484            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
    5485            0 :                     tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5486            0 :                     if (res) return res;
    5487              :                   }
    5488              :                 }
    5489              :               break;
    5490              :             }
    5491        63984 :           default:;
    5492              :           }
    5493        63984 :         switch (TREE_CODE (_p1))
    5494              :           {
    5495          410 :           CASE_CONVERT:
    5496          410 :             {
    5497          410 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5498          410 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5499              :                 {
    5500            0 :                   {
    5501            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5502            0 :                     tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5503            0 :                     if (res) return res;
    5504              :                   }
    5505              :                 }
    5506              :               break;
    5507              :             }
    5508        63984 :           default:;
    5509              :           }
    5510        63984 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5511              :           {
    5512         1483 :             {
    5513         1483 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5514         1483 :               tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5515         1483 :               if (res) return res;
    5516              :             }
    5517              :           }
    5518              :         break;
    5519              :       }
    5520       153730 :     case MINUS_EXPR:
    5521       153730 :       {
    5522       153730 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5523       153730 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5524       153730 :         switch (TREE_CODE (_p1))
    5525              :           {
    5526          177 :           case MINUS_EXPR:
    5527          177 :             {
    5528          177 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5529          177 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5530          177 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5531              :                 {
    5532           40 :                   {
    5533           40 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5534           80 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5535           40 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5536            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5537              : )
    5538              :                       {
    5539            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1523;
    5540            0 :                         {
    5541            0 :                           tree res_op0;
    5542            0 :                           res_op0 = captures[0];
    5543            0 :                           tree res_op1;
    5544            0 :                           res_op1 = captures[2];
    5545            0 :                           tree _r;
    5546            0 :                           _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    5547            0 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5548            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5549            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
    5550            0 :                           return _r;
    5551              :                         }
    5552            0 : next_after_fail1523:;
    5553              :                       }
    5554              :                   }
    5555              :                 }
    5556          177 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5557              :                 {
    5558           40 :                   {
    5559           40 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5560           80 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    5561           40 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    5562            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
    5563              : )
    5564              :                       {
    5565            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1524;
    5566            0 :                         {
    5567            0 :                           tree res_op0;
    5568            0 :                           res_op0 = captures[2];
    5569            0 :                           tree res_op1;
    5570            0 :                           res_op1 = captures[1];
    5571            0 :                           tree _r;
    5572            0 :                           _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    5573            0 :                           if (TREE_SIDE_EFFECTS (captures[0]))
    5574            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5575            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 938, __FILE__, __LINE__, true);
    5576            0 :                           return _r;
    5577              :                         }
    5578            0 : next_after_fail1524:;
    5579              :                       }
    5580              :                   }
    5581              :                 }
    5582              :               break;
    5583              :             }
    5584       153730 :           default:;
    5585              :           }
    5586       153730 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5587              :           {
    5588           92 :             {
    5589           92 :               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    5590           92 :               tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5591           92 :               if (res) return res;
    5592              :             }
    5593              :           }
    5594              :         break;
    5595              :       }
    5596        32734 :     case POINTER_DIFF_EXPR:
    5597        32734 :       {
    5598        32734 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5599        32734 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5600        32734 :         switch (TREE_CODE (_p1))
    5601              :           {
    5602         1289 :           case POINTER_DIFF_EXPR:
    5603         1289 :             {
    5604         1289 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5605         1289 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5606         1289 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5607              :                 {
    5608            0 :                   {
    5609            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    5610            0 :                     tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5611            0 :                     if (res) return res;
    5612              :                   }
    5613              :                 }
    5614         1289 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5615              :                 {
    5616            0 :                   {
    5617            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    5618            0 :                     tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5619            0 :                     if (res) return res;
    5620              :                   }
    5621              :                 }
    5622              :               break;
    5623              :             }
    5624              :           default:;
    5625              :           }
    5626              :         break;
    5627              :       }
    5628     27600256 :     default:;
    5629              :     }
    5630     27600256 : {
    5631     27600256 :   tree _p0_pops[1];
    5632     27600256 :   if (tree_logical_inverted_value (_p0, _p0_pops))
    5633              :     {
    5634         7858 :       tree _q20 = _p0_pops[0];
    5635         7858 :       if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5636              :         {
    5637            9 :           if (tree_truth_valued_p (_p1))
    5638              :             {
    5639            0 :               {
    5640            0 :                 tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    5641            0 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1525;
    5642            0 :                 {
    5643            0 :                   tree _r;
    5644            0 :                   _r =  constant_boolean_node (EQ_EXPR != EQ_EXPR, type);
    5645            0 :                   if (TREE_SIDE_EFFECTS (captures[0]))
    5646            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5647            0 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 905, __FILE__, __LINE__, true);
    5648            0 :                   return _r;
    5649              :                 }
    5650            0 : next_after_fail1525:;
    5651              :               }
    5652              :             }
    5653              :         }
    5654              :     }
    5655              : }
    5656     27600256 : if (tree_truth_valued_p (_p0))
    5657              :   {
    5658       631197 :     switch (TREE_CODE (_p1))
    5659              :       {
    5660           24 :       case BIT_NOT_EXPR:
    5661           24 :         {
    5662           24 :           tree _q30 = TREE_OPERAND (_p1, 0);
    5663           24 :           if (tree_truth_valued_p (_q30))
    5664              :             {
    5665            4 :               {
    5666            4 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    5667            4 :                 tree res = generic_simplify_216 (loc, type, _p0, _p1, captures);
    5668            4 :                 if (res) return res;
    5669              :               }
    5670              :             }
    5671              :           break;
    5672              :         }
    5673       631197 :       default:;
    5674              :       }
    5675       631197 :   {
    5676       631197 :     tree _p1_pops[1];
    5677       631197 :     if (tree_logical_inverted_value (_p1, _p1_pops))
    5678              :       {
    5679          103 :         tree _q30 = _p1_pops[0];
    5680          103 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5681              :           {
    5682            0 :             {
    5683            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5684            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1526;
    5685            0 :               {
    5686            0 :                 tree _r;
    5687            0 :                 _r =  constant_boolean_node (EQ_EXPR != EQ_EXPR, type);
    5688            0 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    5689            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5690            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 905, __FILE__, __LINE__, true);
    5691            0 :                 return _r;
    5692              :               }
    5693            0 : next_after_fail1526:;
    5694              :             }
    5695              :           }
    5696              :       }
    5697              :   }
    5698              :   }
    5699     27600256 :   switch (TREE_CODE (_p1))
    5700              :     {
    5701        88306 :     case PLUS_EXPR:
    5702        88306 :       {
    5703        88306 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5704        88306 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5705        88306 :         switch (TREE_CODE (_q31))
    5706              :           {
    5707           26 :           CASE_CONVERT:
    5708           26 :             {
    5709           26 :               tree _q50 = TREE_OPERAND (_q31, 0);
    5710           26 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5711              :                 {
    5712            0 :                   {
    5713            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
    5714            0 :                     tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5715            0 :                     if (res) return res;
    5716              :                   }
    5717              :                 }
    5718              :               break;
    5719              :             }
    5720        88306 :           default:;
    5721              :           }
    5722        88306 :         switch (TREE_CODE (_q30))
    5723              :           {
    5724        22544 :           CASE_CONVERT:
    5725        22544 :             {
    5726        22544 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5727        22544 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    5728              :                 {
    5729            0 :                   {
    5730            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
    5731            0 :                     tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5732            0 :                     if (res) return res;
    5733              :                   }
    5734              :                 }
    5735              :               break;
    5736              :             }
    5737        88306 :           default:;
    5738              :           }
    5739        88306 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5740              :           {
    5741            0 :             {
    5742            0 :               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
    5743            0 :               tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5744            0 :               if (res) return res;
    5745              :             }
    5746              :           }
    5747        88306 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5748              :           {
    5749            0 :             {
    5750            0 :               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
    5751            0 :               tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5752            0 :               if (res) return res;
    5753              :             }
    5754              :           }
    5755              :         break;
    5756              :       }
    5757     27600256 :     default:;
    5758              :     }
    5759     27600256 : {
    5760     27600256 :   tree _p1_pops[1];
    5761     27600256 :   if (tree_nop_convert (_p1, _p1_pops))
    5762              :     {
    5763      1507865 :       tree _q30 = _p1_pops[0];
    5764      1507865 :       switch (TREE_CODE (_q30))
    5765              :         {
    5766          899 :         case PLUS_EXPR:
    5767          899 :           {
    5768          899 :             tree _q40 = TREE_OPERAND (_q30, 0);
    5769          899 :             tree _q41 = TREE_OPERAND (_q30, 1);
    5770          899 :             switch (TREE_CODE (_q41))
    5771              :               {
    5772            2 :               CASE_CONVERT:
    5773            2 :                 {
    5774            2 :                   tree _q60 = TREE_OPERAND (_q41, 0);
    5775            2 :                   if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    5776              :                     {
    5777            0 :                       {
    5778            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
    5779            0 :                         tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5780            0 :                         if (res) return res;
    5781              :                       }
    5782              :                     }
    5783              :                   break;
    5784              :                 }
    5785          899 :               default:;
    5786              :               }
    5787          899 :             switch (TREE_CODE (_q40))
    5788              :               {
    5789          764 :               CASE_CONVERT:
    5790          764 :                 {
    5791          764 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    5792          764 :                   if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5793              :                     {
    5794            0 :                       {
    5795            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
    5796            0 :                         tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5797            0 :                         if (res) return res;
    5798              :                       }
    5799              :                     }
    5800              :                   break;
    5801              :                 }
    5802          899 :               default:;
    5803              :               }
    5804          899 :             if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    5805              :               {
    5806            0 :                 {
    5807            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
    5808            0 :                   tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5809            0 :                   if (res) return res;
    5810              :                 }
    5811              :               }
    5812          899 :             if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    5813              :               {
    5814            0 :                 {
    5815            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
    5816            0 :                   tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5817            0 :                   if (res) return res;
    5818              :                 }
    5819              :               }
    5820              :             break;
    5821              :           }
    5822              :         default:;
    5823              :         }
    5824              :     }
    5825              : }
    5826     27600256 :   switch (TREE_CODE (_p0))
    5827              :     {
    5828      5204054 :     CASE_CONVERT:
    5829      5204054 :       {
    5830      5204054 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5831      5204054 :         switch (TREE_CODE (_p1))
    5832              :           {
    5833          159 :           case POINTER_PLUS_EXPR:
    5834          159 :             {
    5835          159 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5836          159 :               tree _q41 = TREE_OPERAND (_p1, 1);
    5837          159 :               switch (TREE_CODE (_q40))
    5838              :                 {
    5839           96 :                 CASE_CONVERT:
    5840           96 :                   {
    5841           96 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5842           96 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5843              :                       {
    5844            3 :                         {
    5845            3 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
    5846            3 :                           tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5847            3 :                           if (res) return res;
    5848              :                         }
    5849              :                       }
    5850              :                     break;
    5851              :                   }
    5852          156 :                 default:;
    5853              :                 }
    5854          156 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    5855              :                 {
    5856            0 :                   {
    5857            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
    5858            0 :                     tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5859            0 :                     if (res) return res;
    5860              :                   }
    5861              :                 }
    5862              :               break;
    5863              :             }
    5864      5204051 :           default:;
    5865              :           }
    5866      5204051 :       {
    5867      5204051 :         tree _p1_pops[1];
    5868      5204051 :         if (tree_nop_convert (_p1, _p1_pops))
    5869              :           {
    5870      1267850 :             tree _q40 = _p1_pops[0];
    5871      1267850 :             switch (TREE_CODE (_q40))
    5872              :               {
    5873           18 :               case POINTER_PLUS_EXPR:
    5874           18 :                 {
    5875           18 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    5876           18 :                   tree _q51 = TREE_OPERAND (_q40, 1);
    5877           18 :                   switch (TREE_CODE (_q50))
    5878              :                     {
    5879            0 :                     CASE_CONVERT:
    5880            0 :                       {
    5881            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    5882            0 :                         if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    5883              :                           {
    5884            0 :                             {
    5885            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
    5886            0 :                               tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5887            0 :                               if (res) return res;
    5888              :                             }
    5889              :                           }
    5890              :                         break;
    5891              :                       }
    5892           18 :                     default:;
    5893              :                     }
    5894           18 :                   if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5895              :                     {
    5896            0 :                       {
    5897            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
    5898            0 :                         tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5899            0 :                         if (res) return res;
    5900              :                       }
    5901              :                     }
    5902              :                   break;
    5903              :                 }
    5904              :               default:;
    5905              :               }
    5906              :           }
    5907              :       }
    5908      5204051 :         break;
    5909              :       }
    5910     27600253 :     default:;
    5911              :     }
    5912     27600253 : {
    5913     27600253 :   tree _p0_pops[1];
    5914     27600253 :   if (tree_nop_convert (_p0, _p0_pops))
    5915              :     {
    5916      3029834 :       tree _q20 = _p0_pops[0];
    5917      3029834 :       switch (TREE_CODE (_q20))
    5918              :         {
    5919           97 :         case POINTER_PLUS_EXPR:
    5920           97 :           {
    5921           97 :             tree _q30 = TREE_OPERAND (_q20, 0);
    5922           97 :             tree _q31 = TREE_OPERAND (_q20, 1);
    5923           97 :             switch (TREE_CODE (_q30))
    5924              :               {
    5925           21 :               CASE_CONVERT:
    5926           21 :                 {
    5927           21 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    5928           21 :                   switch (TREE_CODE (_p1))
    5929              :                     {
    5930            0 :                     CASE_CONVERT:
    5931            0 :                       {
    5932            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    5933            0 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    5934              :                           {
    5935            0 :                             {
    5936            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
    5937            0 :                               tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5938            0 :                               if (res) return res;
    5939              :                             }
    5940              :                           }
    5941              :                         break;
    5942              :                       }
    5943           21 :                     default:;
    5944              :                     }
    5945           21 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5946              :                     {
    5947            0 :                       {
    5948            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
    5949            0 :                         tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5950            0 :                         if (res) return res;
    5951              :                       }
    5952              :                     }
    5953              :                   break;
    5954              :                 }
    5955           97 :               default:;
    5956              :               }
    5957           97 :             switch (TREE_CODE (_p1))
    5958              :               {
    5959           27 :               CASE_CONVERT:
    5960           27 :                 {
    5961           27 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    5962           27 :                   if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    5963              :                     {
    5964            0 :                       {
    5965            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    5966            0 :                         tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5967            0 :                         if (res) return res;
    5968              :                       }
    5969              :                     }
    5970              :                   break;
    5971              :                 }
    5972           97 :               default:;
    5973              :               }
    5974           97 :             if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    5975              :               {
    5976            0 :                 {
    5977            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    5978            0 :                   tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, EQ_EXPR);
    5979            0 :                   if (res) return res;
    5980              :                 }
    5981              :               }
    5982              :             break;
    5983              :           }
    5984              :         default:;
    5985              :         }
    5986              :     }
    5987              : }
    5988     27600253 :   switch (TREE_CODE (_p1))
    5989              :     {
    5990         6066 :     case POINTER_PLUS_EXPR:
    5991         6066 :       {
    5992         6066 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5993         6066 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5994         6066 :         switch (TREE_CODE (_q30))
    5995              :           {
    5996         3491 :           CASE_CONVERT:
    5997         3491 :             {
    5998         3491 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5999         3491 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6000              :                 {
    6001            0 :                   {
    6002            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
    6003            0 :                     tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6004            0 :                     if (res) return res;
    6005              :                   }
    6006              :                 }
    6007              :               break;
    6008              :             }
    6009         6066 :           default:;
    6010              :           }
    6011         6066 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6012              :           {
    6013            0 :             {
    6014            0 :               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
    6015            0 :               tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6016            0 :               if (res) return res;
    6017              :             }
    6018              :           }
    6019              :         break;
    6020              :       }
    6021     27600253 :     default:;
    6022              :     }
    6023     27600253 : {
    6024     27600253 :   tree _p1_pops[1];
    6025     27600253 :   if (tree_nop_convert (_p1, _p1_pops))
    6026              :     {
    6027      1507865 :       tree _q30 = _p1_pops[0];
    6028      1507865 :       switch (TREE_CODE (_q30))
    6029              :         {
    6030           32 :         case POINTER_PLUS_EXPR:
    6031           32 :           {
    6032           32 :             tree _q40 = TREE_OPERAND (_q30, 0);
    6033           32 :             tree _q41 = TREE_OPERAND (_q30, 1);
    6034           32 :             switch (TREE_CODE (_q40))
    6035              :               {
    6036            0 :               CASE_CONVERT:
    6037            0 :                 {
    6038            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    6039            0 :                   if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    6040              :                     {
    6041            0 :                       {
    6042            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
    6043            0 :                         tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6044            0 :                         if (res) return res;
    6045              :                       }
    6046              :                     }
    6047              :                   break;
    6048              :                 }
    6049           32 :               default:;
    6050              :               }
    6051           32 :             if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6052              :               {
    6053            0 :                 {
    6054            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
    6055            0 :                   tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6056            0 :                   if (res) return res;
    6057              :                 }
    6058              :               }
    6059              :             break;
    6060              :           }
    6061              :         default:;
    6062              :         }
    6063              :     }
    6064              : }
    6065     27600253 :   switch (TREE_CODE (_p0))
    6066              :     {
    6067        62501 :     case POINTER_PLUS_EXPR:
    6068        62501 :       {
    6069        62501 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6070        62501 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6071        62501 :         switch (TREE_CODE (_p1))
    6072              :           {
    6073        12329 :           case ADDR_EXPR:
    6074        12329 :             {
    6075        12329 :               {
    6076        12329 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6077        12329 :                 tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6078        12329 :                 if (res) return res;
    6079              :               }
    6080        12328 :               break;
    6081              :             }
    6082        62500 :           default:;
    6083              :           }
    6084        62500 :         switch (TREE_CODE (_q20))
    6085              :           {
    6086         1180 :           case ADDR_EXPR:
    6087         1180 :             {
    6088         1180 :               switch (TREE_CODE (_p1))
    6089              :                 {
    6090           17 :                 case POINTER_PLUS_EXPR:
    6091           17 :                   {
    6092           17 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    6093           17 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    6094           17 :                     switch (TREE_CODE (_q50))
    6095              :                       {
    6096            6 :                       case ADDR_EXPR:
    6097            6 :                         {
    6098            6 :                           {
    6099            6 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
    6100            6 :                             tree res = generic_simplify_230 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6101            6 :                             if (res) return res;
    6102              :                           }
    6103            6 :                           break;
    6104              :                         }
    6105              :                       default:;
    6106              :                       }
    6107              :                     break;
    6108              :                   }
    6109              :                 default:;
    6110              :                 }
    6111              :               break;
    6112              :             }
    6113              :           default:;
    6114              :           }
    6115              :         break;
    6116              :       }
    6117        85841 :     case ADDR_EXPR:
    6118        85841 :       {
    6119        85841 :         switch (TREE_CODE (_p1))
    6120              :           {
    6121            0 :           case POINTER_PLUS_EXPR:
    6122            0 :             {
    6123            0 :               tree _q30 = TREE_OPERAND (_p1, 0);
    6124            0 :               tree _q31 = TREE_OPERAND (_p1, 1);
    6125            0 :               {
    6126            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
    6127            0 :                 tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6128            0 :                 if (res) return res;
    6129              :               }
    6130            0 :               break;
    6131              :             }
    6132              :           default:;
    6133              :           }
    6134              :         break;
    6135              :       }
    6136     27600252 :     default:;
    6137              :     }
    6138     27600252 :   switch (TREE_CODE (_p1))
    6139              :     {
    6140         3608 :     case MINUS_EXPR:
    6141         3608 :       {
    6142         3608 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6143         3608 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6144         3608 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6145              :           {
    6146            0 :             {
    6147            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    6148            0 :               tree res = generic_simplify_225 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6149            0 :               if (res) return res;
    6150              :             }
    6151              :           }
    6152              :         break;
    6153              :       }
    6154     27600252 :     default:;
    6155              :     }
    6156     27600252 :   switch (TREE_CODE (_p0))
    6157              :     {
    6158         4399 :     case TRUNC_DIV_EXPR:
    6159         4399 :       {
    6160         4399 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6161         4399 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6162         4399 :         if (tree_expr_nonnegative_p (_q20))
    6163              :           {
    6164         1124 :             if (tree_expr_nonnegative_p (_q21))
    6165              :               {
    6166         1070 :                 if (integer_zerop (_p1))
    6167              :                   {
    6168          256 :                     {
    6169          256 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6170          256 :                       tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
    6171          256 :                       if (res) return res;
    6172              :                     }
    6173              :                   }
    6174              :               }
    6175              :           }
    6176              :         break;
    6177              :       }
    6178      5204051 :     CASE_CONVERT:
    6179      5204051 :       {
    6180      5204051 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6181      5204051 :         switch (TREE_CODE (_p1))
    6182              :           {
    6183      1671243 :           CASE_CONVERT:
    6184      1671243 :             {
    6185      1671243 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6186      1671243 :               switch (TREE_CODE (_q40))
    6187              :                 {
    6188            0 :                 case MINUS_EXPR:
    6189            0 :                   {
    6190            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    6191            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    6192            0 :                     switch (TREE_CODE (_q50))
    6193              :                       {
    6194            0 :                       case INTEGER_CST:
    6195            0 :                         {
    6196            0 :                           switch (TREE_CODE (_q51))
    6197              :                             {
    6198            0 :                             CASE_CONVERT:
    6199            0 :                               {
    6200            0 :                                 tree _q70 = TREE_OPERAND (_q51, 0);
    6201            0 :                                 if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    6202              :                                   {
    6203            0 :                                     {
    6204            0 :                                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    6205            0 :                                       tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6206            0 :                                       if (res) return res;
    6207              :                                     }
    6208              :                                   }
    6209              :                                 break;
    6210              :                               }
    6211              :                             default:;
    6212              :                             }
    6213              :                           break;
    6214              :                         }
    6215              :                       default:;
    6216              :                       }
    6217              :                     break;
    6218              :                   }
    6219              :                 default:;
    6220              :                 }
    6221              :               break;
    6222              :             }
    6223      5204051 :           default:;
    6224              :           }
    6225      5204051 :         switch (TREE_CODE (_q20))
    6226              :           {
    6227          244 :           case MINUS_EXPR:
    6228          244 :             {
    6229          244 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6230          244 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6231          244 :               switch (TREE_CODE (_q30))
    6232              :                 {
    6233           56 :                 case INTEGER_CST:
    6234           56 :                   {
    6235           56 :                     switch (TREE_CODE (_q31))
    6236              :                       {
    6237            0 :                       CASE_CONVERT:
    6238            0 :                         {
    6239            0 :                           tree _q50 = TREE_OPERAND (_q31, 0);
    6240            0 :                           switch (TREE_CODE (_p1))
    6241              :                             {
    6242            0 :                             CASE_CONVERT:
    6243            0 :                               {
    6244            0 :                                 tree _q70 = TREE_OPERAND (_p1, 0);
    6245            0 :                                 if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
    6246              :                                   {
    6247            0 :                                     {
    6248            0 :                                       tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    6249            0 :                                       tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6250            0 :                                       if (res) return res;
    6251              :                                     }
    6252              :                                   }
    6253              :                                 break;
    6254              :                               }
    6255            0 :                             default:;
    6256              :                             }
    6257            0 :                           if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    6258              :                             {
    6259            0 :                               {
    6260            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    6261            0 :                                 tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6262            0 :                                 if (res) return res;
    6263              :                               }
    6264              :                             }
    6265              :                           break;
    6266              :                         }
    6267           56 :                       default:;
    6268              :                       }
    6269           56 :                     switch (TREE_CODE (_p1))
    6270              :                       {
    6271            0 :                       CASE_CONVERT:
    6272            0 :                         {
    6273            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    6274            0 :                           if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    6275              :                             {
    6276            0 :                               {
    6277            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
    6278            0 :                                 tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6279            0 :                                 if (res) return res;
    6280              :                               }
    6281              :                             }
    6282              :                           break;
    6283              :                         }
    6284           56 :                       default:;
    6285              :                       }
    6286           56 :                     if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    6287              :                       {
    6288            0 :                         {
    6289            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
    6290            0 :                           tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6291            0 :                           if (res) return res;
    6292              :                         }
    6293              :                       }
    6294              :                     break;
    6295              :                   }
    6296              :                 default:;
    6297              :                 }
    6298              :               break;
    6299              :             }
    6300      5204051 :           default:;
    6301              :           }
    6302      5204051 :         switch (TREE_CODE (_p1))
    6303              :           {
    6304      1671243 :           CASE_CONVERT:
    6305      1671243 :             {
    6306      1671243 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6307      1671243 :               switch (TREE_CODE (_q40))
    6308              :                 {
    6309            0 :                 case MINUS_EXPR:
    6310            0 :                   {
    6311            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    6312            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    6313            0 :                     switch (TREE_CODE (_q50))
    6314              :                       {
    6315            0 :                       case INTEGER_CST:
    6316            0 :                         {
    6317            0 :                           if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6318              :                             {
    6319            0 :                               {
    6320            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    6321            0 :                                 tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6322            0 :                                 if (res) return res;
    6323              :                               }
    6324              :                             }
    6325              :                           break;
    6326              :                         }
    6327              :                       default:;
    6328              :                       }
    6329              :                     break;
    6330              :                   }
    6331              :                 default:;
    6332              :                 }
    6333              :               break;
    6334              :             }
    6335          283 :           case MINUS_EXPR:
    6336          283 :             {
    6337          283 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6338          283 :               tree _q41 = TREE_OPERAND (_p1, 1);
    6339          283 :               switch (TREE_CODE (_q40))
    6340              :                 {
    6341           80 :                 case INTEGER_CST:
    6342           80 :                   {
    6343           80 :                     switch (TREE_CODE (_q41))
    6344              :                       {
    6345           12 :                       CASE_CONVERT:
    6346           12 :                         {
    6347           12 :                           tree _q60 = TREE_OPERAND (_q41, 0);
    6348           12 :                           if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    6349              :                             {
    6350            0 :                               {
    6351            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6352            0 :                                 tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6353            0 :                                 if (res) return res;
    6354              :                               }
    6355              :                             }
    6356              :                           break;
    6357              :                         }
    6358           80 :                       default:;
    6359              :                       }
    6360           80 :                     if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    6361              :                       {
    6362            0 :                         {
    6363            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6364            0 :                           tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6365            0 :                           if (res) return res;
    6366              :                         }
    6367              :                       }
    6368              :                     break;
    6369              :                   }
    6370              :                 default:;
    6371              :                 }
    6372              :               break;
    6373              :             }
    6374              :           default:;
    6375              :           }
    6376              :         break;
    6377              :       }
    6378       153648 :     case MINUS_EXPR:
    6379       153648 :       {
    6380       153648 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6381       153648 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6382       153648 :         switch (TREE_CODE (_q20))
    6383              :           {
    6384        40100 :           case INTEGER_CST:
    6385        40100 :             {
    6386        40100 :               switch (TREE_CODE (_q21))
    6387              :                 {
    6388        23537 :                 CASE_CONVERT:
    6389        23537 :                   {
    6390        23537 :                     tree _q40 = TREE_OPERAND (_q21, 0);
    6391        23537 :                     switch (TREE_CODE (_p1))
    6392              :                       {
    6393            0 :                       CASE_CONVERT:
    6394            0 :                         {
    6395            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    6396            0 :                           if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
    6397              :                             {
    6398            0 :                               {
    6399            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    6400            0 :                                 tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6401            0 :                                 if (res) return res;
    6402              :                               }
    6403              :                             }
    6404              :                           break;
    6405              :                         }
    6406        23537 :                       default:;
    6407              :                       }
    6408        23537 :                     if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    6409              :                       {
    6410            0 :                         {
    6411            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    6412            0 :                           tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6413            0 :                           if (res) return res;
    6414              :                         }
    6415              :                       }
    6416              :                     break;
    6417              :                   }
    6418        40100 :                 default:;
    6419              :                 }
    6420        40100 :               switch (TREE_CODE (_p1))
    6421              :                 {
    6422           45 :                 CASE_CONVERT:
    6423           45 :                   {
    6424           45 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    6425           45 :                     if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6426              :                       {
    6427            0 :                         {
    6428            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6429            0 :                           tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6430            0 :                           if (res) return res;
    6431              :                         }
    6432              :                       }
    6433              :                     break;
    6434              :                   }
    6435        40100 :                 default:;
    6436              :                 }
    6437        40100 :               if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    6438              :                 {
    6439            2 :                   {
    6440            2 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6441            2 :                     tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6442            2 :                     if (res) return res;
    6443              :                   }
    6444              :                 }
    6445              :               break;
    6446              :             }
    6447              :           default:;
    6448              :           }
    6449              :         break;
    6450              :       }
    6451     27600006 :     default:;
    6452              :     }
    6453     27600006 :   switch (TREE_CODE (_p1))
    6454              :     {
    6455      1971979 :     CASE_CONVERT:
    6456      1971979 :       {
    6457      1971979 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6458      1971979 :         switch (TREE_CODE (_q30))
    6459              :           {
    6460           12 :           case MINUS_EXPR:
    6461           12 :             {
    6462           12 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6463           12 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6464           12 :               switch (TREE_CODE (_q40))
    6465              :                 {
    6466           12 :                 case INTEGER_CST:
    6467           12 :                   {
    6468           12 :                     switch (TREE_CODE (_q41))
    6469              :                       {
    6470           12 :                       CASE_CONVERT:
    6471           12 :                         {
    6472           12 :                           tree _q60 = TREE_OPERAND (_q41, 0);
    6473           12 :                           if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    6474              :                             {
    6475            0 :                               {
    6476            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    6477            0 :                                 tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6478            0 :                                 if (res) return res;
    6479              :                               }
    6480              :                             }
    6481              :                           break;
    6482              :                         }
    6483           12 :                       default:;
    6484              :                       }
    6485           12 :                     if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    6486              :                       {
    6487            0 :                         {
    6488            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    6489            0 :                           tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6490            0 :                           if (res) return res;
    6491              :                         }
    6492              :                       }
    6493              :                     break;
    6494              :                   }
    6495              :                 default:;
    6496              :                 }
    6497              :               break;
    6498              :             }
    6499              :           default:;
    6500              :           }
    6501              :         break;
    6502              :       }
    6503         3608 :     case MINUS_EXPR:
    6504         3608 :       {
    6505         3608 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6506         3608 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6507         3608 :         switch (TREE_CODE (_q30))
    6508              :           {
    6509          286 :           case INTEGER_CST:
    6510          286 :             {
    6511          286 :               switch (TREE_CODE (_q31))
    6512              :                 {
    6513           16 :                 CASE_CONVERT:
    6514           16 :                   {
    6515           16 :                     tree _q50 = TREE_OPERAND (_q31, 0);
    6516           16 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    6517              :                       {
    6518            0 :                         {
    6519            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6520            0 :                           tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6521            0 :                           if (res) return res;
    6522              :                         }
    6523              :                       }
    6524              :                     break;
    6525              :                   }
    6526          286 :                 default:;
    6527              :                 }
    6528          286 :               if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6529              :                 {
    6530            0 :                   {
    6531            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6532            0 :                     tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, EQ_EXPR);
    6533            0 :                     if (res) return res;
    6534              :                   }
    6535              :                 }
    6536              :               break;
    6537              :             }
    6538              :           default:;
    6539              :           }
    6540              :         break;
    6541              :       }
    6542     27600006 :     default:;
    6543              :     }
    6544     27600006 :   switch (TREE_CODE (_p0))
    6545              :     {
    6546         1131 :     case LT_EXPR:
    6547         1131 :       {
    6548         1131 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6549         1131 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6550         1131 :         switch (TREE_CODE (_p1))
    6551              :           {
    6552           16 :           case GT_EXPR:
    6553           16 :             {
    6554           16 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6555           16 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6556           16 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6557              :                 {
    6558            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6559              :                     {
    6560            0 :                       {
    6561            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6562            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
    6563            0 :                         if (res) return res;
    6564              :                       }
    6565              :                     }
    6566              :                 }
    6567              :               break;
    6568              :             }
    6569            0 :           case EQ_EXPR:
    6570            0 :             {
    6571            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6572            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6573            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6574              :                 {
    6575            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6576              :                     {
    6577            0 :                       {
    6578            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6579            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
    6580            0 :                         if (res) return res;
    6581              :                       }
    6582              :                     }
    6583              :                 }
    6584              :               break;
    6585              :             }
    6586            0 :           case NE_EXPR:
    6587            0 :             {
    6588            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6589            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6590            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6591              :                 {
    6592            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6593              :                     {
    6594            0 :                       {
    6595            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6596            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
    6597            0 :                         if (res) return res;
    6598              :                       }
    6599              :                     }
    6600              :                 }
    6601              :               break;
    6602              :             }
    6603              :           default:;
    6604              :           }
    6605              :         break;
    6606              :       }
    6607         1557 :     case LE_EXPR:
    6608         1557 :       {
    6609         1557 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6610         1557 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6611         1557 :         switch (TREE_CODE (_p1))
    6612              :           {
    6613            4 :           case GE_EXPR:
    6614            4 :             {
    6615            4 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6616            4 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6617            4 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6618              :                 {
    6619            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6620              :                     {
    6621            0 :                       {
    6622            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6623            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
    6624            0 :                         if (res) return res;
    6625              :                       }
    6626              :                     }
    6627              :                 }
    6628              :               break;
    6629              :             }
    6630            0 :           case EQ_EXPR:
    6631            0 :             {
    6632            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6633            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6634            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6635              :                 {
    6636            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6637              :                     {
    6638            0 :                       {
    6639            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6640            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
    6641            0 :                         if (res) return res;
    6642              :                       }
    6643              :                     }
    6644              :                 }
    6645              :               break;
    6646              :             }
    6647            8 :           case NE_EXPR:
    6648            8 :             {
    6649            8 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6650            8 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6651            8 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6652              :                 {
    6653            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6654              :                     {
    6655            0 :                       {
    6656            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6657            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
    6658            0 :                         if (res) return res;
    6659              :                       }
    6660              :                     }
    6661              :                 }
    6662              :               break;
    6663              :             }
    6664              :           default:;
    6665              :           }
    6666              :         break;
    6667              :       }
    6668        69169 :     case GT_EXPR:
    6669        69169 :       {
    6670        69169 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6671        69169 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6672        69169 :         switch (TREE_CODE (_p1))
    6673              :           {
    6674        67392 :           case GT_EXPR:
    6675        67392 :             {
    6676        67392 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6677        67392 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6678        67392 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6679              :                 {
    6680           12 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6681              :                     {
    6682            0 :                       {
    6683            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6684            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
    6685            0 :                         if (res) return res;
    6686              :                       }
    6687            0 :                       {
    6688            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6689            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
    6690            0 :                         if (res) return res;
    6691              :                       }
    6692              :                     }
    6693              :                 }
    6694              :               break;
    6695              :             }
    6696           57 :           case EQ_EXPR:
    6697           57 :             {
    6698           57 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6699           57 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6700           57 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6701              :                 {
    6702            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6703              :                     {
    6704            0 :                       {
    6705            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6706            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
    6707            0 :                         if (res) return res;
    6708              :                       }
    6709              :                     }
    6710              :                 }
    6711              :               break;
    6712              :             }
    6713           37 :           case NE_EXPR:
    6714           37 :             {
    6715           37 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6716           37 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6717           37 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6718              :                 {
    6719            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6720              :                     {
    6721            0 :                       {
    6722            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6723            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
    6724            0 :                         if (res) return res;
    6725              :                       }
    6726              :                     }
    6727              :                 }
    6728              :               break;
    6729              :             }
    6730           41 :           case LT_EXPR:
    6731           41 :             {
    6732           41 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6733           41 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6734           41 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6735              :                 {
    6736            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6737              :                     {
    6738            0 :                       {
    6739            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6740            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR, EQ_EXPR);
    6741            0 :                         if (res) return res;
    6742              :                       }
    6743              :                     }
    6744              :                 }
    6745              :               break;
    6746              :             }
    6747              :           default:;
    6748              :           }
    6749              :         break;
    6750              :       }
    6751         6717 :     case GE_EXPR:
    6752         6717 :       {
    6753         6717 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6754         6717 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6755         6717 :         switch (TREE_CODE (_p1))
    6756              :           {
    6757           27 :           case GE_EXPR:
    6758           27 :             {
    6759           27 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6760           27 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6761           27 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6762              :                 {
    6763            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6764              :                     {
    6765            0 :                       {
    6766            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6767            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
    6768            0 :                         if (res) return res;
    6769              :                       }
    6770            0 :                       {
    6771            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6772            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
    6773            0 :                         if (res) return res;
    6774              :                       }
    6775              :                     }
    6776              :                 }
    6777              :               break;
    6778              :             }
    6779           90 :           case EQ_EXPR:
    6780           90 :             {
    6781           90 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6782           90 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6783           90 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6784              :                 {
    6785            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6786              :                     {
    6787            0 :                       {
    6788            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6789            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
    6790            0 :                         if (res) return res;
    6791              :                       }
    6792              :                     }
    6793              :                 }
    6794              :               break;
    6795              :             }
    6796           56 :           case NE_EXPR:
    6797           56 :             {
    6798           56 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6799           56 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6800           56 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6801              :                 {
    6802            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6803              :                     {
    6804            0 :                       {
    6805            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6806            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
    6807            0 :                         if (res) return res;
    6808              :                       }
    6809              :                     }
    6810              :                 }
    6811              :               break;
    6812              :             }
    6813            8 :           case LE_EXPR:
    6814            8 :             {
    6815            8 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6816            8 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6817            8 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6818              :                 {
    6819            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6820              :                     {
    6821            0 :                       {
    6822            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6823            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR, EQ_EXPR);
    6824            0 :                         if (res) return res;
    6825              :                       }
    6826              :                     }
    6827              :                 }
    6828              :               break;
    6829              :             }
    6830              :           default:;
    6831              :           }
    6832              :         break;
    6833              :       }
    6834        32634 :     case EQ_EXPR:
    6835        32634 :       {
    6836        32634 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6837        32634 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6838        32634 :         switch (TREE_CODE (_p1))
    6839              :           {
    6840            5 :           case LT_EXPR:
    6841            5 :             {
    6842            5 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6843            5 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6844            5 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6845              :                 {
    6846            4 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6847              :                     {
    6848            0 :                       {
    6849            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6850            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
    6851            0 :                         if (res) return res;
    6852              :                       }
    6853              :                     }
    6854              :                 }
    6855              :               break;
    6856              :             }
    6857            4 :           case LE_EXPR:
    6858            4 :             {
    6859            4 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6860            4 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6861            4 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6862              :                 {
    6863            4 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6864              :                     {
    6865            0 :                       {
    6866            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6867            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
    6868            0 :                         if (res) return res;
    6869              :                       }
    6870              :                     }
    6871              :                 }
    6872              :               break;
    6873              :             }
    6874           75 :           case GT_EXPR:
    6875           75 :             {
    6876           75 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6877           75 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6878           75 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6879              :                 {
    6880            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6881              :                     {
    6882            0 :                       {
    6883            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6884            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GT_EXPR);
    6885            0 :                         if (res) return res;
    6886              :                       }
    6887              :                     }
    6888              :                 }
    6889              :               break;
    6890              :             }
    6891          112 :           case GE_EXPR:
    6892          112 :             {
    6893          112 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6894          112 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6895          112 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6896              :                 {
    6897            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6898              :                     {
    6899            0 :                       {
    6900            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6901            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, GE_EXPR);
    6902            0 :                         if (res) return res;
    6903              :                       }
    6904              :                     }
    6905              :                 }
    6906              :               break;
    6907              :             }
    6908              :           default:;
    6909              :           }
    6910              :         break;
    6911              :       }
    6912        12093 :     case NE_EXPR:
    6913        12093 :       {
    6914        12093 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6915        12093 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6916        12093 :         switch (TREE_CODE (_p1))
    6917              :           {
    6918            6 :           case LT_EXPR:
    6919            6 :             {
    6920            6 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6921            6 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6922            6 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6923              :                 {
    6924            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6925              :                     {
    6926            0 :                       {
    6927            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6928            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
    6929            0 :                         if (res) return res;
    6930              :                       }
    6931              :                     }
    6932              :                 }
    6933              :               break;
    6934              :             }
    6935            0 :           case LE_EXPR:
    6936            0 :             {
    6937            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6938            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6939            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6940              :                 {
    6941            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6942              :                     {
    6943            0 :                       {
    6944            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6945            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
    6946            0 :                         if (res) return res;
    6947              :                       }
    6948              :                     }
    6949              :                 }
    6950              :               break;
    6951              :             }
    6952           21 :           case GT_EXPR:
    6953           21 :             {
    6954           21 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6955           21 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6956           21 :               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 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LE_EXPR);
    6963            0 :                         if (res) return res;
    6964              :                       }
    6965              :                     }
    6966              :                 }
    6967              :               break;
    6968              :             }
    6969            3 :           case GE_EXPR:
    6970            3 :             {
    6971            3 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6972            3 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6973            3 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6974              :                 {
    6975            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6976              :                     {
    6977            0 :                       {
    6978            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6979            0 :                         tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, LT_EXPR);
    6980            0 :                         if (res) return res;
    6981              :                       }
    6982              :                     }
    6983              :                 }
    6984              :               break;
    6985              :             }
    6986              :           default:;
    6987              :           }
    6988              :         break;
    6989              :       }
    6990        11432 :     case MIN_EXPR:
    6991        11432 :       {
    6992        11432 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6993        11432 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6994        11432 :         switch (TREE_CODE (_p1))
    6995              :           {
    6996            0 :           case MAX_EXPR:
    6997            0 :             {
    6998            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6999            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7000            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7001              :                 {
    7002            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7003              :                     {
    7004            0 :                       {
    7005            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7006            0 :                         if (!HONOR_NANS (captures[0])
    7007              : )
    7008              :                           {
    7009            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1527;
    7010            0 :                             {
    7011            0 :                               tree res_op0;
    7012            0 :                               res_op0 = captures[0];
    7013            0 :                               tree res_op1;
    7014            0 :                               res_op1 = captures[1];
    7015            0 :                               tree _r;
    7016            0 :                               _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    7017            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
    7018            0 :                               return _r;
    7019              :                             }
    7020            0 : next_after_fail1527:;
    7021              :                           }
    7022              :                       }
    7023              :                     }
    7024              :                 }
    7025            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7026              :                 {
    7027            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7028              :                     {
    7029            0 :                       {
    7030            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7031            0 :                         if (!HONOR_NANS (captures[0])
    7032              : )
    7033              :                           {
    7034            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1528;
    7035            0 :                             {
    7036            0 :                               tree res_op0;
    7037            0 :                               res_op0 = captures[0];
    7038            0 :                               tree res_op1;
    7039            0 :                               res_op1 = captures[1];
    7040            0 :                               tree _r;
    7041            0 :                               _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    7042            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
    7043            0 :                               return _r;
    7044              :                             }
    7045            0 : next_after_fail1528:;
    7046              :                           }
    7047              :                       }
    7048              :                     }
    7049              :                 }
    7050              :               break;
    7051              :             }
    7052        11432 :           default:;
    7053              :           }
    7054        11432 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7055              :           {
    7056            0 :             {
    7057            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7058            0 :               tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
    7059            0 :               if (res) return res;
    7060              :             }
    7061              :           }
    7062        11432 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    7063              :           {
    7064            0 :             {
    7065            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7066            0 :               tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
    7067            0 :               if (res) return res;
    7068              :             }
    7069              :           }
    7070              :         break;
    7071              :       }
    7072          710 :     case MAX_EXPR:
    7073          710 :       {
    7074          710 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7075          710 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7076          710 :         switch (TREE_CODE (_p1))
    7077              :           {
    7078            0 :           case MIN_EXPR:
    7079            0 :             {
    7080            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7081            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7082            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7083              :                 {
    7084            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7085              :                     {
    7086            0 :                       {
    7087            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7088            0 :                         if (!HONOR_NANS (captures[0])
    7089              : )
    7090              :                           {
    7091            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1529;
    7092            0 :                             {
    7093            0 :                               tree res_op0;
    7094            0 :                               res_op0 = captures[0];
    7095            0 :                               tree res_op1;
    7096            0 :                               res_op1 = captures[1];
    7097            0 :                               tree _r;
    7098            0 :                               _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    7099            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
    7100            0 :                               return _r;
    7101              :                             }
    7102            0 : next_after_fail1529:;
    7103              :                           }
    7104              :                       }
    7105              :                     }
    7106              :                 }
    7107            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7108              :                 {
    7109            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7110              :                     {
    7111            0 :                       {
    7112            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7113            0 :                         if (!HONOR_NANS (captures[0])
    7114              : )
    7115              :                           {
    7116            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1530;
    7117            0 :                             {
    7118            0 :                               tree res_op0;
    7119            0 :                               res_op0 = captures[0];
    7120            0 :                               tree res_op1;
    7121            0 :                               res_op1 = captures[1];
    7122            0 :                               tree _r;
    7123            0 :                               _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    7124            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
    7125            0 :                               return _r;
    7126              :                             }
    7127            0 : next_after_fail1530:;
    7128              :                           }
    7129              :                       }
    7130              :                     }
    7131              :                 }
    7132              :               break;
    7133              :             }
    7134          710 :           default:;
    7135              :           }
    7136          710 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7137              :           {
    7138            0 :             {
    7139            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7140            0 :               tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
    7141            0 :               if (res) return res;
    7142              :             }
    7143              :           }
    7144          710 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    7145              :           {
    7146            1 :             {
    7147            1 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7148            1 :               tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
    7149            1 :               if (res) return res;
    7150              :             }
    7151              :           }
    7152              :         break;
    7153              :       }
    7154     27600006 :     default:;
    7155              :     }
    7156     27600006 : if (tree_with_possible_nonzero_bits (_p0))
    7157              :   {
    7158      9660159 :     if (tree_with_known_nonzero_bits (_p1))
    7159              :       {
    7160      8219940 :         {
    7161      8219940 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    7162      8219940 :           tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, EQ_EXPR);
    7163      8219940 :           if (res) return res;
    7164              :         }
    7165              :       }
    7166              :   }
    7167     27583620 : if (tree_with_known_nonzero_bits (_p0))
    7168              :   {
    7169      6260680 :     if (tree_with_possible_nonzero_bits (_p1))
    7170              :       {
    7171      6228860 :         {
    7172      6228860 :           tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
    7173      6228860 :           tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, EQ_EXPR);
    7174      6228860 :           if (res) return res;
    7175              :         }
    7176              :       }
    7177              :   }
    7178     27583265 :   switch (TREE_CODE (_p1))
    7179              :     {
    7180          157 :     case MIN_EXPR:
    7181          157 :       {
    7182          157 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7183          157 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7184          157 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    7185              :           {
    7186            0 :             {
    7187            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    7188            0 :               tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
    7189            0 :               if (res) return res;
    7190              :             }
    7191              :           }
    7192          157 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    7193              :           {
    7194            0 :             {
    7195            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    7196            0 :               tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
    7197            0 :               if (res) return res;
    7198              :             }
    7199              :           }
    7200              :         break;
    7201              :       }
    7202           58 :     case MAX_EXPR:
    7203           58 :       {
    7204           58 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7205           58 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7206           58 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    7207              :           {
    7208            0 :             {
    7209            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    7210            0 :               tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
    7211            0 :               if (res) return res;
    7212              :             }
    7213              :           }
    7214           58 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    7215              :           {
    7216            0 :             {
    7217            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    7218            0 :               tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
    7219            0 :               if (res) return res;
    7220              :             }
    7221              :           }
    7222              :         break;
    7223              :       }
    7224     27583265 :     default:;
    7225              :     }
    7226     27583265 :   switch (TREE_CODE (_p0))
    7227              :     {
    7228        11432 :     case MIN_EXPR:
    7229        11432 :       {
    7230        11432 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7231        11432 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7232        11432 :         switch (TREE_CODE (_q21))
    7233              :           {
    7234          222 :           case INTEGER_CST:
    7235          222 :             {
    7236          222 :               switch (TREE_CODE (_p1))
    7237              :                 {
    7238            0 :                 case INTEGER_CST:
    7239            0 :                   {
    7240            0 :                     {
    7241            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7242            0 :                       tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, EQ_EXPR);
    7243            0 :                       if (res) return res;
    7244              :                     }
    7245            0 :                     break;
    7246              :                   }
    7247              :                 default:;
    7248              :                 }
    7249              :               break;
    7250              :             }
    7251              :           default:;
    7252              :           }
    7253              :         break;
    7254              :       }
    7255          710 :     case MAX_EXPR:
    7256          710 :       {
    7257          710 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7258          710 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7259          710 :         switch (TREE_CODE (_q21))
    7260              :           {
    7261          453 :           case INTEGER_CST:
    7262          453 :             {
    7263          453 :               switch (TREE_CODE (_p1))
    7264              :                 {
    7265           42 :                 case INTEGER_CST:
    7266           42 :                   {
    7267           42 :                     {
    7268           42 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7269           42 :                       tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, EQ_EXPR);
    7270           42 :                       if (res) return res;
    7271              :                     }
    7272            0 :                     break;
    7273              :                   }
    7274              :                 default:;
    7275              :                 }
    7276              :               break;
    7277              :             }
    7278          668 :           default:;
    7279              :           }
    7280          668 :         if (tree_expr_nonnegative_p (_q20))
    7281              :           {
    7282          162 :             if (tree_expr_nonnegative_p (_q21))
    7283              :               {
    7284          162 :                 if (integer_zerop (_p1))
    7285              :                   {
    7286            0 :                     {
    7287            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7288            0 :                       tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, EQ_EXPR);
    7289            0 :                       if (res) return res;
    7290              :                     }
    7291              :                   }
    7292              :               }
    7293              :           }
    7294              :         break;
    7295              :       }
    7296       834607 :     case BIT_AND_EXPR:
    7297       834607 :       {
    7298       834607 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7299       834607 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7300       834607 :         switch (TREE_CODE (_q20))
    7301              :           {
    7302          784 :           case LSHIFT_EXPR:
    7303          784 :             {
    7304          784 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7305          784 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7306          784 :               if (integer_pow2p (_q30))
    7307              :                 {
    7308          776 :                   if (integer_pow2p (_q21))
    7309              :                     {
    7310            1 :                       if (integer_zerop (_p1))
    7311              :                         {
    7312            1 :                           {
    7313            1 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
    7314            1 :                             tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
    7315            1 :                             if (res) return res;
    7316              :                           }
    7317              :                         }
    7318              :                     }
    7319              :                 }
    7320          783 :               switch (TREE_CODE (_q31))
    7321              :                 {
    7322            0 :                 case INTEGER_CST:
    7323            0 :                   {
    7324            0 :                     switch (TREE_CODE (_q21))
    7325              :                       {
    7326            0 :                       case INTEGER_CST:
    7327            0 :                         {
    7328            0 :                           switch (TREE_CODE (_p1))
    7329              :                             {
    7330            0 :                             case INTEGER_CST:
    7331            0 :                               {
    7332            0 :                                 {
    7333            0 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    7334            0 :                                   tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, EQ_EXPR);
    7335            0 :                                   if (res) return res;
    7336              :                                 }
    7337            0 :                                 break;
    7338              :                               }
    7339              :                             default:;
    7340              :                             }
    7341              :                           break;
    7342              :                         }
    7343              :                       default:;
    7344              :                       }
    7345              :                     break;
    7346              :                   }
    7347          783 :                 default:;
    7348              :                 }
    7349          783 :               if (integer_onep (_q30))
    7350              :                 {
    7351          775 :                   if (integer_pow2p (_q21))
    7352              :                     {
    7353            0 :                       if (integer_zerop (_p1))
    7354              :                         {
    7355            0 :                           {
    7356            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q21 };
    7357            0 :                             tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
    7358            0 :                             if (res) return res;
    7359              :                           }
    7360              :                         }
    7361              :                     }
    7362              :                 }
    7363              :               break;
    7364              :             }
    7365         2872 :           case RSHIFT_EXPR:
    7366         2872 :             {
    7367         2872 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7368         2872 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7369         2872 :               if (integer_pow2p (_q30))
    7370              :                 {
    7371            1 :                   if (integer_pow2p (_q21))
    7372              :                     {
    7373            1 :                       if (integer_zerop (_p1))
    7374              :                         {
    7375            1 :                           {
    7376            1 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
    7377            1 :                             tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
    7378            1 :                             if (res) return res;
    7379              :                           }
    7380              :                         }
    7381              :                     }
    7382              :                 }
    7383         2871 :               switch (TREE_CODE (_q31))
    7384              :                 {
    7385          417 :                 case INTEGER_CST:
    7386          417 :                   {
    7387          417 :                     switch (TREE_CODE (_q21))
    7388              :                       {
    7389          417 :                       case INTEGER_CST:
    7390          417 :                         {
    7391          417 :                           switch (TREE_CODE (_p1))
    7392              :                             {
    7393          417 :                             case INTEGER_CST:
    7394          417 :                               {
    7395          417 :                                 {
    7396          417 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    7397          417 :                                   tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, EQ_EXPR);
    7398          417 :                                   if (res) return res;
    7399              :                                 }
    7400            0 :                                 break;
    7401              :                               }
    7402              :                             default:;
    7403              :                             }
    7404              :                           break;
    7405              :                         }
    7406              :                       default:;
    7407              :                       }
    7408              :                     break;
    7409              :                   }
    7410              :                 default:;
    7411              :                 }
    7412              :               break;
    7413              :             }
    7414       834188 :           default:;
    7415              :           }
    7416       834188 :       {
    7417       834188 :         tree _q20_pops[1];
    7418       834188 :         if (tree_nop_convert (_q20, _q20_pops))
    7419              :           {
    7420        21612 :             tree _q30 = _q20_pops[0];
    7421        21612 :             switch (TREE_CODE (_q30))
    7422              :               {
    7423            0 :               case LSHIFT_EXPR:
    7424            0 :                 {
    7425            0 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    7426            0 :                   tree _q41 = TREE_OPERAND (_q30, 1);
    7427            0 :                   if (integer_onep (_q40))
    7428              :                     {
    7429            0 :                       if (integer_pow2p (_q21))
    7430              :                         {
    7431            0 :                           if (integer_zerop (_p1))
    7432              :                             {
    7433            0 :                               {
    7434            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q41, _q21 };
    7435            0 :                                 tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
    7436            0 :                                 if (res) return res;
    7437              :                               }
    7438              :                             }
    7439              :                         }
    7440              :                     }
    7441              :                   break;
    7442              :                 }
    7443              :               default:;
    7444              :               }
    7445              :           }
    7446              :       }
    7447       834188 :         break;
    7448              :       }
    7449         2065 :     case LSHIFT_EXPR:
    7450         2065 :       {
    7451         2065 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7452         2065 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7453         2065 :         switch (TREE_CODE (_q20))
    7454              :           {
    7455          336 :           case INTEGER_CST:
    7456          336 :             {
    7457          336 :               switch (TREE_CODE (_p1))
    7458              :                 {
    7459           20 :                 case INTEGER_CST:
    7460           20 :                   {
    7461           20 :                     {
    7462           20 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7463           20 :                       tree res = generic_simplify_244 (loc, type, _p0, _p1, captures, EQ_EXPR);
    7464           20 :                       if (res) return res;
    7465              :                     }
    7466            3 :                     break;
    7467              :                   }
    7468              :                 default:;
    7469              :                 }
    7470              :               break;
    7471              :             }
    7472              :           default:;
    7473              :           }
    7474              :         break;
    7475              :       }
    7476            0 :     case LROTATE_EXPR:
    7477            0 :       {
    7478            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7479            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7480            0 :         switch (TREE_CODE (_p1))
    7481              :           {
    7482            0 :           case LROTATE_EXPR:
    7483            0 :             {
    7484            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7485            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7486            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7487              :                 {
    7488            0 :                   {
    7489            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    7490            0 :                     tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
    7491            0 :                     if (res) return res;
    7492              :                   }
    7493              :                 }
    7494              :               break;
    7495              :             }
    7496            0 :           default:;
    7497              :           }
    7498            0 :         switch (TREE_CODE (_q21))
    7499              :           {
    7500            0 :           case INTEGER_CST:
    7501            0 :             {
    7502            0 :               switch (TREE_CODE (_p1))
    7503              :                 {
    7504            0 :                 case INTEGER_CST:
    7505            0 :                   {
    7506            0 :                     {
    7507            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7508            0 :                       tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
    7509            0 :                       if (res) return res;
    7510              :                     }
    7511            0 :                     break;
    7512              :                   }
    7513              :                 default:;
    7514              :                 }
    7515              :               break;
    7516              :             }
    7517            0 :           default:;
    7518              :           }
    7519            0 :         switch (TREE_CODE (_p1))
    7520              :           {
    7521            0 :           case INTEGER_CST:
    7522            0 :             {
    7523            0 :               {
    7524            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7525            0 :                 tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
    7526            0 :                 if (res) return res;
    7527              :               }
    7528            0 :               break;
    7529              :             }
    7530              :           default:;
    7531              :           }
    7532              :         break;
    7533              :       }
    7534           42 :     case RROTATE_EXPR:
    7535           42 :       {
    7536           42 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7537           42 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7538           42 :         switch (TREE_CODE (_p1))
    7539              :           {
    7540            0 :           case RROTATE_EXPR:
    7541            0 :             {
    7542            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7543            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7544            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7545              :                 {
    7546            0 :                   {
    7547            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    7548            0 :                     tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
    7549            0 :                     if (res) return res;
    7550              :                   }
    7551              :                 }
    7552              :               break;
    7553              :             }
    7554           42 :           default:;
    7555              :           }
    7556           42 :         switch (TREE_CODE (_q21))
    7557              :           {
    7558           42 :           case INTEGER_CST:
    7559           42 :             {
    7560           42 :               switch (TREE_CODE (_p1))
    7561              :                 {
    7562            0 :                 case INTEGER_CST:
    7563            0 :                   {
    7564            0 :                     {
    7565            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7566            0 :                       tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
    7567            0 :                       if (res) return res;
    7568              :                     }
    7569            0 :                     break;
    7570              :                   }
    7571              :                 default:;
    7572              :                 }
    7573              :               break;
    7574              :             }
    7575           42 :           default:;
    7576              :           }
    7577           42 :         switch (TREE_CODE (_p1))
    7578              :           {
    7579            0 :           case INTEGER_CST:
    7580            0 :             {
    7581            0 :               {
    7582            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7583            0 :                 tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
    7584            0 :                 if (res) return res;
    7585              :               }
    7586            0 :               break;
    7587              :             }
    7588              :           default:;
    7589              :           }
    7590              :         break;
    7591              :       }
    7592        66510 :     case MULT_EXPR:
    7593        66510 :       {
    7594        66510 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7595        66510 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7596        66510 :         switch (TREE_CODE (_q20))
    7597              :           {
    7598           66 :           case TRUNC_DIV_EXPR:
    7599           66 :             {
    7600           66 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7601           66 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7602           66 :               if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
    7603              :                 {
    7604           47 :                   if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    7605              :                     {
    7606           47 :                       {
    7607           47 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7608           47 :                         tree res = generic_simplify_248 (loc, type, _p0, _p1, captures);
    7609           47 :                         if (res) return res;
    7610              :                       }
    7611              :                     }
    7612              :                 }
    7613              :               break;
    7614              :             }
    7615        66463 :           default:;
    7616              :           }
    7617        66463 :         switch (TREE_CODE (_q21))
    7618              :           {
    7619            0 :           case TRUNC_DIV_EXPR:
    7620            0 :             {
    7621            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
    7622            0 :               tree _q41 = TREE_OPERAND (_q21, 1);
    7623            0 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    7624              :                 {
    7625            0 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    7626              :                     {
    7627            0 :                       {
    7628            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
    7629            0 :                         tree res = generic_simplify_248 (loc, type, _p0, _p1, captures);
    7630            0 :                         if (res) return res;
    7631              :                       }
    7632              :                     }
    7633              :                 }
    7634              :               break;
    7635              :             }
    7636              :           default:;
    7637              :           }
    7638              :         break;
    7639              :       }
    7640     27582740 :     default:;
    7641              :     }
    7642     27582740 :   switch (TREE_CODE (_p1))
    7643              :     {
    7644        13233 :     case MULT_EXPR:
    7645        13233 :       {
    7646        13233 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7647        13233 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7648        13233 :         switch (TREE_CODE (_q30))
    7649              :           {
    7650            0 :           case TRUNC_DIV_EXPR:
    7651            0 :             {
    7652            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7653            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7654            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    7655              :                 {
    7656            0 :                   if ((_q31 == _q41 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q41, 0) && types_match (_q31, _q41)))
    7657              :                     {
    7658            0 :                       {
    7659            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
    7660            0 :                         tree res = generic_simplify_248 (loc, type, _p0, _p1, captures);
    7661            0 :                         if (res) return res;
    7662              :                       }
    7663              :                     }
    7664              :                 }
    7665              :               break;
    7666              :             }
    7667        13233 :           default:;
    7668              :           }
    7669        13233 :         switch (TREE_CODE (_q31))
    7670              :           {
    7671            0 :           case TRUNC_DIV_EXPR:
    7672            0 :             {
    7673            0 :               tree _q50 = TREE_OPERAND (_q31, 0);
    7674            0 :               tree _q51 = TREE_OPERAND (_q31, 1);
    7675            0 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    7676              :                 {
    7677            0 :                   if ((_q51 == _q30 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q30, 0) && types_match (_q51, _q30)))
    7678              :                     {
    7679            0 :                       {
    7680            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q31, _p0, _q30 };
    7681            0 :                         tree res = generic_simplify_248 (loc, type, _p0, _p1, captures);
    7682            0 :                         if (res) return res;
    7683              :                       }
    7684              :                     }
    7685              :                 }
    7686              :               break;
    7687              :             }
    7688              :           default:;
    7689              :           }
    7690              :         break;
    7691              :       }
    7692     27582740 :     default:;
    7693              :     }
    7694     27582740 :   switch (TREE_CODE (_p0))
    7695              :     {
    7696         1056 :     case VEC_COND_EXPR:
    7697         1056 :       {
    7698         1056 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7699         1056 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7700         1056 :         tree _q22 = TREE_OPERAND (_p0, 2);
    7701         1056 :         switch (TREE_CODE (_p1))
    7702              :           {
    7703          187 :           case VEC_COND_EXPR:
    7704          187 :             {
    7705          187 :               tree _q60 = TREE_OPERAND (_p1, 0);
    7706          187 :               tree _q61 = TREE_OPERAND (_p1, 1);
    7707          187 :               tree _q62 = TREE_OPERAND (_p1, 2);
    7708          187 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7709              :                 {
    7710          120 :                   {
    7711          120 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    7712          120 :                     if (VECTOR_TYPE_P (type)
    7713          120 :  && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
    7714          120 :  || types_match (type, TREE_TYPE (captures[2]))
    7715          120 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7716              :  || (optimize_vectors_before_lowering_p ()
    7717            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7718              : )
    7719              :                       {
    7720          120 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1531;
    7721          120 :                         {
    7722          120 :                           tree res_op0;
    7723          120 :                           res_op0 = captures[1];
    7724          120 :                           tree res_op1;
    7725          120 :                           {
    7726          120 :                             tree _o1[2], _r1;
    7727          120 :                             _o1[0] = captures[2];
    7728          120 :                             _o1[1] = captures[5];
    7729          120 :                             _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
    7730          120 :                             if (EXPR_P (_r1))
    7731          120 :                               goto next_after_fail1531;
    7732            0 :                             res_op1 = _r1;
    7733              :                           }
    7734            0 :                           tree res_op2;
    7735            0 :                           {
    7736            0 :                             tree _o1[2], _r1;
    7737            0 :                             _o1[0] = captures[3];
    7738            0 :                             _o1[1] = captures[6];
    7739            0 :                             _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
    7740            0 :                             if (EXPR_P (_r1))
    7741            0 :                               goto next_after_fail1531;
    7742            0 :                             res_op2 = _r1;
    7743              :                           }
    7744            0 :                           tree _r;
    7745            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7746            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
    7747            0 :                           return _r;
    7748              :                         }
    7749          120 : next_after_fail1531:;
    7750              :                       }
    7751              :                   }
    7752              :                 }
    7753              :               break;
    7754              :             }
    7755         1056 :           default:;
    7756              :           }
    7757         1056 :         {
    7758         1056 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    7759         1056 :           if (VECTOR_TYPE_P (type)
    7760         1056 :  && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
    7761         1056 :  || types_match (type, TREE_TYPE (captures[2]))
    7762         1056 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7763              :  || (optimize_vectors_before_lowering_p ()
    7764           79 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7765              : )
    7766              :             {
    7767         1056 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1532;
    7768         1056 :               {
    7769         1056 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1532;
    7770          126 :                 tree res_op0;
    7771          126 :                 res_op0 = captures[1];
    7772          126 :                 tree res_op1;
    7773          126 :                 {
    7774          126 :                   tree _o1[2], _r1;
    7775          126 :                   _o1[0] = captures[2];
    7776          126 :                   _o1[1] = unshare_expr (captures[4]);
    7777          126 :                   _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
    7778          126 :                   if (EXPR_P (_r1))
    7779           96 :                     goto next_after_fail1532;
    7780           30 :                   res_op1 = _r1;
    7781              :                 }
    7782           30 :                 tree res_op2;
    7783           30 :                 {
    7784           30 :                   tree _o1[2], _r1;
    7785           30 :                   _o1[0] = captures[3];
    7786           30 :                   _o1[1] = captures[4];
    7787           30 :                   _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
    7788           30 :                   if (EXPR_P (_r1))
    7789            9 :                     goto next_after_fail1532;
    7790           21 :                   res_op2 = _r1;
    7791              :                 }
    7792           21 :                 tree _r;
    7793           21 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7794           21 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
    7795           21 :                 return _r;
    7796              :               }
    7797         1035 : next_after_fail1532:;
    7798              :             }
    7799              :         }
    7800         1035 :         break;
    7801              :       }
    7802      2002815 :     case CALL_EXPR:
    7803      2002815 :       switch (get_call_combined_fn (_p0))
    7804              :         {
    7805            1 :         case CFN_BUILT_IN_BITREVERSE128:
    7806            1 :           if (call_expr_nargs (_p0) == 1)
    7807              :     {
    7808            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7809            1 :               switch (TREE_CODE (_p1))
    7810              :                 {
    7811            1 :                 case INTEGER_CST:
    7812            1 :                   {
    7813            1 :                     {
    7814            1 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7815            1 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE128);
    7816            1 :                       if (res) return res;
    7817              :                     }
    7818            1 :                     break;
    7819              :                   }
    7820            0 :                 case CALL_EXPR:
    7821            0 :                   switch (get_call_combined_fn (_p1))
    7822              :                     {
    7823            0 :                     case CFN_BUILT_IN_BITREVERSE128:
    7824            0 :                       if (call_expr_nargs (_p1) == 1)
    7825              :     {
    7826            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7827            0 :                           {
    7828            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    7829            0 :                             tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE128);
    7830            0 :                             if (res) return res;
    7831              :                           }
    7832              :                         }
    7833              :                       break;
    7834              :                     default:;
    7835              :                     }
    7836              :                   break;
    7837              :                 default:;
    7838              :                 }
    7839              :             }
    7840              :           break;
    7841            1 :         case CFN_BUILT_IN_BITREVERSE16:
    7842            1 :           if (call_expr_nargs (_p0) == 1)
    7843              :     {
    7844            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7845            1 :               switch (TREE_CODE (_p1))
    7846              :                 {
    7847            1 :                 case INTEGER_CST:
    7848            1 :                   {
    7849            1 :                     {
    7850            1 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7851            1 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE16);
    7852            1 :                       if (res) return res;
    7853              :                     }
    7854            1 :                     break;
    7855              :                   }
    7856            0 :                 case CALL_EXPR:
    7857            0 :                   switch (get_call_combined_fn (_p1))
    7858              :                     {
    7859            0 :                     case CFN_BUILT_IN_BITREVERSE16:
    7860            0 :                       if (call_expr_nargs (_p1) == 1)
    7861              :     {
    7862            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7863            0 :                           {
    7864            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    7865            0 :                             tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE16);
    7866            0 :                             if (res) return res;
    7867              :                           }
    7868              :                         }
    7869              :                       break;
    7870              :                     default:;
    7871              :                     }
    7872              :                   break;
    7873              :                 default:;
    7874              :                 }
    7875              :             }
    7876              :           break;
    7877            1 :         case CFN_BUILT_IN_BITREVERSE32:
    7878            1 :           if (call_expr_nargs (_p0) == 1)
    7879              :     {
    7880            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7881            1 :               switch (TREE_CODE (_p1))
    7882              :                 {
    7883            1 :                 case INTEGER_CST:
    7884            1 :                   {
    7885            1 :                     {
    7886            1 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7887            1 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE32);
    7888            1 :                       if (res) return res;
    7889              :                     }
    7890            1 :                     break;
    7891              :                   }
    7892            0 :                 case CALL_EXPR:
    7893            0 :                   switch (get_call_combined_fn (_p1))
    7894              :                     {
    7895            0 :                     case CFN_BUILT_IN_BITREVERSE32:
    7896            0 :                       if (call_expr_nargs (_p1) == 1)
    7897              :     {
    7898            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7899            0 :                           {
    7900            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    7901            0 :                             tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE32);
    7902            0 :                             if (res) return res;
    7903              :                           }
    7904              :                         }
    7905              :                       break;
    7906              :                     default:;
    7907              :                     }
    7908              :                   break;
    7909              :                 default:;
    7910              :                 }
    7911              :             }
    7912              :           break;
    7913            1 :         case CFN_BUILT_IN_BITREVERSE64:
    7914            1 :           if (call_expr_nargs (_p0) == 1)
    7915              :     {
    7916            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7917            1 :               switch (TREE_CODE (_p1))
    7918              :                 {
    7919            1 :                 case INTEGER_CST:
    7920            1 :                   {
    7921            1 :                     {
    7922            1 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7923            1 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE64);
    7924            1 :                       if (res) return res;
    7925              :                     }
    7926            1 :                     break;
    7927              :                   }
    7928            0 :                 case CALL_EXPR:
    7929            0 :                   switch (get_call_combined_fn (_p1))
    7930              :                     {
    7931            0 :                     case CFN_BUILT_IN_BITREVERSE64:
    7932            0 :                       if (call_expr_nargs (_p1) == 1)
    7933              :     {
    7934            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7935            0 :                           {
    7936            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    7937            0 :                             tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE64);
    7938            0 :                             if (res) return res;
    7939              :                           }
    7940              :                         }
    7941              :                       break;
    7942              :                     default:;
    7943              :                     }
    7944              :                   break;
    7945              :                 default:;
    7946              :                 }
    7947              :             }
    7948              :           break;
    7949            0 :         case CFN_BITREVERSE:
    7950            0 :           if (call_expr_nargs (_p0) == 1)
    7951              :     {
    7952            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7953            0 :               switch (TREE_CODE (_p1))
    7954              :                 {
    7955            0 :                 case INTEGER_CST:
    7956            0 :                   {
    7957            0 :                     {
    7958            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7959            0 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BITREVERSE);
    7960            0 :                       if (res) return res;
    7961              :                     }
    7962            0 :                     break;
    7963              :                   }
    7964            0 :                 case CALL_EXPR:
    7965            0 :                   switch (get_call_combined_fn (_p1))
    7966              :                     {
    7967            0 :                     case CFN_BITREVERSE:
    7968            0 :                       if (call_expr_nargs (_p1) == 1)
    7969              :     {
    7970            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7971            0 :                           {
    7972            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    7973            0 :                             tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BITREVERSE);
    7974            0 :                             if (res) return res;
    7975              :                           }
    7976              :                         }
    7977              :                       break;
    7978              :                     default:;
    7979              :                     }
    7980              :                   break;
    7981              :                 default:;
    7982              :                 }
    7983              :             }
    7984              :           break;
    7985            0 :         case CFN_BSWAP:
    7986            0 :           if (call_expr_nargs (_p0) == 1)
    7987              :     {
    7988            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7989            0 :               switch (TREE_CODE (_p1))
    7990              :                 {
    7991            0 :                 case INTEGER_CST:
    7992            0 :                   {
    7993            0 :                     {
    7994            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7995            0 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BSWAP);
    7996            0 :                       if (res) return res;
    7997              :                     }
    7998            0 :                     break;
    7999              :                   }
    8000            0 :                 case CALL_EXPR:
    8001            0 :                   switch (get_call_combined_fn (_p1))
    8002              :                     {
    8003            0 :                     case CFN_BSWAP:
    8004            0 :                       if (call_expr_nargs (_p1) == 1)
    8005              :     {
    8006            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8007            0 :                           {
    8008            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8009            0 :                             tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BSWAP);
    8010            0 :                             if (res) return res;
    8011              :                           }
    8012              :                         }
    8013              :                       break;
    8014              :                     default:;
    8015              :                     }
    8016              :                   break;
    8017              :                 default:;
    8018              :                 }
    8019              :             }
    8020              :           break;
    8021            0 :         case CFN_BUILT_IN_BSWAP128:
    8022            0 :           if (call_expr_nargs (_p0) == 1)
    8023              :     {
    8024            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8025            0 :               switch (TREE_CODE (_p1))
    8026              :                 {
    8027            0 :                 case INTEGER_CST:
    8028            0 :                   {
    8029            0 :                     {
    8030            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8031            0 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128);
    8032            0 :                       if (res) return res;
    8033              :                     }
    8034            0 :                     break;
    8035              :                   }
    8036            0 :                 case CALL_EXPR:
    8037            0 :                   switch (get_call_combined_fn (_p1))
    8038              :                     {
    8039            0 :                     case CFN_BUILT_IN_BSWAP128:
    8040            0 :                       if (call_expr_nargs (_p1) == 1)
    8041              :     {
    8042            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8043            0 :                           {
    8044            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8045            0 :                             tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128);
    8046            0 :                             if (res) return res;
    8047              :                           }
    8048              :                         }
    8049              :                       break;
    8050              :                     default:;
    8051              :                     }
    8052              :                   break;
    8053              :                 default:;
    8054              :                 }
    8055              :             }
    8056              :           break;
    8057            1 :         case CFN_BUILT_IN_BITREVERSE8:
    8058            1 :           if (call_expr_nargs (_p0) == 1)
    8059              :     {
    8060            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8061            1 :               switch (TREE_CODE (_p1))
    8062              :                 {
    8063            1 :                 case INTEGER_CST:
    8064            1 :                   {
    8065            1 :                     {
    8066            1 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8067            1 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE8);
    8068            1 :                       if (res) return res;
    8069              :                     }
    8070            1 :                     break;
    8071              :                   }
    8072            0 :                 case CALL_EXPR:
    8073            0 :                   switch (get_call_combined_fn (_p1))
    8074              :                     {
    8075            0 :                     case CFN_BUILT_IN_BITREVERSE8:
    8076            0 :                       if (call_expr_nargs (_p1) == 1)
    8077              :     {
    8078            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8079            0 :                           {
    8080            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8081            0 :                             tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BITREVERSE8);
    8082            0 :                             if (res) return res;
    8083              :                           }
    8084              :                         }
    8085              :                       break;
    8086              :                     default:;
    8087              :                     }
    8088              :                   break;
    8089              :                 default:;
    8090              :                 }
    8091              :             }
    8092              :           break;
    8093            2 :         case CFN_BUILT_IN_BSWAP16:
    8094            2 :           if (call_expr_nargs (_p0) == 1)
    8095              :     {
    8096            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8097            2 :               switch (TREE_CODE (_p1))
    8098              :                 {
    8099            1 :                 case INTEGER_CST:
    8100            1 :                   {
    8101            1 :                     {
    8102            1 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8103            1 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16);
    8104            1 :                       if (res) return res;
    8105              :                     }
    8106            1 :                     break;
    8107              :                   }
    8108            1 :                 case CALL_EXPR:
    8109            1 :                   switch (get_call_combined_fn (_p1))
    8110              :                     {
    8111            1 :                     case CFN_BUILT_IN_BSWAP16:
    8112            1 :                       if (call_expr_nargs (_p1) == 1)
    8113              :     {
    8114            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8115            1 :                           {
    8116            1 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8117            1 :                             tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16);
    8118            1 :                             if (res) return res;
    8119              :                           }
    8120              :                         }
    8121              :                       break;
    8122              :                     default:;
    8123              :                     }
    8124              :                   break;
    8125              :                 default:;
    8126              :                 }
    8127              :             }
    8128              :           break;
    8129            6 :         case CFN_BUILT_IN_BSWAP32:
    8130            6 :           if (call_expr_nargs (_p0) == 1)
    8131              :     {
    8132            6 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8133            6 :               switch (TREE_CODE (_p1))
    8134              :                 {
    8135            3 :                 case INTEGER_CST:
    8136            3 :                   {
    8137            3 :                     {
    8138            3 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8139            3 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32);
    8140            3 :                       if (res) return res;
    8141              :                     }
    8142            3 :                     break;
    8143              :                   }
    8144            3 :                 case CALL_EXPR:
    8145            3 :                   switch (get_call_combined_fn (_p1))
    8146              :                     {
    8147            3 :                     case CFN_BUILT_IN_BSWAP32:
    8148            3 :                       if (call_expr_nargs (_p1) == 1)
    8149              :     {
    8150            3 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8151            3 :                           {
    8152            3 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8153            3 :                             tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32);
    8154            3 :                             if (res) return res;
    8155              :                           }
    8156              :                         }
    8157              :                       break;
    8158              :                     default:;
    8159              :                     }
    8160              :                   break;
    8161              :                 default:;
    8162              :                 }
    8163              :             }
    8164              :           break;
    8165            6 :         case CFN_BUILT_IN_BSWAP64:
    8166            6 :           if (call_expr_nargs (_p0) == 1)
    8167              :     {
    8168            6 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8169            6 :               switch (TREE_CODE (_p1))
    8170              :                 {
    8171            3 :                 case INTEGER_CST:
    8172            3 :                   {
    8173            3 :                     {
    8174            3 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8175            3 :                       tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64);
    8176            3 :                       if (res) return res;
    8177              :                     }
    8178            3 :                     break;
    8179              :                   }
    8180            3 :                 case CALL_EXPR:
    8181            3 :                   switch (get_call_combined_fn (_p1))
    8182              :                     {
    8183            3 :                     case CFN_BUILT_IN_BSWAP64:
    8184            3 :                       if (call_expr_nargs (_p1) == 1)
    8185              :     {
    8186            3 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8187            3 :                           {
    8188            3 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8189            3 :                             tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64);
    8190            3 :                             if (res) return res;
    8191              :                           }
    8192              :                         }
    8193              :                       break;
    8194              :                     default:;
    8195              :                     }
    8196              :                   break;
    8197              :                 default:;
    8198              :                 }
    8199              :             }
    8200              :           break;
    8201              :         default:;
    8202              :         }
    8203              :       break;
    8204     27582712 :     default:;
    8205              :     }
    8206     27582712 :   switch (TREE_CODE (_p1))
    8207              :     {
    8208          215 :     case VEC_COND_EXPR:
    8209          215 :       {
    8210          215 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8211          215 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8212          215 :         tree _q32 = TREE_OPERAND (_p1, 2);
    8213          215 :         {
    8214          215 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    8215          215 :           if (VECTOR_TYPE_P (type)
    8216          215 :  && (TREE_CODE_CLASS (EQ_EXPR) != tcc_comparison
    8217          215 :  || types_match (type, TREE_TYPE (captures[3]))
    8218          215 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    8219              :  || (optimize_vectors_before_lowering_p ()
    8220           21 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    8221              : )
    8222              :             {
    8223          215 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1533;
    8224          215 :               {
    8225          215 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1533;
    8226            0 :                 tree res_op0;
    8227            0 :                 res_op0 = captures[2];
    8228            0 :                 tree res_op1;
    8229            0 :                 {
    8230            0 :                   tree _o1[2], _r1;
    8231            0 :                   _o1[0] = unshare_expr (captures[0]);
    8232            0 :                   _o1[1] = captures[3];
    8233            0 :                   _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
    8234            0 :                   if (EXPR_P (_r1))
    8235            0 :                     goto next_after_fail1533;
    8236            0 :                   res_op1 = _r1;
    8237              :                 }
    8238            0 :                 tree res_op2;
    8239            0 :                 {
    8240            0 :                   tree _o1[2], _r1;
    8241            0 :                   _o1[0] = captures[0];
    8242            0 :                   _o1[1] = captures[4];
    8243            0 :                   _r1 = fold_build2_loc (loc, EQ_EXPR, type, _o1[0], _o1[1]);
    8244            0 :                   if (EXPR_P (_r1))
    8245            0 :                     goto next_after_fail1533;
    8246            0 :                   res_op2 = _r1;
    8247              :                 }
    8248            0 :                 tree _r;
    8249            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8250            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
    8251            0 :                 return _r;
    8252              :               }
    8253          215 : next_after_fail1533:;
    8254              :             }
    8255              :         }
    8256          215 :         break;
    8257              :       }
    8258     27582712 :     default:;
    8259              :     }
    8260     27582712 :   switch (TREE_CODE (_p0))
    8261              :     {
    8262        41347 :     case COND_EXPR:
    8263        41347 :       {
    8264        41347 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8265        41347 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8266        41347 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8267        41347 :         switch (TREE_CODE (_p1))
    8268              :           {
    8269           49 :           case COND_EXPR:
    8270           49 :             {
    8271           49 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8272           49 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8273           49 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8274           49 :               if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    8275              :                 {
    8276            3 :                   if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    8277              :                     {
    8278            3 :                       {
    8279            3 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    8280            3 :                         const enum tree_code eqne = EQ_EXPR;
    8281            3 :                         if (!HONOR_NANS (captures[1])
    8282            3 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    8283            3 :  && types_match (type, TREE_TYPE (captures[0]))
    8284            3 :  && expr_no_side_effects_p (captures[1])
    8285            4 :  && expr_no_side_effects_p (captures[2])
    8286              : )
    8287              :                           {
    8288            1 :                             if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1534;
    8289            1 :                             if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1534;
    8290            1 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1534;
    8291            1 :                             {
    8292            1 :                               tree res_op0;
    8293            1 :                               {
    8294            1 :                                 tree _o1[2], _r1;
    8295            1 :                                 {
    8296            1 :                                   tree _o2[2], _r2;
    8297            1 :                                   _o2[0] = captures[0];
    8298            1 :                                   _o2[1] = captures[3];
    8299            1 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    8300            1 :                                   _o1[0] = _r2;
    8301              :                                 }
    8302            1 :                                 {
    8303            1 :                                   tree _o2[2], _r2;
    8304            1 :                                   _o2[0] = captures[1];
    8305            1 :                                   _o2[1] = captures[2];
    8306            1 :                                   _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
    8307            1 :                                   _o1[1] = _r2;
    8308              :                                 }
    8309            1 :                                 _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8310            1 :                                 res_op0 = _r1;
    8311              :                               }
    8312            1 :                               tree res_op1;
    8313            1 :                               res_op1 =  constant_boolean_node (eqne == NE_EXPR, type);
    8314            1 :                               tree res_op2;
    8315            1 :                               res_op2 =  constant_boolean_node (eqne != NE_EXPR, type);
    8316            1 :                               tree _r;
    8317            1 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    8318            1 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 993, __FILE__, __LINE__, true);
    8319            1 :                               return _r;
    8320              :                             }
    8321            2 : next_after_fail1534:;
    8322              :                           }
    8323              :                       }
    8324              :                     }
    8325              :                 }
    8326           48 :               if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
    8327              :                 {
    8328           19 :                   if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
    8329              :                     {
    8330           19 :                       {
    8331           19 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    8332           19 :                         const enum tree_code eqne = EQ_EXPR;
    8333           19 :                         if (!HONOR_NANS (captures[1])
    8334            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    8335            0 :  && types_match (type, TREE_TYPE (captures[0]))
    8336            0 :  && expr_no_side_effects_p (captures[1])
    8337           19 :  && expr_no_side_effects_p (captures[2])
    8338              : )
    8339              :                           {
    8340            0 :                             if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1535;
    8341            0 :                             if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1535;
    8342            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1535;
    8343            0 :                             {
    8344            0 :                               tree res_op0;
    8345            0 :                               {
    8346            0 :                                 tree _o1[2], _r1;
    8347            0 :                                 {
    8348            0 :                                   tree _o2[2], _r2;
    8349            0 :                                   _o2[0] = captures[0];
    8350            0 :                                   _o2[1] = captures[3];
    8351            0 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    8352            0 :                                   _o1[0] = _r2;
    8353              :                                 }
    8354            0 :                                 {
    8355            0 :                                   tree _o2[2], _r2;
    8356            0 :                                   _o2[0] = captures[1];
    8357            0 :                                   _o2[1] = captures[2];
    8358            0 :                                   _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
    8359            0 :                                   _o1[1] = _r2;
    8360              :                                 }
    8361            0 :                                 _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8362            0 :                                 res_op0 = _r1;
    8363              :                               }
    8364            0 :                               tree res_op1;
    8365            0 :                               res_op1 =  constant_boolean_node (eqne != NE_EXPR, type);
    8366            0 :                               tree res_op2;
    8367            0 :                               res_op2 =  constant_boolean_node (eqne == NE_EXPR, type);
    8368            0 :                               tree _r;
    8369            0 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    8370            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 994, __FILE__, __LINE__, true);
    8371            0 :                               return _r;
    8372              :                             }
    8373           19 : next_after_fail1535:;
    8374              :                           }
    8375              :                       }
    8376              :                     }
    8377              :                 }
    8378              :               break;
    8379              :             }
    8380              :           default:;
    8381              :           }
    8382              :         break;
    8383              :       }
    8384         1035 :     case VEC_COND_EXPR:
    8385         1035 :       {
    8386         1035 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8387         1035 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8388         1035 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8389         1035 :         switch (TREE_CODE (_p1))
    8390              :           {
    8391          187 :           case VEC_COND_EXPR:
    8392          187 :             {
    8393          187 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8394          187 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8395          187 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8396          187 :               if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    8397              :                 {
    8398          126 :                   if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    8399              :                     {
    8400          126 :                       {
    8401          126 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    8402          126 :                         const enum tree_code eqne = EQ_EXPR;
    8403          126 :                         if (!HONOR_NANS (captures[1])
    8404            6 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    8405            6 :  && types_match (type, TREE_TYPE (captures[0]))
    8406            6 :  && expr_no_side_effects_p (captures[1])
    8407          132 :  && expr_no_side_effects_p (captures[2])
    8408              : )
    8409              :                           {
    8410            6 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1536;
    8411            6 :                             {
    8412            6 :                               tree res_op0;
    8413            6 :                               {
    8414            6 :                                 tree _o1[2], _r1;
    8415            6 :                                 {
    8416            6 :                                   tree _o2[2], _r2;
    8417            6 :                                   _o2[0] = captures[0];
    8418            6 :                                   _o2[1] = captures[3];
    8419            6 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    8420            6 :                                   _o1[0] = _r2;
    8421              :                                 }
    8422            6 :                                 {
    8423            6 :                                   tree _o2[2], _r2;
    8424            6 :                                   _o2[0] = captures[1];
    8425            6 :                                   _o2[1] = captures[2];
    8426            6 :                                   _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
    8427            6 :                                   _o1[1] = _r2;
    8428              :                                 }
    8429            6 :                                 _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8430            6 :                                 res_op0 = _r1;
    8431              :                               }
    8432            6 :                               tree res_op1;
    8433            6 :                               res_op1 =  constant_boolean_node (eqne == NE_EXPR, type);
    8434            6 :                               tree res_op2;
    8435            6 :                               res_op2 =  constant_boolean_node (eqne != NE_EXPR, type);
    8436            6 :                               tree _r;
    8437            6 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8438            6 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 993, __FILE__, __LINE__, true);
    8439            6 :                               return _r;
    8440              :                             }
    8441            0 : next_after_fail1536:;
    8442              :                           }
    8443              :                       }
    8444              :                     }
    8445              :                 }
    8446          181 :               if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
    8447              :                 {
    8448           53 :                   if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
    8449              :                     {
    8450           53 :                       {
    8451           53 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    8452           53 :                         const enum tree_code eqne = EQ_EXPR;
    8453           53 :                         if (!HONOR_NANS (captures[1])
    8454            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    8455            0 :  && types_match (type, TREE_TYPE (captures[0]))
    8456            0 :  && expr_no_side_effects_p (captures[1])
    8457           53 :  && expr_no_side_effects_p (captures[2])
    8458              : )
    8459              :                           {
    8460            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1537;
    8461            0 :                             {
    8462            0 :                               tree res_op0;
    8463            0 :                               {
    8464            0 :                                 tree _o1[2], _r1;
    8465            0 :                                 {
    8466            0 :                                   tree _o2[2], _r2;
    8467            0 :                                   _o2[0] = captures[0];
    8468            0 :                                   _o2[1] = captures[3];
    8469            0 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    8470            0 :                                   _o1[0] = _r2;
    8471              :                                 }
    8472            0 :                                 {
    8473            0 :                                   tree _o2[2], _r2;
    8474            0 :                                   _o2[0] = captures[1];
    8475            0 :                                   _o2[1] = captures[2];
    8476            0 :                                   _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
    8477            0 :                                   _o1[1] = _r2;
    8478              :                                 }
    8479            0 :                                 _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8480            0 :                                 res_op0 = _r1;
    8481              :                               }
    8482            0 :                               tree res_op1;
    8483            0 :                               res_op1 =  constant_boolean_node (eqne != NE_EXPR, type);
    8484            0 :                               tree res_op2;
    8485            0 :                               res_op2 =  constant_boolean_node (eqne == NE_EXPR, type);
    8486            0 :                               tree _r;
    8487            0 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8488            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 994, __FILE__, __LINE__, true);
    8489            0 :                               return _r;
    8490              :                             }
    8491            0 : next_after_fail1537:;
    8492              :                           }
    8493              :                       }
    8494              :                     }
    8495              :                 }
    8496              :               break;
    8497              :             }
    8498              :           default:;
    8499              :           }
    8500              :         break;
    8501              :       }
    8502         1131 :     case LT_EXPR:
    8503         1131 :       {
    8504         1131 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8505         1131 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8506         1131 :         if (integer_truep (_p1))
    8507              :           {
    8508            5 :             {
    8509            5 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8510            5 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
    8511            5 :               if (res) return res;
    8512              :             }
    8513              :           }
    8514         1131 :         if (integer_zerop (_p1))
    8515              :           {
    8516          414 :             {
    8517          414 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8518          414 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
    8519          414 :               if (res) return res;
    8520              :             }
    8521              :           }
    8522              :         break;
    8523              :       }
    8524         1557 :     case LE_EXPR:
    8525         1557 :       {
    8526         1557 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8527         1557 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8528         1557 :         if (integer_truep (_p1))
    8529              :           {
    8530            0 :             {
    8531            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8532            0 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
    8533            0 :               if (res) return res;
    8534              :             }
    8535              :           }
    8536         1557 :         if (integer_zerop (_p1))
    8537              :           {
    8538          693 :             {
    8539          693 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8540          693 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
    8541          693 :               if (res) return res;
    8542              :             }
    8543              :           }
    8544              :         break;
    8545              :       }
    8546        32634 :     case EQ_EXPR:
    8547        32634 :       {
    8548        32634 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8549        32634 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8550        32634 :         if (integer_truep (_p1))
    8551              :           {
    8552           48 :             {
    8553           48 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8554           48 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
    8555           48 :               if (res) return res;
    8556              :             }
    8557              :           }
    8558        32629 :         if (integer_zerop (_p1))
    8559              :           {
    8560         7681 :             {
    8561         7681 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8562         7681 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
    8563         7681 :               if (res) return res;
    8564              :             }
    8565              :           }
    8566              :         break;
    8567              :       }
    8568        12093 :     case NE_EXPR:
    8569        12093 :       {
    8570        12093 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8571        12093 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8572        12093 :         if (integer_truep (_p1))
    8573              :           {
    8574          126 :             {
    8575          126 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8576          126 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
    8577          126 :               if (res) return res;
    8578              :             }
    8579              :           }
    8580        11973 :         if (integer_zerop (_p1))
    8581              :           {
    8582         9911 :             {
    8583         9911 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8584         9911 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
    8585         9911 :               if (res) return res;
    8586              :             }
    8587              :           }
    8588              :         break;
    8589              :       }
    8590         6717 :     case GE_EXPR:
    8591         6717 :       {
    8592         6717 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8593         6717 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8594         6717 :         if (integer_truep (_p1))
    8595              :           {
    8596            0 :             {
    8597            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8598            0 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
    8599            0 :               if (res) return res;
    8600              :             }
    8601              :           }
    8602         6717 :         if (integer_zerop (_p1))
    8603              :           {
    8604         5597 :             {
    8605         5597 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8606         5597 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
    8607         5597 :               if (res) return res;
    8608              :             }
    8609              :           }
    8610              :         break;
    8611              :       }
    8612        69169 :     case GT_EXPR:
    8613        69169 :       {
    8614        69169 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8615        69169 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8616        69169 :         if (integer_truep (_p1))
    8617              :           {
    8618            0 :             {
    8619            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8620            0 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
    8621            0 :               if (res) return res;
    8622              :             }
    8623              :           }
    8624        69169 :         if (integer_zerop (_p1))
    8625              :           {
    8626          475 :             {
    8627          475 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8628          475 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
    8629          475 :               if (res) return res;
    8630              :             }
    8631              :           }
    8632              :         break;
    8633              :       }
    8634         1023 :     case UNORDERED_EXPR:
    8635         1023 :       {
    8636         1023 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8637         1023 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8638         1023 :         if (integer_truep (_p1))
    8639              :           {
    8640            0 :             {
    8641            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8642            0 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
    8643            0 :               if (res) return res;
    8644              :             }
    8645              :           }
    8646         1023 :         if (integer_zerop (_p1))
    8647              :           {
    8648         1017 :             {
    8649         1017 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8650         1017 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
    8651         1017 :               if (res) return res;
    8652              :             }
    8653              :           }
    8654              :         break;
    8655              :       }
    8656            0 :     case ORDERED_EXPR:
    8657            0 :       {
    8658            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8659            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8660            0 :         if (integer_truep (_p1))
    8661              :           {
    8662            0 :             {
    8663            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8664            0 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
    8665            0 :               if (res) return res;
    8666              :             }
    8667              :           }
    8668            0 :         if (integer_zerop (_p1))
    8669              :           {
    8670            0 :             {
    8671            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8672            0 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
    8673            0 :               if (res) return res;
    8674              :             }
    8675              :           }
    8676              :         break;
    8677              :       }
    8678            0 :     case UNLT_EXPR:
    8679            0 :       {
    8680            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8681            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8682            0 :         if (integer_truep (_p1))
    8683              :           {
    8684            0 :             {
    8685            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8686            0 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
    8687            0 :               if (res) return res;
    8688              :             }
    8689              :           }
    8690            0 :         if (integer_zerop (_p1))
    8691              :           {
    8692            0 :             {
    8693            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8694            0 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
    8695            0 :               if (res) return res;
    8696              :             }
    8697              :           }
    8698              :         break;
    8699              :       }
    8700            0 :     case UNLE_EXPR:
    8701            0 :       {
    8702            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8703            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8704            0 :         if (integer_truep (_p1))
    8705              :           {
    8706            0 :             {
    8707            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8708            0 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
    8709            0 :               if (res) return res;
    8710              :             }
    8711              :           }
    8712            0 :         if (integer_zerop (_p1))
    8713              :           {
    8714            0 :             {
    8715            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8716            0 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
    8717            0 :               if (res) return res;
    8718              :             }
    8719              :           }
    8720              :         break;
    8721              :       }
    8722            0 :     case UNGT_EXPR:
    8723            0 :       {
    8724            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8725            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8726            0 :         if (integer_truep (_p1))
    8727              :           {
    8728            0 :             {
    8729            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8730            0 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
    8731            0 :               if (res) return res;
    8732              :             }
    8733              :           }
    8734            0 :         if (integer_zerop (_p1))
    8735              :           {
    8736            0 :             {
    8737            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8738            0 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
    8739            0 :               if (res) return res;
    8740              :             }
    8741              :           }
    8742              :         break;
    8743              :       }
    8744            0 :     case UNGE_EXPR:
    8745            0 :       {
    8746            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8747            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8748            0 :         if (integer_truep (_p1))
    8749              :           {
    8750            0 :             {
    8751            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8752            0 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
    8753            0 :               if (res) return res;
    8754              :             }
    8755              :           }
    8756            0 :         if (integer_zerop (_p1))
    8757              :           {
    8758            0 :             {
    8759            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8760            0 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
    8761            0 :               if (res) return res;
    8762              :             }
    8763              :           }
    8764              :         break;
    8765              :       }
    8766            0 :     case UNEQ_EXPR:
    8767            0 :       {
    8768            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8769            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8770            0 :         if (integer_truep (_p1))
    8771              :           {
    8772            0 :             {
    8773            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8774            0 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
    8775            0 :               if (res) return res;
    8776              :             }
    8777              :           }
    8778            0 :         if (integer_zerop (_p1))
    8779              :           {
    8780            0 :             {
    8781            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8782            0 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
    8783            0 :               if (res) return res;
    8784              :             }
    8785              :           }
    8786              :         break;
    8787              :       }
    8788            0 :     case LTGT_EXPR:
    8789            0 :       {
    8790            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8791            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8792            0 :         if (integer_truep (_p1))
    8793              :           {
    8794            0 :             {
    8795            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8796            0 :               tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
    8797            0 :               if (res) return res;
    8798              :             }
    8799              :           }
    8800            0 :         if (integer_zerop (_p1))
    8801              :           {
    8802            0 :             {
    8803            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8804            0 :               tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
    8805            0 :               if (res) return res;
    8806              :             }
    8807              :           }
    8808              :         break;
    8809              :       }
    8810       153647 :     case MINUS_EXPR:
    8811       153647 :       {
    8812       153647 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8813       153647 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8814       153647 :         if (integer_zerop (_p1))
    8815              :           {
    8816        57614 :             {
    8817        57614 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8818        57614 :               tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, EQ_EXPR);
    8819        57614 :               if (res) return res;
    8820              :             }
    8821              :           }
    8822              :         break;
    8823              :       }
    8824        32734 :     case POINTER_DIFF_EXPR:
    8825        32734 :       {
    8826        32734 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8827        32734 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8828        32734 :         if (integer_zerop (_p1))
    8829              :           {
    8830         1481 :             {
    8831         1481 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8832         1481 :               tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, EQ_EXPR);
    8833         1481 :               if (res) return res;
    8834              :             }
    8835              :           }
    8836              :         break;
    8837              :       }
    8838        66463 :     case MULT_EXPR:
    8839        66463 :       {
    8840        66463 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8841        66463 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8842        66463 :         switch (TREE_CODE (_q21))
    8843              :           {
    8844        58543 :           case INTEGER_CST:
    8845        58543 :             {
    8846        58543 :               switch (TREE_CODE (_p1))
    8847              :                 {
    8848         9711 :                 case INTEGER_CST:
    8849         9711 :                   {
    8850         9711 :                     {
    8851         9711 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8852         9711 :                       tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, EQ_EXPR);
    8853         9711 :                       if (res) return res;
    8854              :                     }
    8855         8793 :                     break;
    8856              :                   }
    8857        57625 :                 default:;
    8858              :                 }
    8859        57625 :             if (integer_zerop (_p1))
    8860              :               {
    8861         4250 :                 {
    8862         4250 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    8863         4250 :                   tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
    8864         4250 :                   if (res) return res;
    8865              :                 }
    8866              :               }
    8867              :               break;
    8868              :             }
    8869              :           default:;
    8870              :           }
    8871              :         break;
    8872              :       }
    8873     27497688 :     default:;
    8874              :     }
    8875     27497688 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8876              :     {
    8877       119380 :       {
    8878       119380 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8879       119380 :         tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, EQ_EXPR);
    8880       119380 :         if (res) return res;
    8881              :       }
    8882              :     }
    8883     27383884 :   switch (TREE_CODE (_p0))
    8884              :     {
    8885      5116407 :     CASE_CONVERT:
    8886      5116407 :       {
    8887      5116407 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8888      5116407 :         switch (TREE_CODE (_p1))
    8889              :           {
    8890      1583690 :           CASE_CONVERT:
    8891      1583690 :             {
    8892      1583690 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8893      1583690 :               {
    8894      1583690 :                 tree _q40_pops[1];
    8895      1583690 :                 if (tree_maybe_bit_not (_q40, _q40_pops))
    8896              :                   {
    8897            0 :                     tree _q50 = _q40_pops[0];
    8898            0 :                     {
    8899            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    8900            0 :                       tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, EQ_EXPR);
    8901            0 :                       if (res) return res;
    8902              :                     }
    8903              :                   }
    8904              :               }
    8905      1583690 :               break;
    8906              :             }
    8907      5116407 :           default:;
    8908              :           }
    8909      5116407 :         {
    8910      5116407 :           tree _q20_pops[1];
    8911      5116407 :           if (tree_maybe_bit_not (_q20, _q20_pops))
    8912              :             {
    8913          240 :               tree _q30 = _q20_pops[0];
    8914          240 :               switch (TREE_CODE (_p1))
    8915              :                 {
    8916           74 :                 CASE_CONVERT:
    8917           74 :                   {
    8918           74 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    8919           74 :                     {
    8920           74 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    8921           74 :                       tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, EQ_EXPR);
    8922           74 :                       if (res) return res;
    8923              :                     }
    8924           74 :                     break;
    8925              :                   }
    8926              :                 default:;
    8927              :                 }
    8928              :             }
    8929              :         }
    8930      5116407 :         break;
    8931              :       }
    8932     27383884 :     default:;
    8933              :     }
    8934     27383884 :   {
    8935     27383884 :     tree _p1_pops[1];
    8936     27383884 :     if (tree_maybe_bit_not (_p1, _p1_pops))
    8937              :       {
    8938     19374371 :         tree _q30 = _p1_pops[0];
    8939     19374371 :         {
    8940     19374371 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    8941     19374371 :           tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, EQ_EXPR);
    8942     19374371 :           if (res) return res;
    8943              :         }
    8944              :       }
    8945              :   }
    8946     27383882 :   switch (TREE_CODE (_p0))
    8947              :     {
    8948          404 :     case BIT_NOT_EXPR:
    8949          404 :       {
    8950          404 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8951          404 :         switch (TREE_CODE (_p1))
    8952              :           {
    8953            1 :           case BIT_NOT_EXPR:
    8954            1 :             {
    8955            1 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8956            1 :               {
    8957            1 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
    8958            1 :                 tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR);
    8959            1 :                 if (res) return res;
    8960              :               }
    8961            0 :               break;
    8962              :             }
    8963          403 :           default:;
    8964              :           }
    8965          403 :       {
    8966          403 :         tree _p1_pops[1];
    8967          403 :         if (tree_nop_convert (_p1, _p1_pops))
    8968              :           {
    8969            3 :             tree _q40 = _p1_pops[0];
    8970            3 :             switch (TREE_CODE (_q40))
    8971              :               {
    8972            0 :               case BIT_NOT_EXPR:
    8973            0 :                 {
    8974            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    8975            0 :                   {
    8976            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
    8977            0 :                     tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, EQ_EXPR);
    8978            0 :                     if (res) return res;
    8979              :                   }
    8980            0 :                   break;
    8981              :                 }
    8982              :               default:;
    8983              :               }
    8984              :           }
    8985              :       }
    8986          403 :       if (CONSTANT_CLASS_P (_p1))
    8987              :         {
    8988          189 :           {
    8989          189 :             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8990          189 :             tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
    8991          189 :             if (res) return res;
    8992              :           }
    8993              :         }
    8994              :         break;
    8995              :       }
    8996     27383692 :     default:;
    8997              :     }
    8998     27383692 : {
    8999     27383692 :   tree _p0_pops[1];
    9000     27383692 :   if (tree_maybe_bit_not (_p0, _p0_pops))
    9001              :     {
    9002        99177 :       tree _q20 = _p0_pops[0];
    9003        99177 :       {
    9004        99177 :         tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
    9005        99177 :         tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9006        99177 :         if (res) return res;
    9007              :       }
    9008              :     }
    9009              : }
    9010     27383690 : {
    9011     27383690 :   tree _p0_pops[1];
    9012     27383690 :   if (tree_nop_convert (_p0, _p0_pops))
    9013              :     {
    9014      2942205 :       tree _q20 = _p0_pops[0];
    9015      2942205 :       switch (TREE_CODE (_q20))
    9016              :         {
    9017           41 :         case BIT_NOT_EXPR:
    9018           41 :           {
    9019           41 :             tree _q30 = TREE_OPERAND (_q20, 0);
    9020           41 :             switch (TREE_CODE (_p1))
    9021              :               {
    9022            0 :               case BIT_NOT_EXPR:
    9023            0 :                 {
    9024            0 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    9025            0 :                   {
    9026            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
    9027            0 :                     tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9028            0 :                     if (res) return res;
    9029              :                   }
    9030            0 :                   break;
    9031              :                 }
    9032           41 :               default:;
    9033              :               }
    9034           41 :           {
    9035           41 :             tree _p1_pops[1];
    9036           41 :             if (tree_nop_convert (_p1, _p1_pops))
    9037              :               {
    9038            0 :                 tree _q50 = _p1_pops[0];
    9039            0 :                 switch (TREE_CODE (_q50))
    9040              :                   {
    9041            0 :                   case BIT_NOT_EXPR:
    9042            0 :                     {
    9043            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    9044            0 :                       {
    9045            0 :                         tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
    9046            0 :                         tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9047            0 :                         if (res) return res;
    9048              :                       }
    9049            0 :                       break;
    9050              :                     }
    9051              :                   default:;
    9052              :                   }
    9053              :               }
    9054              :           }
    9055           41 :           if (CONSTANT_CLASS_P (_p1))
    9056              :             {
    9057           41 :               {
    9058           41 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    9059           41 :                 tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
    9060           41 :                 if (res) return res;
    9061              :               }
    9062              :             }
    9063              :             break;
    9064              :           }
    9065              :         default:;
    9066              :         }
    9067              :     }
    9068              : }
    9069     27383649 :   switch (TREE_CODE (_p1))
    9070              :     {
    9071       966300 :     case REAL_CST:
    9072       966300 :       {
    9073       966300 :         {
    9074       966300 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9075       966300 :           tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9076       966300 :           if (res) return res;
    9077              :         }
    9078       965284 :         break;
    9079              :       }
    9080     27382633 :     default:;
    9081              :     }
    9082     27382633 :   switch (TREE_CODE (_p0))
    9083              :     {
    9084       670588 :     case PLUS_EXPR:
    9085       670588 :       {
    9086       670588 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9087       670588 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9088       670588 :         switch (TREE_CODE (_q21))
    9089              :           {
    9090          580 :           case REAL_CST:
    9091          580 :             {
    9092          580 :               switch (TREE_CODE (_p1))
    9093              :                 {
    9094          409 :                 case REAL_CST:
    9095          409 :                   {
    9096          409 :                     {
    9097          409 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    9098          409 :                       tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR);
    9099          409 :                       if (res) return res;
    9100              :                     }
    9101          409 :                     break;
    9102              :                   }
    9103              :                 default:;
    9104              :                 }
    9105              :               break;
    9106              :             }
    9107              :           default:;
    9108              :           }
    9109              :         break;
    9110              :       }
    9111        96033 :     case MINUS_EXPR:
    9112        96033 :       {
    9113        96033 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9114        96033 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9115        96033 :         switch (TREE_CODE (_q21))
    9116              :           {
    9117           62 :           case REAL_CST:
    9118           62 :             {
    9119           62 :               switch (TREE_CODE (_p1))
    9120              :                 {
    9121           62 :                 case REAL_CST:
    9122           62 :                   {
    9123           62 :                     {
    9124           62 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    9125           62 :                       tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, MINUS_EXPR, EQ_EXPR);
    9126           62 :                       if (res) return res;
    9127              :                     }
    9128           62 :                     break;
    9129              :                   }
    9130              :                 default:;
    9131              :                 }
    9132              :               break;
    9133              :             }
    9134        96033 :           default:;
    9135              :           }
    9136        96033 :         switch (TREE_CODE (_q20))
    9137              :           {
    9138          275 :           case REAL_CST:
    9139          275 :             {
    9140          275 :               switch (TREE_CODE (_p1))
    9141              :                 {
    9142          245 :                 case REAL_CST:
    9143          245 :                   {
    9144          245 :                     {
    9145          245 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    9146          245 :                       tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9147          245 :                       if (res) return res;
    9148              :                     }
    9149          244 :                     break;
    9150              :                   }
    9151              :                 default:;
    9152              :                 }
    9153              :               break;
    9154              :             }
    9155              :           default:;
    9156              :           }
    9157              :         break;
    9158              :       }
    9159         2775 :     case FLOAT_EXPR:
    9160         2775 :       {
    9161         2775 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9162         2775 :         switch (TREE_CODE (_p1))
    9163              :           {
    9164            2 :           case FLOAT_EXPR:
    9165            2 :             {
    9166            2 :               tree _q40 = TREE_OPERAND (_p1, 0);
    9167            2 :               {
    9168            2 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9169            2 :                 tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
    9170            2 :                 if (res) return res;
    9171              :               }
    9172            1 :               break;
    9173              :             }
    9174          278 :           case REAL_CST:
    9175          278 :             {
    9176          278 :               {
    9177          278 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9178          278 :                 tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
    9179          278 :                 if (res) return res;
    9180              :               }
    9181          226 :               break;
    9182              :             }
    9183              :           default:;
    9184              :           }
    9185              :         break;
    9186              :       }
    9187         7246 :     case EXACT_DIV_EXPR:
    9188         7246 :       {
    9189         7246 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9190         7246 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9191         7246 :         switch (TREE_CODE (_p1))
    9192              :           {
    9193           33 :           case INTEGER_CST:
    9194           33 :             {
    9195           33 :               {
    9196           33 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    9197           33 :                 tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9198           33 :                 if (res) return res;
    9199              :               }
    9200            0 :               break;
    9201              :             }
    9202              :           default:;
    9203              :           }
    9204              :         break;
    9205              :       }
    9206         1330 :     case NEGATE_EXPR:
    9207         1330 :       {
    9208         1330 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9209         1330 :         switch (TREE_CODE (_p1))
    9210              :           {
    9211            1 :           case NEGATE_EXPR:
    9212            1 :             {
    9213            1 :               tree _q40 = TREE_OPERAND (_p1, 0);
    9214            1 :               {
    9215            1 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9216            1 :                 tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
    9217            1 :                 if (res) return res;
    9218              :               }
    9219            0 :               break;
    9220              :             }
    9221         1329 :           default:;
    9222              :           }
    9223         1329 :       if (CONSTANT_CLASS_P (_p1))
    9224              :         {
    9225          210 :           {
    9226          210 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9227          210 :             tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
    9228          210 :             if (res) return res;
    9229              :           }
    9230              :         }
    9231              :         break;
    9232              :       }
    9233         1439 :     case ABS_EXPR:
    9234         1439 :       {
    9235         1439 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9236         1439 :         if (zerop (_p1))
    9237              :           {
    9238           66 :             {
    9239           66 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9240           66 :               const enum tree_code eqne = EQ_EXPR;
    9241           66 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1538;
    9242           66 :               {
    9243           66 :                 tree res_op0;
    9244           66 :                 res_op0 = captures[0];
    9245           66 :                 tree res_op1;
    9246           66 :                 res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    9247           66 :                 tree _r;
    9248           66 :                 _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
    9249           66 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    9250            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    9251           66 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 995, __FILE__, __LINE__, true);
    9252           66 :                 return _r;
    9253              :               }
    9254            0 : next_after_fail1538:;
    9255              :             }
    9256              :           }
    9257              :         break;
    9258              :       }
    9259            1 :     case ABSU_EXPR:
    9260            1 :       {
    9261            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9262            1 :         if (zerop (_p1))
    9263              :           {
    9264            0 :             {
    9265            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9266            0 :               const enum tree_code eqne = EQ_EXPR;
    9267            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1539;
    9268            0 :               {
    9269            0 :                 tree res_op0;
    9270            0 :                 res_op0 = captures[0];
    9271            0 :                 tree res_op1;
    9272            0 :                 res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    9273            0 :                 tree _r;
    9274            0 :                 _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
    9275            0 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    9276            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    9277            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 995, __FILE__, __LINE__, true);
    9278            0 :                 return _r;
    9279              :               }
    9280            0 : next_after_fail1539:;
    9281              :             }
    9282              :           }
    9283              :         break;
    9284              :       }
    9285      5116330 :     CASE_CONVERT:
    9286      5116330 :       {
    9287      5116330 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9288      5116330 :         switch (TREE_CODE (_p1))
    9289              :           {
    9290      1583690 :           CASE_CONVERT:
    9291      1583690 :             {
    9292      1583690 :               tree _q40 = TREE_OPERAND (_p1, 0);
    9293      1583690 :               {
    9294      1583690 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9295      1583690 :                 tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9296      1583690 :                 if (res) return res;
    9297              :               }
    9298       919222 :               break;
    9299              :             }
    9300      4451862 :           default:;
    9301              :           }
    9302      4451862 :         {
    9303      4451862 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
    9304      4451862 :           tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9305      4451862 :           if (res) return res;
    9306              :         }
    9307      2284845 :         switch (TREE_CODE (_q20))
    9308              :           {
    9309            3 :           case BIT_IOR_EXPR:
    9310            3 :             {
    9311            3 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9312            3 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9313            3 :               switch (TREE_CODE (_q31))
    9314              :                 {
    9315            0 :                 case INTEGER_CST:
    9316            0 :                   {
    9317            0 :                     switch (TREE_CODE (_p1))
    9318              :                       {
    9319            0 :                       case INTEGER_CST:
    9320            0 :                         {
    9321            0 :                           {
    9322            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
    9323            0 :                             tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9324            0 :                             if (res) return res;
    9325              :                           }
    9326            0 :                           break;
    9327              :                         }
    9328              :                       default:;
    9329              :                       }
    9330              :                     break;
    9331              :                   }
    9332              :                 default:;
    9333              :                 }
    9334              :               break;
    9335              :             }
    9336              :           default:;
    9337              :           }
    9338              :         break;
    9339              :       }
    9340      8925240 :     case SSA_NAME:
    9341      8925240 :       {
    9342      8925240 :         switch (TREE_CODE (_p1))
    9343              :           {
    9344       787286 :           case ADDR_EXPR:
    9345       787286 :             {
    9346       787286 :               {
    9347       787286 :                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9348       787286 :                 tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9349       787286 :                 if (res) return res;
    9350              :               }
    9351       787286 :               break;
    9352              :             }
    9353              :           default:;
    9354              :           }
    9355              :         break;
    9356              :       }
    9357        33522 :     case BIT_IOR_EXPR:
    9358        33522 :       {
    9359        33522 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9360        33522 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9361        33522 :         switch (TREE_CODE (_q21))
    9362              :           {
    9363         1525 :           case INTEGER_CST:
    9364         1525 :             {
    9365         1525 :               switch (TREE_CODE (_p1))
    9366              :                 {
    9367          482 :                 case INTEGER_CST:
    9368          482 :                   {
    9369          482 :                     {
    9370          482 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    9371          482 :                       tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9372          482 :                       if (res) return res;
    9373              :                     }
    9374          482 :                     break;
    9375              :                   }
    9376              :                 default:;
    9377              :                 }
    9378              :               break;
    9379              :             }
    9380              :           default:;
    9381              :           }
    9382              :         break;
    9383              :       }
    9384          631 :     case BIT_XOR_EXPR:
    9385          631 :       {
    9386          631 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9387          631 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9388          631 :         if (integer_zerop (_p1))
    9389              :           {
    9390          171 :             {
    9391          171 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9392          171 :               tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9393          171 :               if (res) return res;
    9394              :             }
    9395              :           }
    9396          460 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9397              :           {
    9398           29 :             {
    9399           29 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9400           29 :               tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9401           29 :               if (res) return res;
    9402              :             }
    9403              :           }
    9404          431 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9405              :           {
    9406           30 :             {
    9407           30 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9408           30 :               tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9409           30 :               if (res) return res;
    9410              :             }
    9411              :           }
    9412              :         break;
    9413              :       }
    9414      2002805 :     case CALL_EXPR:
    9415      2002805 :       switch (get_call_combined_fn (_p0))
    9416              :         {
    9417            3 :         case CFN_BUILT_IN_SQRTF:
    9418            3 :           if (call_expr_nargs (_p0) == 1)
    9419              :     {
    9420            3 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9421            3 :               switch (TREE_CODE (_p1))
    9422              :                 {
    9423            0 :                 case REAL_CST:
    9424            0 :                   {
    9425            0 :                     {
    9426            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9427            0 :                       tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
    9428            0 :                       if (res) return res;
    9429              :                     }
    9430            0 :                     break;
    9431              :                   }
    9432            3 :                 case CALL_EXPR:
    9433            3 :                   switch (get_call_combined_fn (_p1))
    9434              :                     {
    9435            3 :                     case CFN_BUILT_IN_SQRTF:
    9436            3 :                       if (call_expr_nargs (_p1) == 1)
    9437              :     {
    9438            3 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9439            3 :                           {
    9440            3 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9441            3 :                             tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
    9442            3 :                             if (res) return res;
    9443              :                           }
    9444              :                         }
    9445              :                       break;
    9446              :                     default:;
    9447              :                     }
    9448              :                   break;
    9449              :                 default:;
    9450              :                 }
    9451              :             }
    9452              :           break;
    9453            3 :         case CFN_BUILT_IN_SQRTL:
    9454            3 :           if (call_expr_nargs (_p0) == 1)
    9455              :     {
    9456            3 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9457            3 :               switch (TREE_CODE (_p1))
    9458              :                 {
    9459            0 :                 case REAL_CST:
    9460            0 :                   {
    9461            0 :                     {
    9462            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9463            0 :                       tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
    9464            0 :                       if (res) return res;
    9465              :                     }
    9466            0 :                     break;
    9467              :                   }
    9468            3 :                 case CALL_EXPR:
    9469            3 :                   switch (get_call_combined_fn (_p1))
    9470              :                     {
    9471            3 :                     case CFN_BUILT_IN_SQRTL:
    9472            3 :                       if (call_expr_nargs (_p1) == 1)
    9473              :     {
    9474            3 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9475            3 :                           {
    9476            3 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9477            3 :                             tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
    9478            3 :                             if (res) return res;
    9479              :                           }
    9480              :                         }
    9481              :                       break;
    9482              :                     default:;
    9483              :                     }
    9484              :                   break;
    9485              :                 default:;
    9486              :                 }
    9487              :             }
    9488              :           break;
    9489            0 :         case CFN_BUILT_IN_SQRT:
    9490            0 :           if (call_expr_nargs (_p0) == 1)
    9491              :     {
    9492            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9493            0 :               switch (TREE_CODE (_p1))
    9494              :                 {
    9495            0 :                 case REAL_CST:
    9496            0 :                   {
    9497            0 :                     {
    9498            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9499            0 :                       tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
    9500            0 :                       if (res) return res;
    9501              :                     }
    9502            0 :                     break;
    9503              :                   }
    9504            0 :                 case CALL_EXPR:
    9505            0 :                   switch (get_call_combined_fn (_p1))
    9506              :                     {
    9507            0 :                     case CFN_BUILT_IN_SQRT:
    9508            0 :                       if (call_expr_nargs (_p1) == 1)
    9509              :     {
    9510            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9511            0 :                           {
    9512            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9513            0 :                             tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
    9514            0 :                             if (res) return res;
    9515              :                           }
    9516              :                         }
    9517              :                       break;
    9518              :                     default:;
    9519              :                     }
    9520              :                   break;
    9521              :                 default:;
    9522              :                 }
    9523              :             }
    9524              :           break;
    9525            0 :         case CFN_SQRT:
    9526            0 :           if (call_expr_nargs (_p0) == 1)
    9527              :     {
    9528            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9529            0 :               switch (TREE_CODE (_p1))
    9530              :                 {
    9531            0 :                 case REAL_CST:
    9532            0 :                   {
    9533            0 :                     {
    9534            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9535            0 :                       tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, CFN_SQRT, EQ_EXPR);
    9536            0 :                       if (res) return res;
    9537              :                     }
    9538            0 :                     break;
    9539              :                   }
    9540            0 :                 case CALL_EXPR:
    9541            0 :                   switch (get_call_combined_fn (_p1))
    9542              :                     {
    9543            0 :                     case CFN_SQRT:
    9544            0 :                       if (call_expr_nargs (_p1) == 1)
    9545              :     {
    9546            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9547            0 :                           {
    9548            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9549            0 :                             tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, CFN_SQRT, EQ_EXPR);
    9550            0 :                             if (res) return res;
    9551              :                           }
    9552              :                         }
    9553              :                       break;
    9554              :                     default:;
    9555              :                     }
    9556              :                   break;
    9557              :                 default:;
    9558              :                 }
    9559              :             }
    9560              :           break;
    9561              :         default:;
    9562              :         }
    9563              :       break;
    9564     24550564 :     default:;
    9565              :     }
    9566     24550564 :   switch (TREE_CODE (_p1))
    9567              :     {
    9568           62 :     case BIT_XOR_EXPR:
    9569           62 :       {
    9570           62 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9571           62 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9572           62 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9573              :           {
    9574            0 :             {
    9575            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    9576            0 :               tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9577            0 :               if (res) return res;
    9578              :             }
    9579              :           }
    9580           62 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    9581              :           {
    9582            0 :             {
    9583            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    9584            0 :               tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9585            0 :               if (res) return res;
    9586              :             }
    9587              :           }
    9588              :         break;
    9589              :       }
    9590     24550564 :     default:;
    9591              :     }
    9592     24550564 :   switch (TREE_CODE (_p0))
    9593              :     {
    9594       834188 :     case BIT_AND_EXPR:
    9595       834188 :       {
    9596       834188 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9597       834188 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9598       834188 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9599              :           {
    9600          139 :             {
    9601          139 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9602          139 :               tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9603          139 :               if (res) return res;
    9604              :             }
    9605              :           }
    9606       834187 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9607              :           {
    9608       144205 :             {
    9609       144205 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9610       144205 :               tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9611       144205 :               if (res) return res;
    9612              :             }
    9613              :           }
    9614              :         break;
    9615              :       }
    9616     24550563 :     default:;
    9617              :     }
    9618     24550563 :   switch (TREE_CODE (_p1))
    9619              :     {
    9620        24873 :     case BIT_AND_EXPR:
    9621        24873 :       {
    9622        24873 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9623        24873 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9624        24873 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9625              :           {
    9626            0 :             {
    9627            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    9628            0 :               tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9629            0 :               if (res) return res;
    9630              :             }
    9631              :           }
    9632        24873 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    9633              :           {
    9634            0 :             {
    9635            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    9636            0 :               tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9637            0 :               if (res) return res;
    9638              :             }
    9639              :           }
    9640              :         break;
    9641              :       }
    9642     24550563 :     default:;
    9643              :     }
    9644     24550563 :   switch (TREE_CODE (_p0))
    9645              :     {
    9646      2284845 :     CASE_CONVERT:
    9647      2284845 :       {
    9648      2284845 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9649      2284845 :         switch (TREE_CODE (_q20))
    9650              :           {
    9651           10 :           case BIT_AND_EXPR:
    9652           10 :             {
    9653           10 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9654           10 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9655           10 :               switch (TREE_CODE (_q30))
    9656              :                 {
    9657            0 :                 CASE_CONVERT:
    9658            0 :                   {
    9659            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    9660            0 :                     switch (TREE_CODE (_q31))
    9661              :                       {
    9662            0 :                       case INTEGER_CST:
    9663            0 :                         {
    9664            0 :                           switch (TREE_CODE (_p1))
    9665              :                             {
    9666            0 :                             CASE_CONVERT:
    9667            0 :                               {
    9668            0 :                                 tree _q70 = TREE_OPERAND (_p1, 0);
    9669            0 :                                 if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    9670              :                                   {
    9671            0 :                                     {
    9672            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q31 };
    9673            0 :                                       tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9674            0 :                                       if (res) return res;
    9675              :                                     }
    9676              :                                   }
    9677              :                                 break;
    9678              :                               }
    9679              :                             default:;
    9680              :                             }
    9681              :                           break;
    9682              :                         }
    9683              :                       default:;
    9684              :                       }
    9685              :                     break;
    9686              :                   }
    9687              :                 default:;
    9688              :                 }
    9689              :               break;
    9690              :             }
    9691      2284845 :           default:;
    9692              :           }
    9693      2284845 :         switch (TREE_CODE (_p1))
    9694              :           {
    9695       919222 :           CASE_CONVERT:
    9696       919222 :             {
    9697       919222 :               tree _q40 = TREE_OPERAND (_p1, 0);
    9698       919222 :               switch (TREE_CODE (_q40))
    9699              :                 {
    9700            7 :                 case BIT_AND_EXPR:
    9701            7 :                   {
    9702            7 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    9703            7 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    9704            7 :                     switch (TREE_CODE (_q50))
    9705              :                       {
    9706            7 :                       CASE_CONVERT:
    9707            7 :                         {
    9708            7 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    9709            7 :                           if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    9710              :                             {
    9711            0 :                               switch (TREE_CODE (_q51))
    9712              :                                 {
    9713            0 :                                 case INTEGER_CST:
    9714            0 :                                   {
    9715            0 :                                     {
    9716            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q51 };
    9717            0 :                                       tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9718            0 :                                       if (res) return res;
    9719              :                                     }
    9720            0 :                                     break;
    9721              :                                   }
    9722              :                                 default:;
    9723              :                                 }
    9724              :                             }
    9725              :                           break;
    9726              :                         }
    9727              :                       default:;
    9728              :                       }
    9729              :                     break;
    9730              :                   }
    9731              :                 default:;
    9732              :                 }
    9733              :               break;
    9734              :             }
    9735              :           default:;
    9736              :           }
    9737              :         break;
    9738              :       }
    9739        33522 :     case BIT_IOR_EXPR:
    9740        33522 :       {
    9741        33522 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9742        33522 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9743        33522 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9744              :           {
    9745           24 :             {
    9746           24 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9747           24 :               tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9748           24 :               if (res) return res;
    9749              :             }
    9750              :           }
    9751        33522 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9752              :           {
    9753           46 :             {
    9754           46 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9755           46 :               tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9756           46 :               if (res) return res;
    9757              :             }
    9758              :           }
    9759              :         break;
    9760              :       }
    9761     24550563 :     default:;
    9762              :     }
    9763     24550563 :   switch (TREE_CODE (_p1))
    9764              :     {
    9765          618 :     case BIT_IOR_EXPR:
    9766          618 :       {
    9767          618 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9768          618 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9769          618 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    9770              :           {
    9771            0 :             {
    9772            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    9773            0 :               tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9774            0 :               if (res) return res;
    9775              :             }
    9776              :           }
    9777          618 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9778              :           {
    9779            0 :             {
    9780            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
    9781            0 :               tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9782            0 :               if (res) return res;
    9783              :             }
    9784              :           }
    9785              :         break;
    9786              :       }
    9787     24550563 :     default:;
    9788              :     }
    9789     24550563 :   switch (TREE_CODE (_p0))
    9790              :     {
    9791      2284845 :     CASE_CONVERT:
    9792      2284845 :       {
    9793      2284845 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9794      2284845 :         switch (TREE_CODE (_q20))
    9795              :           {
    9796          984 :           case BIT_XOR_EXPR:
    9797          984 :             {
    9798          984 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9799          984 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9800          984 :               switch (TREE_CODE (_q31))
    9801              :                 {
    9802            7 :                 case INTEGER_CST:
    9803            7 :                   {
    9804            7 :                     switch (TREE_CODE (_p1))
    9805              :                       {
    9806            0 :                       case INTEGER_CST:
    9807            0 :                         {
    9808            0 :                           {
    9809            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
    9810            0 :                             tree res = generic_simplify_281 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9811            0 :                             if (res) return res;
    9812              :                           }
    9813            0 :                           break;
    9814              :                         }
    9815              :                       default:;
    9816              :                       }
    9817              :                     break;
    9818              :                   }
    9819              :                 default:;
    9820              :                 }
    9821              :               break;
    9822              :             }
    9823              :           default:;
    9824              :           }
    9825              :         break;
    9826              :       }
    9827          401 :     case BIT_XOR_EXPR:
    9828          401 :       {
    9829          401 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9830          401 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9831          401 :         switch (TREE_CODE (_q21))
    9832              :           {
    9833          103 :           case INTEGER_CST:
    9834          103 :             {
    9835          103 :               switch (TREE_CODE (_p1))
    9836              :                 {
    9837           16 :                 case INTEGER_CST:
    9838           16 :                   {
    9839           16 :                     {
    9840           16 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    9841           16 :                       tree res = generic_simplify_281 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9842           16 :                       if (res) return res;
    9843              :                     }
    9844            0 :                     break;
    9845              :                   }
    9846              :                 default:;
    9847              :                 }
    9848              :               break;
    9849              :             }
    9850              :           default:;
    9851              :           }
    9852              :         break;
    9853              :       }
    9854     24550547 :     default:;
    9855              :     }
    9856     24550547 : {
    9857     24550547 :   tree _p0_pops[1];
    9858     24550547 :   if (tree_nop_convert (_p0, _p0_pops))
    9859              :     {
    9860      1924109 :       tree _q20 = _p0_pops[0];
    9861      1924109 :       if (integer_zerop (_p1))
    9862              :         {
    9863       428492 :           {
    9864       428492 :             tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    9865       428492 :             tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9866       428492 :             if (res) return res;
    9867              :           }
    9868              :         }
    9869              :     }
    9870              : }
    9871     24268761 :   if (integer_zerop (_p1))
    9872              :     {
    9873      9745770 :       {
    9874      9745770 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    9875      9745770 :         tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9876      9745770 :         if (res) return res;
    9877              :       }
    9878              :     }
    9879     24195085 :   switch (TREE_CODE (_p0))
    9880              :     {
    9881       834187 :     case BIT_AND_EXPR:
    9882       834187 :       {
    9883       834187 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9884       834187 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9885       834187 :         switch (TREE_CODE (_p1))
    9886              :           {
    9887        24569 :           case BIT_AND_EXPR:
    9888        24569 :             {
    9889        24569 :               tree _q50 = TREE_OPERAND (_p1, 0);
    9890        24569 :               tree _q51 = TREE_OPERAND (_p1, 1);
    9891        24569 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    9892              :                 {
    9893        24044 :                   {
    9894        24044 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9895        24044 :                     tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9896        24044 :                     if (res) return res;
    9897              :                   }
    9898              :                 }
    9899          525 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    9900              :                 {
    9901           28 :                   {
    9902           28 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
    9903           28 :                     tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9904           28 :                     if (res) return res;
    9905              :                   }
    9906              :                 }
    9907          497 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    9908              :                 {
    9909           28 :                   {
    9910           28 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
    9911           28 :                     tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9912           28 :                     if (res) return res;
    9913              :                   }
    9914              :                 }
    9915          469 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9916              :                 {
    9917           28 :                   {
    9918           28 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
    9919           28 :                     tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, EQ_EXPR);
    9920           28 :                     if (res) return res;
    9921              :                   }
    9922              :                 }
    9923              :               break;
    9924              :             }
    9925       810059 :           default:;
    9926              :           }
    9927       810059 :         if (integer_pow2p (_q21))
    9928              :           {
    9929       283105 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9930              :               {
    9931       111305 :                 {
    9932       111305 :                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9933       111305 :                   tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
    9934       111305 :                   if (res) return res;
    9935              :                 }
    9936              :               }
    9937              :           }
    9938       698774 :         switch (TREE_CODE (_q20))
    9939              :           {
    9940        48717 :           CASE_CONVERT:
    9941        48717 :             {
    9942        48717 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9943        48717 :               if (integer_pow2p (_q21))
    9944              :                 {
    9945        10775 :                   if (integer_zerop (_p1))
    9946              :                     {
    9947        10773 :                       {
    9948        10773 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
    9949        10773 :                         tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
    9950        10773 :                         if (res) return res;
    9951              :                       }
    9952              :                     }
    9953              :                 }
    9954              :               break;
    9955              :             }
    9956       697817 :           default:;
    9957              :           }
    9958       697817 :         if (integer_pow2p (_q21))
    9959              :           {
    9960       170863 :             if (integer_zerop (_p1))
    9961              :               {
    9962       170706 :                 {
    9963       170706 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _q21 };
    9964       170706 :                   tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
    9965       170706 :                   if (res) return res;
    9966              :                 }
    9967              :               }
    9968              :           }
    9969              :         break;
    9970              :       }
    9971         1216 :     case GE_EXPR:
    9972         1216 :       {
    9973         1216 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9974         1216 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9975         1216 :         if (integer_zerop (_q21))
    9976              :           {
    9977           98 :             switch (TREE_CODE (_p1))
    9978              :               {
    9979            5 :               case GE_EXPR:
    9980            5 :                 {
    9981            5 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    9982            5 :                   tree _q51 = TREE_OPERAND (_p1, 1);
    9983            5 :                   if (integer_zerop (_q51))
    9984              :                     {
    9985            5 :                       {
    9986            5 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    9987            5 :                         tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, GE_EXPR);
    9988            5 :                         if (res) return res;
    9989              :                       }
    9990              :                     }
    9991              :                   break;
    9992              :                 }
    9993            1 :               case LT_EXPR:
    9994            1 :                 {
    9995            1 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    9996            1 :                   tree _q51 = TREE_OPERAND (_p1, 1);
    9997            1 :                   if (integer_zerop (_q51))
    9998              :                     {
    9999            1 :                       {
   10000            1 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
   10001            1 :                         tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
   10002            1 :                         if (res) return res;
   10003              :                       }
   10004              :                     }
   10005              :                   break;
   10006              :                 }
   10007              :               default:;
   10008              :               }
   10009              :           }
   10010              :         break;
   10011              :       }
   10012          836 :     case LT_EXPR:
   10013          836 :       {
   10014          836 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10015          836 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10016          836 :         if (integer_zerop (_q21))
   10017              :           {
   10018          139 :             switch (TREE_CODE (_p1))
   10019              :               {
   10020           11 :               case LT_EXPR:
   10021           11 :                 {
   10022           11 :                   tree _q50 = TREE_OPERAND (_p1, 0);
   10023           11 :                   tree _q51 = TREE_OPERAND (_p1, 1);
   10024           11 :                   if (integer_zerop (_q51))
   10025              :                     {
   10026            9 :                       {
   10027            9 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
   10028            9 :                         tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GE_EXPR);
   10029            9 :                         if (res) return res;
   10030              :                       }
   10031              :                     }
   10032              :                   break;
   10033              :                 }
   10034            1 :               case GE_EXPR:
   10035            1 :                 {
   10036            1 :                   tree _q50 = TREE_OPERAND (_p1, 0);
   10037            1 :                   tree _q51 = TREE_OPERAND (_p1, 1);
   10038            1 :                   if (integer_zerop (_q51))
   10039              :                     {
   10040            1 :                       {
   10041            1 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
   10042            1 :                         tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
   10043            1 :                         if (res) return res;
   10044              :                       }
   10045              :                     }
   10046              :                   break;
   10047              :                 }
   10048              :               default:;
   10049              :               }
   10050              :           }
   10051              :         break;
   10052              :       }
   10053        33522 :     case BIT_IOR_EXPR:
   10054        33522 :       {
   10055        33522 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10056        33522 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10057        33522 :         switch (TREE_CODE (_q21))
   10058              :           {
   10059          658 :           CASE_CONVERT:
   10060          658 :             {
   10061          658 :               tree _q40 = TREE_OPERAND (_q21, 0);
   10062          658 :               switch (TREE_CODE (_q40))
   10063              :                 {
   10064            0 :                 case NE_EXPR:
   10065            0 :                   {
   10066            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
   10067            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
   10068            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   10069              :                       {
   10070            0 :                         if (integer_zerop (_q51))
   10071              :                           {
   10072            0 :                             if (integer_zerop (_p1))
   10073              :                               {
   10074            0 :                                 {
   10075            0 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10076            0 :                                   tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, EQ_EXPR);
   10077            0 :                                   if (res) return res;
   10078              :                                 }
   10079              :                               }
   10080              :                           }
   10081              :                       }
   10082              :                     break;
   10083              :                   }
   10084              :                 default:;
   10085              :                 }
   10086              :               break;
   10087              :             }
   10088        33522 :           default:;
   10089              :           }
   10090        33522 :         switch (TREE_CODE (_q20))
   10091              :           {
   10092          643 :           CASE_CONVERT:
   10093          643 :             {
   10094          643 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10095          643 :               switch (TREE_CODE (_q30))
   10096              :                 {
   10097            0 :                 case NE_EXPR:
   10098            0 :                   {
   10099            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
   10100            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
   10101            0 :                     if (integer_zerop (_q41))
   10102              :                       {
   10103            0 :                         if ((_q21 == _q40 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q40, 0) && types_match (_q21, _q40)))
   10104              :                           {
   10105            0 :                             if (integer_zerop (_p1))
   10106              :                               {
   10107            0 :                                 {
   10108            0 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
   10109            0 :                                   tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, EQ_EXPR);
   10110            0 :                                   if (res) return res;
   10111              :                                 }
   10112              :                               }
   10113              :                           }
   10114              :                       }
   10115              :                     break;
   10116              :                   }
   10117              :                 default:;
   10118              :                 }
   10119              :               break;
   10120              :             }
   10121        33522 :           default:;
   10122              :           }
   10123        33522 :         switch (TREE_CODE (_q21))
   10124              :           {
   10125            1 :           case NE_EXPR:
   10126            1 :             {
   10127            1 :               tree _q40 = TREE_OPERAND (_q21, 0);
   10128            1 :               tree _q41 = TREE_OPERAND (_q21, 1);
   10129            1 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   10130              :                 {
   10131            0 :                   if (integer_zerop (_q41))
   10132              :                     {
   10133            0 :                       if (integer_zerop (_p1))
   10134              :                         {
   10135            0 :                           {
   10136            0 :                             tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10137            0 :                             tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, EQ_EXPR);
   10138            0 :                             if (res) return res;
   10139              :                           }
   10140              :                         }
   10141              :                     }
   10142              :                 }
   10143              :               break;
   10144              :             }
   10145        33522 :           default:;
   10146              :           }
   10147        33522 :         switch (TREE_CODE (_q20))
   10148              :           {
   10149            8 :           case NE_EXPR:
   10150            8 :             {
   10151            8 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10152            8 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10153            8 :               if (integer_zerop (_q31))
   10154              :                 {
   10155            0 :                   if ((_q21 == _q30 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q30, 0) && types_match (_q21, _q30)))
   10156              :                     {
   10157            0 :                       if (integer_zerop (_p1))
   10158              :                         {
   10159            0 :                           {
   10160            0 :                             tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
   10161            0 :                             tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, EQ_EXPR);
   10162            0 :                             if (res) return res;
   10163              :                           }
   10164              :                         }
   10165              :                     }
   10166              :                 }
   10167              :               break;
   10168              :             }
   10169              :           default:;
   10170              :           }
   10171              :         break;
   10172              :       }
   10173      2003056 :     CASE_CONVERT:
   10174      2003056 :       {
   10175      2003056 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10176      2003056 :         switch (TREE_CODE (_q20))
   10177              :           {
   10178       573703 :           case ADDR_EXPR:
   10179       573703 :             {
   10180       573703 :               switch (TREE_CODE (_p1))
   10181              :                 {
   10182       545582 :                 CASE_CONVERT:
   10183       545582 :                   {
   10184       545582 :                     tree _q40 = TREE_OPERAND (_p1, 0);
   10185       545582 :                     switch (TREE_CODE (_q40))
   10186              :                       {
   10187       545582 :                       case ADDR_EXPR:
   10188       545582 :                         {
   10189       545582 :                           {
   10190       545582 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
   10191       545582 :                             tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, EQ_EXPR);
   10192       545582 :                             if (res) return res;
   10193              :                           }
   10194           30 :                           break;
   10195              :                         }
   10196              :                       default:;
   10197              :                       }
   10198              :                     break;
   10199              :                   }
   10200        20893 :                 case ADDR_EXPR:
   10201        20893 :                   {
   10202        20893 :                     {
   10203        20893 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10204        20893 :                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, EQ_EXPR);
   10205        20893 :                       if (res) return res;
   10206              :                     }
   10207         7896 :                     break;
   10208              :                   }
   10209              :                 default:;
   10210              :                 }
   10211              :               break;
   10212              :             }
   10213              :           default:;
   10214              :           }
   10215              :         break;
   10216              :       }
   10217        18954 :     case ADDR_EXPR:
   10218        18954 :       {
   10219        18954 :         switch (TREE_CODE (_p1))
   10220              :           {
   10221          165 :           CASE_CONVERT:
   10222          165 :             {
   10223          165 :               tree _q30 = TREE_OPERAND (_p1, 0);
   10224          165 :               switch (TREE_CODE (_q30))
   10225              :                 {
   10226          165 :                 case ADDR_EXPR:
   10227          165 :                   {
   10228          165 :                     {
   10229          165 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
   10230          165 :                       tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR);
   10231          165 :                       if (res) return res;
   10232              :                     }
   10233            0 :                     break;
   10234              :                   }
   10235              :                 default:;
   10236              :                 }
   10237              :               break;
   10238              :             }
   10239        16373 :           case ADDR_EXPR:
   10240        16373 :             {
   10241        16373 :               {
   10242        16373 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
   10243        16373 :                 tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, EQ_EXPR);
   10244        16373 :                 if (res) return res;
   10245              :               }
   10246         7261 :               break;
   10247              :             }
   10248              :           default:;
   10249              :           }
   10250              :         break;
   10251              :       }
   10252     23490581 :     default:;
   10253              :     }
   10254     23490581 :   {
   10255     23490581 :     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10256     23490581 :     tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, EQ_EXPR);
   10257     23490581 :     if (res) return res;
   10258              :   }
   10259     23487396 :   switch (TREE_CODE (_p0))
   10260              :     {
   10261      1444507 :     CASE_CONVERT:
   10262      1444507 :       {
   10263      1444507 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10264      1444507 :         switch (TREE_CODE (_p1))
   10265              :           {
   10266       255798 :           case INTEGER_CST:
   10267       255798 :             {
   10268       255798 :               {
   10269       255798 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10270       255798 :                 tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, EQ_EXPR);
   10271       255798 :                 if (res) return res;
   10272              :               }
   10273       254405 :               break;
   10274              :             }
   10275      1443114 :           default:;
   10276              :           }
   10277      1443114 :         switch (TREE_CODE (_q20))
   10278              :           {
   10279            0 :           case NE_EXPR:
   10280            0 :             {
   10281            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10282            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10283            0 :               switch (TREE_CODE (_q31))
   10284              :                 {
   10285            0 :                 case INTEGER_CST:
   10286            0 :                   {
   10287            0 :                     if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
   10288              :                       {
   10289            0 :                         {
   10290            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
   10291            0 :                           tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
   10292            0 :                           if (res) return res;
   10293              :                         }
   10294              :                       }
   10295              :                     break;
   10296              :                   }
   10297              :                 default:;
   10298              :                 }
   10299              :               break;
   10300              :             }
   10301            0 :           case EQ_EXPR:
   10302            0 :             {
   10303            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10304            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10305            0 :               switch (TREE_CODE (_q31))
   10306              :                 {
   10307            0 :                 case INTEGER_CST:
   10308            0 :                   {
   10309            0 :                     if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
   10310              :                       {
   10311            0 :                         {
   10312            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
   10313            0 :                           tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
   10314            0 :                           if (res) return res;
   10315              :                         }
   10316              :                       }
   10317              :                     break;
   10318              :                   }
   10319              :                 default:;
   10320              :                 }
   10321              :               break;
   10322              :             }
   10323              :           default:;
   10324              :           }
   10325              :         break;
   10326              :       }
   10327     23486003 :     default:;
   10328              :     }
   10329     23486003 :   switch (TREE_CODE (_p1))
   10330              :     {
   10331       674226 :     CASE_CONVERT:
   10332       674226 :       {
   10333       674226 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10334       674226 :         switch (TREE_CODE (_q30))
   10335              :           {
   10336            0 :           case NE_EXPR:
   10337            0 :             {
   10338            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
   10339            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
   10340            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
   10341              :                 {
   10342            0 :                   switch (TREE_CODE (_q41))
   10343              :                     {
   10344            0 :                     case INTEGER_CST:
   10345            0 :                       {
   10346            0 :                         {
   10347            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
   10348            0 :                           tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
   10349            0 :                           if (res) return res;
   10350              :                         }
   10351            0 :                         break;
   10352              :                       }
   10353              :                     default:;
   10354              :                     }
   10355              :                 }
   10356              :               break;
   10357              :             }
   10358            0 :           case EQ_EXPR:
   10359            0 :             {
   10360            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
   10361            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
   10362            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
   10363              :                 {
   10364            0 :                   switch (TREE_CODE (_q41))
   10365              :                     {
   10366            0 :                     case INTEGER_CST:
   10367            0 :                       {
   10368            0 :                         {
   10369            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
   10370            0 :                           tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
   10371            0 :                           if (res) return res;
   10372              :                         }
   10373            0 :                         break;
   10374              :                       }
   10375              :                     default:;
   10376              :                     }
   10377              :                 }
   10378              :               break;
   10379              :             }
   10380              :           default:;
   10381              :           }
   10382              :         break;
   10383              :       }
   10384     23486003 :     default:;
   10385              :     }
   10386     23486003 : if (integer_onep (_p1))
   10387              :   {
   10388      1789962 :     {
   10389      1789962 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10390      1789962 :       if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
   10391      1789962 :  && types_match (type, TREE_TYPE (captures[0]))
   10392              : )
   10393              :         {
   10394       115517 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1540;
   10395       115517 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1540;
   10396       115517 :           {
   10397       115517 :             tree res_op0;
   10398       115517 :             res_op0 = captures[0];
   10399       115517 :             tree _r;
   10400       115517 :             _r = non_lvalue_loc (loc, res_op0);
   10401       115517 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 996, __FILE__, __LINE__, true);
   10402       115517 :             return _r;
   10403              :           }
   10404              : next_after_fail1540:;
   10405              :         }
   10406              :     }
   10407              :   }
   10408     23370486 :   switch (TREE_CODE (_p0))
   10409              :     {
   10410       697525 :     case BIT_AND_EXPR:
   10411       697525 :       {
   10412       697525 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10413       697525 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10414       697525 :         switch (TREE_CODE (_q21))
   10415              :           {
   10416          688 :           case VECTOR_CST:
   10417          688 :             {
   10418          688 :               if (integer_zerop (_p1))
   10419              :                 {
   10420          398 :                   {
   10421          398 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
   10422          398 :                     const enum tree_code cmp = EQ_EXPR;
   10423          398 :                     const enum tree_code icmp = LE_EXPR;
   10424          398 :                     {
   10425          398 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   10426          398 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   10427              : )
   10428              :                           {
   10429            2 :                             {
   10430            2 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   10431            2 :  ? optab_vector : optab_default;
   10432            2 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   10433            2 :                                 if (target_supports_op_p (utype, icmp, optab)
   10434            2 :  || (optimize_vectors_before_lowering_p ()
   10435            2 :  && (!target_supports_op_p (type, cmp, optab)
   10436            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   10437              : )
   10438              :                                   {
   10439            2 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   10440              : )
   10441              :                                       {
   10442            2 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1541;
   10443            2 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1541;
   10444            2 :                                         {
   10445            2 :                                           tree res_op0;
   10446            2 :                                           res_op0 = captures[1];
   10447            2 :                                           tree res_op1;
   10448            2 :                                           res_op1 =  csts;
   10449            2 :                                           tree _r;
   10450            2 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10451            2 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10452            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10453            2 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 997, __FILE__, __LINE__, true);
   10454            2 :                                           return _r;
   10455              :                                         }
   10456          396 : next_after_fail1541:;
   10457              :                                       }
   10458              :                                     else
   10459              :                                       {
   10460            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1542;
   10461            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1542;
   10462            0 :                                         {
   10463            0 :                                           tree res_op0;
   10464            0 :                                           {
   10465            0 :                                             tree _o1[1], _r1;
   10466            0 :                                             _o1[0] = captures[1];
   10467            0 :                                             if (TREE_TYPE (_o1[0]) != utype)
   10468              :                                               {
   10469            0 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   10470              :                                               }
   10471              :                                             else
   10472              :                                               _r1 = _o1[0];
   10473            0 :                                             res_op0 = _r1;
   10474              :                                           }
   10475            0 :                                           tree res_op1;
   10476            0 :                                           res_op1 =  csts;
   10477            0 :                                           tree _r;
   10478            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10479            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10480            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10481            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
   10482            0 :                                           return _r;
   10483              :                                         }
   10484          396 : next_after_fail1542:;
   10485              :                                       }
   10486              :                                   }
   10487              :                             }
   10488              :                           }
   10489              :                     }
   10490              :                   }
   10491              :                 }
   10492              :               break;
   10493              :             }
   10494       634509 :           case INTEGER_CST:
   10495       634509 :             {
   10496       634509 :               if (integer_zerop (_p1))
   10497              :                 {
   10498       522473 :                   {
   10499       522473 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
   10500       522473 :                     const enum tree_code cmp = EQ_EXPR;
   10501       522473 :                     const enum tree_code icmp = LE_EXPR;
   10502       522473 :                     {
   10503       522473 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   10504       522473 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   10505              : )
   10506              :                           {
   10507         1049 :                             {
   10508         1049 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   10509         1049 :  ? optab_vector : optab_default;
   10510         1049 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   10511         1049 :                                 if (target_supports_op_p (utype, icmp, optab)
   10512         1049 :  || (optimize_vectors_before_lowering_p ()
   10513          905 :  && (!target_supports_op_p (type, cmp, optab)
   10514            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   10515              : )
   10516              :                                   {
   10517          905 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   10518              : )
   10519              :                                       {
   10520          616 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1543;
   10521          616 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1543;
   10522          616 :                                         {
   10523          616 :                                           tree res_op0;
   10524          616 :                                           res_op0 = captures[1];
   10525          616 :                                           tree res_op1;
   10526          616 :                                           res_op1 =  csts;
   10527          616 :                                           tree _r;
   10528          616 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10529          616 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10530            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10531          616 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 997, __FILE__, __LINE__, true);
   10532          616 :                                           return _r;
   10533              :                                         }
   10534       521568 : next_after_fail1543:;
   10535              :                                       }
   10536              :                                     else
   10537              :                                       {
   10538          289 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1544;
   10539          289 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1544;
   10540          289 :                                         {
   10541          289 :                                           tree res_op0;
   10542          289 :                                           {
   10543          289 :                                             tree _o1[1], _r1;
   10544          289 :                                             _o1[0] = captures[1];
   10545          289 :                                             if (TREE_TYPE (_o1[0]) != utype)
   10546              :                                               {
   10547          289 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   10548              :                                               }
   10549              :                                             else
   10550              :                                               _r1 = _o1[0];
   10551          289 :                                             res_op0 = _r1;
   10552              :                                           }
   10553          289 :                                           tree res_op1;
   10554          289 :                                           res_op1 =  csts;
   10555          289 :                                           tree _r;
   10556          289 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10557          289 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10558            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10559          289 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
   10560          289 :                                           return _r;
   10561              :                                         }
   10562       521568 : next_after_fail1544:;
   10563              :                                       }
   10564              :                                   }
   10565              :                             }
   10566              :                           }
   10567              :                     }
   10568              :                   }
   10569              :                 }
   10570              :               break;
   10571              :             }
   10572       696618 :           default:;
   10573              :           }
   10574       696618 :         switch (TREE_CODE (_q20))
   10575              :           {
   10576            0 :           case VECTOR_CST:
   10577            0 :             {
   10578            0 :               if (integer_zerop (_p1))
   10579              :                 {
   10580            0 :                   {
   10581            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
   10582            0 :                     const enum tree_code cmp = EQ_EXPR;
   10583            0 :                     const enum tree_code icmp = LE_EXPR;
   10584            0 :                     {
   10585            0 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   10586            0 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   10587              : )
   10588              :                           {
   10589            0 :                             {
   10590            0 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   10591            0 :  ? optab_vector : optab_default;
   10592            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   10593            0 :                                 if (target_supports_op_p (utype, icmp, optab)
   10594            0 :  || (optimize_vectors_before_lowering_p ()
   10595            0 :  && (!target_supports_op_p (type, cmp, optab)
   10596            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   10597              : )
   10598              :                                   {
   10599            0 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   10600              : )
   10601              :                                       {
   10602            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1545;
   10603            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1545;
   10604            0 :                                         {
   10605            0 :                                           tree res_op0;
   10606            0 :                                           res_op0 = captures[1];
   10607            0 :                                           tree res_op1;
   10608            0 :                                           res_op1 =  csts;
   10609            0 :                                           tree _r;
   10610            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10611            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10612            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10613            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 997, __FILE__, __LINE__, true);
   10614            0 :                                           return _r;
   10615              :                                         }
   10616            0 : next_after_fail1545:;
   10617              :                                       }
   10618              :                                     else
   10619              :                                       {
   10620            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1546;
   10621            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1546;
   10622            0 :                                         {
   10623            0 :                                           tree res_op0;
   10624            0 :                                           {
   10625            0 :                                             tree _o1[1], _r1;
   10626            0 :                                             _o1[0] = captures[1];
   10627            0 :                                             if (TREE_TYPE (_o1[0]) != utype)
   10628              :                                               {
   10629            0 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   10630              :                                               }
   10631              :                                             else
   10632              :                                               _r1 = _o1[0];
   10633            0 :                                             res_op0 = _r1;
   10634              :                                           }
   10635            0 :                                           tree res_op1;
   10636            0 :                                           res_op1 =  csts;
   10637            0 :                                           tree _r;
   10638            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10639            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10640            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10641            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
   10642            0 :                                           return _r;
   10643              :                                         }
   10644            0 : next_after_fail1546:;
   10645              :                                       }
   10646              :                                   }
   10647              :                             }
   10648              :                           }
   10649              :                     }
   10650              :                   }
   10651              :                 }
   10652              :               break;
   10653              :             }
   10654            0 :           case INTEGER_CST:
   10655            0 :             {
   10656            0 :               if (integer_zerop (_p1))
   10657              :                 {
   10658            0 :                   {
   10659            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
   10660            0 :                     const enum tree_code cmp = EQ_EXPR;
   10661            0 :                     const enum tree_code icmp = LE_EXPR;
   10662            0 :                     {
   10663            0 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   10664            0 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   10665              : )
   10666              :                           {
   10667            0 :                             {
   10668            0 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   10669            0 :  ? optab_vector : optab_default;
   10670            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   10671            0 :                                 if (target_supports_op_p (utype, icmp, optab)
   10672            0 :  || (optimize_vectors_before_lowering_p ()
   10673            0 :  && (!target_supports_op_p (type, cmp, optab)
   10674            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   10675              : )
   10676              :                                   {
   10677            0 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   10678              : )
   10679              :                                       {
   10680            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1547;
   10681            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1547;
   10682            0 :                                         {
   10683            0 :                                           tree res_op0;
   10684            0 :                                           res_op0 = captures[1];
   10685            0 :                                           tree res_op1;
   10686            0 :                                           res_op1 =  csts;
   10687            0 :                                           tree _r;
   10688            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10689            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10690            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10691            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 997, __FILE__, __LINE__, true);
   10692            0 :                                           return _r;
   10693              :                                         }
   10694            0 : next_after_fail1547:;
   10695              :                                       }
   10696              :                                     else
   10697              :                                       {
   10698            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1548;
   10699            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1548;
   10700            0 :                                         {
   10701            0 :                                           tree res_op0;
   10702            0 :                                           {
   10703            0 :                                             tree _o1[1], _r1;
   10704            0 :                                             _o1[0] = captures[1];
   10705            0 :                                             if (TREE_TYPE (_o1[0]) != utype)
   10706              :                                               {
   10707            0 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   10708              :                                               }
   10709              :                                             else
   10710              :                                               _r1 = _o1[0];
   10711            0 :                                             res_op0 = _r1;
   10712              :                                           }
   10713            0 :                                           tree res_op1;
   10714            0 :                                           res_op1 =  csts;
   10715            0 :                                           tree _r;
   10716            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   10717            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   10718            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10719            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
   10720            0 :                                           return _r;
   10721              :                                         }
   10722            0 : next_after_fail1548:;
   10723              :                                       }
   10724              :                                   }
   10725              :                             }
   10726              :                           }
   10727              :                     }
   10728              :                   }
   10729              :                 }
   10730              :               break;
   10731              :             }
   10732              :           default:;
   10733              :           }
   10734              :         break;
   10735              :       }
   10736        15890 :     case RSHIFT_EXPR:
   10737        15890 :       {
   10738        15890 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10739        15890 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10740        15890 :         switch (TREE_CODE (_q20))
   10741              :           {
   10742            1 :           case MULT_EXPR:
   10743            1 :             {
   10744            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10745            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10746            1 :               switch (TREE_CODE (_q30))
   10747              :                 {
   10748            1 :                 CASE_CONVERT:
   10749            1 :                   {
   10750            1 :                     tree _q40 = TREE_OPERAND (_q30, 0);
   10751            1 :                     switch (TREE_CODE (_q31))
   10752              :                       {
   10753            1 :                       CASE_CONVERT:
   10754            1 :                         {
   10755            1 :                           tree _q60 = TREE_OPERAND (_q31, 0);
   10756            1 :                           switch (TREE_CODE (_q21))
   10757              :                             {
   10758            1 :                             case INTEGER_CST:
   10759            1 :                               {
   10760            1 :                                 if (integer_zerop (_p1))
   10761              :                                   {
   10762            1 :                                     {
   10763            1 :                                       tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q60, _q21 };
   10764            1 :                                       tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, EQ_EXPR, LE_EXPR);
   10765            1 :                                       if (res) return res;
   10766              :                                     }
   10767              :                                   }
   10768              :                                 break;
   10769              :                               }
   10770              :                             default:;
   10771              :                             }
   10772              :                           break;
   10773              :                         }
   10774              :                       default:;
   10775              :                       }
   10776              :                     break;
   10777              :                   }
   10778              :                 default:;
   10779              :                 }
   10780              :               break;
   10781              :             }
   10782              :           default:;
   10783              :           }
   10784              :         break;
   10785              :       }
   10786       670576 :     case PLUS_EXPR:
   10787       670576 :       {
   10788       670576 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10789       670576 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10790       670576 :         switch (TREE_CODE (_q21))
   10791              :           {
   10792       623511 :           case INTEGER_CST:
   10793       623511 :             {
   10794       623511 :               switch (TREE_CODE (_p1))
   10795              :                 {
   10796       351776 :                 case INTEGER_CST:
   10797       351776 :                   {
   10798       351776 :                     {
   10799       351776 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   10800       351776 :                       tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, EQ_EXPR);
   10801       351776 :                       if (res) return res;
   10802              :                     }
   10803           22 :                     break;
   10804              :                   }
   10805              :                 default:;
   10806              :                 }
   10807              :               break;
   10808              :             }
   10809              :           default:;
   10810              :           }
   10811              :         break;
   10812              :       }
   10813        96032 :     case MINUS_EXPR:
   10814        96032 :       {
   10815        96032 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10816        96032 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10817        96032 :         switch (TREE_CODE (_q21))
   10818              :           {
   10819           19 :           case INTEGER_CST:
   10820           19 :             {
   10821           19 :               switch (TREE_CODE (_p1))
   10822              :                 {
   10823           16 :                 case INTEGER_CST:
   10824           16 :                   {
   10825           16 :                     {
   10826           16 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   10827           16 :                       tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, EQ_EXPR);
   10828           16 :                       if (res) return res;
   10829              :                     }
   10830           16 :                     break;
   10831              :                   }
   10832              :                 default:;
   10833              :                 }
   10834              :               break;
   10835              :             }
   10836        96032 :           default:;
   10837              :           }
   10838        96032 :         switch (TREE_CODE (_q20))
   10839              :           {
   10840        37623 :           case INTEGER_CST:
   10841        37623 :             {
   10842        37623 :               switch (TREE_CODE (_p1))
   10843              :                 {
   10844        36286 :                 case INTEGER_CST:
   10845        36286 :                   {
   10846        36286 :                     {
   10847        36286 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
   10848        36286 :                       tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
   10849        36286 :                       if (res) return res;
   10850              :                     }
   10851            0 :                     break;
   10852              :                   }
   10853              :                 default:;
   10854              :                 }
   10855              :               break;
   10856              :             }
   10857              :           default:;
   10858              :           }
   10859              :         break;
   10860              :       }
   10861      1998526 :     case CALL_EXPR:
   10862      1998526 :       switch (get_call_combined_fn (_p0))
   10863              :         {
   10864           19 :         case CFN_BUILT_IN_CLZ:
   10865           19 :           if (call_expr_nargs (_p0) == 1)
   10866              :     {
   10867           19 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10868           19 :               switch (TREE_CODE (_p1))
   10869              :                 {
   10870           19 :                 case INTEGER_CST:
   10871           19 :                   {
   10872           19 :                     {
   10873           19 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10874           19 :                       tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZ);
   10875           19 :                       if (res) return res;
   10876              :                     }
   10877           16 :                     break;
   10878              :                   }
   10879              :                 default:;
   10880              :                 }
   10881              :             }
   10882              :           break;
   10883           17 :         case CFN_BUILT_IN_CTZ:
   10884           17 :           if (call_expr_nargs (_p0) == 1)
   10885              :     {
   10886           17 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10887           17 :               switch (TREE_CODE (_p1))
   10888              :                 {
   10889           17 :                 case INTEGER_CST:
   10890           17 :                   {
   10891           17 :                     {
   10892           17 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10893           17 :                       tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZ);
   10894           17 :                       if (res) return res;
   10895              :                     }
   10896           16 :                     break;
   10897              :                   }
   10898              :                 default:;
   10899              :                 }
   10900              :             }
   10901              :           break;
   10902            4 :         case CFN_BUILT_IN_FFS:
   10903            4 :           if (call_expr_nargs (_p0) == 1)
   10904              :     {
   10905            4 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10906            4 :               switch (TREE_CODE (_p1))
   10907              :                 {
   10908            4 :                 case INTEGER_CST:
   10909            4 :                   {
   10910            4 :                     {
   10911            4 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10912            4 :                       tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFS);
   10913            4 :                       if (res) return res;
   10914              :                     }
   10915            0 :                     break;
   10916              :                   }
   10917              :                 default:;
   10918              :                 }
   10919              :             }
   10920              :           break;
   10921            0 :         case CFN_REDUC_IOR:
   10922            0 :           if (call_expr_nargs (_p0) == 1)
   10923              :     {
   10924            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10925            0 :               if (integer_zerop (_p1))
   10926              :                 {
   10927            0 :                   {
   10928            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10929            0 :                     tree res = generic_simplify_305 (loc, type, _p0, _p1, captures, EQ_EXPR);
   10930            0 :                     if (res) return res;
   10931              :                   }
   10932              :                 }
   10933              :             }
   10934              :           break;
   10935            0 :         case CFN_BUILT_IN_FFSIMAX:
   10936            0 :           if (call_expr_nargs (_p0) == 1)
   10937              :     {
   10938            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10939            0 :               switch (TREE_CODE (_p1))
   10940              :                 {
   10941            0 :                 case INTEGER_CST:
   10942            0 :                   {
   10943            0 :                     {
   10944            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10945            0 :                       tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSIMAX);
   10946            0 :                       if (res) return res;
   10947              :                     }
   10948            0 :                     break;
   10949              :                   }
   10950              :                 default:;
   10951              :                 }
   10952              :             }
   10953              :           break;
   10954           15 :         case CFN_BUILT_IN_POPCOUNT:
   10955           15 :           if (call_expr_nargs (_p0) == 1)
   10956              :     {
   10957           15 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10958           15 :               if (integer_zerop (_p1))
   10959              :                 {
   10960            1 :                   {
   10961            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10962            1 :                     tree res = generic_simplify_303 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT);
   10963            1 :                     if (res) return res;
   10964              :                   }
   10965              :                 }
   10966              :             }
   10967              :           break;
   10968            0 :         case CFN_BUILT_IN_CLZL:
   10969            0 :           if (call_expr_nargs (_p0) == 1)
   10970              :     {
   10971            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10972            0 :               switch (TREE_CODE (_p1))
   10973              :                 {
   10974            0 :                 case INTEGER_CST:
   10975            0 :                   {
   10976            0 :                     {
   10977            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10978            0 :                       tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZL);
   10979            0 :                       if (res) return res;
   10980              :                     }
   10981            0 :                     break;
   10982              :                   }
   10983              :                 default:;
   10984              :                 }
   10985              :             }
   10986              :           break;
   10987           16 :         case CFN_BUILT_IN_CTZL:
   10988           16 :           if (call_expr_nargs (_p0) == 1)
   10989              :     {
   10990           16 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10991           16 :               switch (TREE_CODE (_p1))
   10992              :                 {
   10993           16 :                 case INTEGER_CST:
   10994           16 :                   {
   10995           16 :                     {
   10996           16 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10997           16 :                       tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZL);
   10998           16 :                       if (res) return res;
   10999              :                     }
   11000           16 :                     break;
   11001              :                   }
   11002              :                 default:;
   11003              :                 }
   11004              :             }
   11005              :           break;
   11006            1 :         case CFN_BUILT_IN_FFSL:
   11007            1 :           if (call_expr_nargs (_p0) == 1)
   11008              :     {
   11009            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11010            1 :               switch (TREE_CODE (_p1))
   11011              :                 {
   11012            1 :                 case INTEGER_CST:
   11013            1 :                   {
   11014            1 :                     {
   11015            1 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11016            1 :                       tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSL);
   11017            1 :                       if (res) return res;
   11018              :                     }
   11019            0 :                     break;
   11020              :                   }
   11021              :                 default:;
   11022              :                 }
   11023              :             }
   11024              :           break;
   11025            7 :         case CFN_BUILT_IN_POPCOUNTLL:
   11026            7 :           if (call_expr_nargs (_p0) == 1)
   11027              :     {
   11028            7 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11029            7 :               if (integer_zerop (_p1))
   11030              :                 {
   11031            1 :                   {
   11032            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   11033            1 :                     tree res = generic_simplify_303 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL);
   11034            1 :                     if (res) return res;
   11035              :                   }
   11036              :                 }
   11037              :             }
   11038              :           break;
   11039            0 :         case CFN_BUILT_IN_CTZIMAX:
   11040            0 :           if (call_expr_nargs (_p0) == 1)
   11041              :     {
   11042            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11043            0 :               switch (TREE_CODE (_p1))
   11044              :                 {
   11045            0 :                 case INTEGER_CST:
   11046            0 :                   {
   11047            0 :                     {
   11048            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11049            0 :                       tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
   11050            0 :                       if (res) return res;
   11051              :                     }
   11052            0 :                     break;
   11053              :                   }
   11054              :                 default:;
   11055              :                 }
   11056              :             }
   11057              :           break;
   11058            0 :         case CFN_POPCOUNT:
   11059            0 :           if (call_expr_nargs (_p0) == 1)
   11060              :     {
   11061            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11062            0 :               if (integer_zerop (_p1))
   11063              :                 {
   11064            0 :                   {
   11065            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   11066            0 :                     tree res = generic_simplify_303 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_POPCOUNT);
   11067            0 :                     if (res) return res;
   11068              :                   }
   11069              :                 }
   11070              :             }
   11071              :           break;
   11072            0 :         case CFN_CLZ:
   11073            0 :           if (call_expr_nargs (_p0) == 1)
   11074              :     {
   11075            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11076            0 :               switch (TREE_CODE (_p1))
   11077              :                 {
   11078            0 :                 case INTEGER_CST:
   11079            0 :                   {
   11080            0 :                     {
   11081            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11082            0 :                       tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_CLZ);
   11083            0 :                       if (res) return res;
   11084              :                     }
   11085            0 :                     break;
   11086              :                   }
   11087              :                 default:;
   11088              :                 }
   11089              :             }
   11090            0 :           if (call_expr_nargs (_p0) == 2)
   11091              :     {
   11092            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11093            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   11094            0 :               switch (TREE_CODE (_p1))
   11095              :                 {
   11096            0 :                 case INTEGER_CST:
   11097            0 :                   {
   11098            0 :                     {
   11099            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   11100            0 :                       tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
   11101            0 :                       if (res) return res;
   11102              :                     }
   11103            0 :                     break;
   11104              :                   }
   11105              :                 default:;
   11106              :                 }
   11107              :             }
   11108              :           break;
   11109            0 :         case CFN_CTZ:
   11110            0 :           if (call_expr_nargs (_p0) == 1)
   11111              :     {
   11112            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11113            0 :               switch (TREE_CODE (_p1))
   11114              :                 {
   11115            0 :                 case INTEGER_CST:
   11116            0 :                   {
   11117            0 :                     {
   11118            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11119            0 :                       tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_CTZ);
   11120            0 :                       if (res) return res;
   11121              :                     }
   11122            0 :                     break;
   11123              :                   }
   11124              :                 default:;
   11125              :                 }
   11126              :             }
   11127            0 :           if (call_expr_nargs (_p0) == 2)
   11128              :     {
   11129            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11130            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   11131            0 :               switch (TREE_CODE (_p1))
   11132              :                 {
   11133            0 :                 case INTEGER_CST:
   11134            0 :                   {
   11135            0 :                     {
   11136            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   11137            0 :                       tree res = generic_simplify_302 (loc, type, _p0, _p1, captures, EQ_EXPR);
   11138            0 :                       if (res) return res;
   11139              :                     }
   11140            0 :                     break;
   11141              :                   }
   11142              :                 default:;
   11143              :                 }
   11144              :             }
   11145              :           break;
   11146            0 :         case CFN_FFS:
   11147            0 :           if (call_expr_nargs (_p0) == 1)
   11148              :     {
   11149            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11150            0 :               switch (TREE_CODE (_p1))
   11151              :                 {
   11152            0 :                 case INTEGER_CST:
   11153            0 :                   {
   11154            0 :                     {
   11155            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11156            0 :                       tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_FFS);
   11157            0 :                       if (res) return res;
   11158              :                     }
   11159            0 :                     break;
   11160              :                   }
   11161              :                 default:;
   11162              :                 }
   11163              :             }
   11164              :           break;
   11165            0 :         case CFN_BUILT_IN_POPCOUNTIMAX:
   11166            0 :           if (call_expr_nargs (_p0) == 1)
   11167              :     {
   11168            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11169            0 :               if (integer_zerop (_p1))
   11170              :                 {
   11171            0 :                   {
   11172            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   11173            0 :                     tree res = generic_simplify_303 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
   11174            0 :                     if (res) return res;
   11175              :                   }
   11176              :                 }
   11177              :             }
   11178              :           break;
   11179            0 :         case CFN_BUILT_IN_CLZIMAX:
   11180            0 :           if (call_expr_nargs (_p0) == 1)
   11181              :     {
   11182            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11183            0 :               switch (TREE_CODE (_p1))
   11184              :                 {
   11185            0 :                 case INTEGER_CST:
   11186            0 :                   {
   11187            0 :                     {
   11188            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11189            0 :                       tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZIMAX);
   11190            0 :                       if (res) return res;
   11191              :                     }
   11192            0 :                     break;
   11193              :                   }
   11194              :                 default:;
   11195              :                 }
   11196              :             }
   11197              :           break;
   11198            7 :         case CFN_BUILT_IN_POPCOUNTL:
   11199            7 :           if (call_expr_nargs (_p0) == 1)
   11200              :     {
   11201            7 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11202            7 :               if (integer_zerop (_p1))
   11203              :                 {
   11204            1 :                   {
   11205            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   11206            1 :                     tree res = generic_simplify_303 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL);
   11207            1 :                     if (res) return res;
   11208              :                   }
   11209              :                 }
   11210              :             }
   11211              :           break;
   11212           16 :         case CFN_BUILT_IN_CLZLL:
   11213           16 :           if (call_expr_nargs (_p0) == 1)
   11214              :     {
   11215           16 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11216           16 :               switch (TREE_CODE (_p1))
   11217              :                 {
   11218           16 :                 case INTEGER_CST:
   11219           16 :                   {
   11220           16 :                     {
   11221           16 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11222           16 :                       tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZLL);
   11223           16 :                       if (res) return res;
   11224              :                     }
   11225           16 :                     break;
   11226              :                   }
   11227              :                 default:;
   11228              :                 }
   11229              :             }
   11230              :           break;
   11231            0 :         case CFN_BUILT_IN_CTZLL:
   11232            0 :           if (call_expr_nargs (_p0) == 1)
   11233              :     {
   11234            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11235            0 :               switch (TREE_CODE (_p1))
   11236              :                 {
   11237            0 :                 case INTEGER_CST:
   11238            0 :                   {
   11239            0 :                     {
   11240            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11241            0 :                       tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZLL);
   11242            0 :                       if (res) return res;
   11243              :                     }
   11244            0 :                     break;
   11245              :                   }
   11246              :                 default:;
   11247              :                 }
   11248              :             }
   11249              :           break;
   11250            0 :         case CFN_BUILT_IN_FFSLL:
   11251            0 :           if (call_expr_nargs (_p0) == 1)
   11252              :     {
   11253            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11254            0 :               switch (TREE_CODE (_p1))
   11255              :                 {
   11256            0 :                 case INTEGER_CST:
   11257            0 :                   {
   11258            0 :                     {
   11259            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11260            0 :                       tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSLL);
   11261            0 :                       if (res) return res;
   11262              :                     }
   11263            0 :                     break;
   11264              :                   }
   11265              :                 default:;
   11266              :                 }
   11267              :             }
   11268              :           break;
   11269              :         default:;
   11270              :         }
   11271              :       break;
   11272              :     default:;
   11273              :     }
   11274              :   return NULL_TREE;
   11275              : }
   11276              : 
   11277              : tree
   11278       786765 : generic_simplify_UNORDERED_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   11279              : {
   11280       786765 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   11281       786765 :   switch (TREE_CODE (_p0))
   11282              :     {
   11283            0 :     case VEC_COND_EXPR:
   11284            0 :       {
   11285            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11286            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11287            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11288            0 :         switch (TREE_CODE (_p1))
   11289              :           {
   11290            0 :           case VEC_COND_EXPR:
   11291            0 :             {
   11292            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   11293            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   11294            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   11295            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   11296              :                 {
   11297            0 :                   {
   11298            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   11299            0 :                     if (VECTOR_TYPE_P (type)
   11300            0 :  && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
   11301            0 :  || types_match (type, TREE_TYPE (captures[2]))
   11302            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   11303              :  || (optimize_vectors_before_lowering_p ()
   11304            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   11305              : )
   11306              :                       {
   11307            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1814;
   11308            0 :                         {
   11309            0 :                           tree res_op0;
   11310            0 :                           res_op0 = captures[1];
   11311            0 :                           tree res_op1;
   11312            0 :                           {
   11313            0 :                             tree _o1[2], _r1;
   11314            0 :                             _o1[0] = captures[2];
   11315            0 :                             _o1[1] = captures[5];
   11316            0 :                             _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
   11317            0 :                             if (EXPR_P (_r1))
   11318            0 :                               goto next_after_fail1814;
   11319            0 :                             res_op1 = _r1;
   11320              :                           }
   11321            0 :                           tree res_op2;
   11322            0 :                           {
   11323            0 :                             tree _o1[2], _r1;
   11324            0 :                             _o1[0] = captures[3];
   11325            0 :                             _o1[1] = captures[6];
   11326            0 :                             _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
   11327            0 :                             if (EXPR_P (_r1))
   11328            0 :                               goto next_after_fail1814;
   11329            0 :                             res_op2 = _r1;
   11330              :                           }
   11331            0 :                           tree _r;
   11332            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11333            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
   11334            0 :                           return _r;
   11335              :                         }
   11336            0 : next_after_fail1814:;
   11337              :                       }
   11338              :                   }
   11339              :                 }
   11340              :               break;
   11341              :             }
   11342            0 :           default:;
   11343              :           }
   11344            0 :         {
   11345            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   11346            0 :           if (VECTOR_TYPE_P (type)
   11347            0 :  && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
   11348            0 :  || types_match (type, TREE_TYPE (captures[2]))
   11349            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   11350              :  || (optimize_vectors_before_lowering_p ()
   11351            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   11352              : )
   11353              :             {
   11354            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1815;
   11355            0 :               {
   11356            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1815;
   11357            0 :                 tree res_op0;
   11358            0 :                 res_op0 = captures[1];
   11359            0 :                 tree res_op1;
   11360            0 :                 {
   11361            0 :                   tree _o1[2], _r1;
   11362            0 :                   _o1[0] = captures[2];
   11363            0 :                   _o1[1] = unshare_expr (captures[4]);
   11364            0 :                   _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
   11365            0 :                   if (EXPR_P (_r1))
   11366            0 :                     goto next_after_fail1815;
   11367            0 :                   res_op1 = _r1;
   11368              :                 }
   11369            0 :                 tree res_op2;
   11370            0 :                 {
   11371            0 :                   tree _o1[2], _r1;
   11372            0 :                   _o1[0] = captures[3];
   11373            0 :                   _o1[1] = captures[4];
   11374            0 :                   _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
   11375            0 :                   if (EXPR_P (_r1))
   11376            0 :                     goto next_after_fail1815;
   11377            0 :                   res_op2 = _r1;
   11378              :                 }
   11379            0 :                 tree _r;
   11380            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11381            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
   11382            0 :                 return _r;
   11383              :               }
   11384            0 : next_after_fail1815:;
   11385              :             }
   11386              :         }
   11387            0 :         break;
   11388              :       }
   11389       786765 :     default:;
   11390              :     }
   11391       786765 :   switch (TREE_CODE (_p1))
   11392              :     {
   11393            0 :     case VEC_COND_EXPR:
   11394            0 :       {
   11395            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   11396            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   11397            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   11398            0 :         {
   11399            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   11400            0 :           if (VECTOR_TYPE_P (type)
   11401            0 :  && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
   11402            0 :  || types_match (type, TREE_TYPE (captures[3]))
   11403            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   11404              :  || (optimize_vectors_before_lowering_p ()
   11405            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   11406              : )
   11407              :             {
   11408            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1816;
   11409            0 :               {
   11410            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1816;
   11411            0 :                 tree res_op0;
   11412            0 :                 res_op0 = captures[2];
   11413            0 :                 tree res_op1;
   11414            0 :                 {
   11415            0 :                   tree _o1[2], _r1;
   11416            0 :                   _o1[0] = unshare_expr (captures[0]);
   11417            0 :                   _o1[1] = captures[3];
   11418            0 :                   _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
   11419            0 :                   if (EXPR_P (_r1))
   11420            0 :                     goto next_after_fail1816;
   11421            0 :                   res_op1 = _r1;
   11422              :                 }
   11423            0 :                 tree res_op2;
   11424            0 :                 {
   11425            0 :                   tree _o1[2], _r1;
   11426            0 :                   _o1[0] = captures[0];
   11427            0 :                   _o1[1] = captures[4];
   11428            0 :                   _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
   11429            0 :                   if (EXPR_P (_r1))
   11430            0 :                     goto next_after_fail1816;
   11431            0 :                   res_op2 = _r1;
   11432              :                 }
   11433            0 :                 tree _r;
   11434            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11435            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
   11436            0 :                 return _r;
   11437              :               }
   11438            0 : next_after_fail1816:;
   11439              :             }
   11440              :         }
   11441            0 :         break;
   11442              :       }
   11443       786765 :     default:;
   11444              :     }
   11445       786765 :   switch (TREE_CODE (_p0))
   11446              :     {
   11447            0 :     case FLOAT_EXPR:
   11448            0 :       {
   11449            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11450            0 :         switch (TREE_CODE (_p1))
   11451              :           {
   11452            0 :           case FLOAT_EXPR:
   11453            0 :             {
   11454            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11455            0 :               {
   11456            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11457            0 :                 tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
   11458            0 :                 if (res) return res;
   11459              :               }
   11460            0 :               break;
   11461              :             }
   11462              :           default:;
   11463              :           }
   11464              :         break;
   11465              :       }
   11466           18 :     case NEGATE_EXPR:
   11467           18 :       {
   11468           18 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11469           18 :         switch (TREE_CODE (_p1))
   11470              :           {
   11471           18 :           case NEGATE_EXPR:
   11472           18 :             {
   11473           18 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11474           18 :               {
   11475           18 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   11476           18 :                 tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
   11477           18 :                 if (res) return res;
   11478              :               }
   11479            0 :               break;
   11480              :             }
   11481            0 :           default:;
   11482              :           }
   11483            0 :       if (CONSTANT_CLASS_P (_p1))
   11484              :         {
   11485            0 :           {
   11486            0 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   11487            0 :             tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
   11488            0 :             if (res) return res;
   11489              :           }
   11490              :         }
   11491              :         break;
   11492              :       }
   11493       786747 :     default:;
   11494              :     }
   11495       786747 :   switch (TREE_CODE (_p1))
   11496              :     {
   11497          519 :     case REAL_CST:
   11498          519 :       {
   11499          519 :         {
   11500          519 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11501          519 :           tree res = generic_simplify_572 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
   11502          519 :           if (res) return res;
   11503              :         }
   11504          519 :         break;
   11505              :       }
   11506       786747 :     default:;
   11507              :     }
   11508       786747 :   {
   11509       786747 :     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11510       786747 :     if (tree_expr_nan_p (captures[0]) || tree_expr_nan_p (captures[1])
   11511              : )
   11512              :       {
   11513            0 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1817;
   11514            0 :         {
   11515            0 :           tree _r;
   11516            0 :           _r =  constant_boolean_node (true, type);
   11517            0 :           if (TREE_SIDE_EFFECTS (captures[0]))
   11518            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11519            0 :           if (TREE_SIDE_EFFECTS (captures[1]))
   11520            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11521            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1044, __FILE__, __LINE__, true);
   11522            0 :           return _r;
   11523              :         }
   11524            0 : next_after_fail1817:;
   11525              :       }
   11526              :     else
   11527              :       {
   11528       786747 :         if (!tree_expr_maybe_nan_p (captures[0]) && !tree_expr_maybe_nan_p (captures[1])
   11529              : )
   11530              :           {
   11531           35 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1818;
   11532           35 :             {
   11533           35 :               tree _r;
   11534           35 :               _r =  constant_boolean_node (false, type);
   11535           35 :               if (TREE_SIDE_EFFECTS (captures[0]))
   11536            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11537           35 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11538            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11539           35 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1045, __FILE__, __LINE__, true);
   11540           35 :               return _r;
   11541              :             }
   11542            0 : next_after_fail1818:;
   11543              :           }
   11544              :       }
   11545              :   }
   11546       786712 :   return NULL_TREE;
   11547              : }
   11548              : 
   11549              : tree
   11550       373827 : generic_simplify_UNEQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   11551              : {
   11552       373827 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   11553       373827 :   switch (TREE_CODE (_p0))
   11554              :     {
   11555            0 :     case VEC_COND_EXPR:
   11556            0 :       {
   11557            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11558            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11559            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11560            0 :         switch (TREE_CODE (_p1))
   11561              :           {
   11562            0 :           case VEC_COND_EXPR:
   11563            0 :             {
   11564            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   11565            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   11566            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   11567            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   11568              :                 {
   11569            0 :                   {
   11570            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   11571            0 :                     if (VECTOR_TYPE_P (type)
   11572            0 :  && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
   11573            0 :  || types_match (type, TREE_TYPE (captures[2]))
   11574            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   11575              :  || (optimize_vectors_before_lowering_p ()
   11576            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   11577              : )
   11578              :                       {
   11579            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1836;
   11580            0 :                         {
   11581            0 :                           tree res_op0;
   11582            0 :                           res_op0 = captures[1];
   11583            0 :                           tree res_op1;
   11584            0 :                           {
   11585            0 :                             tree _o1[2], _r1;
   11586            0 :                             _o1[0] = captures[2];
   11587            0 :                             _o1[1] = captures[5];
   11588            0 :                             _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
   11589            0 :                             if (EXPR_P (_r1))
   11590            0 :                               goto next_after_fail1836;
   11591            0 :                             res_op1 = _r1;
   11592              :                           }
   11593            0 :                           tree res_op2;
   11594            0 :                           {
   11595            0 :                             tree _o1[2], _r1;
   11596            0 :                             _o1[0] = captures[3];
   11597            0 :                             _o1[1] = captures[6];
   11598            0 :                             _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
   11599            0 :                             if (EXPR_P (_r1))
   11600            0 :                               goto next_after_fail1836;
   11601            0 :                             res_op2 = _r1;
   11602              :                           }
   11603            0 :                           tree _r;
   11604            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11605            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
   11606            0 :                           return _r;
   11607              :                         }
   11608            0 : next_after_fail1836:;
   11609              :                       }
   11610              :                   }
   11611              :                 }
   11612              :               break;
   11613              :             }
   11614            0 :           default:;
   11615              :           }
   11616            0 :         {
   11617            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   11618            0 :           if (VECTOR_TYPE_P (type)
   11619            0 :  && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
   11620            0 :  || types_match (type, TREE_TYPE (captures[2]))
   11621            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   11622              :  || (optimize_vectors_before_lowering_p ()
   11623            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   11624              : )
   11625              :             {
   11626            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1837;
   11627            0 :               {
   11628            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1837;
   11629            0 :                 tree res_op0;
   11630            0 :                 res_op0 = captures[1];
   11631            0 :                 tree res_op1;
   11632            0 :                 {
   11633            0 :                   tree _o1[2], _r1;
   11634            0 :                   _o1[0] = captures[2];
   11635            0 :                   _o1[1] = unshare_expr (captures[4]);
   11636            0 :                   _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
   11637            0 :                   if (EXPR_P (_r1))
   11638            0 :                     goto next_after_fail1837;
   11639            0 :                   res_op1 = _r1;
   11640              :                 }
   11641            0 :                 tree res_op2;
   11642            0 :                 {
   11643            0 :                   tree _o1[2], _r1;
   11644            0 :                   _o1[0] = captures[3];
   11645            0 :                   _o1[1] = captures[4];
   11646            0 :                   _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
   11647            0 :                   if (EXPR_P (_r1))
   11648            0 :                     goto next_after_fail1837;
   11649            0 :                   res_op2 = _r1;
   11650              :                 }
   11651            0 :                 tree _r;
   11652            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11653            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
   11654            0 :                 return _r;
   11655              :               }
   11656            0 : next_after_fail1837:;
   11657              :             }
   11658              :         }
   11659            0 :         break;
   11660              :       }
   11661       373827 :     default:;
   11662              :     }
   11663       373827 :   switch (TREE_CODE (_p1))
   11664              :     {
   11665            0 :     case VEC_COND_EXPR:
   11666            0 :       {
   11667            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   11668            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   11669            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   11670            0 :         {
   11671            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   11672            0 :           if (VECTOR_TYPE_P (type)
   11673            0 :  && (TREE_CODE_CLASS (UNEQ_EXPR) != tcc_comparison
   11674            0 :  || types_match (type, TREE_TYPE (captures[3]))
   11675            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   11676              :  || (optimize_vectors_before_lowering_p ()
   11677            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   11678              : )
   11679              :             {
   11680            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1838;
   11681            0 :               {
   11682            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1838;
   11683            0 :                 tree res_op0;
   11684            0 :                 res_op0 = captures[2];
   11685            0 :                 tree res_op1;
   11686            0 :                 {
   11687            0 :                   tree _o1[2], _r1;
   11688            0 :                   _o1[0] = unshare_expr (captures[0]);
   11689            0 :                   _o1[1] = captures[3];
   11690            0 :                   _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
   11691            0 :                   if (EXPR_P (_r1))
   11692            0 :                     goto next_after_fail1838;
   11693            0 :                   res_op1 = _r1;
   11694              :                 }
   11695            0 :                 tree res_op2;
   11696            0 :                 {
   11697            0 :                   tree _o1[2], _r1;
   11698            0 :                   _o1[0] = captures[0];
   11699            0 :                   _o1[1] = captures[4];
   11700            0 :                   _r1 = fold_build2_loc (loc, UNEQ_EXPR, type, _o1[0], _o1[1]);
   11701            0 :                   if (EXPR_P (_r1))
   11702            0 :                     goto next_after_fail1838;
   11703            0 :                   res_op2 = _r1;
   11704              :                 }
   11705            0 :                 tree _r;
   11706            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11707            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
   11708            0 :                 return _r;
   11709              :               }
   11710            0 : next_after_fail1838:;
   11711              :             }
   11712              :         }
   11713            0 :         break;
   11714              :       }
   11715       373827 :     default:;
   11716              :     }
   11717       373827 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11718              :     {
   11719            0 :       {
   11720            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   11721            0 :         tree res = generic_simplify_574 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
   11722            0 :         if (res) return res;
   11723              :       }
   11724              :     }
   11725       373827 :   switch (TREE_CODE (_p0))
   11726              :     {
   11727            0 :     case FLOAT_EXPR:
   11728            0 :       {
   11729            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11730            0 :         switch (TREE_CODE (_p1))
   11731              :           {
   11732            0 :           case FLOAT_EXPR:
   11733            0 :             {
   11734            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11735            0 :               {
   11736            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11737            0 :                 tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, UNEQ_EXPR, EQ_EXPR);
   11738            0 :                 if (res) return res;
   11739              :               }
   11740            0 :               break;
   11741              :             }
   11742              :           default:;
   11743              :           }
   11744              :         break;
   11745              :       }
   11746            0 :     case NEGATE_EXPR:
   11747            0 :       {
   11748            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11749            0 :         switch (TREE_CODE (_p1))
   11750              :           {
   11751            0 :           case NEGATE_EXPR:
   11752            0 :             {
   11753            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11754            0 :               {
   11755            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   11756            0 :                 tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
   11757            0 :                 if (res) return res;
   11758              :               }
   11759            0 :               break;
   11760              :             }
   11761            0 :           default:;
   11762              :           }
   11763            0 :       if (CONSTANT_CLASS_P (_p1))
   11764              :         {
   11765            0 :           {
   11766            0 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   11767            0 :             tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
   11768            0 :             if (res) return res;
   11769              :           }
   11770              :         }
   11771              :         break;
   11772              :       }
   11773       373827 :     default:;
   11774              :     }
   11775       373827 :   switch (TREE_CODE (_p1))
   11776              :     {
   11777          154 :     case REAL_CST:
   11778          154 :       {
   11779          154 :         {
   11780          154 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11781          154 :           tree res = generic_simplify_572 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
   11782          154 :           if (res) return res;
   11783              :         }
   11784          152 :         break;
   11785              :       }
   11786              :     default:;
   11787              :     }
   11788              :   return NULL_TREE;
   11789              : }
   11790              : 
   11791              : tree
   11792       935840 : 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)
   11793              : {
   11794       935840 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   11795       935840 :   switch (TREE_CODE (_p0))
   11796              :     {
   11797           16 :     case BIT_FIELD_REF:
   11798           16 :       {
   11799           16 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11800           16 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11801           16 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11802           16 :         {
   11803           16 :           tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
   11804           16 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2002;
   11805           16 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail2002;
   11806           16 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2002;
   11807           16 :           {
   11808           16 :             tree res_op0;
   11809           16 :             res_op0 = captures[0];
   11810           16 :             tree res_op1;
   11811           16 :             res_op1 = captures[3];
   11812           16 :             tree res_op2;
   11813           16 :             res_op2 =  const_binop (PLUS_EXPR, bitsizetype, captures[2], captures[4]);
   11814           16 :             tree _r;
   11815           16 :             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11816           16 :             if (TREE_SIDE_EFFECTS (captures[1]))
   11817            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11818           16 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1094, __FILE__, __LINE__, true);
   11819           16 :             return _r;
   11820              :           }
   11821            0 : next_after_fail2002:;
   11822              :         }
   11823            0 :         break;
   11824              :       }
   11825            3 :     case VIEW_CONVERT_EXPR:
   11826            3 :       {
   11827            3 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11828            3 :         {
   11829            3 :           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
   11830            6 :           if (! INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
   11831            6 :  || type_has_mode_precision_p (TREE_TYPE (captures[0]))
   11832              : )
   11833              :             {
   11834            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2003;
   11835            0 :               {
   11836            0 :                 tree res_op0;
   11837            0 :                 res_op0 = captures[0];
   11838            0 :                 tree res_op1;
   11839            0 :                 res_op1 = captures[1];
   11840            0 :                 tree res_op2;
   11841            0 :                 res_op2 = captures[2];
   11842            0 :                 tree _r;
   11843            0 :                 _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11844            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1095, __FILE__, __LINE__, true);
   11845            0 :                 return _r;
   11846              :               }
   11847            0 : next_after_fail2003:;
   11848              :             }
   11849              :         }
   11850            3 :         break;
   11851              :       }
   11852       935824 :     default:;
   11853              :     }
   11854       935824 :   if (integer_zerop (_p2))
   11855              :     {
   11856       308809 :       {
   11857       308809 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11858       308809 :         if (tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (captures[0])))
   11859              : )
   11860              :           {
   11861         2665 :             if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail2004;
   11862         2665 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2004;
   11863         2665 :             {
   11864         2665 :               tree res_op0;
   11865         2665 :               res_op0 = captures[0];
   11866         2665 :               tree _r;
   11867         2665 :               _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11868         2665 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11869            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11870         2665 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1096, __FILE__, __LINE__, true);
   11871         2665 :               return _r;
   11872              :             }
   11873       306144 : next_after_fail2004:;
   11874              :           }
   11875              :       }
   11876              :     }
   11877       933159 :   {
   11878       933159 :     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
   11879       933159 :     if (TREE_CODE (TREE_TYPE (captures[0])) == COMPLEX_TYPE
   11880       933159 :  && tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))
   11881              : )
   11882              :       {
   11883            2 :         if (integer_zerop (captures[2])
   11884              : )
   11885              :           {
   11886            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2005;
   11887            0 :             {
   11888            0 :               tree res_op0;
   11889            0 :               {
   11890            0 :                 tree _o1[1], _r1;
   11891            0 :                 _o1[0] = captures[0];
   11892            0 :                 _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
   11893            0 :                 res_op0 = _r1;
   11894              :               }
   11895            0 :               tree _r;
   11896            0 :               _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11897            0 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11898            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11899            0 :               if (TREE_SIDE_EFFECTS (captures[2]))
   11900            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11901            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1097, __FILE__, __LINE__, true);
   11902            0 :               return _r;
   11903              :             }
   11904            0 : next_after_fail2005:;
   11905              :           }
   11906              :         else
   11907              :           {
   11908            2 :             if (tree_int_cst_equal (captures[2], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))
   11909              : )
   11910              :               {
   11911            0 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2006;
   11912            0 :                 {
   11913            0 :                   tree res_op0;
   11914            0 :                   {
   11915            0 :                     tree _o1[1], _r1;
   11916            0 :                     _o1[0] = captures[0];
   11917            0 :                     _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
   11918            0 :                     res_op0 = _r1;
   11919              :                   }
   11920            0 :                   tree _r;
   11921            0 :                   _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11922            0 :                   if (TREE_SIDE_EFFECTS (captures[1]))
   11923            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11924            0 :                   if (TREE_SIDE_EFFECTS (captures[2]))
   11925            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11926            0 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1098, __FILE__, __LINE__, true);
   11927            0 :                   return _r;
   11928              :                 }
   11929            0 : next_after_fail2006:;
   11930              :               }
   11931              :           }
   11932              :       }
   11933              :     else
   11934              :       {
   11935      1866252 :         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
   11936        20581 :  && INTEGRAL_TYPE_P (type)
   11937              :  && (!
   11938              : 
   11939              :  || is_gimple_reg (captures[0]))
   11940       952771 :  && ((compare_tree_int (captures[1], TYPE_PRECISION (TREE_TYPE (captures[0]))) == 0
   11941            0 :  && integer_zerop (captures[2]))
   11942              :  || (BYTES_BIG_ENDIAN == WORDS_BIG_ENDIAN
   11943              :  && canonicalize_math_after_vectorization_p ()
   11944              :  && TYPE_PRECISION (TREE_TYPE (captures[0])) % BITS_PER_UNIT == 0
   11945              :  && TYPE_PRECISION (type) % BITS_PER_UNIT == 0
   11946              :  && compare_tree_int (captures[2], (BYTES_BIG_ENDIAN
   11947              :  ? (TYPE_PRECISION (TREE_TYPE (captures[0]))
   11948              :  - TYPE_PRECISION (type))
   11949              :  : 0)) == 0))
   11950              : )
   11951              :           {
   11952            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2007;
   11953            0 :             {
   11954            0 :               tree res_op0;
   11955            0 :               res_op0 = captures[0];
   11956            0 :               tree _r;
   11957            0 :               _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   11958            0 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11959            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11960            0 :               if (TREE_SIDE_EFFECTS (captures[2]))
   11961            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11962            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1099, __FILE__, __LINE__, true);
   11963            0 :               return _r;
   11964              :             }
   11965            0 : next_after_fail2007:;
   11966              :           }
   11967              :       }
   11968              :   }
   11969       933159 :   switch (TREE_CODE (_p0))
   11970              :     {
   11971         2289 :     case CONSTRUCTOR:
   11972         2289 :       {
   11973         2289 :         {
   11974         2289 :           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
   11975         2289 :           if (VECTOR_TYPE_P (TREE_TYPE (captures[0]))
   11976         2289 :  && tree_fits_uhwi_p (TYPE_SIZE (type))
   11977         4578 :  && ((tree_to_uhwi (TYPE_SIZE (type))
   11978         2289 :  == tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))
   11979            0 :  || (VECTOR_TYPE_P (type)
   11980            0 :  && (tree_to_uhwi (TYPE_SIZE (TREE_TYPE (type)))
   11981            0 :  == tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))))
   11982              : )
   11983              :             {
   11984         2289 :               {
   11985         2289 :  tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
   11986              :  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
   11987         2289 :  tree eltype = TREE_TYPE (TREE_TYPE (ctor));
   11988         2289 :  unsigned HOST_WIDE_INT width = tree_to_uhwi (TYPE_SIZE (eltype));
   11989         2289 :  unsigned HOST_WIDE_INT n = tree_to_uhwi (captures[1]);
   11990         2289 :  unsigned HOST_WIDE_INT idx = tree_to_uhwi (captures[2]);
   11991         2289 :                   if (n != 0
   11992         2289 :  && (idx % width) == 0
   11993         2289 :  && (n % width) == 0
   11994         4578 :  && known_le ((idx + n) / width,
   11995              :  TYPE_VECTOR_SUBPARTS (TREE_TYPE (ctor)))
   11996              : )
   11997              :                     {
   11998         2289 :                       {
   11999         2289 :  idx = idx / width;
   12000         2289 :  n = n / width;
   12001         2289 :  poly_uint64 k = 1;
   12002         2289 :  if (CONSTRUCTOR_NELTS (ctor) != 0)
   12003              :  {
   12004         2289 :  tree cons_elem = TREE_TYPE (CONSTRUCTOR_ELT (ctor, 0)->value);
   12005         2289 :  if (TREE_CODE (cons_elem) == VECTOR_TYPE)
   12006         2289 :  k = TYPE_VECTOR_SUBPARTS (cons_elem);
   12007              :  }
   12008         2289 :  unsigned HOST_WIDE_INT elt, count, const_k;
   12009         2289 :                           if (multiple_p (idx, k, &elt) && multiple_p (n, k, &count)
   12010              : )
   12011              :                             {
   12012           12 :                               if (CONSTRUCTOR_NELTS (ctor) == 0
   12013              : )
   12014              :                                 {
   12015            0 :                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2008;
   12016            0 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2008;
   12017            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2008;
   12018            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2008;
   12019            0 :                                   {
   12020            0 :                                     tree _r;
   12021            0 :                                     _r =  build_zero_cst (type);
   12022            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1100, __FILE__, __LINE__, true);
   12023         2289 :                                     return _r;
   12024              :                                   }
   12025              : next_after_fail2008:;
   12026              :                                 }
   12027              :                               else
   12028              :                                 {
   12029           12 :                                   if (count == 1
   12030              : )
   12031              :                                     {
   12032           12 :                                       if (elt < CONSTRUCTOR_NELTS (ctor)
   12033              : )
   12034              :                                         {
   12035           12 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2009;
   12036           12 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2009;
   12037           12 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2009;
   12038           12 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2009;
   12039           12 :                                           {
   12040           12 :                                             tree res_op0;
   12041           12 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, elt)->value;
   12042           12 :                                             tree _r;
   12043           12 :                                             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   12044           12 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1101, __FILE__, __LINE__, true);
   12045           12 :                                             return _r;
   12046              :                                           }
   12047              : next_after_fail2009:;
   12048              :                                         }
   12049              :                                       else
   12050              :                                         {
   12051            0 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2010;
   12052            0 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2010;
   12053            0 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2010;
   12054            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2010;
   12055            0 :                                           {
   12056            0 :                                             tree _r;
   12057            0 :                                             _r =  build_zero_cst (type);
   12058            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1102, __FILE__, __LINE__, true);
   12059            0 :                                             return _r;
   12060              :                                           }
   12061              : next_after_fail2010:;
   12062              :                                         }
   12063              :                                     }
   12064              :                                   else
   12065              :                                     {
   12066            0 :                                       if (single_use (captures[0])
   12067              : )
   12068              :                                         {
   12069            0 :                                           {
   12070            0 :  vec<constructor_elt, va_gc> *vals;
   12071            0 :  vec_alloc (vals, count);
   12072            0 :  bool constant_p = true;
   12073            0 :  tree res;
   12074            0 :  for (unsigned i = 0;
   12075            0 :  i < count && elt + i < CONSTRUCTOR_NELTS (ctor); ++i)
   12076              :  {
   12077            0 :  tree e = CONSTRUCTOR_ELT (ctor, elt + i)->value;
   12078            0 :  CONSTRUCTOR_APPEND_ELT (vals, NULL_TREE, e);
   12079            0 :  if (!CONSTANT_CLASS_P (e))
   12080            0 :  constant_p = false;
   12081              :  }
   12082            0 :  tree evtype = (types_match (TREE_TYPE (type),
   12083            0 :  TREE_TYPE (TREE_TYPE (ctor)))
   12084            0 :  ? type
   12085            0 :  : build_vector_type (TREE_TYPE (TREE_TYPE (ctor)),
   12086            0 :  count * k));
   12087            0 :  res = (constant_p ? build_vector_from_ctor (evtype, vals)
   12088              :  : (
   12089              : 
   12090            0 :  ? NULL_TREE : build_constructor (evtype, vals)));
   12091            0 :                                               if (res
   12092              : )
   12093              :                                                 {
   12094            0 :                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2011;
   12095            0 :                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2011;
   12096            0 :                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2011;
   12097            0 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2011;
   12098            0 :                                                   {
   12099            0 :                                                     tree res_op0;
   12100            0 :                                                     res_op0 =  res;
   12101            0 :                                                     tree _r;
   12102            0 :                                                     _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   12103            0 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1103, __FILE__, __LINE__, true);
   12104            0 :                                                     return _r;
   12105              :                                                   }
   12106            0 : next_after_fail2011:;
   12107              :                                                 }
   12108              :                                           }
   12109              :                                         }
   12110              :                                     }
   12111              :                                 }
   12112              :                             }
   12113              :                           else
   12114              :                             {
   12115         2277 :                               if (k.is_constant (&const_k)
   12116         2277 :  && idx + n <= (idx / const_k + 1) * const_k
   12117              : )
   12118              :                                 {
   12119         2277 :                                   if (CONSTRUCTOR_NELTS (ctor) <= idx / const_k
   12120              : )
   12121              :                                     {
   12122            0 :                                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2012;
   12123            0 :                                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2012;
   12124            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2012;
   12125            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2012;
   12126            0 :                                       {
   12127            0 :                                         tree _r;
   12128            0 :                                         _r =  build_zero_cst (type);
   12129            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1104, __FILE__, __LINE__, true);
   12130            0 :                                         return _r;
   12131              :                                       }
   12132              : next_after_fail2012:;
   12133              :                                     }
   12134              :                                   else
   12135              :                                     {
   12136         2277 :                                       if (n == const_k
   12137              : )
   12138              :                                         {
   12139            0 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2013;
   12140            0 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2013;
   12141            0 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2013;
   12142            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2013;
   12143            0 :                                           {
   12144            0 :                                             tree res_op0;
   12145            0 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
   12146            0 :                                             tree _r;
   12147            0 :                                             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   12148            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1105, __FILE__, __LINE__, true);
   12149            0 :                                             return _r;
   12150              :                                           }
   12151              : next_after_fail2013:;
   12152              :                                         }
   12153              :                                       else
   12154              :                                         {
   12155         2277 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail2014;
   12156         2277 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2014;
   12157         2277 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2014;
   12158         2277 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2014;
   12159         2277 :                                           {
   12160         2277 :                                             tree res_op0;
   12161         2277 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
   12162         2277 :                                             tree res_op1;
   12163         2277 :                                             res_op1 = captures[1];
   12164         2277 :                                             tree res_op2;
   12165         2277 :                                             res_op2 =  bitsize_int ((idx % const_k) * width);
   12166         2277 :                                             tree _r;
   12167         2277 :                                             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   12168         2277 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1106, __FILE__, __LINE__, true);
   12169         2277 :                                             return _r;
   12170              :                                           }
   12171              : next_after_fail2014:;
   12172              :                                         }
   12173              :                                     }
   12174              :                                 }
   12175              :                             }
   12176              :                       }
   12177              :                     }
   12178              :               }
   12179              :             }
   12180              :         }
   12181            0 :         break;
   12182              :       }
   12183            0 :     case VEC_PERM_EXPR:
   12184            0 :       {
   12185            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   12186            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   12187            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   12188            0 :         switch (TREE_CODE (_q22))
   12189              :           {
   12190            0 :           case VECTOR_CST:
   12191            0 :             {
   12192            0 :               {
   12193            0 :                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _p2 };
   12194            0 :                 {
   12195            0 :  tree elem_type = TREE_TYPE (TREE_TYPE (captures[0]));
   12196            0 :  poly_uint64 elem_size = tree_to_poly_uint64 (TYPE_SIZE (elem_type));
   12197            0 :  poly_uint64 size = tree_to_poly_uint64 (TYPE_SIZE (type));
   12198            0 :  unsigned HOST_WIDE_INT nelts, idx;
   12199            0 :  unsigned HOST_WIDE_INT nelts_op = 0;
   12200            0 :                     if (constant_multiple_p (tree_to_poly_uint64 (captures[5]), elem_size, &idx)
   12201            0 :  && VECTOR_CST_NELTS (captures[3]).is_constant (&nelts)
   12202            0 :  && (known_eq (size, elem_size)
   12203            0 :  || (constant_multiple_p (size, elem_size, &nelts_op)
   12204            0 :  && pow2p_hwi (nelts_op)))
   12205              : )
   12206              :                       {
   12207            0 :                         {
   12208            0 :  bool ok = true;
   12209            0 :  if (known_eq (size, elem_size))
   12210            0 :  idx = TREE_INT_CST_LOW (VECTOR_CST_ELT (captures[3], idx)) % (2 * nelts);
   12211              :  else
   12212              :  {
   12213            0 :  unsigned start
   12214            0 :  = TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx)) % (2 * nelts);
   12215            0 :  unsigned end
   12216            0 :  = (TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + nelts_op - 1))
   12217            0 :  % (2 * nelts));
   12218            0 :  if ((start < nelts) != (end < nelts))
   12219              :  ok = false;
   12220              :  else
   12221            0 :  for (unsigned HOST_WIDE_INT i = 1; i != nelts_op; i++)
   12222              :  {
   12223            0 :  if ((TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + i))
   12224            0 :  % (2 * nelts) - 1)
   12225            0 :  != (TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + i - 1))
   12226            0 :  % (2 * nelts)))
   12227              :  {
   12228              :  ok = false;
   12229              :  break;
   12230              :  }
   12231              :  }
   12232            0 :  if (start % nelts_op)
   12233              :  ok = false;
   12234            0 :  idx = start;
   12235              :  }
   12236            0 :                             if (ok
   12237              : )
   12238              :                               {
   12239            0 :                                 if (idx < nelts
   12240              : )
   12241              :                                   {
   12242            0 :                                     if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail2015;
   12243            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2015;
   12244            0 :                                     {
   12245            0 :                                       tree res_op0;
   12246            0 :                                       res_op0 = captures[1];
   12247            0 :                                       tree res_op1;
   12248            0 :                                       res_op1 = captures[4];
   12249            0 :                                       tree res_op2;
   12250            0 :                                       res_op2 =  bitsize_int (idx * elem_size);
   12251            0 :                                       tree _r;
   12252            0 :                                       _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   12253            0 :                                       if (TREE_SIDE_EFFECTS (captures[2]))
   12254            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   12255            0 :                                       if (TREE_SIDE_EFFECTS (captures[5]))
   12256            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   12257            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1107, __FILE__, __LINE__, true);
   12258            0 :                                       return _r;
   12259              :                                     }
   12260            0 : next_after_fail2015:;
   12261              :                                   }
   12262              :                                 else
   12263              :                                   {
   12264            0 :                                     if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail2016;
   12265            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2016;
   12266            0 :                                     {
   12267            0 :                                       tree res_op0;
   12268            0 :                                       res_op0 = captures[2];
   12269            0 :                                       tree res_op1;
   12270            0 :                                       res_op1 = captures[4];
   12271            0 :                                       tree res_op2;
   12272            0 :                                       res_op2 =  bitsize_int ((idx - nelts) * elem_size);
   12273            0 :                                       tree _r;
   12274            0 :                                       _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   12275            0 :                                       if (TREE_SIDE_EFFECTS (captures[1]))
   12276            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   12277            0 :                                       if (TREE_SIDE_EFFECTS (captures[5]))
   12278            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   12279            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1108, __FILE__, __LINE__, true);
   12280            0 :                                       return _r;
   12281              :                                     }
   12282            0 : next_after_fail2016:;
   12283              :                                   }
   12284              :                               }
   12285              :                         }
   12286              :                       }
   12287              :                 }
   12288              :               }
   12289            0 :               break;
   12290              :             }
   12291              :           default:;
   12292              :           }
   12293              :         break;
   12294              :       }
   12295            0 :     case BIT_INSERT_EXPR:
   12296            0 :       {
   12297            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   12298            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   12299            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   12300            0 :         {
   12301            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
   12302            0 :           {
   12303            0 :  unsigned HOST_WIDE_INT isize;
   12304            0 :  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])))
   12305            0 :  isize = TYPE_PRECISION (TREE_TYPE (captures[1]));
   12306              :  else
   12307            0 :  isize = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (captures[1])));
   12308            0 :               if ((!INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
   12309            0 :  || type_has_mode_precision_p (TREE_TYPE (captures[1])))
   12310            0 :  && wi::leu_p (wi::to_wide (captures[2]), wi::to_wide (captures[4]))
   12311            0 :  && wi::leu_p (wi::to_wide (captures[4]) + wi::to_wide (captures[3]),
   12312            0 :  wi::to_wide (captures[2]) + isize)
   12313              : )
   12314              :                 {
   12315            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2017;
   12316            0 :                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail2017;
   12317            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2017;
   12318            0 :                   {
   12319            0 :                     tree res_op0;
   12320            0 :                     res_op0 = captures[1];
   12321            0 :                     tree res_op1;
   12322            0 :                     res_op1 = captures[3];
   12323            0 :                     tree res_op2;
   12324            0 :                     res_op2 =  wide_int_to_tree (bitsizetype,
   12325            0 :  wi::to_wide (captures[4])
   12326            0 :  - wi::to_wide (captures[2]));
   12327            0 :                     tree _r;
   12328            0 :                     _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   12329            0 :                     if (TREE_SIDE_EFFECTS (captures[0]))
   12330            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   12331            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1109, __FILE__, __LINE__, true);
   12332            0 :                     return _r;
   12333              :                   }
   12334            0 : next_after_fail2017:;
   12335              :                 }
   12336              :               else
   12337              :                 {
   12338            0 :                   if (wi::eq_p (wi::to_wide (captures[2]), wi::to_wide (captures[4]))
   12339            0 :  && compare_tree_int (captures[3], isize) == 0
   12340              : )
   12341              :                     {
   12342            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2018;
   12343            0 :                       {
   12344            0 :                         tree res_op0;
   12345            0 :                         res_op0 = captures[1];
   12346            0 :                         tree _r;
   12347            0 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   12348            0 :                         if (TREE_SIDE_EFFECTS (captures[0]))
   12349            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   12350            0 :                         if (TREE_SIDE_EFFECTS (captures[2]))
   12351            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   12352            0 :                         if (TREE_SIDE_EFFECTS (captures[3]))
   12353            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
   12354            0 :                         if (TREE_SIDE_EFFECTS (captures[4]))
   12355            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
   12356            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1110, __FILE__, __LINE__, true);
   12357            0 :                         return _r;
   12358              :                       }
   12359            0 : next_after_fail2018:;
   12360              :                     }
   12361              :                   else
   12362              :                     {
   12363            0 :                       if (wi::geu_p (wi::to_wide (captures[2]),
   12364            0 :  wi::to_wide (captures[4]) + wi::to_wide (captures[3]))
   12365            0 :  || wi::geu_p (wi::to_wide (captures[4]),
   12366            0 :  wi::to_wide (captures[2]) + isize)
   12367              : )
   12368              :                         {
   12369            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2019;
   12370            0 :                           {
   12371            0 :                             tree res_op0;
   12372            0 :                             res_op0 = captures[0];
   12373            0 :                             tree res_op1;
   12374            0 :                             res_op1 = captures[3];
   12375            0 :                             tree res_op2;
   12376            0 :                             res_op2 = captures[4];
   12377            0 :                             tree _r;
   12378            0 :                             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   12379            0 :                             if (TREE_SIDE_EFFECTS (captures[1]))
   12380            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   12381            0 :                             if (TREE_SIDE_EFFECTS (captures[2]))
   12382            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   12383            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1111, __FILE__, __LINE__, true);
   12384            0 :                             return _r;
   12385              :                           }
   12386            0 : next_after_fail2019:;
   12387              :                         }
   12388              :                     }
   12389              :                 }
   12390              :           }
   12391              :         }
   12392            0 :         break;
   12393              :       }
   12394              :     default:;
   12395              :     }
   12396              :   return NULL_TREE;
   12397              : }
   12398              : #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.